Files
obsidian-wiki/pyproject.toml
T
Codex acff3c14db fix: make remote MCP service start reliably
Use the Python module entrypoint in the user service, prepare the MCP optional runtime before restart, and serve the configured vault path instead of the repo root.

Verify binary asset resources use an octet-stream MIME type and cover service vault resolution in tests.
2026-07-05 12:05:12 +00:00

93 lines
3.5 KiB
TOML

[build-system]
requires = ["hatchling", "hatch-vcs"]
build-backend = "hatchling.build"
[project]
name = "obsidian-wiki"
dynamic = ["version"]
description = "A skill-based framework for building and maintaining an AI-maintained Obsidian knowledge base (Karpathy's LLM Wiki pattern) across any AI coding agent."
readme = "README.md"
requires-python = ">=3.9"
license = "MIT"
license-files = ["LICENSE"]
authors = [{ name = "Ar9av" }]
keywords = [
"obsidian",
"wiki",
"knowledge-base",
"llm",
"claude",
"agent-skills",
"second-brain",
]
classifiers = [
"Development Status :: 4 - Beta",
"Environment :: Console",
"Intended Audience :: Developers",
"Operating System :: OS Independent",
"Programming Language :: Python :: 3",
"Topic :: Documentation",
"Topic :: Text Processing :: Markup :: Markdown",
"Topic :: Utilities",
]
# Pure-stdlib CLI — installing skills needs no third-party runtime dependencies.
dependencies = []
[project.optional-dependencies]
mcp = ["mcp[cli]>=1.28,<2; python_version >= '3.10'"]
[project.urls]
Homepage = "https://github.com/Ar9av/obsidian-wiki"
Repository = "https://github.com/Ar9av/obsidian-wiki"
Issues = "https://github.com/Ar9av/obsidian-wiki/issues"
[project.scripts]
obsidian-wiki = "obsidian_wiki.cli:main"
obsidian-wiki-mcp = "obsidian_wiki.mcp_server:main"
# Version is derived from the git tag (CalVer, e.g. v2026.05.2 -> 2026.5.2),
# matching the repo's release tags. Tagging a release is the version bump.
[tool.hatch.version]
source = "vcs"
# ── Build configuration ──────────────────────────────────────────────────────
# The Python package is just the thin CLI in obsidian_wiki/. The actual product
# is the markdown skill content under .skills/ plus the agent bootstrap files.
# We force-include those into the wheel under obsidian_wiki/_data/ so the
# installed package is self-contained and the CLI can install skills without a
# cloned repo. Source paths stay at the repo root (single source of truth).
[tool.hatch.build.targets.wheel]
packages = ["obsidian_wiki"]
[tool.hatch.build.targets.wheel.force-include]
".skills" = "obsidian_wiki/_data/skills"
".env.example" = "obsidian_wiki/_data/.env.example"
"AGENTS.md" = "obsidian_wiki/_data/bootstrap/AGENTS.md"
".cursor/rules/obsidian-wiki.mdc" = "obsidian_wiki/_data/bootstrap/cursor/rules/obsidian-wiki.mdc"
".windsurf/rules/obsidian-wiki.md" = "obsidian_wiki/_data/bootstrap/windsurf/rules/obsidian-wiki.md"
".kiro/steering/obsidian-wiki.md" = "obsidian_wiki/_data/bootstrap/kiro/steering/obsidian-wiki.md"
".agent/rules/obsidian-wiki.md" = "obsidian_wiki/_data/bootstrap/agent/rules/obsidian-wiki.md"
".agent/workflows/obsidian-wiki.md" = "obsidian_wiki/_data/bootstrap/agent/workflows/obsidian-wiki.md"
".github/copilot-instructions.md" = "obsidian_wiki/_data/bootstrap/github/copilot-instructions.md"
[tool.hatch.build.targets.sdist]
# Prune build noise and the committed agent symlink mirrors (the CLI
# regenerates those; left in, hatchling's VCS walker treats them as the
# canonical path for each skill and drops the real .skills/<name> files).
exclude = [
"/.claude",
"/.cursor/skills",
"/.windsurf/skills",
"/.agents/skills",
"/.pi/skills",
"/.kiro/skills",
"/dist",
"/build",
]
# Force the real .skills/ tree into the sdist regardless of the VCS walker, so
# the wheel (built from the sdist) can in turn force-include it under _data/.
[tool.hatch.build.targets.sdist.force-include]
".skills" = ".skills"