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.
Files changed (192) hide show
  1. chaoscypher_cli-0.1.0/PKG-INFO +174 -0
  2. chaoscypher_cli-0.1.0/README.md +136 -0
  3. chaoscypher_cli-0.1.0/pyproject.toml +93 -0
  4. chaoscypher_cli-0.1.0/setup.cfg +4 -0
  5. chaoscypher_cli-0.1.0/src/chaoscypher_cli/__init__.py +32 -0
  6. chaoscypher_cli-0.1.0/src/chaoscypher_cli/__main__.py +483 -0
  7. chaoscypher_cli-0.1.0/src/chaoscypher_cli/benchmark/__init__.py +90 -0
  8. chaoscypher_cli-0.1.0/src/chaoscypher_cli/benchmark/chat_dataset.py +242 -0
  9. chaoscypher_cli-0.1.0/src/chaoscypher_cli/benchmark/config.py +302 -0
  10. chaoscypher_cli-0.1.0/src/chaoscypher_cli/benchmark/data/config/extraction.yaml +54 -0
  11. chaoscypher_cli-0.1.0/src/chaoscypher_cli/benchmark/data/config/full.yaml +45 -0
  12. chaoscypher_cli-0.1.0/src/chaoscypher_cli/benchmark/data/config/quick.yaml +26 -0
  13. chaoscypher_cli-0.1.0/src/chaoscypher_cli/benchmark/data/datasets/scientific_methods_tiny/manifest.yaml +8 -0
  14. chaoscypher_cli-0.1.0/src/chaoscypher_cli/benchmark/data/datasets/scientific_methods_tiny/scientific_methods_tiny.txt +106 -0
  15. chaoscypher_cli-0.1.0/src/chaoscypher_cli/benchmark/data/datasets/tech_encyclopedia_tiny/manifest.yaml +9 -0
  16. chaoscypher_cli-0.1.0/src/chaoscypher_cli/benchmark/data/datasets/tech_encyclopedia_tiny/queries.yaml +428 -0
  17. chaoscypher_cli-0.1.0/src/chaoscypher_cli/benchmark/data/datasets/tech_encyclopedia_tiny/tech_encyclopedia_tiny.txt +98 -0
  18. chaoscypher_cli-0.1.0/src/chaoscypher_cli/benchmark/data/datasets/war_and_peace_tiny/manifest.yaml +8 -0
  19. chaoscypher_cli-0.1.0/src/chaoscypher_cli/benchmark/data/datasets/war_and_peace_tiny/war_and_peace_tiny.txt +212 -0
  20. chaoscypher_cli-0.1.0/src/chaoscypher_cli/benchmark/dataset.py +86 -0
  21. chaoscypher_cli-0.1.0/src/chaoscypher_cli/benchmark/discovery.py +269 -0
  22. chaoscypher_cli-0.1.0/src/chaoscypher_cli/benchmark/embedding_dataset.py +197 -0
  23. chaoscypher_cli-0.1.0/src/chaoscypher_cli/benchmark/extraction_dataset.py +349 -0
  24. chaoscypher_cli-0.1.0/src/chaoscypher_cli/benchmark/graph_cache.py +147 -0
  25. chaoscypher_cli-0.1.0/src/chaoscypher_cli/benchmark/graph_provider.py +107 -0
  26. chaoscypher_cli-0.1.0/src/chaoscypher_cli/benchmark/judge_prompts.py +75 -0
  27. chaoscypher_cli-0.1.0/src/chaoscypher_cli/benchmark/leaderboard.py +293 -0
  28. chaoscypher_cli-0.1.0/src/chaoscypher_cli/benchmark/models.py +95 -0
  29. chaoscypher_cli-0.1.0/src/chaoscypher_cli/benchmark/orchestrator.py +407 -0
  30. chaoscypher_cli-0.1.0/src/chaoscypher_cli/benchmark/queries.py +141 -0
  31. chaoscypher_cli-0.1.0/src/chaoscypher_cli/benchmark/results.py +118 -0
  32. chaoscypher_cli-0.1.0/src/chaoscypher_cli/benchmark/runner.py +191 -0
  33. chaoscypher_cli-0.1.0/src/chaoscypher_cli/benchmark/scorers/__init__.py +11 -0
  34. chaoscypher_cli-0.1.0/src/chaoscypher_cli/benchmark/scorers/chat.py +107 -0
  35. chaoscypher_cli-0.1.0/src/chaoscypher_cli/benchmark/scorers/embedding.py +101 -0
  36. chaoscypher_cli-0.1.0/src/chaoscypher_cli/benchmark/scorers/v7.py +70 -0
  37. chaoscypher_cli-0.1.0/src/chaoscypher_cli/commands/__init__.py +36 -0
  38. chaoscypher_cli-0.1.0/src/chaoscypher_cli/commands/benchmark/__init__.py +29 -0
  39. chaoscypher_cli-0.1.0/src/chaoscypher_cli/commands/benchmark/fixture.py +95 -0
  40. chaoscypher_cli-0.1.0/src/chaoscypher_cli/commands/benchmark/init.py +73 -0
  41. chaoscypher_cli-0.1.0/src/chaoscypher_cli/commands/benchmark/list.py +65 -0
  42. chaoscypher_cli-0.1.0/src/chaoscypher_cli/commands/benchmark/run.py +261 -0
  43. chaoscypher_cli-0.1.0/src/chaoscypher_cli/commands/benchmark/show.py +37 -0
  44. chaoscypher_cli-0.1.0/src/chaoscypher_cli/commands/chat.py +805 -0
  45. chaoscypher_cli-0.1.0/src/chaoscypher_cli/commands/completions.py +251 -0
  46. chaoscypher_cli-0.1.0/src/chaoscypher_cli/commands/compose/__init__.py +45 -0
  47. chaoscypher_cli-0.1.0/src/chaoscypher_cli/commands/compose/build.py +123 -0
  48. chaoscypher_cli-0.1.0/src/chaoscypher_cli/commands/compose/down.py +67 -0
  49. chaoscypher_cli-0.1.0/src/chaoscypher_cli/commands/compose/run.py +76 -0
  50. chaoscypher_cli-0.1.0/src/chaoscypher_cli/commands/compose/up.py +142 -0
  51. chaoscypher_cli-0.1.0/src/chaoscypher_cli/commands/config_cmd.py +387 -0
  52. chaoscypher_cli-0.1.0/src/chaoscypher_cli/commands/db/__init__.py +52 -0
  53. chaoscypher_cli-0.1.0/src/chaoscypher_cli/commands/db/create.py +77 -0
  54. chaoscypher_cli-0.1.0/src/chaoscypher_cli/commands/db/current.py +51 -0
  55. chaoscypher_cli-0.1.0/src/chaoscypher_cli/commands/db/delete.py +74 -0
  56. chaoscypher_cli-0.1.0/src/chaoscypher_cli/commands/db/info.py +86 -0
  57. chaoscypher_cli-0.1.0/src/chaoscypher_cli/commands/db/list.py +128 -0
  58. chaoscypher_cli-0.1.0/src/chaoscypher_cli/commands/db/migrate.py +202 -0
  59. chaoscypher_cli-0.1.0/src/chaoscypher_cli/commands/db/switch.py +47 -0
  60. chaoscypher_cli-0.1.0/src/chaoscypher_cli/commands/diagnostics.py +91 -0
  61. chaoscypher_cli-0.1.0/src/chaoscypher_cli/commands/doctor.py +303 -0
  62. chaoscypher_cli-0.1.0/src/chaoscypher_cli/commands/graph/__init__.py +33 -0
  63. chaoscypher_cli-0.1.0/src/chaoscypher_cli/commands/health.py +214 -0
  64. chaoscypher_cli-0.1.0/src/chaoscypher_cli/commands/lexicon/__init__.py +37 -0
  65. chaoscypher_cli-0.1.0/src/chaoscypher_cli/commands/lexicon/info.py +167 -0
  66. chaoscypher_cli-0.1.0/src/chaoscypher_cli/commands/lexicon/list.py +96 -0
  67. chaoscypher_cli-0.1.0/src/chaoscypher_cli/commands/lexicon/login.py +312 -0
  68. chaoscypher_cli-0.1.0/src/chaoscypher_cli/commands/lexicon/pull.py +142 -0
  69. chaoscypher_cli-0.1.0/src/chaoscypher_cli/commands/lexicon/push.py +153 -0
  70. chaoscypher_cli-0.1.0/src/chaoscypher_cli/commands/lexicon/remove.py +121 -0
  71. chaoscypher_cli-0.1.0/src/chaoscypher_cli/commands/lexicon/search.py +137 -0
  72. chaoscypher_cli-0.1.0/src/chaoscypher_cli/commands/link/__init__.py +48 -0
  73. chaoscypher_cli-0.1.0/src/chaoscypher_cli/commands/link/create.py +102 -0
  74. chaoscypher_cli-0.1.0/src/chaoscypher_cli/commands/link/delete.py +108 -0
  75. chaoscypher_cli-0.1.0/src/chaoscypher_cli/commands/link/get.py +117 -0
  76. chaoscypher_cli-0.1.0/src/chaoscypher_cli/commands/link/list.py +144 -0
  77. chaoscypher_cli-0.1.0/src/chaoscypher_cli/commands/link/update.py +113 -0
  78. chaoscypher_cli-0.1.0/src/chaoscypher_cli/commands/node/__init__.py +45 -0
  79. chaoscypher_cli-0.1.0/src/chaoscypher_cli/commands/node/create.py +147 -0
  80. chaoscypher_cli-0.1.0/src/chaoscypher_cli/commands/node/delete.py +130 -0
  81. chaoscypher_cli-0.1.0/src/chaoscypher_cli/commands/node/get.py +153 -0
  82. chaoscypher_cli-0.1.0/src/chaoscypher_cli/commands/node/list.py +146 -0
  83. chaoscypher_cli-0.1.0/src/chaoscypher_cli/commands/node/update.py +106 -0
  84. chaoscypher_cli-0.1.0/src/chaoscypher_cli/commands/package/__init__.py +33 -0
  85. chaoscypher_cli-0.1.0/src/chaoscypher_cli/commands/package/export.py +175 -0
  86. chaoscypher_cli-0.1.0/src/chaoscypher_cli/commands/package/load.py +161 -0
  87. chaoscypher_cli-0.1.0/src/chaoscypher_cli/commands/quality/__init__.py +41 -0
  88. chaoscypher_cli-0.1.0/src/chaoscypher_cli/commands/quality/analyze.py +224 -0
  89. chaoscypher_cli-0.1.0/src/chaoscypher_cli/commands/quality/recalculate.py +159 -0
  90. chaoscypher_cli-0.1.0/src/chaoscypher_cli/commands/quality/report.py +285 -0
  91. chaoscypher_cli-0.1.0/src/chaoscypher_cli/commands/quality/score.py +323 -0
  92. chaoscypher_cli-0.1.0/src/chaoscypher_cli/commands/quality/utils.py +58 -0
  93. chaoscypher_cli-0.1.0/src/chaoscypher_cli/commands/render_orchestration.py +64 -0
  94. chaoscypher_cli-0.1.0/src/chaoscypher_cli/commands/runtime/__init__.py +13 -0
  95. chaoscypher_cli-0.1.0/src/chaoscypher_cli/commands/runtime/serve.py +247 -0
  96. chaoscypher_cli-0.1.0/src/chaoscypher_cli/commands/setup.py +1068 -0
  97. chaoscypher_cli-0.1.0/src/chaoscypher_cli/commands/source/__init__.py +122 -0
  98. chaoscypher_cli-0.1.0/src/chaoscypher_cli/commands/source/add.py +592 -0
  99. chaoscypher_cli-0.1.0/src/chaoscypher_cli/commands/source/confirm.py +238 -0
  100. chaoscypher_cli-0.1.0/src/chaoscypher_cli/commands/source/delete.py +59 -0
  101. chaoscypher_cli-0.1.0/src/chaoscypher_cli/commands/source/extract.py +314 -0
  102. chaoscypher_cli-0.1.0/src/chaoscypher_cli/commands/source/get.py +503 -0
  103. chaoscypher_cli-0.1.0/src/chaoscypher_cli/commands/source/list.py +160 -0
  104. chaoscypher_cli-0.1.0/src/chaoscypher_cli/commands/source/rebuild_search.py +96 -0
  105. chaoscypher_cli-0.1.0/src/chaoscypher_cli/commands/source/search.py +270 -0
  106. chaoscypher_cli-0.1.0/src/chaoscypher_cli/commands/template/__init__.py +48 -0
  107. chaoscypher_cli-0.1.0/src/chaoscypher_cli/commands/template/create.py +154 -0
  108. chaoscypher_cli-0.1.0/src/chaoscypher_cli/commands/template/delete.py +74 -0
  109. chaoscypher_cli-0.1.0/src/chaoscypher_cli/commands/template/get.py +135 -0
  110. chaoscypher_cli-0.1.0/src/chaoscypher_cli/commands/template/list.py +127 -0
  111. chaoscypher_cli-0.1.0/src/chaoscypher_cli/commands/template/update.py +144 -0
  112. chaoscypher_cli-0.1.0/src/chaoscypher_cli/commands/template/utils.py +50 -0
  113. chaoscypher_cli-0.1.0/src/chaoscypher_cli/commands/upgrade.py +58 -0
  114. chaoscypher_cli-0.1.0/src/chaoscypher_cli/commands/workflow/__init__.py +31 -0
  115. chaoscypher_cli-0.1.0/src/chaoscypher_cli/commands/workflow/get.py +148 -0
  116. chaoscypher_cli-0.1.0/src/chaoscypher_cli/commands/workflow/list.py +120 -0
  117. chaoscypher_cli-0.1.0/src/chaoscypher_cli/context.py +678 -0
  118. chaoscypher_cli-0.1.0/src/chaoscypher_cli/engine_config.py +96 -0
  119. chaoscypher_cli-0.1.0/src/chaoscypher_cli/lazy.py +195 -0
  120. chaoscypher_cli-0.1.0/src/chaoscypher_cli/mcp/__init__.py +9 -0
  121. chaoscypher_cli-0.1.0/src/chaoscypher_cli/mcp/command.py +143 -0
  122. chaoscypher_cli-0.1.0/src/chaoscypher_cli/py.typed +0 -0
  123. chaoscypher_cli-0.1.0/src/chaoscypher_cli/sources/__init__.py +36 -0
  124. chaoscypher_cli-0.1.0/src/chaoscypher_cli/sources/domains.py +39 -0
  125. chaoscypher_cli-0.1.0/src/chaoscypher_cli/sources/pipeline.py +1337 -0
  126. chaoscypher_cli-0.1.0/src/chaoscypher_cli/sources/service.py +1734 -0
  127. chaoscypher_cli-0.1.0/src/chaoscypher_cli/utils/__init__.py +92 -0
  128. chaoscypher_cli-0.1.0/src/chaoscypher_cli/utils/console.py +88 -0
  129. chaoscypher_cli-0.1.0/src/chaoscypher_cli/utils/display.py +50 -0
  130. chaoscypher_cli-0.1.0/src/chaoscypher_cli/utils/files.py +123 -0
  131. chaoscypher_cli-0.1.0/src/chaoscypher_cli/utils/llm_check.py +165 -0
  132. chaoscypher_cli-0.1.0/src/chaoscypher_cli/utils/paths.py +120 -0
  133. chaoscypher_cli-0.1.0/src/chaoscypher_cli.egg-info/PKG-INFO +174 -0
  134. chaoscypher_cli-0.1.0/src/chaoscypher_cli.egg-info/SOURCES.txt +190 -0
  135. chaoscypher_cli-0.1.0/src/chaoscypher_cli.egg-info/dependency_links.txt +1 -0
  136. chaoscypher_cli-0.1.0/src/chaoscypher_cli.egg-info/entry_points.txt +2 -0
  137. chaoscypher_cli-0.1.0/src/chaoscypher_cli.egg-info/requires.txt +19 -0
  138. chaoscypher_cli-0.1.0/src/chaoscypher_cli.egg-info/top_level.txt +1 -0
  139. chaoscypher_cli-0.1.0/tests/test_cli_plumbing.py +617 -0
  140. chaoscypher_cli-0.1.0/tests/test_cmd_chat.py +1091 -0
  141. chaoscypher_cli-0.1.0/tests/test_cmd_completions.py +442 -0
  142. chaoscypher_cli-0.1.0/tests/test_cmd_compose.py +1011 -0
  143. chaoscypher_cli-0.1.0/tests/test_cmd_config.py +235 -0
  144. chaoscypher_cli-0.1.0/tests/test_cmd_db.py +704 -0
  145. chaoscypher_cli-0.1.0/tests/test_cmd_db_migrate.py +434 -0
  146. chaoscypher_cli-0.1.0/tests/test_cmd_diagnostics.py +241 -0
  147. chaoscypher_cli-0.1.0/tests/test_cmd_doctor_more.py +415 -0
  148. chaoscypher_cli-0.1.0/tests/test_cmd_health.py +535 -0
  149. chaoscypher_cli-0.1.0/tests/test_cmd_lexicon_info.py +396 -0
  150. chaoscypher_cli-0.1.0/tests/test_cmd_lexicon_login.py +549 -0
  151. chaoscypher_cli-0.1.0/tests/test_cmd_lexicon_sync.py +1101 -0
  152. chaoscypher_cli-0.1.0/tests/test_cmd_link.py +948 -0
  153. chaoscypher_cli-0.1.0/tests/test_cmd_node.py +1033 -0
  154. chaoscypher_cli-0.1.0/tests/test_cmd_quality_analyze.py +898 -0
  155. chaoscypher_cli-0.1.0/tests/test_cmd_quality_report.py +783 -0
  156. chaoscypher_cli-0.1.0/tests/test_cmd_quality_score.py +678 -0
  157. chaoscypher_cli-0.1.0/tests/test_cmd_serve_package.py +1271 -0
  158. chaoscypher_cli-0.1.0/tests/test_cmd_setup.py +1326 -0
  159. chaoscypher_cli-0.1.0/tests/test_cmd_source_add.py +781 -0
  160. chaoscypher_cli-0.1.0/tests/test_cmd_source_extract_confirm_topup.py +726 -0
  161. chaoscypher_cli-0.1.0/tests/test_cmd_source_get.py +667 -0
  162. chaoscypher_cli-0.1.0/tests/test_cmd_source_misc.py +853 -0
  163. chaoscypher_cli-0.1.0/tests/test_cmd_template.py +736 -0
  164. chaoscypher_cli-0.1.0/tests/test_cmd_workflow.py +628 -0
  165. chaoscypher_cli-0.1.0/tests/test_commit_extraction_results_plumbing.py +73 -0
  166. chaoscypher_cli-0.1.0/tests/test_context.py +801 -0
  167. chaoscypher_cli-0.1.0/tests/test_database_flag_resolution.py +100 -0
  168. chaoscypher_cli-0.1.0/tests/test_doctor.py +306 -0
  169. chaoscypher_cli-0.1.0/tests/test_engine_config.py +50 -0
  170. chaoscypher_cli-0.1.0/tests/test_first_run_gate.py +201 -0
  171. chaoscypher_cli-0.1.0/tests/test_help_text_consistency.py +219 -0
  172. chaoscypher_cli-0.1.0/tests/test_index_normalization_parity.py +188 -0
  173. chaoscypher_cli-0.1.0/tests/test_llm_metrics_and_quality_counters.py +499 -0
  174. chaoscypher_cli-0.1.0/tests/test_mcp_maintenance_routing.py +113 -0
  175. chaoscypher_cli-0.1.0/tests/test_package_export_empty_combo.py +44 -0
  176. chaoscypher_cli-0.1.0/tests/test_source_add_gate.py +147 -0
  177. chaoscypher_cli-0.1.0/tests/test_source_add_skip_duplicates.py +359 -0
  178. chaoscypher_cli-0.1.0/tests/test_source_confirm.py +141 -0
  179. chaoscypher_cli-0.1.0/tests/test_source_detect_prestep.py +94 -0
  180. chaoscypher_cli-0.1.0/tests/test_source_domains_constant.py +57 -0
  181. chaoscypher_cli-0.1.0/tests/test_source_extract.py +573 -0
  182. chaoscypher_cli-0.1.0/tests/test_source_get_domain.py +29 -0
  183. chaoscypher_cli-0.1.0/tests/test_source_get_stage_progress.py +80 -0
  184. chaoscypher_cli-0.1.0/tests/test_source_list_awaiting.py +52 -0
  185. chaoscypher_cli-0.1.0/tests/test_source_pipeline.py +357 -0
  186. chaoscypher_cli-0.1.0/tests/test_source_service.py +316 -0
  187. chaoscypher_cli-0.1.0/tests/test_sources_pipeline_more.py +1123 -0
  188. chaoscypher_cli-0.1.0/tests/test_sources_service_more.py +1557 -0
  189. chaoscypher_cli-0.1.0/tests/test_upgrade_command.py +97 -0
  190. chaoscypher_cli-0.1.0/tests/test_upgrade_guard.py +266 -0
  191. chaoscypher_cli-0.1.0/tests/test_utils_cli.py +891 -0
  192. 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,4 @@
1
+ [egg_info]
2
+ tag_build =
3
+ tag_date = 0
4
+
@@ -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__"]