deepcell-cli 0.6.2__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.2 → deepcell_cli-0.7.0}/PKG-INFO +28 -4
  2. {deepcell_cli-0.6.2 → deepcell_cli-0.7.0}/README.md +27 -3
  3. {deepcell_cli-0.6.2 → deepcell_cli-0.7.0}/pyproject.toml +5 -7
  4. {deepcell_cli-0.6.2 → deepcell_cli-0.7.0}/src/deepcell_cli/__init__.py +1 -1
  5. {deepcell_cli-0.6.2 → deepcell_cli-0.7.0}/src/deepcell_cli/capabilities.py +23 -1
  6. {deepcell_cli-0.6.2 → deepcell_cli-0.7.0}/src/deepcell_cli/capability-contract.json +287 -80
  7. {deepcell_cli-0.6.2 → deepcell_cli-0.7.0}/src/deepcell_cli/client.py +89 -4
  8. deepcell_cli-0.7.0/src/deepcell_cli/commands/_defs_warnings.py +147 -0
  9. {deepcell_cli-0.6.2 → deepcell_cli-0.7.0}/src/deepcell_cli/commands/changes.py +1 -1
  10. {deepcell_cli-0.6.2 → deepcell_cli-0.7.0}/src/deepcell_cli/commands/deck.py +42 -29
  11. {deepcell_cli-0.6.2 → deepcell_cli-0.7.0}/src/deepcell_cli/commands/defs.py +135 -107
  12. {deepcell_cli-0.6.2 → deepcell_cli-0.7.0}/src/deepcell_cli/commands/describe.py +49 -8
  13. {deepcell_cli-0.6.2 → deepcell_cli-0.7.0}/src/deepcell_cli/commands/doc.py +100 -4
  14. {deepcell_cli-0.6.2 → deepcell_cli-0.7.0}/src/deepcell_cli/commands/edit.py +3 -3
  15. {deepcell_cli-0.6.2 → deepcell_cli-0.7.0}/src/deepcell_cli/commands/example.py +1 -1
  16. {deepcell_cli-0.6.2 → deepcell_cli-0.7.0}/src/deepcell_cli/commands/export.py +48 -8
  17. {deepcell_cli-0.6.2 → deepcell_cli-0.7.0}/src/deepcell_cli/commands/export_docx.py +1 -1
  18. {deepcell_cli-0.6.2 → deepcell_cli-0.7.0}/src/deepcell_cli/commands/export_pdf.py +1 -4
  19. {deepcell_cli-0.6.2 → deepcell_cli-0.7.0}/src/deepcell_cli/commands/export_pptx.py +1 -1
  20. {deepcell_cli-0.6.2 → deepcell_cli-0.7.0}/src/deepcell_cli/commands/files.py +3 -3
  21. {deepcell_cli-0.6.2 → deepcell_cli-0.7.0}/src/deepcell_cli/commands/import_cmd.py +160 -1
  22. {deepcell_cli-0.6.2 → deepcell_cli-0.7.0}/src/deepcell_cli/commands/query.py +3 -0
  23. {deepcell_cli-0.6.2 → deepcell_cli-0.7.0}/src/deepcell_cli/commands/reasoning.py +66 -61
  24. {deepcell_cli-0.6.2 → deepcell_cli-0.7.0}/src/deepcell_cli/commands/ref.py +27 -3
  25. {deepcell_cli-0.6.2 → deepcell_cli-0.7.0}/src/deepcell_cli/commands/replace.py +2 -2
  26. {deepcell_cli-0.6.2 → deepcell_cli-0.7.0}/src/deepcell_cli/commands/share.py +1 -1
  27. {deepcell_cli-0.6.2 → deepcell_cli-0.7.0}/src/deepcell_cli/commands/sync.py +5 -5
  28. {deepcell_cli-0.6.2 → deepcell_cli-0.7.0}/src/deepcell_cli/commands/upgrade.py +5 -0
  29. {deepcell_cli-0.6.2 → deepcell_cli-0.7.0}/src/deepcell_cli/commands/version.py +3 -3
  30. {deepcell_cli-0.6.2 → deepcell_cli-0.7.0}/src/deepcell_cli/commands/workspace.py +1 -1
  31. {deepcell_cli-0.6.2 → deepcell_cli-0.7.0}/src/deepcell_cli/config.py +1 -1
  32. {deepcell_cli-0.6.2 → deepcell_cli-0.7.0}/src/deepcell_cli/main.py +2 -1
  33. {deepcell_cli-0.6.2 → deepcell_cli-0.7.0}/src/deepcell_cli/mcp_server.py +128 -6
  34. {deepcell_cli-0.6.2 → deepcell_cli-0.7.0}/src/deepcell_cli/oauth_provider.py +12 -4
  35. {deepcell_cli-0.6.2 → deepcell_cli-0.7.0}/src/deepcell_cli/output.py +94 -28
  36. {deepcell_cli-0.6.2 → deepcell_cli-0.7.0}/src/deepcell_cli/stages.py +3 -2
  37. {deepcell_cli-0.6.2 → deepcell_cli-0.7.0}/src/deepcell_cli.egg-info/PKG-INFO +28 -4
  38. {deepcell_cli-0.6.2 → deepcell_cli-0.7.0}/src/deepcell_cli.egg-info/SOURCES.txt +2 -0
  39. {deepcell_cli-0.6.2 → deepcell_cli-0.7.0}/tests/test_client.py +112 -0
  40. {deepcell_cli-0.6.2 → deepcell_cli-0.7.0}/tests/test_config.py +1 -1
  41. {deepcell_cli-0.6.2 → deepcell_cli-0.7.0}/tests/test_deck_op_shape.py +58 -30
  42. {deepcell_cli-0.6.2 → deepcell_cli-0.7.0}/tests/test_mcp_auth.py +11 -11
  43. {deepcell_cli-0.6.2 → deepcell_cli-0.7.0}/tests/test_mcp_server.py +138 -3
  44. deepcell_cli-0.7.0/tests/test_output_export_notes.py +206 -0
  45. {deepcell_cli-0.6.2 → deepcell_cli-0.7.0}/tests/test_reasoning_commands.py +25 -5
  46. deepcell_cli-0.7.0/tests/test_warning_literals.py +162 -0
  47. {deepcell_cli-0.6.2 → deepcell_cli-0.7.0}/tests/test_write_message_rule.py +2 -2
  48. deepcell_cli-0.6.2/tests/test_output_export_notes.py +0 -90
  49. {deepcell_cli-0.6.2 → deepcell_cli-0.7.0}/setup.cfg +0 -0
  50. {deepcell_cli-0.6.2 → deepcell_cli-0.7.0}/src/deepcell_cli/__main__.py +0 -0
  51. {deepcell_cli-0.6.2 → deepcell_cli-0.7.0}/src/deepcell_cli/_findings.py +0 -0
  52. {deepcell_cli-0.6.2 → deepcell_cli-0.7.0}/src/deepcell_cli/commands/__init__.py +0 -0
  53. {deepcell_cli-0.6.2 → deepcell_cli-0.7.0}/src/deepcell_cli/commands/_batch_input.py +0 -0
  54. {deepcell_cli-0.6.2 → deepcell_cli-0.7.0}/src/deepcell_cli/commands/_datatypes.py +0 -0
  55. {deepcell_cli-0.6.2 → deepcell_cli-0.7.0}/src/deepcell_cli/commands/_negative_args.py +0 -0
  56. {deepcell_cli-0.6.2 → deepcell_cli-0.7.0}/src/deepcell_cli/commands/_swapped_args.py +0 -0
  57. {deepcell_cli-0.6.2 → deepcell_cli-0.7.0}/src/deepcell_cli/commands/_version_display.py +0 -0
  58. {deepcell_cli-0.6.2 → deepcell_cli-0.7.0}/src/deepcell_cli/commands/_write_opts.py +0 -0
  59. {deepcell_cli-0.6.2 → deepcell_cli-0.7.0}/src/deepcell_cli/commands/account.py +0 -0
  60. {deepcell_cli-0.6.2 → deepcell_cli-0.7.0}/src/deepcell_cli/commands/auth.py +0 -0
  61. {deepcell_cli-0.6.2 → deepcell_cli-0.7.0}/src/deepcell_cli/commands/doctor.py +0 -0
  62. {deepcell_cli-0.6.2 → deepcell_cli-0.7.0}/src/deepcell_cli/commands/download.py +0 -0
  63. {deepcell_cli-0.6.2 → deepcell_cli-0.7.0}/src/deepcell_cli/commands/grep.py +0 -0
  64. {deepcell_cli-0.6.2 → deepcell_cli-0.7.0}/src/deepcell_cli/commands/guide.py +0 -0
  65. {deepcell_cli-0.6.2 → deepcell_cli-0.7.0}/src/deepcell_cli/commands/help_cmd.py +0 -0
  66. {deepcell_cli-0.6.2 → deepcell_cli-0.7.0}/src/deepcell_cli/commands/impact.py +0 -0
  67. {deepcell_cli-0.6.2 → deepcell_cli-0.7.0}/src/deepcell_cli/commands/ingest.py +0 -0
  68. {deepcell_cli-0.6.2 → deepcell_cli-0.7.0}/src/deepcell_cli/commands/merge.py +0 -0
  69. {deepcell_cli-0.6.2 → deepcell_cli-0.7.0}/src/deepcell_cli/commands/rules.py +0 -0
  70. {deepcell_cli-0.6.2 → deepcell_cli-0.7.0}/src/deepcell_cli/commands/variant.py +0 -0
  71. {deepcell_cli-0.6.2 → deepcell_cli-0.7.0}/src/deepcell_cli/commands/viewer.py +0 -0
  72. {deepcell_cli-0.6.2 → deepcell_cli-0.7.0}/src/deepcell_cli/context.py +0 -0
  73. {deepcell_cli-0.6.2 → deepcell_cli-0.7.0}/src/deepcell_cli/errors.py +0 -0
  74. {deepcell_cli-0.6.2 → deepcell_cli-0.7.0}/src/deepcell_cli/logging_setup.py +0 -0
  75. {deepcell_cli-0.6.2 → deepcell_cli-0.7.0}/src/deepcell_cli/revision.py +0 -0
  76. {deepcell_cli-0.6.2 → deepcell_cli-0.7.0}/src/deepcell_cli/surface.py +0 -0
  77. {deepcell_cli-0.6.2 → deepcell_cli-0.7.0}/src/deepcell_cli/sync_state.py +0 -0
  78. {deepcell_cli-0.6.2 → deepcell_cli-0.7.0}/src/deepcell_cli/upgrade_check.py +0 -0
  79. {deepcell_cli-0.6.2 → deepcell_cli-0.7.0}/src/deepcell_cli/xml_replace.py +0 -0
  80. {deepcell_cli-0.6.2 → deepcell_cli-0.7.0}/src/deepcell_cli.egg-info/dependency_links.txt +0 -0
  81. {deepcell_cli-0.6.2 → deepcell_cli-0.7.0}/src/deepcell_cli.egg-info/entry_points.txt +0 -0
  82. {deepcell_cli-0.6.2 → deepcell_cli-0.7.0}/src/deepcell_cli.egg-info/requires.txt +0 -0
  83. {deepcell_cli-0.6.2 → deepcell_cli-0.7.0}/src/deepcell_cli.egg-info/top_level.txt +0 -0
  84. {deepcell_cli-0.6.2 → deepcell_cli-0.7.0}/tests/test_anon.py +0 -0
  85. {deepcell_cli-0.6.2 → deepcell_cli-0.7.0}/tests/test_claim_strength.py +0 -0
  86. {deepcell_cli-0.6.2 → deepcell_cli-0.7.0}/tests/test_client_surface_header.py +0 -0
  87. {deepcell_cli-0.6.2 → deepcell_cli-0.7.0}/tests/test_conflict_reason.py +0 -0
  88. {deepcell_cli-0.6.2 → deepcell_cli-0.7.0}/tests/test_deck_help_contract.py +0 -0
  89. {deepcell_cli-0.6.2 → deepcell_cli-0.7.0}/tests/test_docs_catalog.py +0 -0
  90. {deepcell_cli-0.6.2 → deepcell_cli-0.7.0}/tests/test_doctor.py +0 -0
  91. {deepcell_cli-0.6.2 → deepcell_cli-0.7.0}/tests/test_download.py +0 -0
  92. {deepcell_cli-0.6.2 → deepcell_cli-0.7.0}/tests/test_findings_provenance.py +0 -0
  93. {deepcell_cli-0.6.2 → deepcell_cli-0.7.0}/tests/test_guide_eval_a4_a7.py +0 -0
  94. {deepcell_cli-0.6.2 → deepcell_cli-0.7.0}/tests/test_guide_flag_drift.py +0 -0
  95. {deepcell_cli-0.6.2 → deepcell_cli-0.7.0}/tests/test_help_flag_drift.py +0 -0
  96. {deepcell_cli-0.6.2 → deepcell_cli-0.7.0}/tests/test_impact_commands.py +0 -0
  97. {deepcell_cli-0.6.2 → deepcell_cli-0.7.0}/tests/test_ingest_command.py +0 -0
  98. {deepcell_cli-0.6.2 → deepcell_cli-0.7.0}/tests/test_logging_setup.py +0 -0
  99. {deepcell_cli-0.6.2 → deepcell_cli-0.7.0}/tests/test_op_reachability.py +0 -0
  100. {deepcell_cli-0.6.2 → deepcell_cli-0.7.0}/tests/test_openapi_route_parity.py +0 -0
  101. {deepcell_cli-0.6.2 → deepcell_cli-0.7.0}/tests/test_output_keeps_the_answer.py +0 -0
  102. {deepcell_cli-0.6.2 → deepcell_cli-0.7.0}/tests/test_reasoning_diff_command.py +0 -0
  103. {deepcell_cli-0.6.2 → deepcell_cli-0.7.0}/tests/test_ref_flag_drift.py +0 -0
  104. {deepcell_cli-0.6.2 → deepcell_cli-0.7.0}/tests/test_round6_signal_regressions.py +0 -0
  105. {deepcell_cli-0.6.2 → deepcell_cli-0.7.0}/tests/test_search_reach.py +0 -0
  106. {deepcell_cli-0.6.2 → deepcell_cli-0.7.0}/tests/test_shed_retry.py +0 -0
  107. {deepcell_cli-0.6.2 → deepcell_cli-0.7.0}/tests/test_stages.py +0 -0
  108. {deepcell_cli-0.6.2 → deepcell_cli-0.7.0}/tests/test_surface_examples.py +0 -0
  109. {deepcell_cli-0.6.2 → deepcell_cli-0.7.0}/tests/test_surface_walker.py +0 -0
  110. {deepcell_cli-0.6.2 → deepcell_cli-0.7.0}/tests/test_upgrade_check.py +0 -0
  111. {deepcell_cli-0.6.2 → deepcell_cli-0.7.0}/tests/test_version_parity.py +0 -0
  112. {deepcell_cli-0.6.2 → 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.2
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
@@ -36,12 +36,12 @@ Command-line interface for **DeepCell** — a versionable `.deepcell` document t
36
36
 
37
37
  ```bash
38
38
  # macOS / Linux
39
- curl -LsSf https://beta.deepcell.net/install.sh | sh
39
+ curl -LsSf https://deepcell.net/install.sh | sh
40
40
  ```
41
41
 
42
42
  ```powershell
43
43
  # Windows (PowerShell)
44
- irm https://beta.deepcell.net/install.ps1 | iex
44
+ irm https://deepcell.net/install.ps1 | iex
45
45
  ```
46
46
 
47
47
  ```bash
@@ -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:
@@ -251,7 +275,7 @@ Interactive and sync commands (`login`, `clone`, `push`, …) are blocked inside
251
275
 
252
276
  | Variable | Purpose | Default |
253
277
  |----------|---------|---------|
254
- | `DEEPCELL_API_URL` | API endpoint | `https://beta.deepcell.net/api/jingwei` |
278
+ | `DEEPCELL_API_URL` | API endpoint | `https://deepcell.net/api/jingwei` |
255
279
  | `DEEPCELL_PROJECT` | Override active project | _(none)_ |
256
280
  | `DEEPCELL_ACCESS_TOKEN` | Auth token for CI/headless use | _(none)_ |
257
281
  | `DEEPCELL_CONFIG` | Alternate `config.json` path (session-scoped) | `~/.deepcell/config.json` |
@@ -4,12 +4,12 @@ Command-line interface for **DeepCell** — a versionable `.deepcell` document t
4
4
 
5
5
  ```bash
6
6
  # macOS / Linux
7
- curl -LsSf https://beta.deepcell.net/install.sh | sh
7
+ curl -LsSf https://deepcell.net/install.sh | sh
8
8
  ```
9
9
 
10
10
  ```powershell
11
11
  # Windows (PowerShell)
12
- irm https://beta.deepcell.net/install.ps1 | iex
12
+ irm https://deepcell.net/install.ps1 | iex
13
13
  ```
14
14
 
15
15
  ```bash
@@ -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:
@@ -219,7 +243,7 @@ Interactive and sync commands (`login`, `clone`, `push`, …) are blocked inside
219
243
 
220
244
  | Variable | Purpose | Default |
221
245
  |----------|---------|---------|
222
- | `DEEPCELL_API_URL` | API endpoint | `https://beta.deepcell.net/api/jingwei` |
246
+ | `DEEPCELL_API_URL` | API endpoint | `https://deepcell.net/api/jingwei` |
223
247
  | `DEEPCELL_PROJECT` | Override active project | _(none)_ |
224
248
  | `DEEPCELL_ACCESS_TOKEN` | Auth token for CI/headless use | _(none)_ |
225
249
  | `DEEPCELL_CONFIG` | Alternate `config.json` path (session-scoped) | `~/.deepcell/config.json` |
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "deepcell-cli"
3
- version = "0.6.2"
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"
@@ -42,12 +42,10 @@ deepcell-mcp = "deepcell_cli.mcp_server:main"
42
42
  # deliberately no Repository or Issues entry: the CLI is developed in a private
43
43
  # repository, and a link to one nobody can open is worse than no link.
44
44
  #
45
- # deepcell.net is the canonical host the site is moving to shortly; it does not
46
- # resolve yet, so these two links go live when the domain does. That is a
47
- # deliberate trade for not stamping the outgoing beta host into the metadata of
48
- # a release that cannot be re-uploaded. The installer URLs are NOT part of it —
49
- # they stay on beta.deepcell.net, because a curl that 404s is a broken install
50
- # today rather than a link that is briefly grey.
45
+ # deepcell.net is the canonical origin and serves the site. beta.deepcell.net
46
+ # answers the same deployment and is deliberately left un-redirected, because
47
+ # every CLI already installed has it baked in as its API default — but it is
48
+ # not what anything new should hand out.
51
49
  [project.urls]
52
50
  Homepage = "https://deepcell.net"
53
51
  Documentation = "https://deepcell.net/product/cli"
@@ -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.2"
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"),