deepcell-cli 0.6.3__tar.gz → 0.7.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 (112) hide show
  1. {deepcell_cli-0.6.3 → deepcell_cli-0.7.0}/PKG-INFO +25 -1
  2. {deepcell_cli-0.6.3 → deepcell_cli-0.7.0}/README.md +24 -0
  3. {deepcell_cli-0.6.3 → deepcell_cli-0.7.0}/pyproject.toml +1 -1
  4. {deepcell_cli-0.6.3 → deepcell_cli-0.7.0}/src/deepcell_cli/__init__.py +1 -1
  5. {deepcell_cli-0.6.3 → deepcell_cli-0.7.0}/src/deepcell_cli/capabilities.py +23 -1
  6. {deepcell_cli-0.6.3 → deepcell_cli-0.7.0}/src/deepcell_cli/capability-contract.json +287 -80
  7. {deepcell_cli-0.6.3 → deepcell_cli-0.7.0}/src/deepcell_cli/client.py +79 -3
  8. deepcell_cli-0.7.0/src/deepcell_cli/commands/_defs_warnings.py +147 -0
  9. {deepcell_cli-0.6.3 → deepcell_cli-0.7.0}/src/deepcell_cli/commands/changes.py +1 -1
  10. {deepcell_cli-0.6.3 → deepcell_cli-0.7.0}/src/deepcell_cli/commands/deck.py +42 -29
  11. {deepcell_cli-0.6.3 → deepcell_cli-0.7.0}/src/deepcell_cli/commands/defs.py +135 -107
  12. {deepcell_cli-0.6.3 → deepcell_cli-0.7.0}/src/deepcell_cli/commands/describe.py +49 -8
  13. {deepcell_cli-0.6.3 → deepcell_cli-0.7.0}/src/deepcell_cli/commands/doc.py +100 -4
  14. {deepcell_cli-0.6.3 → deepcell_cli-0.7.0}/src/deepcell_cli/commands/edit.py +3 -3
  15. {deepcell_cli-0.6.3 → deepcell_cli-0.7.0}/src/deepcell_cli/commands/example.py +1 -1
  16. {deepcell_cli-0.6.3 → deepcell_cli-0.7.0}/src/deepcell_cli/commands/export.py +48 -8
  17. {deepcell_cli-0.6.3 → deepcell_cli-0.7.0}/src/deepcell_cli/commands/export_docx.py +1 -1
  18. {deepcell_cli-0.6.3 → deepcell_cli-0.7.0}/src/deepcell_cli/commands/export_pdf.py +1 -4
  19. {deepcell_cli-0.6.3 → deepcell_cli-0.7.0}/src/deepcell_cli/commands/export_pptx.py +1 -1
  20. {deepcell_cli-0.6.3 → deepcell_cli-0.7.0}/src/deepcell_cli/commands/files.py +3 -3
  21. {deepcell_cli-0.6.3 → deepcell_cli-0.7.0}/src/deepcell_cli/commands/import_cmd.py +160 -1
  22. {deepcell_cli-0.6.3 → deepcell_cli-0.7.0}/src/deepcell_cli/commands/query.py +3 -0
  23. {deepcell_cli-0.6.3 → deepcell_cli-0.7.0}/src/deepcell_cli/commands/reasoning.py +66 -61
  24. {deepcell_cli-0.6.3 → deepcell_cli-0.7.0}/src/deepcell_cli/commands/ref.py +27 -3
  25. {deepcell_cli-0.6.3 → deepcell_cli-0.7.0}/src/deepcell_cli/commands/replace.py +2 -2
  26. {deepcell_cli-0.6.3 → deepcell_cli-0.7.0}/src/deepcell_cli/commands/share.py +1 -1
  27. {deepcell_cli-0.6.3 → deepcell_cli-0.7.0}/src/deepcell_cli/commands/sync.py +5 -5
  28. {deepcell_cli-0.6.3 → deepcell_cli-0.7.0}/src/deepcell_cli/commands/upgrade.py +5 -0
  29. {deepcell_cli-0.6.3 → deepcell_cli-0.7.0}/src/deepcell_cli/commands/version.py +3 -3
  30. {deepcell_cli-0.6.3 → deepcell_cli-0.7.0}/src/deepcell_cli/commands/workspace.py +1 -1
  31. {deepcell_cli-0.6.3 → deepcell_cli-0.7.0}/src/deepcell_cli/main.py +2 -1
  32. {deepcell_cli-0.6.3 → deepcell_cli-0.7.0}/src/deepcell_cli/mcp_server.py +127 -5
  33. {deepcell_cli-0.6.3 → deepcell_cli-0.7.0}/src/deepcell_cli/output.py +94 -28
  34. {deepcell_cli-0.6.3 → deepcell_cli-0.7.0}/src/deepcell_cli/stages.py +3 -2
  35. {deepcell_cli-0.6.3 → deepcell_cli-0.7.0}/src/deepcell_cli.egg-info/PKG-INFO +25 -1
  36. {deepcell_cli-0.6.3 → deepcell_cli-0.7.0}/src/deepcell_cli.egg-info/SOURCES.txt +2 -0
  37. {deepcell_cli-0.6.3 → deepcell_cli-0.7.0}/tests/test_client.py +112 -0
  38. {deepcell_cli-0.6.3 → deepcell_cli-0.7.0}/tests/test_deck_op_shape.py +58 -30
  39. {deepcell_cli-0.6.3 → deepcell_cli-0.7.0}/tests/test_mcp_server.py +137 -2
  40. deepcell_cli-0.7.0/tests/test_output_export_notes.py +206 -0
  41. {deepcell_cli-0.6.3 → deepcell_cli-0.7.0}/tests/test_reasoning_commands.py +25 -5
  42. deepcell_cli-0.7.0/tests/test_warning_literals.py +162 -0
  43. {deepcell_cli-0.6.3 → deepcell_cli-0.7.0}/tests/test_write_message_rule.py +2 -2
  44. deepcell_cli-0.6.3/tests/test_output_export_notes.py +0 -90
  45. {deepcell_cli-0.6.3 → deepcell_cli-0.7.0}/setup.cfg +0 -0
  46. {deepcell_cli-0.6.3 → deepcell_cli-0.7.0}/src/deepcell_cli/__main__.py +0 -0
  47. {deepcell_cli-0.6.3 → deepcell_cli-0.7.0}/src/deepcell_cli/_findings.py +0 -0
  48. {deepcell_cli-0.6.3 → deepcell_cli-0.7.0}/src/deepcell_cli/commands/__init__.py +0 -0
  49. {deepcell_cli-0.6.3 → deepcell_cli-0.7.0}/src/deepcell_cli/commands/_batch_input.py +0 -0
  50. {deepcell_cli-0.6.3 → deepcell_cli-0.7.0}/src/deepcell_cli/commands/_datatypes.py +0 -0
  51. {deepcell_cli-0.6.3 → deepcell_cli-0.7.0}/src/deepcell_cli/commands/_negative_args.py +0 -0
  52. {deepcell_cli-0.6.3 → deepcell_cli-0.7.0}/src/deepcell_cli/commands/_swapped_args.py +0 -0
  53. {deepcell_cli-0.6.3 → deepcell_cli-0.7.0}/src/deepcell_cli/commands/_version_display.py +0 -0
  54. {deepcell_cli-0.6.3 → deepcell_cli-0.7.0}/src/deepcell_cli/commands/_write_opts.py +0 -0
  55. {deepcell_cli-0.6.3 → deepcell_cli-0.7.0}/src/deepcell_cli/commands/account.py +0 -0
  56. {deepcell_cli-0.6.3 → deepcell_cli-0.7.0}/src/deepcell_cli/commands/auth.py +0 -0
  57. {deepcell_cli-0.6.3 → deepcell_cli-0.7.0}/src/deepcell_cli/commands/doctor.py +0 -0
  58. {deepcell_cli-0.6.3 → deepcell_cli-0.7.0}/src/deepcell_cli/commands/download.py +0 -0
  59. {deepcell_cli-0.6.3 → deepcell_cli-0.7.0}/src/deepcell_cli/commands/grep.py +0 -0
  60. {deepcell_cli-0.6.3 → deepcell_cli-0.7.0}/src/deepcell_cli/commands/guide.py +0 -0
  61. {deepcell_cli-0.6.3 → deepcell_cli-0.7.0}/src/deepcell_cli/commands/help_cmd.py +0 -0
  62. {deepcell_cli-0.6.3 → deepcell_cli-0.7.0}/src/deepcell_cli/commands/impact.py +0 -0
  63. {deepcell_cli-0.6.3 → deepcell_cli-0.7.0}/src/deepcell_cli/commands/ingest.py +0 -0
  64. {deepcell_cli-0.6.3 → deepcell_cli-0.7.0}/src/deepcell_cli/commands/merge.py +0 -0
  65. {deepcell_cli-0.6.3 → deepcell_cli-0.7.0}/src/deepcell_cli/commands/rules.py +0 -0
  66. {deepcell_cli-0.6.3 → deepcell_cli-0.7.0}/src/deepcell_cli/commands/variant.py +0 -0
  67. {deepcell_cli-0.6.3 → deepcell_cli-0.7.0}/src/deepcell_cli/commands/viewer.py +0 -0
  68. {deepcell_cli-0.6.3 → deepcell_cli-0.7.0}/src/deepcell_cli/config.py +0 -0
  69. {deepcell_cli-0.6.3 → deepcell_cli-0.7.0}/src/deepcell_cli/context.py +0 -0
  70. {deepcell_cli-0.6.3 → deepcell_cli-0.7.0}/src/deepcell_cli/errors.py +0 -0
  71. {deepcell_cli-0.6.3 → deepcell_cli-0.7.0}/src/deepcell_cli/logging_setup.py +0 -0
  72. {deepcell_cli-0.6.3 → deepcell_cli-0.7.0}/src/deepcell_cli/oauth_provider.py +0 -0
  73. {deepcell_cli-0.6.3 → deepcell_cli-0.7.0}/src/deepcell_cli/revision.py +0 -0
  74. {deepcell_cli-0.6.3 → deepcell_cli-0.7.0}/src/deepcell_cli/surface.py +0 -0
  75. {deepcell_cli-0.6.3 → deepcell_cli-0.7.0}/src/deepcell_cli/sync_state.py +0 -0
  76. {deepcell_cli-0.6.3 → deepcell_cli-0.7.0}/src/deepcell_cli/upgrade_check.py +0 -0
  77. {deepcell_cli-0.6.3 → deepcell_cli-0.7.0}/src/deepcell_cli/xml_replace.py +0 -0
  78. {deepcell_cli-0.6.3 → deepcell_cli-0.7.0}/src/deepcell_cli.egg-info/dependency_links.txt +0 -0
  79. {deepcell_cli-0.6.3 → deepcell_cli-0.7.0}/src/deepcell_cli.egg-info/entry_points.txt +0 -0
  80. {deepcell_cli-0.6.3 → deepcell_cli-0.7.0}/src/deepcell_cli.egg-info/requires.txt +0 -0
  81. {deepcell_cli-0.6.3 → deepcell_cli-0.7.0}/src/deepcell_cli.egg-info/top_level.txt +0 -0
  82. {deepcell_cli-0.6.3 → deepcell_cli-0.7.0}/tests/test_anon.py +0 -0
  83. {deepcell_cli-0.6.3 → deepcell_cli-0.7.0}/tests/test_claim_strength.py +0 -0
  84. {deepcell_cli-0.6.3 → deepcell_cli-0.7.0}/tests/test_client_surface_header.py +0 -0
  85. {deepcell_cli-0.6.3 → deepcell_cli-0.7.0}/tests/test_config.py +0 -0
  86. {deepcell_cli-0.6.3 → deepcell_cli-0.7.0}/tests/test_conflict_reason.py +0 -0
  87. {deepcell_cli-0.6.3 → deepcell_cli-0.7.0}/tests/test_deck_help_contract.py +0 -0
  88. {deepcell_cli-0.6.3 → deepcell_cli-0.7.0}/tests/test_docs_catalog.py +0 -0
  89. {deepcell_cli-0.6.3 → deepcell_cli-0.7.0}/tests/test_doctor.py +0 -0
  90. {deepcell_cli-0.6.3 → deepcell_cli-0.7.0}/tests/test_download.py +0 -0
  91. {deepcell_cli-0.6.3 → deepcell_cli-0.7.0}/tests/test_findings_provenance.py +0 -0
  92. {deepcell_cli-0.6.3 → deepcell_cli-0.7.0}/tests/test_guide_eval_a4_a7.py +0 -0
  93. {deepcell_cli-0.6.3 → deepcell_cli-0.7.0}/tests/test_guide_flag_drift.py +0 -0
  94. {deepcell_cli-0.6.3 → deepcell_cli-0.7.0}/tests/test_help_flag_drift.py +0 -0
  95. {deepcell_cli-0.6.3 → deepcell_cli-0.7.0}/tests/test_impact_commands.py +0 -0
  96. {deepcell_cli-0.6.3 → deepcell_cli-0.7.0}/tests/test_ingest_command.py +0 -0
  97. {deepcell_cli-0.6.3 → deepcell_cli-0.7.0}/tests/test_logging_setup.py +0 -0
  98. {deepcell_cli-0.6.3 → deepcell_cli-0.7.0}/tests/test_mcp_auth.py +0 -0
  99. {deepcell_cli-0.6.3 → deepcell_cli-0.7.0}/tests/test_op_reachability.py +0 -0
  100. {deepcell_cli-0.6.3 → deepcell_cli-0.7.0}/tests/test_openapi_route_parity.py +0 -0
  101. {deepcell_cli-0.6.3 → deepcell_cli-0.7.0}/tests/test_output_keeps_the_answer.py +0 -0
  102. {deepcell_cli-0.6.3 → deepcell_cli-0.7.0}/tests/test_reasoning_diff_command.py +0 -0
  103. {deepcell_cli-0.6.3 → deepcell_cli-0.7.0}/tests/test_ref_flag_drift.py +0 -0
  104. {deepcell_cli-0.6.3 → deepcell_cli-0.7.0}/tests/test_round6_signal_regressions.py +0 -0
  105. {deepcell_cli-0.6.3 → deepcell_cli-0.7.0}/tests/test_search_reach.py +0 -0
  106. {deepcell_cli-0.6.3 → deepcell_cli-0.7.0}/tests/test_shed_retry.py +0 -0
  107. {deepcell_cli-0.6.3 → deepcell_cli-0.7.0}/tests/test_stages.py +0 -0
  108. {deepcell_cli-0.6.3 → deepcell_cli-0.7.0}/tests/test_surface_examples.py +0 -0
  109. {deepcell_cli-0.6.3 → deepcell_cli-0.7.0}/tests/test_surface_walker.py +0 -0
  110. {deepcell_cli-0.6.3 → deepcell_cli-0.7.0}/tests/test_upgrade_check.py +0 -0
  111. {deepcell_cli-0.6.3 → deepcell_cli-0.7.0}/tests/test_version_parity.py +0 -0
  112. {deepcell_cli-0.6.3 → deepcell_cli-0.7.0}/tests/test_xml_replace.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: deepcell-cli
3
- Version: 0.6.3
3
+ Version: 0.7.0
4
4
  Summary: Build and revise .deepcell documents from a terminal — the reasoning, the calculations, the document and the deck, with the links between them
5
5
  Author-email: DeepCell <hello@deepcell.net>
6
6
  License-Expression: MIT
@@ -71,6 +71,30 @@ landed in a directory that is off `PATH` — not that the install failed. Re-run
71
71
  the installer above, which fixes exactly that; or use `python3 -m deepcell_cli`
72
72
  (`python -m` on Windows), which is the same CLI with no `PATH` involved.
73
73
 
74
+ More generally, a bare `deepcell` failing is not "not installed". It means one
75
+ of four things, and only one is fixed by installing: nothing is installed; a
76
+ copy exists in a directory that is off `PATH`; a copy exists and the host — a
77
+ sandbox, a policy — refuses to execute it; a copy exists, runs, and is behind.
78
+ The installer tells them apart: it looks on `PATH` *and* where an install
79
+ lands, runs what it finds by absolute path, keeps a current copy, upgrades an
80
+ outdated one, puts an off-`PATH` one on `PATH`, and refuses to reinstall one
81
+ the host will not run (reinstalling would not change that). Its last line on
82
+ stderr is one a script reads —
83
+ `deepcell-install: state=<state> version=<version> dir=<directory>` — where
84
+ `state` is `installed`, `upgraded`, `reinstalled`, `installed-current`,
85
+ `installed-unknown` (it runs; the package index could not be reached),
86
+ `installed-blocked` (exit 3) or `failed`. An upgrade goes through the tool
87
+ that owns the copy — uv when `uv tool list` names it, else pip. stdout is
88
+ still just the directory.
89
+ `DEEPCELL_FORCE=1` is the repair path: reinstall even when current. On Windows,
90
+ a `PATH` the installer writes reaches new sessions only; a host that is already
91
+ running keeps its environment, so use the directory the installer returns:
92
+
93
+ ```powershell
94
+ $bin = irm https://deepcell.net/install.ps1 | iex
95
+ & (Join-Path $bin 'deepcell.exe') --version
96
+ ```
97
+
74
98
  ## Designed for agents
75
99
 
76
100
  The CLI is built to be driven programmatically:
@@ -39,6 +39,30 @@ landed in a directory that is off `PATH` — not that the install failed. Re-run
39
39
  the installer above, which fixes exactly that; or use `python3 -m deepcell_cli`
40
40
  (`python -m` on Windows), which is the same CLI with no `PATH` involved.
41
41
 
42
+ More generally, a bare `deepcell` failing is not "not installed". It means one
43
+ of four things, and only one is fixed by installing: nothing is installed; a
44
+ copy exists in a directory that is off `PATH`; a copy exists and the host — a
45
+ sandbox, a policy — refuses to execute it; a copy exists, runs, and is behind.
46
+ The installer tells them apart: it looks on `PATH` *and* where an install
47
+ lands, runs what it finds by absolute path, keeps a current copy, upgrades an
48
+ outdated one, puts an off-`PATH` one on `PATH`, and refuses to reinstall one
49
+ the host will not run (reinstalling would not change that). Its last line on
50
+ stderr is one a script reads —
51
+ `deepcell-install: state=<state> version=<version> dir=<directory>` — where
52
+ `state` is `installed`, `upgraded`, `reinstalled`, `installed-current`,
53
+ `installed-unknown` (it runs; the package index could not be reached),
54
+ `installed-blocked` (exit 3) or `failed`. An upgrade goes through the tool
55
+ that owns the copy — uv when `uv tool list` names it, else pip. stdout is
56
+ still just the directory.
57
+ `DEEPCELL_FORCE=1` is the repair path: reinstall even when current. On Windows,
58
+ a `PATH` the installer writes reaches new sessions only; a host that is already
59
+ running keeps its environment, so use the directory the installer returns:
60
+
61
+ ```powershell
62
+ $bin = irm https://deepcell.net/install.ps1 | iex
63
+ & (Join-Path $bin 'deepcell.exe') --version
64
+ ```
65
+
42
66
  ## Designed for agents
43
67
 
44
68
  The CLI is built to be driven programmatically:
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "deepcell-cli"
3
- version = "0.6.3"
3
+ version = "0.7.0"
4
4
  description = "Build and revise .deepcell documents from a terminal — the reasoning, the calculations, the document and the deck, with the links between them"
5
5
  readme = "README.md"
6
6
  license = "MIT"
@@ -9,4 +9,4 @@ same thing, and a third is stamped into ``docs/cli-surface.json`` by
9
9
  reports a version it is not, and skipping the regen lands a red build.
10
10
  """
11
11
 
12
- __version__ = "0.6.3"
12
+ __version__ = "0.7.0"
@@ -62,6 +62,7 @@ MCP_ALLOWED_COMMANDS = frozenset(
62
62
  "rm",
63
63
  "rules",
64
64
  "share",
65
+ "verify-import",
65
66
  "viewer",
66
67
  "whoami",
67
68
  # `workspace` is the pre-rename spelling of `project` — a hidden alias
@@ -109,7 +110,7 @@ MCP_BLOCKED_COMMANDS: dict[str, dict[str, str]] = {
109
110
  },
110
111
  "push": {
111
112
  "reason": "local_checkout",
112
- "detail": "reads and uploads files from a local Git working copy",
113
+ "detail": "reads and sends files from a local Git working copy",
113
114
  },
114
115
  "register": {
115
116
  "reason": "interactive_auth",
@@ -160,16 +161,34 @@ MCP_BLOCKED_COMMANDS: dict[str, dict[str, str]] = {
160
161
  # ``deepcell_tool._COMMANDS`` remains the parser/dispatcher implementation.
161
162
  IN_PROCESS_COMMANDS = frozenset(
162
163
  {
164
+ "assumption impact",
163
165
  "cat",
166
+ "claim falsified",
167
+ "claim variant",
164
168
  "defs apply",
169
+ "defs list",
170
+ "defs show",
165
171
  "describe",
172
+ # The read-only checks and analyses the guides name (#2083): the
173
+ # hosted agent could read the guide and not run them. Writes stay
174
+ # `defs apply` ops; history stays the `git` tool.
175
+ "doc backlinks",
176
+ "doc blocks",
177
+ "doc links",
178
+ "doc lint",
166
179
  "example",
167
180
  "guide",
168
181
  "help",
182
+ "import",
169
183
  "ls",
170
184
  "query",
185
+ "reasoning graph",
186
+ "reasoning impact",
187
+ "reasoning lint",
171
188
  "ref",
189
+ "relationships",
172
190
  "rules",
191
+ "verify-import",
173
192
  }
174
193
  )
175
194
 
@@ -238,6 +257,7 @@ ENDPOINT_COMMANDS: dict[str, tuple[str, ...]] = {
238
257
  "query_deepcell_query_post": ("query",),
239
258
  "get_relationships_relationships_post": ("relationships",),
240
259
  "document_backlinks_document_backlinks_post": ("doc backlinks",),
260
+ "document_render_block_document_render_block_post": ("doc render-block",),
241
261
  "impact_impact_post": ("impact show",),
242
262
  "review_impact_review_post": ("impact review",),
243
263
  "apply_impact_apply_post": ("impact apply",),
@@ -281,6 +301,7 @@ ENDPOINT_COMMANDS: dict[str, tuple[str, ...]] = {
281
301
 
282
302
  # Import, ingestion, and export.
283
303
  "import_file_import_post": ("import",),
304
+ "verify_import_file_import_verify_post": ("verify-import",),
284
305
  "cn_extract_ingest_cn_extract_get": ("ingest cn extract",),
285
306
  "cn_filings_ingest_cn_filings_get": ("ingest cn filings",),
286
307
  "cn_search_ingest_cn_search_get": ("ingest cn search",),
@@ -396,6 +417,7 @@ ENDPOINT_EXCEPTIONS: dict[str, tuple[str, str]] = {
396
417
  "version_info_version_get": ("service_metadata", "frontend/service version probe; CLI reports its installed version locally"),
397
418
  "clear_cache_cache_clear_post": ("internal_ops", "operator-only cache maintenance"),
398
419
  "get_cache_stats_cache_stats_get": ("internal_ops", "operator-only cache diagnostics"),
420
+ "build_queue_health_health_build_queue_get": ("internal_ops", "build-queue lane depths and counters, for the load harness and a dashboard"),
399
421
  "record_unknown_command_cli_unknown_commands_post": ("implicit_client", "CLI telemetry emitted automatically, never invoked directly"),
400
422
  "record_web_events_signals_web_post": ("frontend_only", "browser analytics collector"),
401
423
  "create_demo_session_demo_session_post": ("implicit_client", "anonymous CLI session bootstrap performed by DeepCellClient"),