diff --git a/.forgejo/workflows/deploy.yml b/.forgejo/workflows/deploy.yml new file mode 100644 index 0000000..87ee237 --- /dev/null +++ b/.forgejo/workflows/deploy.yml @@ -0,0 +1,39 @@ +name: Build and Deploy + +on: + push: + branches: [main] + +jobs: + deploy: + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@v4 + + - name: Install Python + uses: actions/setup-python@v5 + with: + python-version: '3.12' + + - name: Install Zensical + run: pip install zensical + + - name: Build + run: zensical build + + - name: Deploy to BunnyCDN + run: | + pip install s3cmd + cat > ~/.s3cfg < dispatch -> journal) driven by epic issue task lists, and pluggable data collectors for BitcoinTalk, GitHub, market data, and research papers. + +## Quick Start + +```go +import ( + "forge.lthn.ai/core/go-scm/forge" + "forge.lthn.ai/core/go-scm/git" + "forge.lthn.ai/core/go-scm/jobrunner" +) + +// Forgejo client +client, err := forge.NewFromConfig("", "") + +// Multi-repo status +statuses := git.Status(ctx, git.StatusOptions{Paths: repoPaths}) + +// AgentCI dispatch loop +poller := jobrunner.NewPoller(jobrunner.PollerConfig{ + Sources: []jobrunner.JobSource{forgejoSrc}, + Handlers: []jobrunner.JobHandler{dispatch, tickParent}, + PollInterval: 60 * time.Second, +}) +poller.Run(ctx) +``` + +## Components + +| Component | Description | +|-----------|-------------| +| `forge` | Forgejo API client | +| `git` | Multi-repo operations, parallel status | +| `jobrunner` | AgentCI dispatch pipeline | +| `clotho` | Dual-run verification protocol | +| `collectors` | BitcoinTalk, GitHub, market, research scrapers | diff --git a/docs/go/packages/go-session.md b/docs/go/packages/go-session.md new file mode 100644 index 0000000..77c08dc --- /dev/null +++ b/docs/go/packages/go-session.md @@ -0,0 +1,16 @@ +--- +title: go-session +description: Claude Code JSONL transcript parser, analytics engine, and HTML timeline renderer +--- + +# go-session + +`forge.lthn.ai/core/go-session` + +Parser and analytics engine for Claude Code JSONL session transcripts. Extracts per-tool usage statistics, generates self-contained HTML timeline visualisations, and produces VHS tape scripts for terminal recording. Useful for understanding agent behaviour and tool usage patterns across sessions. + +## Key Types + +- `SessionAnalytics` — aggregated statistics from one or more sessions (tool counts, durations, token usage) +- `Event` — single parsed event from a JSONL transcript +- `Session` — complete parsed session with ordered events and metadata diff --git a/docs/go/packages/go-store.md b/docs/go/packages/go-store.md new file mode 100644 index 0000000..94e0485 --- /dev/null +++ b/docs/go/packages/go-store.md @@ -0,0 +1,17 @@ +--- +title: go-store +description: Group-namespaced SQLite key-value store with TTL, quotas, and reactive events +--- + +# go-store + +`forge.lthn.ai/core/go-store` + +SQLite-backed key-value store with group namespacing, TTL expiry, and quota enforcement. Operates in WAL mode for concurrent read performance. Supports scoped stores for multi-tenant isolation, reactive Watch/Unwatch subscriptions, and OnChange callbacks. Designed as an integration point for go-ws real-time streaming. + +## Key Types + +- `Event` — change event emitted on key create, update, or delete +- `Watcher` — subscription handle for reactive change notifications +- `QuotaConfig` — per-namespace limits (max keys, max value size, total size) +- `ScopedStore` — namespace-isolated view of the store for multi-tenant use diff --git a/docs/go/packages/go-webview.md b/docs/go/packages/go-webview.md new file mode 100644 index 0000000..2b670af --- /dev/null +++ b/docs/go/packages/go-webview.md @@ -0,0 +1,17 @@ +--- +title: go-webview +description: Chrome DevTools Protocol client for browser automation and testing +--- + +# go-webview + +`forge.lthn.ai/core/go-webview` + +Chrome DevTools Protocol (CDP) client for browser automation, testing, and scraping. Supports navigation, DOM queries, click/type interactions, console capture, JavaScript evaluation, screenshots, multi-tab management, and viewport emulation. Includes an ActionSequence builder for chaining operations and Angular-specific helpers. + +## Key Types + +- `ClickAction` — clicks an element by selector +- `TypeAction` — types text into an input element +- `NavigateAction` — navigates to a URL and waits for load +- `WaitAction` — waits for a selector, timeout, or network idle diff --git a/docs/go/packages/go-ws.md b/docs/go/packages/go-ws.md new file mode 100644 index 0000000..9910d15 --- /dev/null +++ b/docs/go/packages/go-ws.md @@ -0,0 +1,17 @@ +--- +title: go-ws +description: WebSocket hub for real-time streaming with channel pub/sub and Redis bridge +--- + +# go-ws + +`forge.lthn.ai/core/go-ws` + +WebSocket server implementing the hub pattern for real-time streaming. Provides named channel pub/sub, token-based authentication on the upgrade handshake, automatic reconnection with exponential backoff on the client side, and a Redis pub/sub bridge for multi-instance coordination. + +## Key Types + +- `AuthResult` — outcome of a WebSocket authentication attempt +- `APIKeyAuthenticator` — authenticates connections via API key header or query parameter +- `BearerTokenAuth` — authenticates connections via Bearer token +- `RedisConfig` — configuration for the Redis pub/sub bridge diff --git a/docs/go/packages/index.md b/docs/go/packages/index.md new file mode 100644 index 0000000..3628769 --- /dev/null +++ b/docs/go/packages/index.md @@ -0,0 +1,44 @@ +# Go Packages + +The Core Go ecosystem is a collection of focused packages under `forge.lthn.ai/core/`. + +| Package | Description | +|---------|-------------| +| [go-devops](go-devops.md) | Build automation, Ansible, release pipeline, infrastructure APIs | +| [go-ai](go-ai.md) | MCP hub — 49 tools for file ops, RAG, inference, browser automation | +| [go-ml](go-ml.md) | ML inference backends, scoring engine, agent orchestrator | +| [go-mlx](go-mlx.md) | Apple Metal GPU inference via mlx-c CGO bindings | +| [go-inference](go-inference.md) | Shared interface contract for text generation backends | +| [go-i18n](go-i18n.md) | Grammar engine — forward composition, reversal, GrammarImprint | +| [go-scm](go-scm.md) | SCM integration, AgentCI dispatch, Clotho Protocol | +| [go-html](go-html.md) | HLCRF DOM compositor with grammar pipeline and WASM | +| [go-crypt](go-crypt.md) | Cryptographic primitives, OpenPGP auth, trust policy engine | +| [go-blockchain](go-blockchain.md) | Pure Go CryptoNote blockchain implementation | + +## Dependency Graph + +```mermaid +graph TD + go-inference --> go-mlx + go-inference --> go-ml + go-ml --> go-ai + go-i18n --> go-html + go-devops --> CLI + go-ai --> CLI + go-scm --> CLI + go-crypt --> go-scm +``` + +## Installation + +All packages use Go modules: + +```bash +go get forge.lthn.ai/core/go-ai@latest +``` + +For private forge access: + +```bash +export GOPRIVATE=forge.lthn.ai/* +``` diff --git a/build/go/skill/index.md b/docs/go/skill/index.md similarity index 100% rename from build/go/skill/index.md rename to docs/go/skill/index.md diff --git a/build/go/troubleshooting.md b/docs/go/troubleshooting.md similarity index 100% rename from build/go/troubleshooting.md rename to docs/go/troubleshooting.md diff --git a/build/go/workflows.md b/docs/go/workflows.md similarity index 100% rename from build/go/workflows.md rename to docs/go/workflows.md diff --git a/docs/gui/index.md b/docs/gui/index.md new file mode 100644 index 0000000..dc46ea6 --- /dev/null +++ b/docs/gui/index.md @@ -0,0 +1,14 @@ +--- +title: GUI +description: Shared GUI components and resources +--- + +# GUI + +`forge.lthn.ai/core/gui` + +Shared GUI components and resources used across Core desktop applications. + +## Repository + +- **Source**: [forge.lthn.ai/core/gui](https://forge.lthn.ai/core/gui) diff --git a/docs/ide/index.md b/docs/ide/index.md new file mode 100644 index 0000000..992da39 --- /dev/null +++ b/docs/ide/index.md @@ -0,0 +1,28 @@ +--- +title: IDE +description: Native desktop IDE built with Wails 3 and Angular 20 +--- + +# IDE + +`forge.lthn.ai/core/ide` + +Native desktop IDE built with Wails 3 (Go backend) and Angular 20 (frontend). Includes a Claude Code bridge for AI-assisted development and an MCP bridge for tool integration. + +## Stack + +- **Backend**: Go (Wails 3) +- **Frontend**: Angular 20, Web Awesome, Font Awesome +- **AI**: Claude Code bridge for in-IDE agent interaction +- **Tools**: MCP bridge for protocol tool access + +## Key Types + +- `ClaudeBridge` — connects the IDE to Claude Code sessions +- `MCPBridge` — exposes MCP tools within the IDE +- `GreetService` — Wails service example/template + +## Repository + +- **Source**: [forge.lthn.ai/core/ide](https://forge.lthn.ai/core/ide) +- **Go module**: `forge.lthn.ai/core/ide` diff --git a/docs/index.md b/docs/index.md new file mode 100644 index 0000000..7b47c7c --- /dev/null +++ b/docs/index.md @@ -0,0 +1,82 @@ +--- +title: core.help +description: Documentation for the Core CLI, Go packages, PHP modules, and MCP tools +--- + +# Core Platform + +Build, deploy, and manage Go and PHP applications with a unified toolkit. + +--- + +| | | +|---|---| +| **[Core GO →](go/index.md)** | **[Core PHP →](php/index.md)** | +| DI framework, service lifecycle, and message-passing bus for Go. | Modular monolith for Laravel with event-driven loading and multi-tenancy. | +| **[CLI →](cli/index.md)** | **[Go Packages →](go/packages/index.md)** | +| Unified `core` command for Go/PHP dev, multi-repo management, builds. | AI, ML, DevOps, crypto, i18n, blockchain, and more. | +| **[Deploy →](deploy/index.md)** | **[Publish →](publish/index.md)** | +| Docker, PHP, and LinuxKit deployment targets with templates. | Release to GitHub, Docker Hub, Homebrew, Scoop, AUR, npm. | + +## Quick Start + +=== "Go" + + ```bash + # Install the Core CLI + go install forge.lthn.ai/core/cli/cmd/core@latest + + # Check your environment + core doctor + + # Run tests, format, lint + core go test + core go fmt + core go lint + + # Build your project + core build + ``` + +=== "PHP" + + ```bash + # Install the framework + composer require lthn/php + + # Create a module + php artisan make:mod Commerce + + # Start dev environment + core php dev + + # Run tests + core php test + ``` + +=== "Multi-Repo" + + ```bash + # Health check across all repos + core dev health + + # Full workflow: status, commit, push + core dev work + + # Just show status + core dev work --status + ``` + +## Architecture + +The Core platform spans two ecosystems: + +**Go** provides the CLI toolchain and infrastructure services — build system, release pipeline, multi-repo management, LinuxKit VMs, and AI/ML integration. The `core` binary is the single entry point. + +**PHP** provides the application framework — a Laravel-based modular monolith with event-driven module loading, automatic multi-tenancy, and packages for admin, API, commerce, content, MCP, and developer portals. + +Both are connected through the CLI (`core go`, `core php`, `core build`, `core dev`) and share deployment pipelines (`core ci`, `core deploy`). + +## Licence + +EUPL-1.2 — [European Union Public Licence](https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12) diff --git a/docs/links.md b/docs/links.md new file mode 100644 index 0000000..850ba33 --- /dev/null +++ b/docs/links.md @@ -0,0 +1,35 @@ +--- +title: Community & Links +description: Find Core on GitHub, Forgejo, Hugging Face, and other platforms +--- + +# Community & Links + +## Source Code + +- **[Forgejo](https://forge.lthn.ai/core)** — Primary source, CI/CD, and issue tracking +- **[GitHub](https://github.com/LetheanNetwork)** — Public mirror +- **[GitLab](https://gitlab.com/lthn)** — Mirror + +## AI & Models + +- **[Hugging Face](https://huggingface.co/lthn)** — LEM models and training datasets + +## Packages + +- **[Go Modules](https://forge.lthn.ai/core)** — `forge.lthn.ai/core/*` +- **[Packagist](https://packagist.org/packages/lthn/)** — PHP packages via Composer (`lthn/*`) +- **[Docker Hub](https://hub.docker.com/u/lthn)** — Container images + +## Social + +- **[Twitter / X](https://twitter.com/LetheanNetwork)** — @LetheanNetwork + +## Community + +- **[Discord](https://discord.gg/CwZtD69wTg)** — Community chat +- **[BugSETI](https://bugseti.app)** — Bug bounty and testing platform + +## Documentation + +- **[core.help](https://core.help)** — This site diff --git a/docs/mcp/index.md b/docs/mcp/index.md new file mode 100644 index 0000000..8d46754 --- /dev/null +++ b/docs/mcp/index.md @@ -0,0 +1,30 @@ +--- +title: MCP +description: Model Context Protocol — Go MCP server and Laravel MCP package with 49 tools +--- + +# MCP + +`forge.lthn.ai/core/mcp` + +Model Context Protocol server combining a Go MCP server with a Laravel MCP package. Produces the `core-mcp` binary. 49 MCP tools covering brain, RAG, ML, IDE bridge, and more. + +## What's Inside + +### Go MCP Server + +43 Go files in `pkg/mcp/` providing the MCP server implementation and `cmd/` entry point for the `core-mcp` binary. + +### Laravel MCP Package + +145 PHP files in `src/php/` providing the Laravel integration — tool handlers, workspace management, database querying, analytics, quotas, and security. + +## Repository + +- **Source**: [forge.lthn.ai/core/mcp](https://forge.lthn.ai/core/mcp) +- **Go module**: `forge.lthn.ai/core/mcp` +- **Composer**: `lthn/mcp` + +## Absorbed Archives + +This repo consolidates code from the now-archived `php-mcp` package. diff --git a/build/php/architecture/custom-events.md b/docs/php/architecture/custom-events.md similarity index 100% rename from build/php/architecture/custom-events.md rename to docs/php/architecture/custom-events.md diff --git a/docs/php/architecture/index.md b/docs/php/architecture/index.md new file mode 100644 index 0000000..642191c --- /dev/null +++ b/docs/php/architecture/index.md @@ -0,0 +1,8 @@ +--- +title: Architecture +description: Deep dives into the Core PHP architecture — module system, lifecycle events, lazy loading, and multi-tenancy +--- + +# Architecture + +Deep dives into how the Core PHP framework works under the hood. diff --git a/build/php/architecture/lazy-loading.md b/docs/php/architecture/lazy-loading.md similarity index 100% rename from build/php/architecture/lazy-loading.md rename to docs/php/architecture/lazy-loading.md diff --git a/build/php/architecture/lifecycle-events.md b/docs/php/architecture/lifecycle-events.md similarity index 100% rename from build/php/architecture/lifecycle-events.md rename to docs/php/architecture/lifecycle-events.md diff --git a/build/php/architecture/module-system.md b/docs/php/architecture/module-system.md similarity index 100% rename from build/php/architecture/module-system.md rename to docs/php/architecture/module-system.md diff --git a/build/php/architecture/multi-tenancy.md b/docs/php/architecture/multi-tenancy.md similarity index 100% rename from build/php/architecture/multi-tenancy.md rename to docs/php/architecture/multi-tenancy.md diff --git a/build/php/architecture/performance.md b/docs/php/architecture/performance.md similarity index 100% rename from build/php/architecture/performance.md rename to docs/php/architecture/performance.md diff --git a/build/php/actions.md b/docs/php/features/actions.md similarity index 100% rename from build/php/actions.md rename to docs/php/features/actions.md diff --git a/build/php/activity.md b/docs/php/features/activity.md similarity index 100% rename from build/php/activity.md rename to docs/php/features/activity.md diff --git a/build/php/cdn.md b/docs/php/features/cdn.md similarity index 100% rename from build/php/cdn.md rename to docs/php/features/cdn.md diff --git a/docs/php/features/index.md b/docs/php/features/index.md new file mode 100644 index 0000000..eb95e33 --- /dev/null +++ b/docs/php/features/index.md @@ -0,0 +1,8 @@ +--- +title: Features +description: Built-in features — actions, tenancy, search, SEO, CDN, media, activity logging, and seeders +--- + +# Features + +Built-in capabilities available to every Core PHP module. diff --git a/build/php/media.md b/docs/php/features/media.md similarity index 100% rename from build/php/media.md rename to docs/php/features/media.md diff --git a/build/php/search.md b/docs/php/features/search.md similarity index 100% rename from build/php/search.md rename to docs/php/features/search.md diff --git a/build/php/seeder-system.md b/docs/php/features/seeder-system.md similarity index 100% rename from build/php/seeder-system.md rename to docs/php/features/seeder-system.md diff --git a/build/php/seo.md b/docs/php/features/seo.md similarity index 100% rename from build/php/seo.md rename to docs/php/features/seo.md diff --git a/build/php/tenancy.md b/docs/php/features/tenancy.md similarity index 100% rename from build/php/tenancy.md rename to docs/php/features/tenancy.md diff --git a/build/php/events.md b/docs/php/framework/events.md similarity index 100% rename from build/php/events.md rename to docs/php/framework/events.md diff --git a/docs/php/framework/index.md b/docs/php/framework/index.md new file mode 100644 index 0000000..5eab35e --- /dev/null +++ b/docs/php/framework/index.md @@ -0,0 +1,8 @@ +--- +title: Framework +description: Core PHP framework internals — modules, events, contracts, testing, and security +--- + +# Framework + +The Core PHP framework internals that power every module and package. diff --git a/build/php/modules.md b/docs/php/framework/modules.md similarity index 100% rename from build/php/modules.md rename to docs/php/framework/modules.md diff --git a/build/php/security.md b/docs/php/framework/security.md similarity index 100% rename from build/php/security.md rename to docs/php/framework/security.md diff --git a/build/php/service-contracts.md b/docs/php/framework/service-contracts.md similarity index 100% rename from build/php/service-contracts.md rename to docs/php/framework/service-contracts.md diff --git a/build/php/testing.md b/docs/php/framework/testing.md similarity index 100% rename from build/php/testing.md rename to docs/php/framework/testing.md diff --git a/build/php/configuration.md b/docs/php/getting-started/configuration.md similarity index 100% rename from build/php/configuration.md rename to docs/php/getting-started/configuration.md diff --git a/build/php/getting-started.md b/docs/php/getting-started/index.md similarity index 100% rename from build/php/getting-started.md rename to docs/php/getting-started/index.md diff --git a/build/php/installation.md b/docs/php/getting-started/installation.md similarity index 100% rename from build/php/installation.md rename to docs/php/getting-started/installation.md diff --git a/build/php/namespaces.md b/docs/php/getting-started/namespaces.md similarity index 100% rename from build/php/namespaces.md rename to docs/php/getting-started/namespaces.md diff --git a/build/php/quick-start.md b/docs/php/getting-started/quick-start.md similarity index 100% rename from build/php/quick-start.md rename to docs/php/getting-started/quick-start.md diff --git a/docs/php/guides/index.md b/docs/php/guides/index.md new file mode 100644 index 0000000..d1d845c --- /dev/null +++ b/docs/php/guides/index.md @@ -0,0 +1,8 @@ +--- +title: Guides +description: Learn Core PHP — installation, configuration, framework internals, and built-in features +--- + +# Guides + +Everything you need to get started and work effectively with Core PHP. diff --git a/build/php/index.md b/docs/php/index.md similarity index 100% rename from build/php/index.md rename to docs/php/index.md diff --git a/packages/admin/authorization.md b/docs/php/packages/admin/authorization.md similarity index 100% rename from packages/admin/authorization.md rename to docs/php/packages/admin/authorization.md diff --git a/packages/admin/components-reference.md b/docs/php/packages/admin/components-reference.md similarity index 100% rename from packages/admin/components-reference.md rename to docs/php/packages/admin/components-reference.md diff --git a/packages/admin/components.md b/docs/php/packages/admin/components.md similarity index 100% rename from packages/admin/components.md rename to docs/php/packages/admin/components.md diff --git a/packages/admin/creating-admin-panels.md b/docs/php/packages/admin/creating-admin-panels.md similarity index 100% rename from packages/admin/creating-admin-panels.md rename to docs/php/packages/admin/creating-admin-panels.md diff --git a/packages/admin/forms.md b/docs/php/packages/admin/forms.md similarity index 100% rename from packages/admin/forms.md rename to docs/php/packages/admin/forms.md diff --git a/packages/admin/hlcrf-deep-dive.md b/docs/php/packages/admin/hlcrf-deep-dive.md similarity index 100% rename from packages/admin/hlcrf-deep-dive.md rename to docs/php/packages/admin/hlcrf-deep-dive.md diff --git a/packages/admin/index.md b/docs/php/packages/admin/index.md similarity index 100% rename from packages/admin/index.md rename to docs/php/packages/admin/index.md diff --git a/packages/admin/menus.md b/docs/php/packages/admin/menus.md similarity index 100% rename from packages/admin/menus.md rename to docs/php/packages/admin/menus.md diff --git a/packages/admin/modals.md b/docs/php/packages/admin/modals.md similarity index 100% rename from packages/admin/modals.md rename to docs/php/packages/admin/modals.md diff --git a/packages/admin/search.md b/docs/php/packages/admin/search.md similarity index 100% rename from packages/admin/search.md rename to docs/php/packages/admin/search.md diff --git a/packages/api/authentication.md b/docs/php/packages/api/authentication.md similarity index 100% rename from packages/api/authentication.md rename to docs/php/packages/api/authentication.md diff --git a/packages/api/building-rest-apis.md b/docs/php/packages/api/building-rest-apis.md similarity index 100% rename from packages/api/building-rest-apis.md rename to docs/php/packages/api/building-rest-apis.md diff --git a/packages/api/documentation.md b/docs/php/packages/api/documentation.md similarity index 100% rename from packages/api/documentation.md rename to docs/php/packages/api/documentation.md diff --git a/packages/api/endpoints-reference.md b/docs/php/packages/api/endpoints-reference.md similarity index 100% rename from packages/api/endpoints-reference.md rename to docs/php/packages/api/endpoints-reference.md diff --git a/packages/api/index.md b/docs/php/packages/api/index.md similarity index 100% rename from packages/api/index.md rename to docs/php/packages/api/index.md diff --git a/packages/api/rate-limiting.md b/docs/php/packages/api/rate-limiting.md similarity index 100% rename from packages/api/rate-limiting.md rename to docs/php/packages/api/rate-limiting.md diff --git a/packages/api/scopes.md b/docs/php/packages/api/scopes.md similarity index 100% rename from packages/api/scopes.md rename to docs/php/packages/api/scopes.md diff --git a/packages/api/webhook-integration.md b/docs/php/packages/api/webhook-integration.md similarity index 100% rename from packages/api/webhook-integration.md rename to docs/php/packages/api/webhook-integration.md diff --git a/packages/api/webhooks.md b/docs/php/packages/api/webhooks.md similarity index 100% rename from packages/api/webhooks.md rename to docs/php/packages/api/webhooks.md diff --git a/packages/commerce/architecture.md b/docs/php/packages/commerce/architecture.md similarity index 100% rename from packages/commerce/architecture.md rename to docs/php/packages/commerce/architecture.md diff --git a/packages/commerce/index.md b/docs/php/packages/commerce/index.md similarity index 100% rename from packages/commerce/index.md rename to docs/php/packages/commerce/index.md diff --git a/packages/commerce/security.md b/docs/php/packages/commerce/security.md similarity index 100% rename from packages/commerce/security.md rename to docs/php/packages/commerce/security.md diff --git a/packages/commerce/webhooks.md b/docs/php/packages/commerce/webhooks.md similarity index 100% rename from packages/commerce/webhooks.md rename to docs/php/packages/commerce/webhooks.md diff --git a/packages/content/architecture.md b/docs/php/packages/content/architecture.md similarity index 100% rename from packages/content/architecture.md rename to docs/php/packages/content/architecture.md diff --git a/packages/content/index.md b/docs/php/packages/content/index.md similarity index 100% rename from packages/content/index.md rename to docs/php/packages/content/index.md diff --git a/packages/content/security.md b/docs/php/packages/content/security.md similarity index 100% rename from packages/content/security.md rename to docs/php/packages/content/security.md diff --git a/packages/developer/architecture.md b/docs/php/packages/developer/architecture.md similarity index 100% rename from packages/developer/architecture.md rename to docs/php/packages/developer/architecture.md diff --git a/packages/developer/index.md b/docs/php/packages/developer/index.md similarity index 100% rename from packages/developer/index.md rename to docs/php/packages/developer/index.md diff --git a/packages/developer/security.md b/docs/php/packages/developer/security.md similarity index 100% rename from packages/developer/security.md rename to docs/php/packages/developer/security.md diff --git a/packages/index.md b/docs/php/packages/index.md similarity index 100% rename from packages/index.md rename to docs/php/packages/index.md diff --git a/packages/mcp/analytics.md b/docs/php/packages/mcp/analytics.md similarity index 100% rename from packages/mcp/analytics.md rename to docs/php/packages/mcp/analytics.md diff --git a/packages/mcp/creating-mcp-tools.md b/docs/php/packages/mcp/creating-mcp-tools.md similarity index 100% rename from packages/mcp/creating-mcp-tools.md rename to docs/php/packages/mcp/creating-mcp-tools.md diff --git a/packages/mcp/index.md b/docs/php/packages/mcp/index.md similarity index 100% rename from packages/mcp/index.md rename to docs/php/packages/mcp/index.md diff --git a/packages/mcp/query-database.md b/docs/php/packages/mcp/query-database.md similarity index 100% rename from packages/mcp/query-database.md rename to docs/php/packages/mcp/query-database.md diff --git a/packages/mcp/quotas.md b/docs/php/packages/mcp/quotas.md similarity index 100% rename from packages/mcp/quotas.md rename to docs/php/packages/mcp/quotas.md diff --git a/packages/mcp/security.md b/docs/php/packages/mcp/security.md similarity index 100% rename from packages/mcp/security.md rename to docs/php/packages/mcp/security.md diff --git a/packages/mcp/sql-security.md b/docs/php/packages/mcp/sql-security.md similarity index 100% rename from packages/mcp/sql-security.md rename to docs/php/packages/mcp/sql-security.md diff --git a/packages/mcp/tools-reference.md b/docs/php/packages/mcp/tools-reference.md similarity index 100% rename from packages/mcp/tools-reference.md rename to docs/php/packages/mcp/tools-reference.md diff --git a/packages/mcp/tools.md b/docs/php/packages/mcp/tools.md similarity index 100% rename from packages/mcp/tools.md rename to docs/php/packages/mcp/tools.md diff --git a/packages/mcp/workspace.md b/docs/php/packages/mcp/workspace.md similarity index 100% rename from packages/mcp/workspace.md rename to docs/php/packages/mcp/workspace.md diff --git a/packages/tenant/architecture.md b/docs/php/packages/tenant/architecture.md similarity index 100% rename from packages/tenant/architecture.md rename to docs/php/packages/tenant/architecture.md diff --git a/packages/tenant/entitlements.md b/docs/php/packages/tenant/entitlements.md similarity index 100% rename from packages/tenant/entitlements.md rename to docs/php/packages/tenant/entitlements.md diff --git a/packages/tenant/index.md b/docs/php/packages/tenant/index.md similarity index 100% rename from packages/tenant/index.md rename to docs/php/packages/tenant/index.md diff --git a/packages/tenant/security.md b/docs/php/packages/tenant/security.md similarity index 100% rename from packages/tenant/security.md rename to docs/php/packages/tenant/security.md diff --git a/packages/tenant/teams-permissions.md b/docs/php/packages/tenant/teams-permissions.md similarity index 100% rename from packages/tenant/teams-permissions.md rename to docs/php/packages/tenant/teams-permissions.md diff --git a/build/php/patterns/actions.md b/docs/php/patterns/actions.md similarity index 100% rename from build/php/patterns/actions.md rename to docs/php/patterns/actions.md diff --git a/build/php/patterns/activity-logging.md b/docs/php/patterns/activity-logging.md similarity index 100% rename from build/php/patterns/activity-logging.md rename to docs/php/patterns/activity-logging.md diff --git a/build/php/patterns/hlcrf.md b/docs/php/patterns/hlcrf.md similarity index 100% rename from build/php/patterns/hlcrf.md rename to docs/php/patterns/hlcrf.md diff --git a/patterns.md b/docs/php/patterns/index.md similarity index 100% rename from patterns.md rename to docs/php/patterns/index.md diff --git a/build/php/patterns/repositories.md b/docs/php/patterns/repositories.md similarity index 100% rename from build/php/patterns/repositories.md rename to docs/php/patterns/repositories.md diff --git a/build/php/patterns/seeders.md b/docs/php/patterns/seeders.md similarity index 100% rename from build/php/patterns/seeders.md rename to docs/php/patterns/seeders.md diff --git a/build/php/patterns/services.md b/docs/php/patterns/services.md similarity index 100% rename from build/php/patterns/services.md rename to docs/php/patterns/services.md diff --git a/docs/php/reference/index.md b/docs/php/reference/index.md new file mode 100644 index 0000000..77cbc61 --- /dev/null +++ b/docs/php/reference/index.md @@ -0,0 +1,8 @@ +--- +title: Reference +description: Architecture deep dives and design patterns for Core PHP +--- + +# Reference + +Architecture internals and design patterns used throughout the framework. diff --git a/publish/aur.md b/docs/publish/aur.md similarity index 100% rename from publish/aur.md rename to docs/publish/aur.md diff --git a/publish/chocolatey.md b/docs/publish/chocolatey.md similarity index 100% rename from publish/chocolatey.md rename to docs/publish/chocolatey.md diff --git a/publish/docker.md b/docs/publish/docker.md similarity index 100% rename from publish/docker.md rename to docs/publish/docker.md diff --git a/publish/github.md b/docs/publish/github.md similarity index 100% rename from publish/github.md rename to docs/publish/github.md diff --git a/publish/homebrew.md b/docs/publish/homebrew.md similarity index 100% rename from publish/homebrew.md rename to docs/publish/homebrew.md diff --git a/publish/index.md b/docs/publish/index.md similarity index 100% rename from publish/index.md rename to docs/publish/index.md diff --git a/publish/linuxkit.md b/docs/publish/linuxkit.md similarity index 100% rename from publish/linuxkit.md rename to docs/publish/linuxkit.md diff --git a/publish/npm.md b/docs/publish/npm.md similarity index 100% rename from publish/npm.md rename to docs/publish/npm.md diff --git a/publish/scoop.md b/docs/publish/scoop.md similarity index 100% rename from publish/scoop.md rename to docs/publish/scoop.md diff --git a/docs/typescript/index.md b/docs/typescript/index.md new file mode 100644 index 0000000..63453b4 --- /dev/null +++ b/docs/typescript/index.md @@ -0,0 +1,23 @@ +--- +title: CoreTS +description: TypeScript runtime management — Go service wrapping Deno with lifecycle integration +--- + +# CoreTS + +`forge.lthn.ai/core/ts` + +Go service that manages a Deno TypeScript runtime as a sidecar process. Provides lifecycle integration with the Core framework, permission management, and a client interface for communicating with TypeScript modules from Go. + +## Key Types + +- `Sidecar` — manages the Deno process lifecycle +- `DenoClient` — communicates with running Deno instances +- `Options` — configuration for the TypeScript runtime +- `Permissions` — Deno permission mapping (network, read, write, env) +- `ModulePermissions` — per-module permission scoping + +## Repository + +- **Source**: [forge.lthn.ai/core/ts](https://forge.lthn.ai/core/ts) +- **Go module**: `forge.lthn.ai/core/ts` diff --git a/go.mod b/go.mod index eb6fb39..cc93c3f 100644 --- a/go.mod +++ b/go.mod @@ -3,13 +3,13 @@ module forge.lthn.ai/core/docs go 1.26.0 require ( + forge.lthn.ai/core/go-html v0.1.2 github.com/stretchr/testify v1.11.1 github.com/yuin/goldmark v1.7.16 gopkg.in/yaml.v3 v3.0.1 ) require ( - forge.lthn.ai/core/go-html v0.1.2 // indirect forge.lthn.ai/core/go-i18n v0.1.0 // indirect forge.lthn.ai/core/go-inference v0.1.0 // indirect github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect diff --git a/go.sum b/go.sum index af591d9..cd443a0 100644 --- a/go.sum +++ b/go.sum @@ -4,21 +4,20 @@ forge.lthn.ai/core/go-i18n v0.1.0 h1:F7JVSoVkZtzx9JfhpntM9z3iQm1vnuMUi/Zklhz8PCI forge.lthn.ai/core/go-i18n v0.1.0/go.mod h1:Q4xsrxuNCl/6NfMv1daria7t1RSiyy8ml+6jiPtUcBs= forge.lthn.ai/core/go-inference v0.1.0 h1:pO7etYgqV8LMKFdpW8/2RWncuECZJCIcf8nnezeZ5R4= forge.lthn.ai/core/go-inference v0.1.0/go.mod h1:jfWz+IJX55wAH98+ic6FEqqGB6/P31CHlg7VY7pxREw= -github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= -github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc h1:U9qPSI2PIWSS1VwoXQT9A3Wy9MM3WgvqSxFWenqJduM= github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= -github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= -github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE= +github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 h1:Jamvg5psRIccs7FGNTlIRMkT8wgtp5eCXdBlqhYGL6U= github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +github.com/rogpeppe/go-internal v1.14.1 h1:UQB4HGPB6osV0SQTLymcB4TgvyWu6ZyliaW0tI/otEQ= github.com/stretchr/testify v1.11.1 h1:7s2iGBzp5EwR7/aIZr8ao5+dra3wiQyKjjFuvgVKu7U= github.com/stretchr/testify v1.11.1/go.mod h1:wZwfW3scLgRK+23gO65QZefKpKQRnfz6sD981Nm4B6U= github.com/yuin/goldmark v1.7.16 h1:n+CJdUxaFMiDUNnWC3dMWCIQJSkxH4uz3ZwQBkAlVNE= github.com/yuin/goldmark v1.7.16/go.mod h1:ip/1k0VRfGynBgxOz0yCqHrbZXhcjxyuS66Brc7iBKg= golang.org/x/text v0.34.0 h1:oL/Qq0Kdaqxa1KbNeMKwQq0reLCCaFtqu2eNuSeNHbk= golang.org/x/text v0.34.0/go.mod h1:homfLqTYRFyVYemLBFl5GgL/DWEiH5wcsQ5gSh1yziA= -gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405 h1:yhCVgyC4o1eVCa2tZl7eS0r+SDo693bJlVdllGtEeKM= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk= gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= diff --git a/index.md b/index.md deleted file mode 100644 index 76908c5..0000000 --- a/index.md +++ /dev/null @@ -1,126 +0,0 @@ ---- -layout: home - -hero: - name: Core PHP Framework - text: Modular Monolith for Laravel - tagline: Event-driven architecture with lazy module loading and built-in multi-tenancy - actions: - - theme: brand - text: Get Started - link: /guide/getting-started - - theme: alt - text: View on GitHub - link: https://github.com/host-uk/core-php - -features: - - icon: ⚡️ - title: Event-Driven Modules - details: Modules declare interest in lifecycle events and are only loaded when needed, reducing overhead for unused features. - - - icon: 🔒 - title: Multi-Tenant Isolation - details: Automatic workspace scoping for Eloquent models with strict mode enforcement prevents data leakage. - - - icon: 🎯 - title: Actions Pattern - details: Extract business logic into testable, reusable classes with automatic dependency injection. - - - icon: 📝 - title: Activity Logging - details: Built-in audit trails for model changes with minimal setup using Spatie Activity Log. - - - icon: 🌱 - title: Seeder Auto-Discovery - details: Automatic seeder ordering via priority and dependency attributes eliminates manual registration. - - - icon: 🎨 - title: HLCRF Layouts - details: Data-driven composable layouts with infinite nesting for flexible UI structures. - - - icon: 🔐 - title: Security First - details: Bouncer action gates, request whitelisting, and comprehensive input sanitization. - - - icon: 🚀 - title: Production Ready - details: Battle-tested in production with comprehensive test coverage and security audits. ---- - -## Quick Start - -```bash -# Install via Composer -composer require host-uk/core - -# Create a module -php artisan make:mod Commerce - -# Register lifecycle events -class Boot -{ - public static array $listens = [ - WebRoutesRegistering::class => 'onWebRoutes', - ]; - - public function onWebRoutes(WebRoutesRegistering $event): void - { - $event->routes(fn () => require __DIR__.'/Routes/web.php'); - } -} -``` - -## Why Core PHP? - -Traditional Laravel applications grow into monoliths with tight coupling and unclear boundaries. Microservices add complexity you may not need. **Core PHP provides a middle ground**: a structured monolith with clear module boundaries, lazy loading, and the ability to extract services later if needed. - -### Key Benefits - -- **Reduced Complexity** - No network overhead, distributed tracing, or service mesh -- **Clear Boundaries** - Modules have explicit dependencies via lifecycle events -- **Performance** - Lazy loading means unused modules aren't loaded -- **Flexibility** - Start monolithic, extract services when it makes sense -- **Type Safety** - Full IDE support with no RPC serialization - -## Packages - -
- -### [Core](/packages/core) -Event-driven architecture, module system, actions pattern, and multi-tenancy. - -### [Admin](/packages/admin) -Livewire-powered admin panel with global search and service management. - -### [API](/packages/api) -REST API with OpenAPI docs, rate limiting, webhook signing, and secure keys. - -### [MCP](/packages/mcp) -Model Context Protocol tools for AI integrations with analytics and security. - -
- -## Community - -- **GitHub Discussions** - Ask questions and share ideas -- **Issue Tracker** - Report bugs and request features -- **Contributing** - See our [contributing guide](/contributing) - - diff --git a/public/CNAME b/public/CNAME deleted file mode 100644 index 008ea5a..0000000 --- a/public/CNAME +++ /dev/null @@ -1 +0,0 @@ -core.help diff --git a/zensical.toml b/zensical.toml new file mode 100644 index 0000000..48a646c --- /dev/null +++ b/zensical.toml @@ -0,0 +1,400 @@ +[project] +site_name = "core.help" +site_url = "https://core.help" +site_description = "Documentation for the Core CLI, Go packages, PHP modules, and MCP tools" +copyright = "Host UK — EUPL-1.2" +docs_dir = "docs" + +nav = [ + {"Home" = [ + "index.md", + "getting-started.md", + "links.md", + ]}, + + {"Go" = [ + "go/index.md", + {"Getting Started" = [ + "go/getting-started.md", + "go/configuration.md", + "go/workflows.md", + ]}, + {"Reference" = [ + "go/migration.md", + "go/troubleshooting.md", + "go/glossary.md", + ]}, + {"Packages" = [ + "go/packages/index.md", + {"AI & ML" = [ + "go/packages/go-ai.md", + "go/packages/go-ml.md", + "go/packages/go-mlx.md", + "go/packages/go-inference.md", + "go/packages/go-rag.md", + "go/packages/go-ratelimit.md", + "go/packages/go-session.md", + ]}, + {"DevOps & Build" = [ + "go/packages/go-devops.md", + "go/packages/go-build.md", + "go/packages/go-scm.md", + "go/packages/go-ansible.md", + "go/packages/go-infra.md", + "go/packages/go-container.md", + "go/packages/go-forge.md", + "go/packages/go-process.md", + ]}, + {"Language & Rendering" = [ + "go/packages/go-i18n.md", + "go/packages/go-html.md", + ]}, + {"Crypto & Chain" = [ + "go/packages/go-crypt.md", + "go/packages/go-blockchain.md", + "go/packages/go-p2p.md", + ]}, + {"Networking" = [ + "go/packages/go-api.md", + "go/packages/go-ws.md", + "go/packages/go-webview.md", + ]}, + {"Core Infra" = [ + "go/packages/go-io.md", + "go/packages/go-log.md", + "go/packages/go-config.md", + "go/packages/go-cache.md", + "go/packages/go-store.md", + "go/packages/go-git.md", + ]}, + ]}, + {"Claude Code Skill" = [ + "go/skill/index.md", + ]}, + ]}, + + {"PHP" = [ + "php/index.md", + {"Guides" = [ + "php/guides/index.md", + {"Getting Started" = [ + "php/getting-started/index.md", + "php/getting-started/installation.md", + "php/getting-started/quick-start.md", + "php/getting-started/configuration.md", + "php/getting-started/namespaces.md", + ]}, + {"Framework" = [ + "php/framework/index.md", + "php/framework/modules.md", + "php/framework/events.md", + "php/framework/service-contracts.md", + "php/framework/testing.md", + "php/framework/security.md", + ]}, + {"Features" = [ + "php/features/index.md", + "php/features/actions.md", + "php/features/tenancy.md", + "php/features/search.md", + "php/features/seo.md", + "php/features/cdn.md", + "php/features/media.md", + "php/features/activity.md", + "php/features/seeder-system.md", + ]}, + ]}, + {"Reference" = [ + "php/reference/index.md", + {"Architecture" = [ + "php/architecture/index.md", + "php/architecture/module-system.md", + "php/architecture/lifecycle-events.md", + "php/architecture/lazy-loading.md", + "php/architecture/multi-tenancy.md", + "php/architecture/custom-events.md", + "php/architecture/performance.md", + ]}, + {"Patterns" = [ + "php/patterns/index.md", + "php/patterns/actions.md", + "php/patterns/activity-logging.md", + "php/patterns/hlcrf.md", + "php/patterns/repositories.md", + "php/patterns/seeders.md", + "php/patterns/services.md", + ]}, + ]}, + {"Packages" = [ + "php/packages/index.md", + {"Admin" = [ + "php/packages/admin/index.md", + "php/packages/admin/creating-admin-panels.md", + "php/packages/admin/components.md", + "php/packages/admin/components-reference.md", + "php/packages/admin/forms.md", + "php/packages/admin/menus.md", + "php/packages/admin/modals.md", + "php/packages/admin/search.md", + "php/packages/admin/authorization.md", + "php/packages/admin/hlcrf-deep-dive.md", + ]}, + {"API" = [ + "php/packages/api/index.md", + "php/packages/api/building-rest-apis.md", + "php/packages/api/authentication.md", + "php/packages/api/endpoints-reference.md", + "php/packages/api/rate-limiting.md", + "php/packages/api/scopes.md", + "php/packages/api/webhooks.md", + "php/packages/api/webhook-integration.md", + "php/packages/api/documentation.md", + ]}, + {"Commerce" = [ + "php/packages/commerce/index.md", + "php/packages/commerce/architecture.md", + "php/packages/commerce/webhooks.md", + "php/packages/commerce/security.md", + ]}, + {"Content" = [ + "php/packages/content/index.md", + "php/packages/content/architecture.md", + "php/packages/content/security.md", + ]}, + {"MCP" = [ + "php/packages/mcp/index.md", + "php/packages/mcp/creating-mcp-tools.md", + "php/packages/mcp/tools.md", + "php/packages/mcp/tools-reference.md", + "php/packages/mcp/workspace.md", + "php/packages/mcp/query-database.md", + "php/packages/mcp/sql-security.md", + "php/packages/mcp/analytics.md", + "php/packages/mcp/quotas.md", + "php/packages/mcp/security.md", + ]}, + {"Tenant" = [ + "php/packages/tenant/index.md", + "php/packages/tenant/architecture.md", + "php/packages/tenant/teams-permissions.md", + "php/packages/tenant/entitlements.md", + "php/packages/tenant/security.md", + ]}, + {"Developer" = [ + "php/packages/developer/index.md", + "php/packages/developer/architecture.md", + "php/packages/developer/security.md", + ]}, + ]}, + ]}, + + {"TS" = [ + "typescript/index.md", + ]}, + + {"GUI" = [ + "gui/index.md", + ]}, + + {"AI" = [ + "ai/index.md", + ]}, + + {"Tools" = [ + {"Agent" = [ + "agent/index.md", + ]}, + {"MCP" = [ + "mcp/index.md", + ]}, + {"IDE" = [ + "ide/index.md", + ]}, + {"CLI" = [ + "cli/index.md", + {"Development" = [ + {"core go" = [ + "cli/go/index.md", + "cli/go/test/index.md", + "cli/go/fmt/index.md", + "cli/go/lint/index.md", + "cli/go/cov/index.md", + "cli/go/install/index.md", + {"core go mod" = [ + "cli/go/mod/index.md", + "cli/go/mod/tidy/index.md", + "cli/go/mod/download/index.md", + "cli/go/mod/graph/index.md", + "cli/go/mod/verify/index.md", + ]}, + {"core go work" = [ + "cli/go/work/index.md", + "cli/go/work/init/index.md", + "cli/go/work/sync/index.md", + "cli/go/work/use/index.md", + ]}, + ]}, + {"core php" = [ + "cli/php/index.md", + ]}, + {"core test" = [ + "cli/test/index.md", + ]}, + ]}, + {"Build & Release" = [ + {"core build" = [ + "cli/build/index.md", + {"core build sdk" = [ + "cli/build/sdk/index.md", + ]}, + ]}, + {"core ci" = [ + "cli/ci/index.md", + "cli/ci/changelog/index.md", + "cli/ci/init/index.md", + "cli/ci/version/index.md", + ]}, + ]}, + {"Multi-Repo" = [ + {"core dev" = [ + "cli/dev/index.md", + "cli/dev/work/index.md", + "cli/dev/commit/index.md", + "cli/dev/push/index.md", + "cli/dev/pull/index.md", + "cli/dev/health/index.md", + "cli/dev/issues/index.md", + "cli/dev/reviews/index.md", + "cli/dev/impact/index.md", + "cli/dev/ci/index.md", + ]}, + ]}, + {"Utilities" = [ + {"core doctor" = [ + "cli/doctor/index.md", + ]}, + {"core setup" = [ + "cli/setup/index.md", + ]}, + {"core ai" = [ + "cli/ai/index.md", + ]}, + {"core docs" = [ + "cli/docs/index.md", + ]}, + {"core sdk" = [ + "cli/sdk/index.md", + ]}, + {"core pkg" = [ + "cli/pkg/index.md", + "cli/pkg/search/index.md", + ]}, + {"core vm" = [ + "cli/vm/index.md", + "cli/vm/templates/index.md", + ]}, + ]}, + ]}, + {"API" = [ + "api/authentication.md", + "api/endpoints.md", + "api/errors.md", + ]}, + ]}, + + {"Deploy" = [ + "deploy/index.md", + {"Targets" = [ + "deploy/docker.md", + "deploy/php.md", + "deploy/linuxkit.md", + ]}, + {"Reference" = [ + "deploy/templates.md", + ]}, + ]}, + + {"Publish" = [ + "publish/index.md", + {"Package Managers" = [ + "publish/homebrew.md", + "publish/scoop.md", + "publish/aur.md", + "publish/chocolatey.md", + "publish/npm.md", + ]}, + {"Containers & VMs" = [ + "publish/docker.md", + "publish/linuxkit.md", + ]}, + {"Source" = [ + "publish/github.md", + ]}, + ]}, +] + +[project.theme] +features = [ + "navigation.tabs", + "navigation.sections", + "navigation.indexes", + "navigation.prune", + "navigation.path", + "navigation.tracking", + "navigation.instant", + "navigation.instant.prefetch", + "navigation.instant.progress", + "navigation.top", + "toc.follow", + "search.suggest", + "search.highlight", + "content.code.copy", + "content.code.annotate", +] + +[[project.theme.palette]] +scheme = "slate" +primary = "indigo" +accent = "blue" +toggle_icon = "material/brightness-7" +toggle_name = "Switch to light mode" + +[[project.theme.palette]] +scheme = "default" +primary = "indigo" +accent = "blue" +toggle_icon = "material/brightness-4" +toggle_name = "Switch to dark mode" + +[project.theme.font] +text = "Inter" +code = "JetBrains Mono" + +[project.plugins] +search = {} + +[project.markdown_extensions] +admonition = {} +footnotes = {} +attr_list = {} +md_in_html = {} + +[project.markdown_extensions.toc] +permalink = true + +[project.markdown_extensions."pymdownx.details"] + +[project.markdown_extensions."pymdownx.superfences"] +custom_fences = [ + {name = "mermaid", class = "mermaid", format_name = "fence_code_format"}, +] + +[project.markdown_extensions."pymdownx.highlight"] +anchor_linenums = true + +[project.markdown_extensions."pymdownx.inlinehilite"] + +[project.markdown_extensions."pymdownx.tabbed"] +alternate_style = true + +[project.markdown_extensions."pymdownx.snippets"]