| [build-system] |
| requires = ["setuptools>=77"] |
| build-backend = "setuptools.build_meta" |
|
|
| [project] |
| name = "claude-ctx" |
| version = "1.0.19" |
| description = "Not an Amazon-style catalog: a recommendation layer for loading the right skills, agents, MCPs, and harnesses at the right development moment" |
| authors = [{ name = "Steve Solun" }] |
| license = "MIT" |
| readme = "README.md" |
| requires-python = ">=3.11" |
|
|
| dependencies = [ |
| "markdown>=3.6,<4", |
| "networkx>=3,<4", |
| "numpy>=1.24,<3", |
| "pymdown-extensions>=10,<11", |
| "pyyaml>=6,<7", |
| ] |
|
|
| [project.urls] |
| Homepage = "https://stevesolun.github.io/ctx/" |
| Repository = "https://github.com/stevesolun/ctx" |
| Documentation = "https://stevesolun.github.io/ctx/" |
| Changelog = "https://github.com/stevesolun/ctx/blob/main/CHANGELOG.md" |
|
|
| [project.scripts] |
| |
| |
| |
| |
| |
| ctx-init = "ctx_init:main" |
| ctx-install-hooks = "ctx.adapters.claude_code.inject_hooks:main" |
| ctx-monitor = "ctx_monitor:main" |
| ctx-scan-repo = "scan_repo:main" |
| ctx-skill-quality = "skill_quality:main" |
| ctx-skill-health = "ctx.adapters.claude_code.skill_health:main" |
| ctx-toolbox = "toolbox:main" |
| ctx-lifecycle = "ctx_lifecycle:main" |
| ctx-skill-add = "skill_add:main" |
| ctx-skill-install = "ctx.adapters.claude_code.install.skill_install:main" |
| ctx-skill-unload = "ctx.adapters.claude_code.install.skill_unload:skill_main" |
| ctx-skill-mirror = "skill_mirror:main" |
| ctx-bundle-suggest = "ctx.adapters.claude_code.hooks.bundle_orchestrator:main" |
| ctx-recommend = "ctx.cli.recommend:main" |
| ctx-agent-add = "agent_add:main" |
| ctx-agent-mirror = "agent_mirror:main" |
| ctx-agent-install = "ctx.adapters.claude_code.install.agent_install:main" |
| ctx-agent-unload = "ctx.adapters.claude_code.install.skill_unload:agent_main" |
| ctx-harness-add = "harness_add:main" |
| ctx-harness-install = "harness_install:main" |
| ctx-mcp-add = "mcp_add:main" |
| ctx-mcp-fetch = "mcp_fetch:main" |
| ctx-mcp-ingest = "mcp_ingest:main" |
| ctx-mcp-enrich = "mcp_enrich:main" |
| ctx-mcp-install = "ctx.adapters.claude_code.install.mcp_install:install_main" |
| ctx-mcp-uninstall = "ctx.adapters.claude_code.install.mcp_install:uninstall_main" |
| ctx-mcp-quality = "mcp_quality:main" |
| ctx-mcp-rebuild-index = "mcp_rebuild_index:main" |
| ctx-wiki-graphify = "ctx.core.wiki.wiki_graphify:main" |
| ctx-wiki-worker = "ctx.core.wiki.wiki_queue_worker:main" |
| ctx-graph-store = "ctx.core.graph.graph_store:main" |
| ctx-pack-compact = "ctx.core.wiki.pack_compaction:main" |
| ctx-incremental-attach = "ctx.core.graph.incremental_attach:main" |
| ctx-incremental-shadow = "ctx.core.graph.incremental_shadow:main" |
| ctx-source-registry = "ctx.core.source_registry:main" |
| |
| |
| |
| ctx-dedup-check = "ctx.core.quality.dedup_check:main" |
| |
| |
| |
| |
| ctx-tag-backfill = "ctx.core.quality.tag_backfill:main" |
| |
| |
| ctx-skillspector-scan = "ctx.core.quality.skillspector_service:main" |
| ctx-skillspector-audit = "ctx.core.quality.skillspector_audit:main" |
| ctx-skillspector-remediation = "ctx.core.quality.skillspector_remediation:main" |
| |
| |
| |
| ctx = "ctx.cli.run:main" |
| |
| |
| |
| |
| |
| ctx-mcp-server = "ctx.mcp_server.server:main" |
|
|
| [project.optional-dependencies] |
| dev = [ |
| "pytest>=8", |
| "pytest-cov>=5", |
| "hypothesis>=6", |
| "mypy>=1.8", |
| "ruff>=0.4", |
| ] |
| browser = [ |
| "playwright>=1.52", |
| ] |
| viz = [ |
| "plotly>=5,<7", |
| ] |
| embeddings = [ |
| "sentence-transformers>=2,<4", |
| "torch>=2,<3", |
| ] |
| ann = [ |
| "hnswlib>=0.8,<0.9; platform_python_implementation == 'CPython'", |
| ] |
| gcf = [ |
| "gcf-python>=2.1.0,<3", |
| ] |
| harness = [ |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| "click==8.1.8", |
| "typer>=0.16,<0.17", |
| "litellm>=1.40,<2", |
| ] |
|
|
| [tool.setuptools] |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| package-dir = {"" = "src"} |
| py-modules = [ |
| "agent_add", |
| "agent_mirror", |
| "backup_config", |
| "backup_mirror", |
| "backup_retention", |
| "backup_watchdog", |
| "batch_convert", |
| "behavior_miner", |
| "catalog_builder", |
| "change_detector", |
| "corpus_cache", |
| "cosine_ranker", |
| "council_runner", |
| "ctx_audit_log", |
| "ctx_config", |
| "ctx_init", |
| "ctx_lifecycle", |
| "ctx_monitor", |
| "harness_add", |
| "harness_install", |
| "embedding_backend", |
| "flatten_agents", |
| "import_strix_skills", |
| "intake_gate", |
| "intake_pipeline", |
| "intent_interview", |
| "kpi_dashboard", |
| "link_conversions", |
| "mcp_add", |
| "mcp_canonical_index", |
| "mcp_enrich", |
| "mcp_entity", |
| "mcp_fetch", |
| "mcp_ingest", |
| "mcp_quality", |
| "mcp_quality_signals", |
| "mcp_rebuild_index", |
| "memory_anchor", |
| "scan_repo", |
| "skill_add", |
| "skill_add_detector", |
| "skill_category", |
| "skill_mirror", |
| "skill_quality", |
| "skill_telemetry", |
| "toolbox", |
| "toolbox_config", |
| "toolbox_hooks", |
| "toolbox_verdict", |
| "update_repo_stats", |
| "usage_tracker", |
| "versions_catalog", |
| "wiki_batch_entities", |
| "wiki_orchestrator", |
| "wiki_visualize", |
| ] |
| |
| |
| |
| |
| |
| |
| packages = [ |
| "mcp_sources", |
| "ctx", |
| "ctx.assets", |
| "ctx.core", |
| "ctx.core.graph", |
| "ctx.core.quality", |
| "ctx.core.wiki", |
| "ctx.core.resolve", |
| "ctx.core.bundle", |
| "ctx.adapters", |
| "ctx.adapters.claude_code", |
| "ctx.adapters.claude_code.hooks", |
| "ctx.adapters.claude_code.install", |
| "ctx.adapters.generic", |
| "ctx.adapters.generic.providers", |
| "ctx.adapters.generic.tools", |
| "ctx.cli", |
| "ctx.monitor", |
| "ctx.monitor.api", |
| "ctx.monitor.pages", |
| "ctx.monitor.services", |
| "ctx.mcp_server", |
| "ctx.utils", |
| ] |
|
|
| [tool.setuptools.package-data] |
| ctx = ["config.json", "skill-registry.json", "assets/*.js", "assets/*.css"] |
|
|
| [tool.pytest.ini_options] |
| testpaths = ["src/tests"] |
| markers = [ |
| "integration: marks tests that require external models or network (deselect with -m 'not integration')", |
| "browser: marks tests that drive a real browser with Playwright", |
| ] |
|
|
| [tool.mypy] |
| python_version = "3.11" |
| mypy_path = "src" |
| namespace_packages = true |
| explicit_package_bases = true |
| ignore_missing_imports = true |
|
|
| [tool.ruff] |
| line-length = 100 |
| target-version = "py311" |
| extend-exclude = ["imported-skills"] |
|
|