chaoscypher-cli 0.1.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- chaoscypher_cli-0.1.0/PKG-INFO +174 -0
- chaoscypher_cli-0.1.0/README.md +136 -0
- chaoscypher_cli-0.1.0/pyproject.toml +93 -0
- chaoscypher_cli-0.1.0/setup.cfg +4 -0
- chaoscypher_cli-0.1.0/src/chaoscypher_cli/__init__.py +32 -0
- chaoscypher_cli-0.1.0/src/chaoscypher_cli/__main__.py +483 -0
- chaoscypher_cli-0.1.0/src/chaoscypher_cli/benchmark/__init__.py +90 -0
- chaoscypher_cli-0.1.0/src/chaoscypher_cli/benchmark/chat_dataset.py +242 -0
- chaoscypher_cli-0.1.0/src/chaoscypher_cli/benchmark/config.py +302 -0
- chaoscypher_cli-0.1.0/src/chaoscypher_cli/benchmark/data/config/extraction.yaml +54 -0
- chaoscypher_cli-0.1.0/src/chaoscypher_cli/benchmark/data/config/full.yaml +45 -0
- chaoscypher_cli-0.1.0/src/chaoscypher_cli/benchmark/data/config/quick.yaml +26 -0
- chaoscypher_cli-0.1.0/src/chaoscypher_cli/benchmark/data/datasets/scientific_methods_tiny/manifest.yaml +8 -0
- chaoscypher_cli-0.1.0/src/chaoscypher_cli/benchmark/data/datasets/scientific_methods_tiny/scientific_methods_tiny.txt +106 -0
- chaoscypher_cli-0.1.0/src/chaoscypher_cli/benchmark/data/datasets/tech_encyclopedia_tiny/manifest.yaml +9 -0
- chaoscypher_cli-0.1.0/src/chaoscypher_cli/benchmark/data/datasets/tech_encyclopedia_tiny/queries.yaml +428 -0
- chaoscypher_cli-0.1.0/src/chaoscypher_cli/benchmark/data/datasets/tech_encyclopedia_tiny/tech_encyclopedia_tiny.txt +98 -0
- chaoscypher_cli-0.1.0/src/chaoscypher_cli/benchmark/data/datasets/war_and_peace_tiny/manifest.yaml +8 -0
- chaoscypher_cli-0.1.0/src/chaoscypher_cli/benchmark/data/datasets/war_and_peace_tiny/war_and_peace_tiny.txt +212 -0
- chaoscypher_cli-0.1.0/src/chaoscypher_cli/benchmark/dataset.py +86 -0
- chaoscypher_cli-0.1.0/src/chaoscypher_cli/benchmark/discovery.py +269 -0
- chaoscypher_cli-0.1.0/src/chaoscypher_cli/benchmark/embedding_dataset.py +197 -0
- chaoscypher_cli-0.1.0/src/chaoscypher_cli/benchmark/extraction_dataset.py +349 -0
- chaoscypher_cli-0.1.0/src/chaoscypher_cli/benchmark/graph_cache.py +147 -0
- chaoscypher_cli-0.1.0/src/chaoscypher_cli/benchmark/graph_provider.py +107 -0
- chaoscypher_cli-0.1.0/src/chaoscypher_cli/benchmark/judge_prompts.py +75 -0
- chaoscypher_cli-0.1.0/src/chaoscypher_cli/benchmark/leaderboard.py +293 -0
- chaoscypher_cli-0.1.0/src/chaoscypher_cli/benchmark/models.py +95 -0
- chaoscypher_cli-0.1.0/src/chaoscypher_cli/benchmark/orchestrator.py +407 -0
- chaoscypher_cli-0.1.0/src/chaoscypher_cli/benchmark/queries.py +141 -0
- chaoscypher_cli-0.1.0/src/chaoscypher_cli/benchmark/results.py +118 -0
- chaoscypher_cli-0.1.0/src/chaoscypher_cli/benchmark/runner.py +191 -0
- chaoscypher_cli-0.1.0/src/chaoscypher_cli/benchmark/scorers/__init__.py +11 -0
- chaoscypher_cli-0.1.0/src/chaoscypher_cli/benchmark/scorers/chat.py +107 -0
- chaoscypher_cli-0.1.0/src/chaoscypher_cli/benchmark/scorers/embedding.py +101 -0
- chaoscypher_cli-0.1.0/src/chaoscypher_cli/benchmark/scorers/v7.py +70 -0
- chaoscypher_cli-0.1.0/src/chaoscypher_cli/commands/__init__.py +36 -0
- chaoscypher_cli-0.1.0/src/chaoscypher_cli/commands/benchmark/__init__.py +29 -0
- chaoscypher_cli-0.1.0/src/chaoscypher_cli/commands/benchmark/fixture.py +95 -0
- chaoscypher_cli-0.1.0/src/chaoscypher_cli/commands/benchmark/init.py +73 -0
- chaoscypher_cli-0.1.0/src/chaoscypher_cli/commands/benchmark/list.py +65 -0
- chaoscypher_cli-0.1.0/src/chaoscypher_cli/commands/benchmark/run.py +261 -0
- chaoscypher_cli-0.1.0/src/chaoscypher_cli/commands/benchmark/show.py +37 -0
- chaoscypher_cli-0.1.0/src/chaoscypher_cli/commands/chat.py +805 -0
- chaoscypher_cli-0.1.0/src/chaoscypher_cli/commands/completions.py +251 -0
- chaoscypher_cli-0.1.0/src/chaoscypher_cli/commands/compose/__init__.py +45 -0
- chaoscypher_cli-0.1.0/src/chaoscypher_cli/commands/compose/build.py +123 -0
- chaoscypher_cli-0.1.0/src/chaoscypher_cli/commands/compose/down.py +67 -0
- chaoscypher_cli-0.1.0/src/chaoscypher_cli/commands/compose/run.py +76 -0
- chaoscypher_cli-0.1.0/src/chaoscypher_cli/commands/compose/up.py +142 -0
- chaoscypher_cli-0.1.0/src/chaoscypher_cli/commands/config_cmd.py +387 -0
- chaoscypher_cli-0.1.0/src/chaoscypher_cli/commands/db/__init__.py +52 -0
- chaoscypher_cli-0.1.0/src/chaoscypher_cli/commands/db/create.py +77 -0
- chaoscypher_cli-0.1.0/src/chaoscypher_cli/commands/db/current.py +51 -0
- chaoscypher_cli-0.1.0/src/chaoscypher_cli/commands/db/delete.py +74 -0
- chaoscypher_cli-0.1.0/src/chaoscypher_cli/commands/db/info.py +86 -0
- chaoscypher_cli-0.1.0/src/chaoscypher_cli/commands/db/list.py +128 -0
- chaoscypher_cli-0.1.0/src/chaoscypher_cli/commands/db/migrate.py +202 -0
- chaoscypher_cli-0.1.0/src/chaoscypher_cli/commands/db/switch.py +47 -0
- chaoscypher_cli-0.1.0/src/chaoscypher_cli/commands/diagnostics.py +91 -0
- chaoscypher_cli-0.1.0/src/chaoscypher_cli/commands/doctor.py +303 -0
- chaoscypher_cli-0.1.0/src/chaoscypher_cli/commands/graph/__init__.py +33 -0
- chaoscypher_cli-0.1.0/src/chaoscypher_cli/commands/health.py +214 -0
- chaoscypher_cli-0.1.0/src/chaoscypher_cli/commands/lexicon/__init__.py +37 -0
- chaoscypher_cli-0.1.0/src/chaoscypher_cli/commands/lexicon/info.py +167 -0
- chaoscypher_cli-0.1.0/src/chaoscypher_cli/commands/lexicon/list.py +96 -0
- chaoscypher_cli-0.1.0/src/chaoscypher_cli/commands/lexicon/login.py +312 -0
- chaoscypher_cli-0.1.0/src/chaoscypher_cli/commands/lexicon/pull.py +142 -0
- chaoscypher_cli-0.1.0/src/chaoscypher_cli/commands/lexicon/push.py +153 -0
- chaoscypher_cli-0.1.0/src/chaoscypher_cli/commands/lexicon/remove.py +121 -0
- chaoscypher_cli-0.1.0/src/chaoscypher_cli/commands/lexicon/search.py +137 -0
- chaoscypher_cli-0.1.0/src/chaoscypher_cli/commands/link/__init__.py +48 -0
- chaoscypher_cli-0.1.0/src/chaoscypher_cli/commands/link/create.py +102 -0
- chaoscypher_cli-0.1.0/src/chaoscypher_cli/commands/link/delete.py +108 -0
- chaoscypher_cli-0.1.0/src/chaoscypher_cli/commands/link/get.py +117 -0
- chaoscypher_cli-0.1.0/src/chaoscypher_cli/commands/link/list.py +144 -0
- chaoscypher_cli-0.1.0/src/chaoscypher_cli/commands/link/update.py +113 -0
- chaoscypher_cli-0.1.0/src/chaoscypher_cli/commands/node/__init__.py +45 -0
- chaoscypher_cli-0.1.0/src/chaoscypher_cli/commands/node/create.py +147 -0
- chaoscypher_cli-0.1.0/src/chaoscypher_cli/commands/node/delete.py +130 -0
- chaoscypher_cli-0.1.0/src/chaoscypher_cli/commands/node/get.py +153 -0
- chaoscypher_cli-0.1.0/src/chaoscypher_cli/commands/node/list.py +146 -0
- chaoscypher_cli-0.1.0/src/chaoscypher_cli/commands/node/update.py +106 -0
- chaoscypher_cli-0.1.0/src/chaoscypher_cli/commands/package/__init__.py +33 -0
- chaoscypher_cli-0.1.0/src/chaoscypher_cli/commands/package/export.py +175 -0
- chaoscypher_cli-0.1.0/src/chaoscypher_cli/commands/package/load.py +161 -0
- chaoscypher_cli-0.1.0/src/chaoscypher_cli/commands/quality/__init__.py +41 -0
- chaoscypher_cli-0.1.0/src/chaoscypher_cli/commands/quality/analyze.py +224 -0
- chaoscypher_cli-0.1.0/src/chaoscypher_cli/commands/quality/recalculate.py +159 -0
- chaoscypher_cli-0.1.0/src/chaoscypher_cli/commands/quality/report.py +285 -0
- chaoscypher_cli-0.1.0/src/chaoscypher_cli/commands/quality/score.py +323 -0
- chaoscypher_cli-0.1.0/src/chaoscypher_cli/commands/quality/utils.py +58 -0
- chaoscypher_cli-0.1.0/src/chaoscypher_cli/commands/render_orchestration.py +64 -0
- chaoscypher_cli-0.1.0/src/chaoscypher_cli/commands/runtime/__init__.py +13 -0
- chaoscypher_cli-0.1.0/src/chaoscypher_cli/commands/runtime/serve.py +247 -0
- chaoscypher_cli-0.1.0/src/chaoscypher_cli/commands/setup.py +1068 -0
- chaoscypher_cli-0.1.0/src/chaoscypher_cli/commands/source/__init__.py +122 -0
- chaoscypher_cli-0.1.0/src/chaoscypher_cli/commands/source/add.py +592 -0
- chaoscypher_cli-0.1.0/src/chaoscypher_cli/commands/source/confirm.py +238 -0
- chaoscypher_cli-0.1.0/src/chaoscypher_cli/commands/source/delete.py +59 -0
- chaoscypher_cli-0.1.0/src/chaoscypher_cli/commands/source/extract.py +314 -0
- chaoscypher_cli-0.1.0/src/chaoscypher_cli/commands/source/get.py +503 -0
- chaoscypher_cli-0.1.0/src/chaoscypher_cli/commands/source/list.py +160 -0
- chaoscypher_cli-0.1.0/src/chaoscypher_cli/commands/source/rebuild_search.py +96 -0
- chaoscypher_cli-0.1.0/src/chaoscypher_cli/commands/source/search.py +270 -0
- chaoscypher_cli-0.1.0/src/chaoscypher_cli/commands/template/__init__.py +48 -0
- chaoscypher_cli-0.1.0/src/chaoscypher_cli/commands/template/create.py +154 -0
- chaoscypher_cli-0.1.0/src/chaoscypher_cli/commands/template/delete.py +74 -0
- chaoscypher_cli-0.1.0/src/chaoscypher_cli/commands/template/get.py +135 -0
- chaoscypher_cli-0.1.0/src/chaoscypher_cli/commands/template/list.py +127 -0
- chaoscypher_cli-0.1.0/src/chaoscypher_cli/commands/template/update.py +144 -0
- chaoscypher_cli-0.1.0/src/chaoscypher_cli/commands/template/utils.py +50 -0
- chaoscypher_cli-0.1.0/src/chaoscypher_cli/commands/upgrade.py +58 -0
- chaoscypher_cli-0.1.0/src/chaoscypher_cli/commands/workflow/__init__.py +31 -0
- chaoscypher_cli-0.1.0/src/chaoscypher_cli/commands/workflow/get.py +148 -0
- chaoscypher_cli-0.1.0/src/chaoscypher_cli/commands/workflow/list.py +120 -0
- chaoscypher_cli-0.1.0/src/chaoscypher_cli/context.py +678 -0
- chaoscypher_cli-0.1.0/src/chaoscypher_cli/engine_config.py +96 -0
- chaoscypher_cli-0.1.0/src/chaoscypher_cli/lazy.py +195 -0
- chaoscypher_cli-0.1.0/src/chaoscypher_cli/mcp/__init__.py +9 -0
- chaoscypher_cli-0.1.0/src/chaoscypher_cli/mcp/command.py +143 -0
- chaoscypher_cli-0.1.0/src/chaoscypher_cli/py.typed +0 -0
- chaoscypher_cli-0.1.0/src/chaoscypher_cli/sources/__init__.py +36 -0
- chaoscypher_cli-0.1.0/src/chaoscypher_cli/sources/domains.py +39 -0
- chaoscypher_cli-0.1.0/src/chaoscypher_cli/sources/pipeline.py +1337 -0
- chaoscypher_cli-0.1.0/src/chaoscypher_cli/sources/service.py +1734 -0
- chaoscypher_cli-0.1.0/src/chaoscypher_cli/utils/__init__.py +92 -0
- chaoscypher_cli-0.1.0/src/chaoscypher_cli/utils/console.py +88 -0
- chaoscypher_cli-0.1.0/src/chaoscypher_cli/utils/display.py +50 -0
- chaoscypher_cli-0.1.0/src/chaoscypher_cli/utils/files.py +123 -0
- chaoscypher_cli-0.1.0/src/chaoscypher_cli/utils/llm_check.py +165 -0
- chaoscypher_cli-0.1.0/src/chaoscypher_cli/utils/paths.py +120 -0
- chaoscypher_cli-0.1.0/src/chaoscypher_cli.egg-info/PKG-INFO +174 -0
- chaoscypher_cli-0.1.0/src/chaoscypher_cli.egg-info/SOURCES.txt +190 -0
- chaoscypher_cli-0.1.0/src/chaoscypher_cli.egg-info/dependency_links.txt +1 -0
- chaoscypher_cli-0.1.0/src/chaoscypher_cli.egg-info/entry_points.txt +2 -0
- chaoscypher_cli-0.1.0/src/chaoscypher_cli.egg-info/requires.txt +19 -0
- chaoscypher_cli-0.1.0/src/chaoscypher_cli.egg-info/top_level.txt +1 -0
- chaoscypher_cli-0.1.0/tests/test_cli_plumbing.py +617 -0
- chaoscypher_cli-0.1.0/tests/test_cmd_chat.py +1091 -0
- chaoscypher_cli-0.1.0/tests/test_cmd_completions.py +442 -0
- chaoscypher_cli-0.1.0/tests/test_cmd_compose.py +1011 -0
- chaoscypher_cli-0.1.0/tests/test_cmd_config.py +235 -0
- chaoscypher_cli-0.1.0/tests/test_cmd_db.py +704 -0
- chaoscypher_cli-0.1.0/tests/test_cmd_db_migrate.py +434 -0
- chaoscypher_cli-0.1.0/tests/test_cmd_diagnostics.py +241 -0
- chaoscypher_cli-0.1.0/tests/test_cmd_doctor_more.py +415 -0
- chaoscypher_cli-0.1.0/tests/test_cmd_health.py +535 -0
- chaoscypher_cli-0.1.0/tests/test_cmd_lexicon_info.py +396 -0
- chaoscypher_cli-0.1.0/tests/test_cmd_lexicon_login.py +549 -0
- chaoscypher_cli-0.1.0/tests/test_cmd_lexicon_sync.py +1101 -0
- chaoscypher_cli-0.1.0/tests/test_cmd_link.py +948 -0
- chaoscypher_cli-0.1.0/tests/test_cmd_node.py +1033 -0
- chaoscypher_cli-0.1.0/tests/test_cmd_quality_analyze.py +898 -0
- chaoscypher_cli-0.1.0/tests/test_cmd_quality_report.py +783 -0
- chaoscypher_cli-0.1.0/tests/test_cmd_quality_score.py +678 -0
- chaoscypher_cli-0.1.0/tests/test_cmd_serve_package.py +1271 -0
- chaoscypher_cli-0.1.0/tests/test_cmd_setup.py +1326 -0
- chaoscypher_cli-0.1.0/tests/test_cmd_source_add.py +781 -0
- chaoscypher_cli-0.1.0/tests/test_cmd_source_extract_confirm_topup.py +726 -0
- chaoscypher_cli-0.1.0/tests/test_cmd_source_get.py +667 -0
- chaoscypher_cli-0.1.0/tests/test_cmd_source_misc.py +853 -0
- chaoscypher_cli-0.1.0/tests/test_cmd_template.py +736 -0
- chaoscypher_cli-0.1.0/tests/test_cmd_workflow.py +628 -0
- chaoscypher_cli-0.1.0/tests/test_commit_extraction_results_plumbing.py +73 -0
- chaoscypher_cli-0.1.0/tests/test_context.py +801 -0
- chaoscypher_cli-0.1.0/tests/test_database_flag_resolution.py +100 -0
- chaoscypher_cli-0.1.0/tests/test_doctor.py +306 -0
- chaoscypher_cli-0.1.0/tests/test_engine_config.py +50 -0
- chaoscypher_cli-0.1.0/tests/test_first_run_gate.py +201 -0
- chaoscypher_cli-0.1.0/tests/test_help_text_consistency.py +219 -0
- chaoscypher_cli-0.1.0/tests/test_index_normalization_parity.py +188 -0
- chaoscypher_cli-0.1.0/tests/test_llm_metrics_and_quality_counters.py +499 -0
- chaoscypher_cli-0.1.0/tests/test_mcp_maintenance_routing.py +113 -0
- chaoscypher_cli-0.1.0/tests/test_package_export_empty_combo.py +44 -0
- chaoscypher_cli-0.1.0/tests/test_source_add_gate.py +147 -0
- chaoscypher_cli-0.1.0/tests/test_source_add_skip_duplicates.py +359 -0
- chaoscypher_cli-0.1.0/tests/test_source_confirm.py +141 -0
- chaoscypher_cli-0.1.0/tests/test_source_detect_prestep.py +94 -0
- chaoscypher_cli-0.1.0/tests/test_source_domains_constant.py +57 -0
- chaoscypher_cli-0.1.0/tests/test_source_extract.py +573 -0
- chaoscypher_cli-0.1.0/tests/test_source_get_domain.py +29 -0
- chaoscypher_cli-0.1.0/tests/test_source_get_stage_progress.py +80 -0
- chaoscypher_cli-0.1.0/tests/test_source_list_awaiting.py +52 -0
- chaoscypher_cli-0.1.0/tests/test_source_pipeline.py +357 -0
- chaoscypher_cli-0.1.0/tests/test_source_service.py +316 -0
- chaoscypher_cli-0.1.0/tests/test_sources_pipeline_more.py +1123 -0
- chaoscypher_cli-0.1.0/tests/test_sources_service_more.py +1557 -0
- chaoscypher_cli-0.1.0/tests/test_upgrade_command.py +97 -0
- chaoscypher_cli-0.1.0/tests/test_upgrade_guard.py +266 -0
- chaoscypher_cli-0.1.0/tests/test_utils_cli.py +891 -0
- chaoscypher_cli-0.1.0/tests/test_windows_console_encoding.py +148 -0
|
@@ -0,0 +1,174 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: chaoscypher-cli
|
|
3
|
+
Version: 0.1.0
|
|
4
|
+
Summary: Command-line tools for Chaos Cypher knowledge graph library
|
|
5
|
+
Author-email: Denis MacPherson <denis@chaoscypher.com>
|
|
6
|
+
Maintainer-email: Denis MacPherson <denis@chaoscypher.com>
|
|
7
|
+
License-Expression: AGPL-3.0-only
|
|
8
|
+
Project-URL: Homepage, https://github.com/chaoscypherinc/chaoscypher
|
|
9
|
+
Project-URL: Documentation, https://github.com/chaoscypherinc/chaoscypher#readme
|
|
10
|
+
Project-URL: Repository, https://github.com/chaoscypherinc/chaoscypher
|
|
11
|
+
Project-URL: Issues, https://github.com/chaoscypherinc/chaoscypher/issues
|
|
12
|
+
Keywords: knowledge-graph,cli,command-line,chaoscypher
|
|
13
|
+
Classifier: Development Status :: 3 - Alpha
|
|
14
|
+
Classifier: Intended Audience :: Developers
|
|
15
|
+
Classifier: Programming Language :: Python :: 3
|
|
16
|
+
Classifier: Programming Language :: Python :: 3.14
|
|
17
|
+
Classifier: Environment :: Console
|
|
18
|
+
Classifier: Topic :: Software Development :: Libraries :: Python Modules
|
|
19
|
+
Requires-Python: >=3.14
|
|
20
|
+
Description-Content-Type: text/markdown
|
|
21
|
+
Requires-Dist: chaoscypher-core>=0.1.0
|
|
22
|
+
Requires-Dist: click<9,>=8.3.0
|
|
23
|
+
Requires-Dist: rich<16,>=15.0.0
|
|
24
|
+
Requires-Dist: platformdirs<5,>=4.9.0
|
|
25
|
+
Requires-Dist: pyyaml<7,>=6.0.3
|
|
26
|
+
Requires-Dist: structlog<26,>=25.5.0
|
|
27
|
+
Requires-Dist: mcp<2,>=1.27.0
|
|
28
|
+
Requires-Dist: httpx<1,>=0.28.0
|
|
29
|
+
Provides-Extra: server
|
|
30
|
+
Requires-Dist: uvicorn<1,>=0.44.0; extra == "server"
|
|
31
|
+
Requires-Dist: fastapi<1,>=0.135.0; extra == "server"
|
|
32
|
+
Provides-Extra: dev
|
|
33
|
+
Requires-Dist: pytest<10,>=9.0.0; extra == "dev"
|
|
34
|
+
Requires-Dist: pytest-asyncio<2,>=1.2.0; extra == "dev"
|
|
35
|
+
Requires-Dist: pytest-cov<8,>=7.1.0; extra == "dev"
|
|
36
|
+
Requires-Dist: ruff<1,>=0.15.0; extra == "dev"
|
|
37
|
+
Requires-Dist: mypy<2,>=1.20.0; extra == "dev"
|
|
38
|
+
|
|
39
|
+
# ChaosCypher CLI
|
|
40
|
+
|
|
41
|
+
Command-line tools for ChaosCypher knowledge graph library.
|
|
42
|
+
|
|
43
|
+
## Installation
|
|
44
|
+
|
|
45
|
+
### From PyPI (recommended)
|
|
46
|
+
|
|
47
|
+
```bash
|
|
48
|
+
pipx install chaoscypher-cli
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
> **Note:** If `pipx install chaoscypher-cli` fails with "No matching distribution found", the package has not been published to PyPI yet — install [from source](#from-source) below. The CLI also requires Python 3.14+, so pipx must run on a 3.14 interpreter.
|
|
52
|
+
|
|
53
|
+
[pipx](https://pipx.pypa.io/) installs the CLI in an isolated environment and automatically adds it to your PATH. If you don't have pipx, install it first:
|
|
54
|
+
|
|
55
|
+
```bash
|
|
56
|
+
# macOS
|
|
57
|
+
brew install pipx
|
|
58
|
+
|
|
59
|
+
# Linux (Debian/Ubuntu)
|
|
60
|
+
sudo apt install pipx
|
|
61
|
+
|
|
62
|
+
# Windows
|
|
63
|
+
scoop install pipx
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
### From source
|
|
67
|
+
|
|
68
|
+
```bash
|
|
69
|
+
git clone https://github.com/chaoscypherinc/chaoscypher.git
|
|
70
|
+
cd chaoscypher
|
|
71
|
+
# Install uv first: https://docs.astral.sh/uv/getting-started/installation/
|
|
72
|
+
uv sync --package chaoscypher-cli
|
|
73
|
+
```
|
|
74
|
+
|
|
75
|
+
> **Note:** On Windows, the `chaoscypher` command lands in `.venv\Scripts\` after `uv sync`. Run it via `uv run chaoscypher` from the repo root, or activate the venv (`.venv\Scripts\activate`) for a bare `chaoscypher` invocation.
|
|
76
|
+
|
|
77
|
+
### Development install
|
|
78
|
+
|
|
79
|
+
```bash
|
|
80
|
+
git clone https://github.com/chaoscypherinc/chaoscypher.git
|
|
81
|
+
cd chaoscypher
|
|
82
|
+
uv sync --all-packages --extra dev # full workspace + dev tools
|
|
83
|
+
```
|
|
84
|
+
|
|
85
|
+
## Usage
|
|
86
|
+
|
|
87
|
+
```bash
|
|
88
|
+
# Show help
|
|
89
|
+
chaoscypher --help
|
|
90
|
+
|
|
91
|
+
# Create a new database
|
|
92
|
+
chaoscypher db create my-graph
|
|
93
|
+
|
|
94
|
+
# Add source documents
|
|
95
|
+
chaoscypher source add documents/
|
|
96
|
+
|
|
97
|
+
# Add with explicit upload-time options (API parity with POST /sources)
|
|
98
|
+
chaoscypher source add paper.pdf \
|
|
99
|
+
--vision \
|
|
100
|
+
--content-filtering \
|
|
101
|
+
--normalize \
|
|
102
|
+
--filtering-mode strict \
|
|
103
|
+
--skip-duplicates
|
|
104
|
+
|
|
105
|
+
# Export knowledge graph
|
|
106
|
+
chaoscypher graph package export --output my-knowledge.ccx
|
|
107
|
+
|
|
108
|
+
# Import knowledge graph
|
|
109
|
+
chaoscypher graph package load my-knowledge.ccx
|
|
110
|
+
|
|
111
|
+
# Search the graph
|
|
112
|
+
chaoscypher source search "artificial intelligence"
|
|
113
|
+
```
|
|
114
|
+
|
|
115
|
+
### Upload-time flags (API parity)
|
|
116
|
+
|
|
117
|
+
`source add` exposes the same upload-time choices the API does. Each flag persists on the source row and is preserved across recovery / retry / re-extract.
|
|
118
|
+
|
|
119
|
+
| Flag | Default | API equivalent |
|
|
120
|
+
|---|---|---|
|
|
121
|
+
| `--vision/--no-vision` | `--vision` | `enable_vision` |
|
|
122
|
+
| `--content-filtering/--no-content-filtering` | `--content-filtering` | `content_filtering` |
|
|
123
|
+
| `--normalize/--no-normalize` | (file-type default — on for prose, off for CSV/JSON/XML) | `enable_normalization` |
|
|
124
|
+
| `--filtering-mode {maximum,strict,balanced,lenient,minimal,unfiltered}` | unset (resolves to `balanced`) | `filtering_mode` |
|
|
125
|
+
| `--skip-duplicates` | off | `skip_duplicates` |
|
|
126
|
+
|
|
127
|
+
Run `chaoscypher source add --help` for the full flag list.
|
|
128
|
+
|
|
129
|
+
## Features
|
|
130
|
+
|
|
131
|
+
- **Graph Management**: Create, delete, and manage knowledge graphs
|
|
132
|
+
- **Data Import**: Import documents (PDF, DOCX, TXT, CSV, JSON, audio, archives)
|
|
133
|
+
- **Data Export**: Export graphs as `.ccx` packages (CCX — Chaos Cypher eXchange)
|
|
134
|
+
- **Search**: Full-text and vector search across the knowledge graph
|
|
135
|
+
- **Chat**: Interactive AI chat with graph-grounded RAG
|
|
136
|
+
- **Quality**: Run extraction quality scoring and reports
|
|
137
|
+
- **Benchmark**: Run reproducible extraction benchmarks across models
|
|
138
|
+
|
|
139
|
+
## Development
|
|
140
|
+
|
|
141
|
+
```bash
|
|
142
|
+
# Run tests
|
|
143
|
+
uv run pytest
|
|
144
|
+
|
|
145
|
+
# Format code (ruff replaces black; ruff format is the formatter)
|
|
146
|
+
uv run ruff format chaoscypher_cli/
|
|
147
|
+
uv run ruff check chaoscypher_cli/
|
|
148
|
+
|
|
149
|
+
# Type checking
|
|
150
|
+
mypy chaoscypher_cli/
|
|
151
|
+
```
|
|
152
|
+
|
|
153
|
+
## Architecture
|
|
154
|
+
|
|
155
|
+
The CLI is a thin wrapper around the `chaoscypher` core library, providing:
|
|
156
|
+
- User-friendly command-line interface using Click
|
|
157
|
+
- Rich terminal output with progress bars and formatting
|
|
158
|
+
- Configuration management via the unified `settings.yaml` and `CHAOSCYPHER_*` environment variables (managed with `chaoscypher config show/get/set/edit`)
|
|
159
|
+
- Batch operations and scripting support
|
|
160
|
+
|
|
161
|
+
## Requirements
|
|
162
|
+
|
|
163
|
+
- Python 3.14+
|
|
164
|
+
- chaoscypher-core>=0.1.0
|
|
165
|
+
|
|
166
|
+
## License
|
|
167
|
+
|
|
168
|
+
AGPL-3.0 License - see LICENSE file for details.
|
|
169
|
+
|
|
170
|
+
## Links
|
|
171
|
+
|
|
172
|
+
- [ChaosCypher Core Library](https://github.com/chaoscypherinc/chaoscypher)
|
|
173
|
+
- [ChaosCypher Docker App](https://github.com/chaoscypherinc/chaoscypher)
|
|
174
|
+
- [ChaosCypher monorepo](https://github.com/chaoscypherinc/chaoscypher)
|
|
@@ -0,0 +1,136 @@
|
|
|
1
|
+
# ChaosCypher CLI
|
|
2
|
+
|
|
3
|
+
Command-line tools for ChaosCypher knowledge graph library.
|
|
4
|
+
|
|
5
|
+
## Installation
|
|
6
|
+
|
|
7
|
+
### From PyPI (recommended)
|
|
8
|
+
|
|
9
|
+
```bash
|
|
10
|
+
pipx install chaoscypher-cli
|
|
11
|
+
```
|
|
12
|
+
|
|
13
|
+
> **Note:** If `pipx install chaoscypher-cli` fails with "No matching distribution found", the package has not been published to PyPI yet — install [from source](#from-source) below. The CLI also requires Python 3.14+, so pipx must run on a 3.14 interpreter.
|
|
14
|
+
|
|
15
|
+
[pipx](https://pipx.pypa.io/) installs the CLI in an isolated environment and automatically adds it to your PATH. If you don't have pipx, install it first:
|
|
16
|
+
|
|
17
|
+
```bash
|
|
18
|
+
# macOS
|
|
19
|
+
brew install pipx
|
|
20
|
+
|
|
21
|
+
# Linux (Debian/Ubuntu)
|
|
22
|
+
sudo apt install pipx
|
|
23
|
+
|
|
24
|
+
# Windows
|
|
25
|
+
scoop install pipx
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
### From source
|
|
29
|
+
|
|
30
|
+
```bash
|
|
31
|
+
git clone https://github.com/chaoscypherinc/chaoscypher.git
|
|
32
|
+
cd chaoscypher
|
|
33
|
+
# Install uv first: https://docs.astral.sh/uv/getting-started/installation/
|
|
34
|
+
uv sync --package chaoscypher-cli
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
> **Note:** On Windows, the `chaoscypher` command lands in `.venv\Scripts\` after `uv sync`. Run it via `uv run chaoscypher` from the repo root, or activate the venv (`.venv\Scripts\activate`) for a bare `chaoscypher` invocation.
|
|
38
|
+
|
|
39
|
+
### Development install
|
|
40
|
+
|
|
41
|
+
```bash
|
|
42
|
+
git clone https://github.com/chaoscypherinc/chaoscypher.git
|
|
43
|
+
cd chaoscypher
|
|
44
|
+
uv sync --all-packages --extra dev # full workspace + dev tools
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
## Usage
|
|
48
|
+
|
|
49
|
+
```bash
|
|
50
|
+
# Show help
|
|
51
|
+
chaoscypher --help
|
|
52
|
+
|
|
53
|
+
# Create a new database
|
|
54
|
+
chaoscypher db create my-graph
|
|
55
|
+
|
|
56
|
+
# Add source documents
|
|
57
|
+
chaoscypher source add documents/
|
|
58
|
+
|
|
59
|
+
# Add with explicit upload-time options (API parity with POST /sources)
|
|
60
|
+
chaoscypher source add paper.pdf \
|
|
61
|
+
--vision \
|
|
62
|
+
--content-filtering \
|
|
63
|
+
--normalize \
|
|
64
|
+
--filtering-mode strict \
|
|
65
|
+
--skip-duplicates
|
|
66
|
+
|
|
67
|
+
# Export knowledge graph
|
|
68
|
+
chaoscypher graph package export --output my-knowledge.ccx
|
|
69
|
+
|
|
70
|
+
# Import knowledge graph
|
|
71
|
+
chaoscypher graph package load my-knowledge.ccx
|
|
72
|
+
|
|
73
|
+
# Search the graph
|
|
74
|
+
chaoscypher source search "artificial intelligence"
|
|
75
|
+
```
|
|
76
|
+
|
|
77
|
+
### Upload-time flags (API parity)
|
|
78
|
+
|
|
79
|
+
`source add` exposes the same upload-time choices the API does. Each flag persists on the source row and is preserved across recovery / retry / re-extract.
|
|
80
|
+
|
|
81
|
+
| Flag | Default | API equivalent |
|
|
82
|
+
|---|---|---|
|
|
83
|
+
| `--vision/--no-vision` | `--vision` | `enable_vision` |
|
|
84
|
+
| `--content-filtering/--no-content-filtering` | `--content-filtering` | `content_filtering` |
|
|
85
|
+
| `--normalize/--no-normalize` | (file-type default — on for prose, off for CSV/JSON/XML) | `enable_normalization` |
|
|
86
|
+
| `--filtering-mode {maximum,strict,balanced,lenient,minimal,unfiltered}` | unset (resolves to `balanced`) | `filtering_mode` |
|
|
87
|
+
| `--skip-duplicates` | off | `skip_duplicates` |
|
|
88
|
+
|
|
89
|
+
Run `chaoscypher source add --help` for the full flag list.
|
|
90
|
+
|
|
91
|
+
## Features
|
|
92
|
+
|
|
93
|
+
- **Graph Management**: Create, delete, and manage knowledge graphs
|
|
94
|
+
- **Data Import**: Import documents (PDF, DOCX, TXT, CSV, JSON, audio, archives)
|
|
95
|
+
- **Data Export**: Export graphs as `.ccx` packages (CCX — Chaos Cypher eXchange)
|
|
96
|
+
- **Search**: Full-text and vector search across the knowledge graph
|
|
97
|
+
- **Chat**: Interactive AI chat with graph-grounded RAG
|
|
98
|
+
- **Quality**: Run extraction quality scoring and reports
|
|
99
|
+
- **Benchmark**: Run reproducible extraction benchmarks across models
|
|
100
|
+
|
|
101
|
+
## Development
|
|
102
|
+
|
|
103
|
+
```bash
|
|
104
|
+
# Run tests
|
|
105
|
+
uv run pytest
|
|
106
|
+
|
|
107
|
+
# Format code (ruff replaces black; ruff format is the formatter)
|
|
108
|
+
uv run ruff format chaoscypher_cli/
|
|
109
|
+
uv run ruff check chaoscypher_cli/
|
|
110
|
+
|
|
111
|
+
# Type checking
|
|
112
|
+
mypy chaoscypher_cli/
|
|
113
|
+
```
|
|
114
|
+
|
|
115
|
+
## Architecture
|
|
116
|
+
|
|
117
|
+
The CLI is a thin wrapper around the `chaoscypher` core library, providing:
|
|
118
|
+
- User-friendly command-line interface using Click
|
|
119
|
+
- Rich terminal output with progress bars and formatting
|
|
120
|
+
- Configuration management via the unified `settings.yaml` and `CHAOSCYPHER_*` environment variables (managed with `chaoscypher config show/get/set/edit`)
|
|
121
|
+
- Batch operations and scripting support
|
|
122
|
+
|
|
123
|
+
## Requirements
|
|
124
|
+
|
|
125
|
+
- Python 3.14+
|
|
126
|
+
- chaoscypher-core>=0.1.0
|
|
127
|
+
|
|
128
|
+
## License
|
|
129
|
+
|
|
130
|
+
AGPL-3.0 License - see LICENSE file for details.
|
|
131
|
+
|
|
132
|
+
## Links
|
|
133
|
+
|
|
134
|
+
- [ChaosCypher Core Library](https://github.com/chaoscypherinc/chaoscypher)
|
|
135
|
+
- [ChaosCypher Docker App](https://github.com/chaoscypherinc/chaoscypher)
|
|
136
|
+
- [ChaosCypher monorepo](https://github.com/chaoscypherinc/chaoscypher)
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
[build-system]
|
|
2
|
+
requires = ["setuptools>=82.0.0,<90", "wheel"]
|
|
3
|
+
build-backend = "setuptools.build_meta"
|
|
4
|
+
|
|
5
|
+
[project]
|
|
6
|
+
name = "chaoscypher-cli"
|
|
7
|
+
version = "0.1.0"
|
|
8
|
+
description = "Command-line tools for Chaos Cypher knowledge graph library"
|
|
9
|
+
readme = "README.md"
|
|
10
|
+
license = "AGPL-3.0-only"
|
|
11
|
+
authors = [
|
|
12
|
+
{name = "Denis MacPherson", email = "denis@chaoscypher.com"}
|
|
13
|
+
]
|
|
14
|
+
maintainers = [
|
|
15
|
+
{name = "Denis MacPherson", email = "denis@chaoscypher.com"}
|
|
16
|
+
]
|
|
17
|
+
keywords = [
|
|
18
|
+
"knowledge-graph",
|
|
19
|
+
"cli",
|
|
20
|
+
"command-line",
|
|
21
|
+
"chaoscypher"
|
|
22
|
+
]
|
|
23
|
+
classifiers = [
|
|
24
|
+
"Development Status :: 3 - Alpha",
|
|
25
|
+
"Intended Audience :: Developers",
|
|
26
|
+
"Programming Language :: Python :: 3",
|
|
27
|
+
"Programming Language :: Python :: 3.14",
|
|
28
|
+
"Environment :: Console",
|
|
29
|
+
"Topic :: Software Development :: Libraries :: Python Modules",
|
|
30
|
+
]
|
|
31
|
+
requires-python = ">=3.14"
|
|
32
|
+
dependencies = [
|
|
33
|
+
"chaoscypher-core>=0.1.0",
|
|
34
|
+
"click>=8.3.0,<9",
|
|
35
|
+
"rich>=15.0.0,<16",
|
|
36
|
+
"platformdirs>=4.9.0,<5",
|
|
37
|
+
"pyyaml>=6.0.3,<7",
|
|
38
|
+
"structlog>=25.5.0,<26",
|
|
39
|
+
"mcp>=1.27.0,<2",
|
|
40
|
+
"httpx>=0.28.0,<1",
|
|
41
|
+
]
|
|
42
|
+
|
|
43
|
+
[project.optional-dependencies]
|
|
44
|
+
server = [
|
|
45
|
+
"uvicorn>=0.44.0,<1",
|
|
46
|
+
"fastapi>=0.135.0,<1",
|
|
47
|
+
]
|
|
48
|
+
dev = [
|
|
49
|
+
"pytest>=9.0.0,<10",
|
|
50
|
+
"pytest-asyncio>=1.2.0,<2",
|
|
51
|
+
"pytest-cov>=7.1.0,<8",
|
|
52
|
+
"ruff>=0.15.0,<1",
|
|
53
|
+
"mypy>=1.20.0,<2",
|
|
54
|
+
]
|
|
55
|
+
|
|
56
|
+
[project.scripts]
|
|
57
|
+
chaoscypher = "chaoscypher_cli.__main__:main"
|
|
58
|
+
|
|
59
|
+
[project.urls]
|
|
60
|
+
Homepage = "https://github.com/chaoscypherinc/chaoscypher"
|
|
61
|
+
Documentation = "https://github.com/chaoscypherinc/chaoscypher#readme"
|
|
62
|
+
Repository = "https://github.com/chaoscypherinc/chaoscypher"
|
|
63
|
+
Issues = "https://github.com/chaoscypherinc/chaoscypher/issues"
|
|
64
|
+
|
|
65
|
+
[tool.setuptools.packages.find]
|
|
66
|
+
where = ["src"]
|
|
67
|
+
|
|
68
|
+
# Bundle benchmark datasets, corpora, and named configs as package data so
|
|
69
|
+
# they ship in the wheel - that's how `pip install chaoscypher-cli` users
|
|
70
|
+
# get the canonical leaderboard datasets without cloning the repo.
|
|
71
|
+
[tool.setuptools.package-data]
|
|
72
|
+
"chaoscypher_cli.benchmark" = [
|
|
73
|
+
"data/datasets/*/manifest.yaml",
|
|
74
|
+
"data/datasets/*/queries.yaml",
|
|
75
|
+
"data/datasets/*/*.txt",
|
|
76
|
+
"data/config/*.yaml",
|
|
77
|
+
]
|
|
78
|
+
|
|
79
|
+
# Linting configuration - inherits from root ruff.toml
|
|
80
|
+
|
|
81
|
+
[tool.mypy]
|
|
82
|
+
python_version = "3.14"
|
|
83
|
+
warn_return_any = true
|
|
84
|
+
warn_unused_configs = true
|
|
85
|
+
disallow_untyped_defs = false
|
|
86
|
+
|
|
87
|
+
[[tool.mypy.overrides]]
|
|
88
|
+
module = ["yaml", "yaml.*"]
|
|
89
|
+
ignore_missing_imports = true
|
|
90
|
+
|
|
91
|
+
[tool.pytest.ini_options]
|
|
92
|
+
asyncio_mode = "auto"
|
|
93
|
+
pythonpath = ["src"]
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
# Copyright (C) 2024-2026 Chaos Cypher, Inc.
|
|
2
|
+
# SPDX-License-Identifier: AGPL-3.0-only
|
|
3
|
+
|
|
4
|
+
"""Chaos Cypher CLI - Command-line tools for Chaos Cypher knowledge graph library.
|
|
5
|
+
|
|
6
|
+
This package provides a user-friendly command-line interface for:
|
|
7
|
+
- Managing knowledge graphs and databases
|
|
8
|
+
- Importing and exporting data
|
|
9
|
+
- Searching and querying graphs
|
|
10
|
+
- Viewing statistics and analytics
|
|
11
|
+
|
|
12
|
+
Example:
|
|
13
|
+
chaoscypher db create my-graph
|
|
14
|
+
chaoscypher source add documents/
|
|
15
|
+
chaoscypher source search "artificial intelligence"
|
|
16
|
+
"""
|
|
17
|
+
|
|
18
|
+
from importlib.metadata import PackageNotFoundError, version
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
try:
|
|
22
|
+
__version__ = version("chaoscypher-cli")
|
|
23
|
+
except PackageNotFoundError:
|
|
24
|
+
# Source-tree run without an installed dist (e.g. `python -m chaoscypher_cli`
|
|
25
|
+
# from a checkout that wasn't `uv sync`'d). Fall back to a sentinel so the
|
|
26
|
+
# CLI still launches.
|
|
27
|
+
__version__ = "0.0.0+unknown"
|
|
28
|
+
|
|
29
|
+
__author__ = "Denis MacPherson"
|
|
30
|
+
__license__ = "AGPL-3.0-only"
|
|
31
|
+
|
|
32
|
+
__all__ = ["__version__"]
|