feat(docs): switch docs to zensical (#125)

This commit is contained in:
banteg
2026-01-13 21:09:27 +04:00
committed by GitHub
parent f9757679c2
commit e671da0a0f
11 changed files with 259 additions and 466 deletions
+1 -1
View File
@@ -40,7 +40,7 @@ jobs:
sync_args: "" sync_args: ""
- task: docs - task: docs
do_sync: true do_sync: true
command: uv run --no-sync mkdocs build --strict command: uv run --no-sync python scripts/docs_prebuild.py && uv run --no-sync zensical build --clean
sync_args: --no-install-project --group docs sync_args: --no-install-project --group docs
steps: steps:
+5 -2
View File
@@ -6,7 +6,7 @@ on:
paths: paths:
- "docs/**" - "docs/**"
- "src/**" - "src/**"
- "mkdocs.yml" - "zensical.toml"
- "pyproject.toml" - "pyproject.toml"
- "uv.lock" - "uv.lock"
workflow_dispatch: workflow_dispatch:
@@ -36,8 +36,11 @@ jobs:
- name: Sync docs dependencies - name: Sync docs dependencies
run: uv sync --frozen --no-install-project --group docs run: uv sync --frozen --no-install-project --group docs
- name: Prepare docs
run: uv run --no-sync python scripts/docs_prebuild.py
- name: Build site - name: Build site
run: uv run --no-sync mkdocs build --strict run: uv run --no-sync zensical build --clean
- name: Upload Pages artifact - name: Upload Pages artifact
uses: actions/upload-pages-artifact@v3 uses: actions/upload-pages-artifact@v3
+1
View File
@@ -8,3 +8,4 @@ __pycache__/
.worktrees/ .worktrees/
research/ research/
_site/ _site/
docs/reference/changelog.md
+4 -2
View File
@@ -5,10 +5,12 @@ check:
uv run pytest uv run pytest
docs-serve: docs-serve:
uv run --group docs mkdocs serve uv run --no-sync python scripts/docs_prebuild.py
uv run --group docs zensical serve
docs-build: docs-build:
uv run --group docs mkdocs build --strict uv run --no-sync python scripts/docs_prebuild.py
uv run --group docs zensical build
bundle: bundle:
#!/usr/bin/env bash #!/usr/bin/env bash
+27 -13
View File
@@ -6,29 +6,48 @@ Takopi lets you run an engine CLI in a local repo while controlling it from Tele
## Choose your path ## Choose your path
- **Im new / I want to get it running** <div class="grid cards" markdown>
- Start with **[Tutorials](tutorials/index.md)**: - :lucide-sparkles:{ .lg } **Im new / I want to get it running**
---
Start with [Tutorials](tutorials/index.md).
- [Install & onboard](tutorials/install-and-onboard.md) - [Install & onboard](tutorials/install-and-onboard.md)
- [First run](tutorials/first-run.md) - [First run](tutorials/first-run.md)
- **I know what I want to do (enable a feature / fix a workflow)** - :lucide-compass:{ .lg } **I know what I want to do**
- Use **[How-to guides](how-to/index.md)**:
---
Use [How-to guides](how-to/index.md).
- [Projects](how-to/projects.md) and [Worktrees](how-to/worktrees.md) - [Projects](how-to/projects.md) and [Worktrees](how-to/worktrees.md)
- [Topics](how-to/topics.md) and [Route by chat](how-to/route-by-chat.md) - [Topics](how-to/topics.md) and [Route by chat](how-to/route-by-chat.md)
- [File transfer](how-to/file-transfer.md) and [Voice notes](how-to/voice-notes.md) - [File transfer](how-to/file-transfer.md) and [Voice notes](how-to/voice-notes.md)
- **I need exact knobs, defaults, and contracts** - :lucide-book:{ .lg } **I need exact knobs, defaults, and contracts**
- Go straight to **[Reference](reference/index.md)**:
---
Go straight to [Reference](reference/index.md).
- [Commands & directives](reference/commands-and-directives.md) - [Commands & directives](reference/commands-and-directives.md)
- [Configuration](reference/config.md) - [Configuration](reference/config.md)
- [Specification](reference/specification.md) (normative behavior) - [Specification](reference/specification.md) (normative behavior)
- **Im trying to understand the design** - :lucide-lightbulb:{ .lg } **I'm trying to understand the design**
- Read **[Explanation](explanation/index.md)**:
---
Read [Explanation](explanation/index.md).
- [Architecture](explanation/architecture.md) - [Architecture](explanation/architecture.md)
- [Routing & sessions](explanation/routing-and-sessions.md) - [Routing & sessions](explanation/routing-and-sessions.md)
- [Plugin system](explanation/plugin-system.md) - [Plugin system](explanation/plugin-system.md)
</div>
## Quick start ## Quick start
If you just want to see it work end-to-end: If you just want to see it work end-to-end:
@@ -75,11 +94,6 @@ If youre contributing to core:
## For LLM agents ## For LLM agents
Takopi publishes an LLM-oriented index at:
* `/llms.txt` — curated entrypoints + links to Markdown mirrors
* `/llms-full.txt` — expanded “single file” context of the most important pages
In the docs, start here: In the docs, start here:
* [Reference: For agents](reference/agents/index.md) * [Reference: For agents](reference/agents/index.md)
-59
View File
@@ -1,59 +0,0 @@
/* Takopi palette */
:root {
--takopi-pink: #f4a5b8;
--takopi-flower: #e87a9f;
--takopi-teal: #4a9b8e;
--takopi-teal-bright: #5ab5a6;
}
:root[data-md-color-scheme="default"] {
--md-primary-fg-color: var(--takopi-flower);
--md-primary-fg-color--light: var(--takopi-pink);
--md-primary-fg-color--dark: #d95f86;
--md-accent-fg-color: var(--takopi-teal);
--md-accent-fg-color--transparent: rgba(74, 155, 142, 0.12);
--md-typeset-a-color: var(--takopi-teal);
--md-default-bg-color: #fffaf7;
--md-code-bg-color: rgba(244, 165, 184, 0.1);
}
:root[data-md-color-scheme="slate"] {
--md-primary-fg-color: var(--takopi-pink);
--md-primary-fg-color--light: #f7b9c8;
--md-primary-fg-color--dark: var(--takopi-flower);
--md-accent-fg-color: var(--takopi-teal-bright);
--md-accent-fg-color--transparent: rgba(90, 181, 166, 0.12);
--md-typeset-a-color: var(--takopi-teal-bright);
--md-code-bg-color: rgba(244, 165, 184, 0.12);
}
/* Warm bokeh-ish background */
:root[data-md-color-scheme="default"] body {
background:
radial-gradient(1100px circle at 12% 6%, rgba(244, 165, 184, 0.3), transparent 55%),
radial-gradient(900px circle at 88% 0%, rgba(74, 155, 142, 0.22), transparent 55%),
radial-gradient(1000px circle at 45% 95%, rgba(255, 230, 199, 0.55), transparent 60%),
var(--md-default-bg-color);
}
:root[data-md-color-scheme="slate"] body {
background:
radial-gradient(900px circle at 12% 0%, rgba(244, 165, 184, 0.12), transparent 55%),
radial-gradient(900px circle at 85% 0%, rgba(90, 181, 166, 0.1), transparent 55%),
radial-gradient(1000px circle at 50% 100%, rgba(255, 230, 199, 0.06), transparent 60%),
var(--md-default-bg-color);
}
/* Softer shapes */
.md-typeset .admonition,
.md-typeset details {
border-radius: 12px;
}
.md-typeset .md-button {
border-radius: 999px;
}
::selection {
background: rgba(232, 122, 159, 0.35);
}
-170
View File
@@ -1,170 +0,0 @@
site_name: takopi
site_description: takopi — Telegram bridge for coding agents
site_url: https://takopi.banteg.xyz/
repo_url: https://github.com/banteg/takopi
repo_name: banteg/takopi
edit_uri: edit/master/docs/
docs_dir: docs
site_dir: _site
theme:
name: material
palette:
- scheme: default
primary: pink
accent: teal
toggle:
icon: material/brightness-7
name: Switch to dark mode
- scheme: slate
primary: pink
accent: teal
toggle:
icon: material/brightness-4
name: Switch to light mode
font:
text: Nunito
code: Fira Code
logo: assets/logo.svg
favicon: assets/favicon.svg
features:
- navigation.sections
- navigation.instant
- navigation.tracking
- content.code.copy
- content.action.edit
- search.suggest
- search.highlight
extra_css:
- stylesheets/extra.css
markdown_extensions:
- admonition
- attr_list
- tables
- toc:
permalink: true
- pymdownx.superfences:
custom_fences:
- name: mermaid
class: mermaid
format: !!python/name:pymdownx.superfences.fence_code_format
plugins:
- search
- redirects:
redirect_maps:
architecture.md: explanation/architecture.md
specification.md: reference/specification.md
public-api.md: reference/plugin-api.md
transports/telegram.md: reference/transports/telegram.md
adding-a-runner.md: how-to/add-a-runner.md
projects.md: reference/context-resolution.md
runner/claude/claude-runner.md: reference/runners/claude/runner.md
runner/claude/claude-stream-json-cheatsheet.md: reference/runners/claude/stream-json-cheatsheet.md
runner/claude/claude-takopi-events.md: reference/runners/claude/takopi-events.md
runner/codex/exec-json-cheatsheet.md: reference/runners/codex/exec-json-cheatsheet.md
runner/codex/codex-takopi-events.md: reference/runners/codex/takopi-events.md
runner/opencode/opencode-runner.md: reference/runners/opencode/runner.md
runner/opencode/opencode-stream-json-cheatsheet.md: reference/runners/opencode/stream-json-cheatsheet.md
runner/opencode/opencode-takopi-events.md: reference/runners/opencode/takopi-events.md
runner/pi/pi-runner.md: reference/runners/pi/runner.md
runner/pi/pi-stream-json-cheatsheet.md: reference/runners/pi/stream-json-cheatsheet.md
runner/pi/pi-takopi-events.md: reference/runners/pi/takopi-events.md
- mkdocstrings:
handlers:
python:
paths: [src]
options:
show_source: false
- llmstxt:
markdown_description: |
Takopi is a Telegram bridge for coding agents.
For LLM ingestion, prefer the linked `.md` pages (Diátaxis: Tutorials / How-to / Reference / Explanation).
full_output: llms-full.txt
sections:
Start here:
- index.md: Overview + doc map
- tutorials/install-and-onboard.md: Install Takopi + onboarding
- tutorials/first-run.md: First run
- how-to/projects.md: Projects (routing)
- how-to/worktrees.md: Worktrees (@branch)
- how-to/topics.md: Telegram topics
- how-to/file-transfer.md: File transfer
Reference:
- reference/commands-and-directives.md: Commands, directives, and CLI flags
- reference/config.md: Config schema and defaults
- reference/specification.md: Normative behavior spec
- reference/plugin-api.md: Stable plugin API surface
- reference/context-resolution.md: Directive parsing + worktree rules
- reference/transports/telegram.md: Telegram transport details
Contributors & agents:
- how-to/dev-setup.md: Dev setup + checks
- explanation/module-map.md: Module responsibilities
- reference/env-vars.md: Environment variables
- reference/agents/invariants.md: Critical invariants
- reference/agents/repo-map.md: Codebase entrypoints
Optional:
- reference/runners/index.md: Runner docs index
- reference/runners/claude/stream-json-cheatsheet.md: Claude stream-json notes
- reference/runners/codex/exec-json-cheatsheet.md: Codex exec --json notes
nav:
- Home: index.md
- Tutorials:
- Overview: tutorials/index.md
- Install & onboard: tutorials/install-and-onboard.md
- First run: tutorials/first-run.md
- How-to:
- Overview: how-to/index.md
- Switch engines: how-to/switch-engines.md
- Projects: how-to/projects.md
- Worktrees: how-to/worktrees.md
- Route by chat: how-to/route-by-chat.md
- Topics: how-to/topics.md
- Voice notes: how-to/voice-notes.md
- File transfer: how-to/file-transfer.md
- Schedule tasks: how-to/schedule-tasks.md
- Troubleshooting: how-to/troubleshooting.md
- Write a plugin: how-to/write-a-plugin.md
- Add a runner: how-to/add-a-runner.md
- Dev setup: how-to/dev-setup.md
- Reference:
- Overview: reference/index.md
- Commands & directives: reference/commands-and-directives.md
- Configuration: reference/config.md
- Environment variables: reference/env-vars.md
- Specification: reference/specification.md
- Plugin API: reference/plugin-api.md
- Context resolution: reference/context-resolution.md
- Telegram transport: reference/transports/telegram.md
- Runners:
- Overview: reference/runners/index.md
- Claude:
- Runner: reference/runners/claude/runner.md
- Stream JSON cheatsheet: reference/runners/claude/stream-json-cheatsheet.md
- Takopi events: reference/runners/claude/takopi-events.md
- Codex:
- Exec JSON cheatsheet: reference/runners/codex/exec-json-cheatsheet.md
- Takopi events: reference/runners/codex/takopi-events.md
- OpenCode:
- Runner: reference/runners/opencode/runner.md
- Stream JSON cheatsheet: reference/runners/opencode/stream-json-cheatsheet.md
- Takopi events: reference/runners/opencode/takopi-events.md
- Pi:
- Runner: reference/runners/pi/runner.md
- Stream JSON cheatsheet: reference/runners/pi/stream-json-cheatsheet.md
- Takopi events: reference/runners/pi/takopi-events.md
- For agents:
- Agent entrypoint: reference/agents/index.md
- Repo map: reference/agents/repo-map.md
- Invariants: reference/agents/invariants.md
- Explanation:
- Overview: explanation/index.md
- Architecture: explanation/architecture.md
- Routing & sessions: explanation/routing-and-sessions.md
- Plugin system: explanation/plugin-system.md
- Module map: explanation/module-map.md
+2 -5
View File
@@ -60,11 +60,8 @@ dev = [
"ty>=0.0.8", "ty>=0.0.8",
] ]
docs = [ docs = [
"mkdocs>=1.6", "mkdocstrings-python>=2.0.1",
"mkdocs-llmstxt>=0.5.0", "zensical>=0.0.15",
"mkdocs-material>=9.7",
"mkdocs-redirects>=1.2.2",
"mkdocstrings[python]>=0.29",
] ]
[tool.pytest.ini_options] [tool.pytest.ini_options]
+20
View File
@@ -0,0 +1,20 @@
#!/usr/bin/env python3
from __future__ import annotations
from pathlib import Path
import shutil
ROOT = Path(__file__).resolve().parents[1]
SRC = ROOT / "changelog.md"
DEST = ROOT / "docs" / "reference" / "changelog.md"
def main() -> None:
DEST.parent.mkdir(parents=True, exist_ok=True)
if DEST.is_symlink():
DEST.unlink()
shutil.copyfile(SRC, DEST)
if __name__ == "__main__":
main()
Generated
+41 -214
View File
@@ -23,42 +23,6 @@ wheels = [
{ url = "https://files.pythonhosted.org/packages/7f/9c/36c5c37947ebfb8c7f22e0eb6e4d188ee2d53aa3880f3f2744fb894f0cb1/anyio-4.12.0-py3-none-any.whl", hash = "sha256:dad2376a628f98eeca4881fc56cd06affd18f659b17a747d3ff0307ced94b1bb", size = 113362, upload-time = "2025-11-28T23:36:57.897Z" }, { url = "https://files.pythonhosted.org/packages/7f/9c/36c5c37947ebfb8c7f22e0eb6e4d188ee2d53aa3880f3f2744fb894f0cb1/anyio-4.12.0-py3-none-any.whl", hash = "sha256:dad2376a628f98eeca4881fc56cd06affd18f659b17a747d3ff0307ced94b1bb", size = 113362, upload-time = "2025-11-28T23:36:57.897Z" },
] ]
[[package]]
name = "babel"
version = "2.17.0"
source = { registry = "https://pypi.org/simple" }
sdist = { url = "https://files.pythonhosted.org/packages/7d/6b/d52e42361e1aa00709585ecc30b3f9684b3ab62530771402248b1b1d6240/babel-2.17.0.tar.gz", hash = "sha256:0c54cffb19f690cdcc52a3b50bcbf71e07a808d1c80d549f2459b9d2cf0afb9d", size = 9951852, upload-time = "2025-02-01T15:17:41.026Z" }
wheels = [
{ url = "https://files.pythonhosted.org/packages/b7/b8/3fe70c75fe32afc4bb507f75563d39bc5642255d1d94f1f23604725780bf/babel-2.17.0-py3-none-any.whl", hash = "sha256:4d0b53093fdfb4b21c92b5213dba5a1b23885afa8383709427046b21c366e5f2", size = 10182537, upload-time = "2025-02-01T15:17:37.39Z" },
]
[[package]]
name = "backrefs"
version = "6.1"
source = { registry = "https://pypi.org/simple" }
sdist = { url = "https://files.pythonhosted.org/packages/86/e3/bb3a439d5cb255c4774724810ad8073830fac9c9dee123555820c1bcc806/backrefs-6.1.tar.gz", hash = "sha256:3bba1749aafe1db9b915f00e0dd166cba613b6f788ffd63060ac3485dc9be231", size = 7011962, upload-time = "2025-11-15T14:52:08.323Z" }
wheels = [
{ url = "https://files.pythonhosted.org/packages/3b/ee/c216d52f58ea75b5e1841022bbae24438b19834a29b163cb32aa3a2a7c6e/backrefs-6.1-py310-none-any.whl", hash = "sha256:2a2ccb96302337ce61ee4717ceacfbf26ba4efb1d55af86564b8bbaeda39cac1", size = 381059, upload-time = "2025-11-15T14:51:59.758Z" },
{ url = "https://files.pythonhosted.org/packages/e6/9a/8da246d988ded941da96c7ed945d63e94a445637eaad985a0ed88787cb89/backrefs-6.1-py311-none-any.whl", hash = "sha256:e82bba3875ee4430f4de4b6db19429a27275d95a5f3773c57e9e18abc23fd2b7", size = 392854, upload-time = "2025-11-15T14:52:01.194Z" },
{ url = "https://files.pythonhosted.org/packages/37/c9/fd117a6f9300c62bbc33bc337fd2b3c6bfe28b6e9701de336b52d7a797ad/backrefs-6.1-py312-none-any.whl", hash = "sha256:c64698c8d2269343d88947c0735cb4b78745bd3ba590e10313fbf3f78c34da5a", size = 398770, upload-time = "2025-11-15T14:52:02.584Z" },
{ url = "https://files.pythonhosted.org/packages/eb/95/7118e935b0b0bd3f94dfec2d852fd4e4f4f9757bdb49850519acd245cd3a/backrefs-6.1-py313-none-any.whl", hash = "sha256:4c9d3dc1e2e558965202c012304f33d4e0e477e1c103663fd2c3cc9bb18b0d05", size = 400726, upload-time = "2025-11-15T14:52:04.093Z" },
{ url = "https://files.pythonhosted.org/packages/1d/72/6296bad135bfafd3254ae3648cd152980a424bd6fed64a101af00cc7ba31/backrefs-6.1-py314-none-any.whl", hash = "sha256:13eafbc9ccd5222e9c1f0bec563e6d2a6d21514962f11e7fc79872fd56cbc853", size = 412584, upload-time = "2025-11-15T14:52:05.233Z" },
{ url = "https://files.pythonhosted.org/packages/02/e3/a4fa1946722c4c7b063cc25043a12d9ce9b4323777f89643be74cef2993c/backrefs-6.1-py39-none-any.whl", hash = "sha256:a9e99b8a4867852cad177a6430e31b0f6e495d65f8c6c134b68c14c3c95bf4b0", size = 381058, upload-time = "2025-11-15T14:52:06.698Z" },
]
[[package]]
name = "beautifulsoup4"
version = "4.14.3"
source = { registry = "https://pypi.org/simple" }
dependencies = [
{ name = "soupsieve" },
{ name = "typing-extensions" },
]
sdist = { url = "https://files.pythonhosted.org/packages/c3/b0/1c6a16426d389813b48d95e26898aff79abbde42ad353958ad95cc8c9b21/beautifulsoup4-4.14.3.tar.gz", hash = "sha256:6292b1c5186d356bba669ef9f7f051757099565ad9ada5dd630bd9de5fa7fb86", size = 627737, upload-time = "2025-11-30T15:08:26.084Z" }
wheels = [
{ url = "https://files.pythonhosted.org/packages/1a/39/47f9197bdd44df24d67ac8893641e16f386c984a0619ef2ee4c51fbbc019/beautifulsoup4-4.14.3-py3-none-any.whl", hash = "sha256:0918bfe44902e6ad8d57732ba310582e98da931428d231a5ecb9e7c703a735bb", size = 107721, upload-time = "2025-11-30T15:08:24.087Z" },
]
[[package]] [[package]]
name = "certifi" name = "certifi"
version = "2025.11.12" version = "2025.11.12"
@@ -68,31 +32,6 @@ wheels = [
{ url = "https://files.pythonhosted.org/packages/70/7d/9bc192684cea499815ff478dfcdc13835ddf401365057044fb721ec6bddb/certifi-2025.11.12-py3-none-any.whl", hash = "sha256:97de8790030bbd5c2d96b7ec782fc2f7820ef8dba6db909ccf95449f2d062d4b", size = 159438, upload-time = "2025-11-12T02:54:49.735Z" }, { url = "https://files.pythonhosted.org/packages/70/7d/9bc192684cea499815ff478dfcdc13835ddf401365057044fb721ec6bddb/certifi-2025.11.12-py3-none-any.whl", hash = "sha256:97de8790030bbd5c2d96b7ec782fc2f7820ef8dba6db909ccf95449f2d062d4b", size = 159438, upload-time = "2025-11-12T02:54:49.735Z" },
] ]
[[package]]
name = "charset-normalizer"
version = "3.4.4"
source = { registry = "https://pypi.org/simple" }
sdist = { url = "https://files.pythonhosted.org/packages/13/69/33ddede1939fdd074bce5434295f38fae7136463422fe4fd3e0e89b98062/charset_normalizer-3.4.4.tar.gz", hash = "sha256:94537985111c35f28720e43603b8e7b43a6ecfb2ce1d3058bbe955b73404e21a", size = 129418, upload-time = "2025-10-14T04:42:32.879Z" }
wheels = [
{ url = "https://files.pythonhosted.org/packages/2a/35/7051599bd493e62411d6ede36fd5af83a38f37c4767b92884df7301db25d/charset_normalizer-3.4.4-cp314-cp314-macosx_10_13_universal2.whl", hash = "sha256:da3326d9e65ef63a817ecbcc0df6e94463713b754fe293eaa03da99befb9a5bd", size = 207746, upload-time = "2025-10-14T04:41:33.773Z" },
{ url = "https://files.pythonhosted.org/packages/10/9a/97c8d48ef10d6cd4fcead2415523221624bf58bcf68a802721a6bc807c8f/charset_normalizer-3.4.4-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:8af65f14dc14a79b924524b1e7fffe304517b2bff5a58bf64f30b98bbc5079eb", size = 147889, upload-time = "2025-10-14T04:41:34.897Z" },
{ url = "https://files.pythonhosted.org/packages/10/bf/979224a919a1b606c82bd2c5fa49b5c6d5727aa47b4312bb27b1734f53cd/charset_normalizer-3.4.4-cp314-cp314-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:74664978bb272435107de04e36db5a9735e78232b85b77d45cfb38f758efd33e", size = 143641, upload-time = "2025-10-14T04:41:36.116Z" },
{ url = "https://files.pythonhosted.org/packages/ba/33/0ad65587441fc730dc7bd90e9716b30b4702dc7b617e6ba4997dc8651495/charset_normalizer-3.4.4-cp314-cp314-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:752944c7ffbfdd10c074dc58ec2d5a8a4cd9493b314d367c14d24c17684ddd14", size = 160779, upload-time = "2025-10-14T04:41:37.229Z" },
{ url = "https://files.pythonhosted.org/packages/67/ed/331d6b249259ee71ddea93f6f2f0a56cfebd46938bde6fcc6f7b9a3d0e09/charset_normalizer-3.4.4-cp314-cp314-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:d1f13550535ad8cff21b8d757a3257963e951d96e20ec82ab44bc64aeb62a191", size = 159035, upload-time = "2025-10-14T04:41:38.368Z" },
{ url = "https://files.pythonhosted.org/packages/67/ff/f6b948ca32e4f2a4576aa129d8bed61f2e0543bf9f5f2b7fc3758ed005c9/charset_normalizer-3.4.4-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:ecaae4149d99b1c9e7b88bb03e3221956f68fd6d50be2ef061b2381b61d20838", size = 152542, upload-time = "2025-10-14T04:41:39.862Z" },
{ url = "https://files.pythonhosted.org/packages/16/85/276033dcbcc369eb176594de22728541a925b2632f9716428c851b149e83/charset_normalizer-3.4.4-cp314-cp314-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:cb6254dc36b47a990e59e1068afacdcd02958bdcce30bb50cc1700a8b9d624a6", size = 149524, upload-time = "2025-10-14T04:41:41.319Z" },
{ url = "https://files.pythonhosted.org/packages/9e/f2/6a2a1f722b6aba37050e626530a46a68f74e63683947a8acff92569f979a/charset_normalizer-3.4.4-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:c8ae8a0f02f57a6e61203a31428fa1d677cbe50c93622b4149d5c0f319c1d19e", size = 150395, upload-time = "2025-10-14T04:41:42.539Z" },
{ url = "https://files.pythonhosted.org/packages/60/bb/2186cb2f2bbaea6338cad15ce23a67f9b0672929744381e28b0592676824/charset_normalizer-3.4.4-cp314-cp314-musllinux_1_2_armv7l.whl", hash = "sha256:47cc91b2f4dd2833fddaedd2893006b0106129d4b94fdb6af1f4ce5a9965577c", size = 143680, upload-time = "2025-10-14T04:41:43.661Z" },
{ url = "https://files.pythonhosted.org/packages/7d/a5/bf6f13b772fbb2a90360eb620d52ed8f796f3c5caee8398c3b2eb7b1c60d/charset_normalizer-3.4.4-cp314-cp314-musllinux_1_2_ppc64le.whl", hash = "sha256:82004af6c302b5d3ab2cfc4cc5f29db16123b1a8417f2e25f9066f91d4411090", size = 162045, upload-time = "2025-10-14T04:41:44.821Z" },
{ url = "https://files.pythonhosted.org/packages/df/c5/d1be898bf0dc3ef9030c3825e5d3b83f2c528d207d246cbabe245966808d/charset_normalizer-3.4.4-cp314-cp314-musllinux_1_2_riscv64.whl", hash = "sha256:2b7d8f6c26245217bd2ad053761201e9f9680f8ce52f0fcd8d0755aeae5b2152", size = 149687, upload-time = "2025-10-14T04:41:46.442Z" },
{ url = "https://files.pythonhosted.org/packages/a5/42/90c1f7b9341eef50c8a1cb3f098ac43b0508413f33affd762855f67a410e/charset_normalizer-3.4.4-cp314-cp314-musllinux_1_2_s390x.whl", hash = "sha256:799a7a5e4fb2d5898c60b640fd4981d6a25f1c11790935a44ce38c54e985f828", size = 160014, upload-time = "2025-10-14T04:41:47.631Z" },
{ url = "https://files.pythonhosted.org/packages/76/be/4d3ee471e8145d12795ab655ece37baed0929462a86e72372fd25859047c/charset_normalizer-3.4.4-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:99ae2cffebb06e6c22bdc25801d7b30f503cc87dbd283479e7b606f70aff57ec", size = 154044, upload-time = "2025-10-14T04:41:48.81Z" },
{ url = "https://files.pythonhosted.org/packages/b0/6f/8f7af07237c34a1defe7defc565a9bc1807762f672c0fde711a4b22bf9c0/charset_normalizer-3.4.4-cp314-cp314-win32.whl", hash = "sha256:f9d332f8c2a2fcbffe1378594431458ddbef721c1769d78e2cbc06280d8155f9", size = 99940, upload-time = "2025-10-14T04:41:49.946Z" },
{ url = "https://files.pythonhosted.org/packages/4b/51/8ade005e5ca5b0d80fb4aff72a3775b325bdc3d27408c8113811a7cbe640/charset_normalizer-3.4.4-cp314-cp314-win_amd64.whl", hash = "sha256:8a6562c3700cce886c5be75ade4a5db4214fda19fede41d9792d100288d8f94c", size = 107104, upload-time = "2025-10-14T04:41:51.051Z" },
{ url = "https://files.pythonhosted.org/packages/da/5f/6b8f83a55bb8278772c5ae54a577f3099025f9ade59d0136ac24a0df4bde/charset_normalizer-3.4.4-cp314-cp314-win_arm64.whl", hash = "sha256:de00632ca48df9daf77a2c65a484531649261ec9f25489917f09e455cb09ddb2", size = 100743, upload-time = "2025-10-14T04:41:52.122Z" },
{ url = "https://files.pythonhosted.org/packages/0a/4c/925909008ed5a988ccbb72dcc897407e5d6d3bd72410d69e051fc0c14647/charset_normalizer-3.4.4-py3-none-any.whl", hash = "sha256:7a32c560861a02ff789ad905a2fe94e3f840803362c84fecf1851cb4cf3dc37f", size = 53402, upload-time = "2025-10-14T04:42:31.76Z" },
]
[[package]] [[package]]
name = "click" name = "click"
version = "8.3.1" version = "8.3.1"
@@ -149,6 +88,15 @@ wheels = [
{ url = "https://files.pythonhosted.org/packages/cc/48/d9f421cb8da5afaa1a64570d9989e00fb7955e6acddc5a12979f7666ef60/coverage-7.13.1-py3-none-any.whl", hash = "sha256:2016745cb3ba554469d02819d78958b571792bb68e31302610e898f80dd3a573", size = 210722, upload-time = "2025-12-28T15:42:54.901Z" }, { url = "https://files.pythonhosted.org/packages/cc/48/d9f421cb8da5afaa1a64570d9989e00fb7955e6acddc5a12979f7666ef60/coverage-7.13.1-py3-none-any.whl", hash = "sha256:2016745cb3ba554469d02819d78958b571792bb68e31302610e898f80dd3a573", size = 210722, upload-time = "2025-12-28T15:42:54.901Z" },
] ]
[[package]]
name = "deepmerge"
version = "2.0"
source = { registry = "https://pypi.org/simple" }
sdist = { url = "https://files.pythonhosted.org/packages/a8/3a/b0ba594708f1ad0bc735884b3ad854d3ca3bdc1d741e56e40bbda6263499/deepmerge-2.0.tar.gz", hash = "sha256:5c3d86081fbebd04dd5de03626a0607b809a98fb6ccba5770b62466fe940ff20", size = 19890, upload-time = "2024-08-30T05:31:50.308Z" }
wheels = [
{ url = "https://files.pythonhosted.org/packages/2d/82/e5d2c1c67d19841e9edc74954c827444ae826978499bde3dfc1d007c8c11/deepmerge-2.0-py3-none-any.whl", hash = "sha256:6de9ce507115cff0bed95ff0ce9ecc31088ef50cbdf09bc90a09349a318b3d00", size = 13475, upload-time = "2024-08-30T05:31:48.659Z" },
]
[[package]] [[package]]
name = "distro" name = "distro"
version = "1.9.0" version = "1.9.0"
@@ -360,19 +308,6 @@ wheels = [
{ url = "https://files.pythonhosted.org/packages/42/d7/1ec15b46af6af88f19b8e5ffea08fa375d433c998b8a7639e76935c14f1f/markdown_it_py-3.0.0-py3-none-any.whl", hash = "sha256:355216845c60bd96232cd8d8c40e8f9765cc86f46880e43a8fd22dc1a1a8cab1", size = 87528, upload-time = "2023-06-03T06:41:11.019Z" }, { url = "https://files.pythonhosted.org/packages/42/d7/1ec15b46af6af88f19b8e5ffea08fa375d433c998b8a7639e76935c14f1f/markdown_it_py-3.0.0-py3-none-any.whl", hash = "sha256:355216845c60bd96232cd8d8c40e8f9765cc86f46880e43a8fd22dc1a1a8cab1", size = 87528, upload-time = "2023-06-03T06:41:11.019Z" },
] ]
[[package]]
name = "markdownify"
version = "1.2.2"
source = { registry = "https://pypi.org/simple" }
dependencies = [
{ name = "beautifulsoup4" },
{ name = "six" },
]
sdist = { url = "https://files.pythonhosted.org/packages/3f/bc/c8c8eea5335341306b0fa7e1cb33c5e1c8d24ef70ddd684da65f41c49c92/markdownify-1.2.2.tar.gz", hash = "sha256:b274f1b5943180b031b699b199cbaeb1e2ac938b75851849a31fd0c3d6603d09", size = 18816, upload-time = "2025-11-16T19:21:18.565Z" }
wheels = [
{ url = "https://files.pythonhosted.org/packages/43/ce/f1e3e9d959db134cedf06825fae8d5b294bd368aacdd0831a3975b7c4d55/markdownify-1.2.2-py3-none-any.whl", hash = "sha256:3f02d3cc52714084d6e589f70397b6fc9f2f3a8531481bf35e8cc39f975e186a", size = 15724, upload-time = "2025-11-16T19:21:17.622Z" },
]
[[package]] [[package]]
name = "markupsafe" name = "markupsafe"
version = "3.0.3" version = "3.0.3"
@@ -403,31 +338,6 @@ wheels = [
{ url = "https://files.pythonhosted.org/packages/70/bc/6f1c2f612465f5fa89b95bead1f44dcb607670fd42891d8fdcd5d039f4f4/markupsafe-3.0.3-cp314-cp314t-win_arm64.whl", hash = "sha256:32001d6a8fc98c8cb5c947787c5d08b0a50663d139f1305bac5885d98d9b40fa", size = 14146, upload-time = "2025-09-27T18:37:28.327Z" }, { url = "https://files.pythonhosted.org/packages/70/bc/6f1c2f612465f5fa89b95bead1f44dcb607670fd42891d8fdcd5d039f4f4/markupsafe-3.0.3-cp314-cp314t-win_arm64.whl", hash = "sha256:32001d6a8fc98c8cb5c947787c5d08b0a50663d139f1305bac5885d98d9b40fa", size = 14146, upload-time = "2025-09-27T18:37:28.327Z" },
] ]
[[package]]
name = "mdformat"
version = "0.7.22"
source = { registry = "https://pypi.org/simple" }
dependencies = [
{ name = "markdown-it-py" },
]
sdist = { url = "https://files.pythonhosted.org/packages/fc/eb/b5cbf2484411af039a3d4aeb53a5160fae25dd8c84af6a4243bc2f3fedb3/mdformat-0.7.22.tar.gz", hash = "sha256:eef84fa8f233d3162734683c2a8a6222227a229b9206872e6139658d99acb1ea", size = 34610, upload-time = "2025-01-30T18:00:51.418Z" }
wheels = [
{ url = "https://files.pythonhosted.org/packages/f2/6f/94a7344f6d634fe3563bea8b33bccedee37f2726f7807e9a58440dc91627/mdformat-0.7.22-py3-none-any.whl", hash = "sha256:61122637c9e1d9be1329054f3fa216559f0d1f722b7919b060a8c2a4ae1850e5", size = 34447, upload-time = "2025-01-30T18:00:48.708Z" },
]
[[package]]
name = "mdformat-tables"
version = "1.0.0"
source = { registry = "https://pypi.org/simple" }
dependencies = [
{ name = "mdformat" },
{ name = "wcwidth" },
]
sdist = { url = "https://files.pythonhosted.org/packages/64/fc/995ba209096bdebdeb8893d507c7b32b7e07d9a9f2cdc2ec07529947794b/mdformat_tables-1.0.0.tar.gz", hash = "sha256:a57db1ac17c4a125da794ef45539904bb8a9592e80557d525e1f169c96daa2c8", size = 6106, upload-time = "2024-08-23T23:41:33.413Z" }
wheels = [
{ url = "https://files.pythonhosted.org/packages/2a/37/d78e37d14323da3f607cd1af7daf262cb87fe614a245c15ad03bb03a2706/mdformat_tables-1.0.0-py3-none-any.whl", hash = "sha256:94cd86126141b2adc3b04c08d1441eb1272b36c39146bab078249a41c7240a9a", size = 5104, upload-time = "2024-08-23T23:41:31.863Z" },
]
[[package]] [[package]]
name = "mdurl" name = "mdurl"
version = "0.1.2" version = "0.1.2"
@@ -498,64 +408,6 @@ wheels = [
{ url = "https://files.pythonhosted.org/packages/9f/d4/029f984e8d3f3b6b726bd33cafc473b75e9e44c0f7e80a5b29abc466bdea/mkdocs_get_deps-0.2.0-py3-none-any.whl", hash = "sha256:2bf11d0b133e77a0dd036abeeb06dec8775e46efa526dc70667d8863eefc6134", size = 9521, upload-time = "2023-11-20T17:51:08.587Z" }, { url = "https://files.pythonhosted.org/packages/9f/d4/029f984e8d3f3b6b726bd33cafc473b75e9e44c0f7e80a5b29abc466bdea/mkdocs_get_deps-0.2.0-py3-none-any.whl", hash = "sha256:2bf11d0b133e77a0dd036abeeb06dec8775e46efa526dc70667d8863eefc6134", size = 9521, upload-time = "2023-11-20T17:51:08.587Z" },
] ]
[[package]]
name = "mkdocs-llmstxt"
version = "0.5.0"
source = { registry = "https://pypi.org/simple" }
dependencies = [
{ name = "beautifulsoup4" },
{ name = "markdownify" },
{ name = "mdformat" },
{ name = "mdformat-tables" },
]
sdist = { url = "https://files.pythonhosted.org/packages/7f/f5/4c31cdffa7c09bf48d8c7a50d8342dc100abac98ac4150826bc11afc0c9f/mkdocs_llmstxt-0.5.0.tar.gz", hash = "sha256:b2fa9e6d68df41d7467e948a4745725b6c99434a36b36204857dbd7bb3dfe041", size = 33909, upload-time = "2025-11-20T14:02:24.861Z" }
wheels = [
{ url = "https://files.pythonhosted.org/packages/ad/2b/82928cc9e8d9269cd79e7ebf015efdc4945e6c646e86ec1d4dba1707f215/mkdocs_llmstxt-0.5.0-py3-none-any.whl", hash = "sha256:753c699913d2d619a9072604b26b6dc9f5fb6d257d9b107857f80c8a0b787533", size = 12040, upload-time = "2025-11-20T14:02:23.483Z" },
]
[[package]]
name = "mkdocs-material"
version = "9.7.1"
source = { registry = "https://pypi.org/simple" }
dependencies = [
{ name = "babel" },
{ name = "backrefs" },
{ name = "colorama" },
{ name = "jinja2" },
{ name = "markdown" },
{ name = "mkdocs" },
{ name = "mkdocs-material-extensions" },
{ name = "paginate" },
{ name = "pygments" },
{ name = "pymdown-extensions" },
{ name = "requests" },
]
sdist = { url = "https://files.pythonhosted.org/packages/27/e2/2ffc356cd72f1473d07c7719d82a8f2cbd261666828614ecb95b12169f41/mkdocs_material-9.7.1.tar.gz", hash = "sha256:89601b8f2c3e6c6ee0a918cc3566cb201d40bf37c3cd3c2067e26fadb8cce2b8", size = 4094392, upload-time = "2025-12-18T09:49:00.308Z" }
wheels = [
{ url = "https://files.pythonhosted.org/packages/3e/32/ed071cb721aca8c227718cffcf7bd539620e9799bbf2619e90c757bfd030/mkdocs_material-9.7.1-py3-none-any.whl", hash = "sha256:3f6100937d7d731f87f1e3e3b021c97f7239666b9ba1151ab476cabb96c60d5c", size = 9297166, upload-time = "2025-12-18T09:48:56.664Z" },
]
[[package]]
name = "mkdocs-material-extensions"
version = "1.3.1"
source = { registry = "https://pypi.org/simple" }
sdist = { url = "https://files.pythonhosted.org/packages/79/9b/9b4c96d6593b2a541e1cb8b34899a6d021d208bb357042823d4d2cabdbe7/mkdocs_material_extensions-1.3.1.tar.gz", hash = "sha256:10c9511cea88f568257f960358a467d12b970e1f7b2c0e5fb2bb48cab1928443", size = 11847, upload-time = "2023-11-22T19:09:45.208Z" }
wheels = [
{ url = "https://files.pythonhosted.org/packages/5b/54/662a4743aa81d9582ee9339d4ffa3c8fd40a4965e033d77b9da9774d3960/mkdocs_material_extensions-1.3.1-py3-none-any.whl", hash = "sha256:adff8b62700b25cb77b53358dad940f3ef973dd6db797907c49e3c2ef3ab4e31", size = 8728, upload-time = "2023-11-22T19:09:43.465Z" },
]
[[package]]
name = "mkdocs-redirects"
version = "1.2.2"
source = { registry = "https://pypi.org/simple" }
dependencies = [
{ name = "mkdocs" },
]
sdist = { url = "https://files.pythonhosted.org/packages/f1/a8/6d44a6cf07e969c7420cb36ab287b0669da636a2044de38a7d2208d5a758/mkdocs_redirects-1.2.2.tar.gz", hash = "sha256:3094981b42ffab29313c2c1b8ac3969861109f58b2dd58c45fc81cd44bfa0095", size = 7162, upload-time = "2024-11-07T14:57:21.109Z" }
wheels = [
{ url = "https://files.pythonhosted.org/packages/c4/ec/38443b1f2a3821bbcb24e46cd8ba979154417794d54baf949fefde1c2146/mkdocs_redirects-1.2.2-py3-none-any.whl", hash = "sha256:7dbfa5647b79a3589da4401403d69494bd1f4ad03b9c15136720367e1f340ed5", size = 6142, upload-time = "2024-11-07T14:57:19.143Z" },
]
[[package]] [[package]]
name = "mkdocstrings" name = "mkdocstrings"
version = "1.0.0" version = "1.0.0"
@@ -573,11 +425,6 @@ wheels = [
{ url = "https://files.pythonhosted.org/packages/ec/fc/80aa31b79133634721cf7855d37b76ea49773599214896f2ff10be03de2a/mkdocstrings-1.0.0-py3-none-any.whl", hash = "sha256:4c50eb960bff6e05dfc631f6bc00dfabffbcb29c5ff25f676d64daae05ed82fa", size = 35135, upload-time = "2025-11-27T15:39:39.301Z" }, { url = "https://files.pythonhosted.org/packages/ec/fc/80aa31b79133634721cf7855d37b76ea49773599214896f2ff10be03de2a/mkdocstrings-1.0.0-py3-none-any.whl", hash = "sha256:4c50eb960bff6e05dfc631f6bc00dfabffbcb29c5ff25f676d64daae05ed82fa", size = 35135, upload-time = "2025-11-27T15:39:39.301Z" },
] ]
[package.optional-dependencies]
python = [
{ name = "mkdocstrings-python" },
]
[[package]] [[package]]
name = "mkdocstrings-python" name = "mkdocstrings-python"
version = "2.0.1" version = "2.0.1"
@@ -644,15 +491,6 @@ wheels = [
{ url = "https://files.pythonhosted.org/packages/20/12/38679034af332785aac8774540895e234f4d07f7545804097de4b666afd8/packaging-25.0-py3-none-any.whl", hash = "sha256:29572ef2b1f17581046b3a2227d5c611fb25ec70ca1ba8554b24b0e69331a484", size = 66469, upload-time = "2025-04-19T11:48:57.875Z" }, { url = "https://files.pythonhosted.org/packages/20/12/38679034af332785aac8774540895e234f4d07f7545804097de4b666afd8/packaging-25.0-py3-none-any.whl", hash = "sha256:29572ef2b1f17581046b3a2227d5c611fb25ec70ca1ba8554b24b0e69331a484", size = 66469, upload-time = "2025-04-19T11:48:57.875Z" },
] ]
[[package]]
name = "paginate"
version = "0.5.7"
source = { registry = "https://pypi.org/simple" }
sdist = { url = "https://files.pythonhosted.org/packages/ec/46/68dde5b6bc00c1296ec6466ab27dddede6aec9af1b99090e1107091b3b84/paginate-0.5.7.tar.gz", hash = "sha256:22bd083ab41e1a8b4f3690544afb2c60c25e5c9a63a30fa2f483f6c60c8e5945", size = 19252, upload-time = "2024-08-25T14:17:24.139Z" }
wheels = [
{ url = "https://files.pythonhosted.org/packages/90/96/04b8e52da071d28f5e21a805b19cb9390aa17a47462ac87f5e2696b9566d/paginate-0.5.7-py2.py3-none-any.whl", hash = "sha256:b885e2af73abcf01d9559fd5216b57ef722f8c42affbb63942377668e35c7591", size = 13746, upload-time = "2024-08-25T14:17:22.55Z" },
]
[[package]] [[package]]
name = "pathspec" name = "pathspec"
version = "1.0.3" version = "1.0.3"
@@ -896,21 +734,6 @@ wheels = [
{ url = "https://files.pythonhosted.org/packages/3c/26/1062c7ec1b053db9e499b4d2d5bc231743201b74051c973dadeac80a8f43/questionary-2.1.1-py3-none-any.whl", hash = "sha256:a51af13f345f1cdea62347589fbb6df3b290306ab8930713bfae4d475a7d4a59", size = 36753, upload-time = "2025-08-28T19:00:19.56Z" }, { url = "https://files.pythonhosted.org/packages/3c/26/1062c7ec1b053db9e499b4d2d5bc231743201b74051c973dadeac80a8f43/questionary-2.1.1-py3-none-any.whl", hash = "sha256:a51af13f345f1cdea62347589fbb6df3b290306ab8930713bfae4d475a7d4a59", size = 36753, upload-time = "2025-08-28T19:00:19.56Z" },
] ]
[[package]]
name = "requests"
version = "2.32.5"
source = { registry = "https://pypi.org/simple" }
dependencies = [
{ name = "certifi" },
{ name = "charset-normalizer" },
{ name = "idna" },
{ name = "urllib3" },
]
sdist = { url = "https://files.pythonhosted.org/packages/c9/74/b3ff8e6c8446842c3f5c837e9c3dfcfe2018ea6ecef224c710c85ef728f4/requests-2.32.5.tar.gz", hash = "sha256:dbba0bac56e100853db0ea71b82b4dfd5fe2bf6d3754a8893c3af500cec7d7cf", size = 134517, upload-time = "2025-08-18T20:46:02.573Z" }
wheels = [
{ url = "https://files.pythonhosted.org/packages/1e/db/4254e3eabe8020b458f1a747140d32277ec7a271daf1d235b70dc0b4e6e3/requests-2.32.5-py3-none-any.whl", hash = "sha256:2462f94637a34fd532264295e186976db0f5d453d1cdd31473c85a6a161affb6", size = 64738, upload-time = "2025-08-18T20:46:00.542Z" },
]
[[package]] [[package]]
name = "rich" name = "rich"
version = "14.2.0" version = "14.2.0"
@@ -977,15 +800,6 @@ wheels = [
{ url = "https://files.pythonhosted.org/packages/e9/44/75a9c9421471a6c4805dbf2356f7c181a29c1879239abab1ea2cc8f38b40/sniffio-1.3.1-py3-none-any.whl", hash = "sha256:2f6da418d1f1e0fddd844478f41680e794e6051915791a034ff65e5f100525a2", size = 10235, upload-time = "2024-02-25T23:20:01.196Z" }, { url = "https://files.pythonhosted.org/packages/e9/44/75a9c9421471a6c4805dbf2356f7c181a29c1879239abab1ea2cc8f38b40/sniffio-1.3.1-py3-none-any.whl", hash = "sha256:2f6da418d1f1e0fddd844478f41680e794e6051915791a034ff65e5f100525a2", size = 10235, upload-time = "2024-02-25T23:20:01.196Z" },
] ]
[[package]]
name = "soupsieve"
version = "2.8.1"
source = { registry = "https://pypi.org/simple" }
sdist = { url = "https://files.pythonhosted.org/packages/89/23/adf3796d740536d63a6fbda113d07e60c734b6ed5d3058d1e47fc0495e47/soupsieve-2.8.1.tar.gz", hash = "sha256:4cf733bc50fa805f5df4b8ef4740fc0e0fa6218cf3006269afd3f9d6d80fd350", size = 117856, upload-time = "2025-12-18T13:50:34.655Z" }
wheels = [
{ url = "https://files.pythonhosted.org/packages/48/f3/b67d6ea49ca9154453b6d70b34ea22f3996b9fa55da105a79d8732227adc/soupsieve-2.8.1-py3-none-any.whl", hash = "sha256:a11fe2a6f3d76ab3cf2de04eb339c1be5b506a8a47f2ceb6d139803177f85434", size = 36710, upload-time = "2025-12-18T13:50:33.267Z" },
]
[[package]] [[package]]
name = "structlog" name = "structlog"
version = "25.5.0" version = "25.5.0"
@@ -1038,11 +852,8 @@ dev = [
{ name = "ty" }, { name = "ty" },
] ]
docs = [ docs = [
{ name = "mkdocs" }, { name = "mkdocstrings-python" },
{ name = "mkdocs-llmstxt" }, { name = "zensical" },
{ name = "mkdocs-material" },
{ name = "mkdocs-redirects" },
{ name = "mkdocstrings", extra = ["python"] },
] ]
[package.metadata] [package.metadata]
@@ -1072,11 +883,8 @@ dev = [
{ name = "ty", specifier = ">=0.0.8" }, { name = "ty", specifier = ">=0.0.8" },
] ]
docs = [ docs = [
{ name = "mkdocs", specifier = ">=1.6" }, { name = "mkdocstrings-python", specifier = ">=2.0.1" },
{ name = "mkdocs-llmstxt", specifier = ">=0.5.0" }, { name = "zensical", specifier = ">=0.0.15" },
{ name = "mkdocs-material", specifier = ">=9.7" },
{ name = "mkdocs-redirects", specifier = ">=1.2.2" },
{ name = "mkdocstrings", extras = ["python"], specifier = ">=0.29" },
] ]
[[package]] [[package]]
@@ -1161,15 +969,6 @@ wheels = [
{ url = "https://files.pythonhosted.org/packages/dc/9b/47798a6c91d8bdb567fe2698fe81e0c6b7cb7ef4d13da4114b41d239f65d/typing_inspection-0.4.2-py3-none-any.whl", hash = "sha256:4ed1cacbdc298c220f1bd249ed5287caa16f34d44ef4e9c3d0cbad5b521545e7", size = 14611, upload-time = "2025-10-01T02:14:40.154Z" }, { url = "https://files.pythonhosted.org/packages/dc/9b/47798a6c91d8bdb567fe2698fe81e0c6b7cb7ef4d13da4114b41d239f65d/typing_inspection-0.4.2-py3-none-any.whl", hash = "sha256:4ed1cacbdc298c220f1bd249ed5287caa16f34d44ef4e9c3d0cbad5b521545e7", size = 14611, upload-time = "2025-10-01T02:14:40.154Z" },
] ]
[[package]]
name = "urllib3"
version = "2.6.3"
source = { registry = "https://pypi.org/simple" }
sdist = { url = "https://files.pythonhosted.org/packages/c7/24/5f1b3bdffd70275f6661c76461e25f024d5a38a46f04aaca912426a2b1d3/urllib3-2.6.3.tar.gz", hash = "sha256:1b62b6884944a57dbe321509ab94fd4d3b307075e0c2eae991ac71ee15ad38ed", size = 435556, upload-time = "2026-01-07T16:24:43.925Z" }
wheels = [
{ url = "https://files.pythonhosted.org/packages/39/08/aaaad47bc4e9dc8c725e68f9d04865dbcb2052843ff09c97b08904852d84/urllib3-2.6.3-py3-none-any.whl", hash = "sha256:bf272323e553dfb2e87d9bfd225ca7b0f467b919d7bbd355436d3fd37cb0acd4", size = 131584, upload-time = "2026-01-07T16:24:42.685Z" },
]
[[package]] [[package]]
name = "watchdog" name = "watchdog"
version = "6.0.0" version = "6.0.0"
@@ -1239,3 +1038,31 @@ sdist = { url = "https://files.pythonhosted.org/packages/0b/02/ae6ceac1baeda5308
wheels = [ wheels = [
{ url = "https://files.pythonhosted.org/packages/f4/24/2a3e3df732393fed8b3ebf2ec078f05546de641fe1b667ee316ec1dcf3b7/webencodings-0.5.1-py2.py3-none-any.whl", hash = "sha256:a0af1213f3c2226497a97e2b3aa01a7e4bee4f403f95be16fc9acd2947514a78", size = 11774, upload-time = "2017-04-05T20:21:32.581Z" }, { url = "https://files.pythonhosted.org/packages/f4/24/2a3e3df732393fed8b3ebf2ec078f05546de641fe1b667ee316ec1dcf3b7/webencodings-0.5.1-py2.py3-none-any.whl", hash = "sha256:a0af1213f3c2226497a97e2b3aa01a7e4bee4f403f95be16fc9acd2947514a78", size = 11774, upload-time = "2017-04-05T20:21:32.581Z" },
] ]
[[package]]
name = "zensical"
version = "0.0.15"
source = { registry = "https://pypi.org/simple" }
dependencies = [
{ name = "click" },
{ name = "deepmerge" },
{ name = "markdown" },
{ name = "pygments" },
{ name = "pymdown-extensions" },
{ name = "pyyaml" },
]
sdist = { url = "https://files.pythonhosted.org/packages/fd/ad/87b7b591551c74de67b08dcf172532fbb6df6f0e626dce9f220aae293052/zensical-0.0.15.tar.gz", hash = "sha256:b3200c91b30370671c50b8b4aa41c20e55ff2814b9003ee23c9b6f923a0c19be", size = 3816831, upload-time = "2025-12-24T11:15:49.058Z" }
wheels = [
{ url = "https://files.pythonhosted.org/packages/e4/07/ede00d39ff6cff7ab4971d15caa04a6710b126cbf0c8342add0337f4db89/zensical-0.0.15-cp310-abi3-macosx_10_12_x86_64.whl", hash = "sha256:13f205d24baeb4a77d096c3d385a8496850567b45c397cd54dde7c22dcbf0da8", size = 11934661, upload-time = "2025-12-24T11:15:09.019Z" },
{ url = "https://files.pythonhosted.org/packages/d6/32/24449c59f90a6a17dd0d9740ee44f245887d0c177c9c1dc452b9eb812024/zensical-0.0.15-cp310-abi3-macosx_11_0_arm64.whl", hash = "sha256:99702504d38d8f7da4bf9a69513d2f65a0371dcb8f0e9f180c861cb285adb61f", size = 11820384, upload-time = "2025-12-24T11:15:12.265Z" },
{ url = "https://files.pythonhosted.org/packages/ac/db/64fed914788f2f5a8880dcc9a08ce25bcf1a7f2586a09e5d7d61003fd652/zensical-0.0.15-cp310-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:051ea368d268ffebf7ed7b6422f211a57680b2810fcde7f251816eb5c8d2f488", size = 12128961, upload-time = "2025-12-24T11:15:16.178Z" },
{ url = "https://files.pythonhosted.org/packages/59/ca/04fd676880acad9571736e470e1f7bd8e6a2391f09952e69800f1b77fc75/zensical-0.0.15-cp310-abi3-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:31a333afaf54d042bb51ac7dc623bd1b3bbe173c0ce4c7b72764cdef143ff4e2", size = 12098586, upload-time = "2025-12-24T11:15:19.452Z" },
{ url = "https://files.pythonhosted.org/packages/8b/02/6a6ecad3b4cb07e11c8d160882cc937f8e3e96868f598c371892f1e594d7/zensical-0.0.15-cp310-abi3-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:072f80b7346ad4657a4c23008ae5cd3b3511e3bfac8d6bb277cbb6b3c11b6387", size = 12418552, upload-time = "2025-12-24T11:15:23.096Z" },
{ url = "https://files.pythonhosted.org/packages/bb/b7/2a7205dfbeeb8612fbb1e22ad9f770804a07e440b276dcf23cbce3592da4/zensical-0.0.15-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ec1b146adb3ee4146a3f800e0a4e6c8e681092d87ac51c60e35e99b68a724b31", size = 12193618, upload-time = "2025-12-24T11:15:26.359Z" },
{ url = "https://files.pythonhosted.org/packages/dc/f4/5f38022d09e668622e49e8b5606bbfb5177d42ab1b4e91706ef0d38e2422/zensical-0.0.15-cp310-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:07a24e11a0e00d14f37d209cc37df446f91908109ca86ab3fe41c0b981e32668", size = 12308805, upload-time = "2025-12-24T11:15:29.602Z" },
{ url = "https://files.pythonhosted.org/packages/48/f2/6dd7657d6e1c1cd4b01ad531cea6a95eb660a2f960b03415d2184720a283/zensical-0.0.15-cp310-abi3-musllinux_1_2_armv7l.whl", hash = "sha256:cc2bc9b4f89863d8b3443b0b9446ccaf5181085c3fc7a7e1bbc4708afe864f7d", size = 12367060, upload-time = "2025-12-24T11:15:32.621Z" },
{ url = "https://files.pythonhosted.org/packages/d3/83/781bdfbf459ec84b085085b142f433541de70d642d665227442a4deb9360/zensical-0.0.15-cp310-abi3-musllinux_1_2_i686.whl", hash = "sha256:a3809be6d5f25bbd69dbe43715a60bf9d0186c51a1ec821e02f106e660e632b4", size = 12493255, upload-time = "2025-12-24T11:15:36.126Z" },
{ url = "https://files.pythonhosted.org/packages/54/10/0440e848658b97467c15c356f9038906fa90ac52b7f969ed1cce5deaf017/zensical-0.0.15-cp310-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:4fd9382db77eff79eb347d4d0b6194c1c285e4151ad104bc9c8f65a27cb71d7f", size = 12430315, upload-time = "2025-12-24T11:15:39.697Z" },
{ url = "https://files.pythonhosted.org/packages/19/d9/50f3e833075e678047cd6e302f731b4b992762d366949124c2eeed6bd96c/zensical-0.0.15-cp310-abi3-win32.whl", hash = "sha256:1d29712dd4659e26b351417534e2ad6364f506514e168ac4c0ed42093b3a9469", size = 11559368, upload-time = "2025-12-24T11:15:42.893Z" },
{ url = "https://files.pythonhosted.org/packages/18/07/cf06fc620dd94b2ffaa3e9df47b174603e0234096fd857b25dcda6c4a538/zensical-0.0.15-cp310-abi3-win_amd64.whl", hash = "sha256:0d0b303ec8a7aec2e733239f21d3602ce29e0eaabe4e4d60c9bcccb5c2d162dc", size = 11740088, upload-time = "2025-12-24T11:15:45.631Z" },
]
+158
View File
@@ -0,0 +1,158 @@
[project]
site_name = "takopi"
site_description = "takopi - telegram bridge for coding agents"
site_author = "banteg"
site_url = "https://takopi.banteg.xyz/"
repo_url = "https://github.com/banteg/takopi"
repo_name = "banteg/takopi"
edit_uri = "edit/master/docs/"
docs_dir = "docs"
site_dir = "_site"
nav = [
{ "Home" = "index.md" },
{ "Tutorials" = [
{ "Overview" = "tutorials/index.md" },
{ "Install & onboard" = "tutorials/install-and-onboard.md" },
{ "First run" = "tutorials/first-run.md" },
] },
{ "How-to" = [
{ "Overview" = "how-to/index.md" },
{ "Switch engines" = "how-to/switch-engines.md" },
{ "Projects" = "how-to/projects.md" },
{ "Worktrees" = "how-to/worktrees.md" },
{ "Route by chat" = "how-to/route-by-chat.md" },
{ "Topics" = "how-to/topics.md" },
{ "Voice notes" = "how-to/voice-notes.md" },
{ "File transfer" = "how-to/file-transfer.md" },
{ "Schedule tasks" = "how-to/schedule-tasks.md" },
{ "Troubleshooting" = "how-to/troubleshooting.md" },
{ "Write a plugin" = "how-to/write-a-plugin.md" },
{ "Add a runner" = "how-to/add-a-runner.md" },
{ "Dev setup" = "how-to/dev-setup.md" },
] },
{ "Reference" = [
{ "Overview" = "reference/index.md" },
{ "Commands & directives" = "reference/commands-and-directives.md" },
{ "Configuration" = "reference/config.md" },
{ "Environment variables" = "reference/env-vars.md" },
{ "Changelog" = "reference/changelog.md" },
{ "Specification" = "reference/specification.md" },
{ "Plugin API" = "reference/plugin-api.md" },
{ "Context resolution" = "reference/context-resolution.md" },
{ "Telegram transport" = "reference/transports/telegram.md" },
{ "Runners" = [
{ "Overview" = "reference/runners/index.md" },
{ "Claude" = [
{ "Runner" = "reference/runners/claude/runner.md" },
{ "Stream JSON cheatsheet" = "reference/runners/claude/stream-json-cheatsheet.md" },
{ "Takopi events" = "reference/runners/claude/takopi-events.md" },
] },
{ "Codex" = [
{ "Exec JSON cheatsheet" = "reference/runners/codex/exec-json-cheatsheet.md" },
{ "Takopi events" = "reference/runners/codex/takopi-events.md" },
] },
{ "OpenCode" = [
{ "Runner" = "reference/runners/opencode/runner.md" },
{ "Stream JSON cheatsheet" = "reference/runners/opencode/stream-json-cheatsheet.md" },
{ "Takopi events" = "reference/runners/opencode/takopi-events.md" },
] },
{ "Pi" = [
{ "Runner" = "reference/runners/pi/runner.md" },
{ "Stream JSON cheatsheet" = "reference/runners/pi/stream-json-cheatsheet.md" },
{ "Takopi events" = "reference/runners/pi/takopi-events.md" },
] },
] },
{ "For agents" = [
{ "Agent entrypoint" = "reference/agents/index.md" },
{ "Repo map" = "reference/agents/repo-map.md" },
{ "Invariants" = "reference/agents/invariants.md" },
] },
] },
{ "Explanation" = [
{ "Overview" = "explanation/index.md" },
{ "Architecture" = "explanation/architecture.md" },
{ "Routing & sessions" = "explanation/routing-and-sessions.md" },
{ "Plugin system" = "explanation/plugin-system.md" },
{ "Module map" = "explanation/module-map.md" },
] },
]
[project.extra]
generator = false
[[project.extra.social]]
icon = "fontawesome/brands/x-twitter"
link = "https://x.com/banteg"
[[project.extra.social]]
icon = "fontawesome/brands/telegram"
link = "https://t.me/+4VRTEKT_To0wMTUy"
[project.theme]
language = "en"
logo = "assets/logo.svg"
favicon = "assets/favicon.svg"
font.text = "Nunito"
font.code = "Fira Code"
features = [
"navigation.sections",
"navigation.instant",
"navigation.tracking",
"navigation.tabs",
"navigation.tabs.sticky",
"navigation.expand",
"navigation.footer",
"toc.follow",
"content.code.copy",
"content.action.edit",
"content.action.view",
"search.highlight",
]
[project.theme.icon]
repo = "fontawesome/brands/github"
[[project.theme.palette]]
media = "(prefers-color-scheme)"
toggle.icon = "lucide/sun-moon"
toggle.name = "Switch to light mode"
[[project.theme.palette]]
media = "(prefers-color-scheme: light)"
scheme = "default"
primary = "pink"
accent = "teal"
toggle.icon = "lucide/sun"
toggle.name = "Switch to dark mode"
[[project.theme.palette]]
media = "(prefers-color-scheme: dark)"
scheme = "slate"
primary = "pink"
accent = "teal"
toggle.icon = "lucide/moon"
toggle.name = "Switch to system preference"
[project.markdown_extensions.admonition]
[project.markdown_extensions.attr_list]
[project.markdown_extensions.md_in_html]
[project.markdown_extensions.tables]
[project.markdown_extensions.pymdownx.emoji]
emoji_index = "zensical.extensions.emoji.twemoji"
emoji_generator = "zensical.extensions.emoji.to_svg"
[project.markdown_extensions.toc]
permalink = true
[project.markdown_extensions.pymdownx.superfences]
custom_fences = [
{ name = "mermaid", class = "mermaid", format = "pymdownx.superfences.fence_code_format" },
]
[project.plugins.mkdocstrings.handlers.python]
paths = ["src"]
[project.plugins.mkdocstrings.handlers.python.options]
show_source = false