deepctl 0.3.0__tar.gz → 0.3.1__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.
- {deepctl-0.3.0/src/deepctl.egg-info → deepctl-0.3.1}/PKG-INFO +44 -22
- {deepctl-0.3.0 → deepctl-0.3.1}/README.md +24 -3
- {deepctl-0.3.0 → deepctl-0.3.1}/pyproject.toml +34 -20
- {deepctl-0.3.0 → deepctl-0.3.1}/src/deepctl/__init__.py +1 -1
- {deepctl-0.3.0 → deepctl-0.3.1}/src/deepctl/main.py +43 -0
- {deepctl-0.3.0 → deepctl-0.3.1/src/deepctl.egg-info}/PKG-INFO +44 -22
- {deepctl-0.3.0 → deepctl-0.3.1}/src/deepctl.egg-info/requires.txt +19 -18
- {deepctl-0.3.0 → deepctl-0.3.1}/LICENSE +0 -0
- {deepctl-0.3.0 → deepctl-0.3.1}/setup.cfg +0 -0
- {deepctl-0.3.0 → deepctl-0.3.1}/src/deepctl.egg-info/SOURCES.txt +0 -0
- {deepctl-0.3.0 → deepctl-0.3.1}/src/deepctl.egg-info/dependency_links.txt +0 -0
- {deepctl-0.3.0 → deepctl-0.3.1}/src/deepctl.egg-info/entry_points.txt +0 -0
- {deepctl-0.3.0 → deepctl-0.3.1}/src/deepctl.egg-info/top_level.txt +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: deepctl
|
|
3
|
-
Version: 0.3.
|
|
3
|
+
Version: 0.3.1
|
|
4
4
|
Summary: Official Deepgram CLI for speech recognition and audio intelligence
|
|
5
5
|
Author-email: Deepgram <devrel@deepgram.com>
|
|
6
6
|
Maintainer-email: Deepgram <devrel@deepgram.com>
|
|
@@ -27,25 +27,25 @@ Description-Content-Type: text/markdown
|
|
|
27
27
|
License-File: LICENSE
|
|
28
28
|
Requires-Dist: click>=8.0.0
|
|
29
29
|
Requires-Dist: deepgram-sdk<8,>=7.7.0
|
|
30
|
-
Requires-Dist: deepctl-core>=0.2.
|
|
31
|
-
Requires-Dist: deepctl-cmd-login>=0.1.
|
|
30
|
+
Requires-Dist: deepctl-core>=0.2.17
|
|
31
|
+
Requires-Dist: deepctl-cmd-login>=0.1.18
|
|
32
32
|
Requires-Dist: deepctl-cmd-projects>=0.2.0
|
|
33
|
-
Requires-Dist: deepctl-cmd-transcribe>=0.1.
|
|
33
|
+
Requires-Dist: deepctl-cmd-transcribe>=0.1.12
|
|
34
34
|
Requires-Dist: deepctl-cmd-usage>=0.2.0
|
|
35
35
|
Requires-Dist: deepctl-cmd-mcp>=0.1.15
|
|
36
|
-
Requires-Dist: deepctl-cmd-api>=0.0.
|
|
37
|
-
Requires-Dist: deepctl-cmd-debug>=0.1.
|
|
38
|
-
Requires-Dist: deepctl-cmd-debug-browser>=0.1.
|
|
39
|
-
Requires-Dist: deepctl-cmd-debug-network>=0.1.
|
|
40
|
-
Requires-Dist: deepctl-cmd-debug-audio>=0.1.
|
|
41
|
-
Requires-Dist: deepctl-cmd-debug-probe>=0.0.
|
|
42
|
-
Requires-Dist: deepctl-cmd-debug-toolkit>=0.0
|
|
43
|
-
Requires-Dist: deepctl-cmd-ffprobe>=0.0.
|
|
44
|
-
Requires-Dist: deepctl-cmd-update>=0.2.
|
|
45
|
-
Requires-Dist: deepctl-cmd-plugin>=0.1.
|
|
46
|
-
Requires-Dist: deepctl-cmd-skills>=0.0.
|
|
47
|
-
Requires-Dist: deepctl-cmd-init>=0.0.
|
|
48
|
-
Requires-Dist: deepctl-cmd-models>=0.1.
|
|
36
|
+
Requires-Dist: deepctl-cmd-api>=0.0.2
|
|
37
|
+
Requires-Dist: deepctl-cmd-debug>=0.1.12
|
|
38
|
+
Requires-Dist: deepctl-cmd-debug-browser>=0.1.12
|
|
39
|
+
Requires-Dist: deepctl-cmd-debug-network>=0.1.12
|
|
40
|
+
Requires-Dist: deepctl-cmd-debug-audio>=0.1.13
|
|
41
|
+
Requires-Dist: deepctl-cmd-debug-probe>=0.0.2
|
|
42
|
+
Requires-Dist: deepctl-cmd-debug-toolkit>=0.1.0
|
|
43
|
+
Requires-Dist: deepctl-cmd-ffprobe>=0.0.2
|
|
44
|
+
Requires-Dist: deepctl-cmd-update>=0.2.7
|
|
45
|
+
Requires-Dist: deepctl-cmd-plugin>=0.1.13
|
|
46
|
+
Requires-Dist: deepctl-cmd-skills>=0.0.8
|
|
47
|
+
Requires-Dist: deepctl-cmd-init>=0.0.4
|
|
48
|
+
Requires-Dist: deepctl-cmd-models>=0.1.1
|
|
49
49
|
Requires-Dist: deepctl-cmd-speak>=0.0.4
|
|
50
50
|
Requires-Dist: deepctl-cmd-keys>=0.1.0
|
|
51
51
|
Requires-Dist: deepctl-cmd-read>=0.1.0
|
|
@@ -53,8 +53,8 @@ Requires-Dist: deepctl-cmd-listen>=0.0.14
|
|
|
53
53
|
Requires-Dist: deepctl-cmd-requests>=0.1.0
|
|
54
54
|
Requires-Dist: deepctl-cmd-billing>=0.1.0
|
|
55
55
|
Requires-Dist: deepctl-cmd-members>=0.1.0
|
|
56
|
-
Requires-Dist: deepctl-cmd-completion>=0.0.
|
|
57
|
-
Requires-Dist: deepctl-shared-utils>=0.1.
|
|
56
|
+
Requires-Dist: deepctl-cmd-completion>=0.0.3
|
|
57
|
+
Requires-Dist: deepctl-shared-utils>=0.1.12
|
|
58
58
|
Requires-Dist: deepctl-telemetry>=0.0.6
|
|
59
59
|
Requires-Dist: pydantic>=2.0.0
|
|
60
60
|
Requires-Dist: rich>=13.0.0
|
|
@@ -74,6 +74,7 @@ Requires-Dist: pytest-timeout<3,>=2.3.1; extra == "dev"
|
|
|
74
74
|
Requires-Dist: responses>=0.23.0; extra == "dev"
|
|
75
75
|
Requires-Dist: ruff>=0.8.0; extra == "dev"
|
|
76
76
|
Requires-Dist: mypy>=1.0.0; extra == "dev"
|
|
77
|
+
Requires-Dist: packaging>=23.0; extra == "dev"
|
|
77
78
|
Requires-Dist: types-PyYAML>=6.0.0; extra == "dev"
|
|
78
79
|
Requires-Dist: types-requests>=2.31.0; extra == "dev"
|
|
79
80
|
Requires-Dist: pre-commit>=3.0.0; extra == "dev"
|
|
@@ -116,8 +117,8 @@ intelligence, and project management directly into your terminal. Aliases:
|
|
|
116
117
|
**macOS / Linux (Homebrew):**
|
|
117
118
|
|
|
118
119
|
```bash
|
|
119
|
-
|
|
120
|
-
brew install deepgram
|
|
120
|
+
# Install and trust only the Deepgram formula.
|
|
121
|
+
brew install deepgram/tap/deepgram
|
|
121
122
|
```
|
|
122
123
|
|
|
123
124
|
Homebrew brings in `ffmpeg` and `portaudio` automatically — `dg listen --mic`, `dg debug probe`, and raw audio piping all work without further setup. To upgrade later: `brew upgrade deepgram`.
|
|
@@ -402,6 +403,24 @@ dg usage --last-week -o yaml
|
|
|
402
403
|
When running in a non-TTY environment (pipes, CI, or AI coding tools), the CLI
|
|
403
404
|
automatically switches to structured JSON output with plain-text status messages.
|
|
404
405
|
|
|
406
|
+
### Exit codes
|
|
407
|
+
|
|
408
|
+
Since 0.3.0, `dg` exits non-zero when a command fails — branch on the exit
|
|
409
|
+
code, not on parsing output:
|
|
410
|
+
|
|
411
|
+
| Code | Meaning |
|
|
412
|
+
| --- | --- |
|
|
413
|
+
| `0` | Success |
|
|
414
|
+
| `1` | Error — a failed command, a crash, or a usage error (bad flag, unknown command) |
|
|
415
|
+
| `2` | Cancelled by the user (Ctrl-C, or declining a confirmation prompt) |
|
|
416
|
+
|
|
417
|
+
Note that `dg` reports `2` for an interrupt rather than the shell's
|
|
418
|
+
conventional `130`, so the code is the same whether the cancellation came from
|
|
419
|
+
Ctrl-C or from declining a prompt.
|
|
420
|
+
|
|
421
|
+
If a CI step relied on `dg` always exiting `0` (every command did, before
|
|
422
|
+
0.3.0), it will now fail where it previously passed silently.
|
|
423
|
+
|
|
405
424
|
### Forcing non-interactive mode
|
|
406
425
|
|
|
407
426
|
Three explicit ways to skip every prompt and run with defaults — useful from a
|
|
@@ -445,7 +464,10 @@ dg profiles --list # List profiles
|
|
|
445
464
|
dg profiles --switch staging # Switch profile
|
|
446
465
|
```
|
|
447
466
|
|
|
448
|
-
|
|
467
|
+
For structured output, use `--output json|yaml|table|csv` after leaf commands
|
|
468
|
+
that do not define their own output option, or before any command as a global
|
|
469
|
+
flag: `dg --output json <command>`. `dg speak --output FILE` writes audio to
|
|
470
|
+
`FILE`, so use `dg --output json speak ...` for Speak's structured output.
|
|
449
471
|
|
|
450
472
|
## Telemetry
|
|
451
473
|
|
|
@@ -33,8 +33,8 @@ intelligence, and project management directly into your terminal. Aliases:
|
|
|
33
33
|
**macOS / Linux (Homebrew):**
|
|
34
34
|
|
|
35
35
|
```bash
|
|
36
|
-
|
|
37
|
-
brew install deepgram
|
|
36
|
+
# Install and trust only the Deepgram formula.
|
|
37
|
+
brew install deepgram/tap/deepgram
|
|
38
38
|
```
|
|
39
39
|
|
|
40
40
|
Homebrew brings in `ffmpeg` and `portaudio` automatically — `dg listen --mic`, `dg debug probe`, and raw audio piping all work without further setup. To upgrade later: `brew upgrade deepgram`.
|
|
@@ -319,6 +319,24 @@ dg usage --last-week -o yaml
|
|
|
319
319
|
When running in a non-TTY environment (pipes, CI, or AI coding tools), the CLI
|
|
320
320
|
automatically switches to structured JSON output with plain-text status messages.
|
|
321
321
|
|
|
322
|
+
### Exit codes
|
|
323
|
+
|
|
324
|
+
Since 0.3.0, `dg` exits non-zero when a command fails — branch on the exit
|
|
325
|
+
code, not on parsing output:
|
|
326
|
+
|
|
327
|
+
| Code | Meaning |
|
|
328
|
+
| --- | --- |
|
|
329
|
+
| `0` | Success |
|
|
330
|
+
| `1` | Error — a failed command, a crash, or a usage error (bad flag, unknown command) |
|
|
331
|
+
| `2` | Cancelled by the user (Ctrl-C, or declining a confirmation prompt) |
|
|
332
|
+
|
|
333
|
+
Note that `dg` reports `2` for an interrupt rather than the shell's
|
|
334
|
+
conventional `130`, so the code is the same whether the cancellation came from
|
|
335
|
+
Ctrl-C or from declining a prompt.
|
|
336
|
+
|
|
337
|
+
If a CI step relied on `dg` always exiting `0` (every command did, before
|
|
338
|
+
0.3.0), it will now fail where it previously passed silently.
|
|
339
|
+
|
|
322
340
|
### Forcing non-interactive mode
|
|
323
341
|
|
|
324
342
|
Three explicit ways to skip every prompt and run with defaults — useful from a
|
|
@@ -362,7 +380,10 @@ dg profiles --list # List profiles
|
|
|
362
380
|
dg profiles --switch staging # Switch profile
|
|
363
381
|
```
|
|
364
382
|
|
|
365
|
-
|
|
383
|
+
For structured output, use `--output json|yaml|table|csv` after leaf commands
|
|
384
|
+
that do not define their own output option, or before any command as a global
|
|
385
|
+
flag: `dg --output json <command>`. `dg speak --output FILE` writes audio to
|
|
386
|
+
`FILE`, so use `dg --output json speak ...` for Speak's structured output.
|
|
366
387
|
|
|
367
388
|
## Telemetry
|
|
368
389
|
|
|
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "deepctl"
|
|
7
|
-
version = "0.3.
|
|
7
|
+
version = "0.3.1" # x-release-please-version
|
|
8
8
|
description = "Official Deepgram CLI for speech recognition and audio intelligence"
|
|
9
9
|
readme = "README.md"
|
|
10
10
|
license = "MIT"
|
|
@@ -35,25 +35,25 @@ requires-python = ">=3.10"
|
|
|
35
35
|
dependencies = [
|
|
36
36
|
"click>=8.0.0",
|
|
37
37
|
"deepgram-sdk>=7.7.0,<8",
|
|
38
|
-
"deepctl-core>=0.2.
|
|
39
|
-
"deepctl-cmd-login>=0.1.
|
|
38
|
+
"deepctl-core>=0.2.17",
|
|
39
|
+
"deepctl-cmd-login>=0.1.18",
|
|
40
40
|
"deepctl-cmd-projects>=0.2.0",
|
|
41
|
-
"deepctl-cmd-transcribe>=0.1.
|
|
41
|
+
"deepctl-cmd-transcribe>=0.1.12",
|
|
42
42
|
"deepctl-cmd-usage>=0.2.0",
|
|
43
43
|
"deepctl-cmd-mcp>=0.1.15",
|
|
44
|
-
"deepctl-cmd-api>=0.0.
|
|
45
|
-
"deepctl-cmd-debug>=0.1.
|
|
46
|
-
"deepctl-cmd-debug-browser>=0.1.
|
|
47
|
-
"deepctl-cmd-debug-network>=0.1.
|
|
48
|
-
"deepctl-cmd-debug-audio>=0.1.
|
|
49
|
-
"deepctl-cmd-debug-probe>=0.0.
|
|
50
|
-
"deepctl-cmd-debug-toolkit>=0.0
|
|
51
|
-
"deepctl-cmd-ffprobe>=0.0.
|
|
52
|
-
"deepctl-cmd-update>=0.2.
|
|
53
|
-
"deepctl-cmd-plugin>=0.1.
|
|
54
|
-
"deepctl-cmd-skills>=0.0.
|
|
55
|
-
"deepctl-cmd-init>=0.0.
|
|
56
|
-
"deepctl-cmd-models>=0.1.
|
|
44
|
+
"deepctl-cmd-api>=0.0.2",
|
|
45
|
+
"deepctl-cmd-debug>=0.1.12",
|
|
46
|
+
"deepctl-cmd-debug-browser>=0.1.12",
|
|
47
|
+
"deepctl-cmd-debug-network>=0.1.12",
|
|
48
|
+
"deepctl-cmd-debug-audio>=0.1.13",
|
|
49
|
+
"deepctl-cmd-debug-probe>=0.0.2",
|
|
50
|
+
"deepctl-cmd-debug-toolkit>=0.1.0",
|
|
51
|
+
"deepctl-cmd-ffprobe>=0.0.2",
|
|
52
|
+
"deepctl-cmd-update>=0.2.7",
|
|
53
|
+
"deepctl-cmd-plugin>=0.1.13",
|
|
54
|
+
"deepctl-cmd-skills>=0.0.8",
|
|
55
|
+
"deepctl-cmd-init>=0.0.4",
|
|
56
|
+
"deepctl-cmd-models>=0.1.1",
|
|
57
57
|
"deepctl-cmd-speak>=0.0.4",
|
|
58
58
|
"deepctl-cmd-keys>=0.1.0",
|
|
59
59
|
"deepctl-cmd-read>=0.1.0",
|
|
@@ -61,8 +61,8 @@ dependencies = [
|
|
|
61
61
|
"deepctl-cmd-requests>=0.1.0",
|
|
62
62
|
"deepctl-cmd-billing>=0.1.0",
|
|
63
63
|
"deepctl-cmd-members>=0.1.0",
|
|
64
|
-
"deepctl-cmd-completion>=0.0.
|
|
65
|
-
"deepctl-shared-utils>=0.1.
|
|
64
|
+
"deepctl-cmd-completion>=0.0.3",
|
|
65
|
+
"deepctl-shared-utils>=0.1.12",
|
|
66
66
|
"deepctl-telemetry>=0.0.6",
|
|
67
67
|
"pydantic>=2.0.0",
|
|
68
68
|
"rich>=13.0.0",
|
|
@@ -87,6 +87,7 @@ dev = [
|
|
|
87
87
|
# Code Quality
|
|
88
88
|
"ruff>=0.8.0",
|
|
89
89
|
"mypy>=1.0.0",
|
|
90
|
+
"packaging>=23.0",
|
|
90
91
|
# Type Stubs
|
|
91
92
|
"types-PyYAML>=6.0.0",
|
|
92
93
|
"types-requests>=2.31.0",
|
|
@@ -128,7 +129,13 @@ include = ["deepctl*"]
|
|
|
128
129
|
[tool.mypy]
|
|
129
130
|
python_version = "3.10"
|
|
130
131
|
strict = true
|
|
131
|
-
files = "src/,packages/*/src"
|
|
132
|
+
files = "src/,packages/*/src,scripts/"
|
|
133
|
+
|
|
134
|
+
[[tool.mypy.overrides]]
|
|
135
|
+
module = ["tomli"]
|
|
136
|
+
# The pre-3.11 fallback for tomllib in scripts/. It is not installed, and
|
|
137
|
+
# mypy checks that branch because python_version is pinned to 3.10.
|
|
138
|
+
ignore_missing_imports = true
|
|
132
139
|
|
|
133
140
|
[[tool.mypy.overrides]]
|
|
134
141
|
module = "deepctl_cmd_mcp.*"
|
|
@@ -232,6 +239,10 @@ members = ["packages/*"]
|
|
|
232
239
|
[dependency-groups]
|
|
233
240
|
testing = [
|
|
234
241
|
"pytest>=7.0.0",
|
|
242
|
+
# scripts/check_dependency_floors.py reads pyproject files; on 3.10 it
|
|
243
|
+
# falls back to tomli, and tests/unit/test_dependency_floors.py drives
|
|
244
|
+
# the real script on every version in the CI matrix.
|
|
245
|
+
"tomli>=2.0; python_version < '3.11'",
|
|
235
246
|
"pytest-asyncio>=0.21.0",
|
|
236
247
|
"pytest-cov>=4.0.0",
|
|
237
248
|
"pytest-mock>=3.10.0",
|
|
@@ -244,6 +255,9 @@ dev = [
|
|
|
244
255
|
# Code Quality
|
|
245
256
|
"ruff>=0.8.0",
|
|
246
257
|
"mypy>=1.0.0",
|
|
258
|
+
# PEP 440 comparisons in scripts/check_dependency_floors.py. Declared
|
|
259
|
+
# rather than leaned on as a transitive of build/twine.
|
|
260
|
+
"packaging>=23.0",
|
|
247
261
|
# Type Stubs
|
|
248
262
|
"types-pyyaml>=6.0.12.20250516",
|
|
249
263
|
"types-requests>=2.32.4.20250611",
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"""deepctl - Official command-line interface for Deepgram's speech
|
|
2
2
|
recognition API."""
|
|
3
3
|
|
|
4
|
-
__version__ = "0.3.
|
|
4
|
+
__version__ = "0.3.1" # x-release-please-version
|
|
5
5
|
__author__ = "Deepgram"
|
|
6
6
|
__email__ = "devrel@deepgram.com"
|
|
7
7
|
__license__ = "MIT"
|
|
@@ -287,6 +287,38 @@ def _telemetry_transaction() -> Iterator[None]:
|
|
|
287
287
|
yield
|
|
288
288
|
|
|
289
289
|
|
|
290
|
+
def _global_option_hint(message: str) -> str | None:
|
|
291
|
+
"""Build a placement hint when a 'No such option' names a global option.
|
|
292
|
+
|
|
293
|
+
Global options belong before the subcommand (``dg -o json models``).
|
|
294
|
+
When one is placed after the subcommand instead (``dg models --profile
|
|
295
|
+
staging``), Click reports "No such option" with no explanation, which
|
|
296
|
+
reads as if the option does not exist at all. This looks the failing
|
|
297
|
+
option up on the root group and, when it is a global one, returns a
|
|
298
|
+
hint showing the working placement.
|
|
299
|
+
"""
|
|
300
|
+
import re
|
|
301
|
+
|
|
302
|
+
match = re.search(r"[Nn]o such option:?\s*'?(--?[A-Za-z][\w-]*)'?", message)
|
|
303
|
+
if not match:
|
|
304
|
+
return None
|
|
305
|
+
token = match.group(1)
|
|
306
|
+
|
|
307
|
+
for param in cli.params:
|
|
308
|
+
opts = list(getattr(param, "opts", [])) + list(
|
|
309
|
+
getattr(param, "secondary_opts", [])
|
|
310
|
+
)
|
|
311
|
+
if token in opts:
|
|
312
|
+
takes_value = not getattr(param, "is_flag", False)
|
|
313
|
+
usage = f"{token} <value>" if takes_value else token
|
|
314
|
+
return (
|
|
315
|
+
f"[yellow]Hint: '{token}' is a global option and must come "
|
|
316
|
+
f"before the subcommand, for example: "
|
|
317
|
+
f"dg {usage} <command> ...[/yellow]"
|
|
318
|
+
)
|
|
319
|
+
return None
|
|
320
|
+
|
|
321
|
+
|
|
290
322
|
def _safe_console_print(message: str) -> None:
|
|
291
323
|
"""Print a diagnostic to stderr, tolerating a closed/broken stream.
|
|
292
324
|
|
|
@@ -401,6 +433,17 @@ def main() -> None:
|
|
|
401
433
|
# Abort, not KeyboardInterrupt. Both are user cancellation: exit 2.
|
|
402
434
|
_safe_console_print("\n[yellow]Operation cancelled by user[/yellow]")
|
|
403
435
|
sys.exit(2)
|
|
436
|
+
except click.UsageError as e:
|
|
437
|
+
# Keep the published exit-code contract (1 = error), but explain the
|
|
438
|
+
# one failure mode that reads as a lie: a *global* option placed
|
|
439
|
+
# after the subcommand, where Click says "No such option" about an
|
|
440
|
+
# option that very much exists.
|
|
441
|
+
message = e.format_message()
|
|
442
|
+
_safe_console_print(f"[red]Error: {message}[/red]")
|
|
443
|
+
hint = _global_option_hint(message)
|
|
444
|
+
if hint:
|
|
445
|
+
_safe_console_print(hint)
|
|
446
|
+
sys.exit(1)
|
|
404
447
|
except Exception as e:
|
|
405
448
|
_safe_console_print(f"[red]Error: {e}[/red]")
|
|
406
449
|
sys.exit(1) # 1 = error; 2 is reserved for user interrupt
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: deepctl
|
|
3
|
-
Version: 0.3.
|
|
3
|
+
Version: 0.3.1
|
|
4
4
|
Summary: Official Deepgram CLI for speech recognition and audio intelligence
|
|
5
5
|
Author-email: Deepgram <devrel@deepgram.com>
|
|
6
6
|
Maintainer-email: Deepgram <devrel@deepgram.com>
|
|
@@ -27,25 +27,25 @@ Description-Content-Type: text/markdown
|
|
|
27
27
|
License-File: LICENSE
|
|
28
28
|
Requires-Dist: click>=8.0.0
|
|
29
29
|
Requires-Dist: deepgram-sdk<8,>=7.7.0
|
|
30
|
-
Requires-Dist: deepctl-core>=0.2.
|
|
31
|
-
Requires-Dist: deepctl-cmd-login>=0.1.
|
|
30
|
+
Requires-Dist: deepctl-core>=0.2.17
|
|
31
|
+
Requires-Dist: deepctl-cmd-login>=0.1.18
|
|
32
32
|
Requires-Dist: deepctl-cmd-projects>=0.2.0
|
|
33
|
-
Requires-Dist: deepctl-cmd-transcribe>=0.1.
|
|
33
|
+
Requires-Dist: deepctl-cmd-transcribe>=0.1.12
|
|
34
34
|
Requires-Dist: deepctl-cmd-usage>=0.2.0
|
|
35
35
|
Requires-Dist: deepctl-cmd-mcp>=0.1.15
|
|
36
|
-
Requires-Dist: deepctl-cmd-api>=0.0.
|
|
37
|
-
Requires-Dist: deepctl-cmd-debug>=0.1.
|
|
38
|
-
Requires-Dist: deepctl-cmd-debug-browser>=0.1.
|
|
39
|
-
Requires-Dist: deepctl-cmd-debug-network>=0.1.
|
|
40
|
-
Requires-Dist: deepctl-cmd-debug-audio>=0.1.
|
|
41
|
-
Requires-Dist: deepctl-cmd-debug-probe>=0.0.
|
|
42
|
-
Requires-Dist: deepctl-cmd-debug-toolkit>=0.0
|
|
43
|
-
Requires-Dist: deepctl-cmd-ffprobe>=0.0.
|
|
44
|
-
Requires-Dist: deepctl-cmd-update>=0.2.
|
|
45
|
-
Requires-Dist: deepctl-cmd-plugin>=0.1.
|
|
46
|
-
Requires-Dist: deepctl-cmd-skills>=0.0.
|
|
47
|
-
Requires-Dist: deepctl-cmd-init>=0.0.
|
|
48
|
-
Requires-Dist: deepctl-cmd-models>=0.1.
|
|
36
|
+
Requires-Dist: deepctl-cmd-api>=0.0.2
|
|
37
|
+
Requires-Dist: deepctl-cmd-debug>=0.1.12
|
|
38
|
+
Requires-Dist: deepctl-cmd-debug-browser>=0.1.12
|
|
39
|
+
Requires-Dist: deepctl-cmd-debug-network>=0.1.12
|
|
40
|
+
Requires-Dist: deepctl-cmd-debug-audio>=0.1.13
|
|
41
|
+
Requires-Dist: deepctl-cmd-debug-probe>=0.0.2
|
|
42
|
+
Requires-Dist: deepctl-cmd-debug-toolkit>=0.1.0
|
|
43
|
+
Requires-Dist: deepctl-cmd-ffprobe>=0.0.2
|
|
44
|
+
Requires-Dist: deepctl-cmd-update>=0.2.7
|
|
45
|
+
Requires-Dist: deepctl-cmd-plugin>=0.1.13
|
|
46
|
+
Requires-Dist: deepctl-cmd-skills>=0.0.8
|
|
47
|
+
Requires-Dist: deepctl-cmd-init>=0.0.4
|
|
48
|
+
Requires-Dist: deepctl-cmd-models>=0.1.1
|
|
49
49
|
Requires-Dist: deepctl-cmd-speak>=0.0.4
|
|
50
50
|
Requires-Dist: deepctl-cmd-keys>=0.1.0
|
|
51
51
|
Requires-Dist: deepctl-cmd-read>=0.1.0
|
|
@@ -53,8 +53,8 @@ Requires-Dist: deepctl-cmd-listen>=0.0.14
|
|
|
53
53
|
Requires-Dist: deepctl-cmd-requests>=0.1.0
|
|
54
54
|
Requires-Dist: deepctl-cmd-billing>=0.1.0
|
|
55
55
|
Requires-Dist: deepctl-cmd-members>=0.1.0
|
|
56
|
-
Requires-Dist: deepctl-cmd-completion>=0.0.
|
|
57
|
-
Requires-Dist: deepctl-shared-utils>=0.1.
|
|
56
|
+
Requires-Dist: deepctl-cmd-completion>=0.0.3
|
|
57
|
+
Requires-Dist: deepctl-shared-utils>=0.1.12
|
|
58
58
|
Requires-Dist: deepctl-telemetry>=0.0.6
|
|
59
59
|
Requires-Dist: pydantic>=2.0.0
|
|
60
60
|
Requires-Dist: rich>=13.0.0
|
|
@@ -74,6 +74,7 @@ Requires-Dist: pytest-timeout<3,>=2.3.1; extra == "dev"
|
|
|
74
74
|
Requires-Dist: responses>=0.23.0; extra == "dev"
|
|
75
75
|
Requires-Dist: ruff>=0.8.0; extra == "dev"
|
|
76
76
|
Requires-Dist: mypy>=1.0.0; extra == "dev"
|
|
77
|
+
Requires-Dist: packaging>=23.0; extra == "dev"
|
|
77
78
|
Requires-Dist: types-PyYAML>=6.0.0; extra == "dev"
|
|
78
79
|
Requires-Dist: types-requests>=2.31.0; extra == "dev"
|
|
79
80
|
Requires-Dist: pre-commit>=3.0.0; extra == "dev"
|
|
@@ -116,8 +117,8 @@ intelligence, and project management directly into your terminal. Aliases:
|
|
|
116
117
|
**macOS / Linux (Homebrew):**
|
|
117
118
|
|
|
118
119
|
```bash
|
|
119
|
-
|
|
120
|
-
brew install deepgram
|
|
120
|
+
# Install and trust only the Deepgram formula.
|
|
121
|
+
brew install deepgram/tap/deepgram
|
|
121
122
|
```
|
|
122
123
|
|
|
123
124
|
Homebrew brings in `ffmpeg` and `portaudio` automatically — `dg listen --mic`, `dg debug probe`, and raw audio piping all work without further setup. To upgrade later: `brew upgrade deepgram`.
|
|
@@ -402,6 +403,24 @@ dg usage --last-week -o yaml
|
|
|
402
403
|
When running in a non-TTY environment (pipes, CI, or AI coding tools), the CLI
|
|
403
404
|
automatically switches to structured JSON output with plain-text status messages.
|
|
404
405
|
|
|
406
|
+
### Exit codes
|
|
407
|
+
|
|
408
|
+
Since 0.3.0, `dg` exits non-zero when a command fails — branch on the exit
|
|
409
|
+
code, not on parsing output:
|
|
410
|
+
|
|
411
|
+
| Code | Meaning |
|
|
412
|
+
| --- | --- |
|
|
413
|
+
| `0` | Success |
|
|
414
|
+
| `1` | Error — a failed command, a crash, or a usage error (bad flag, unknown command) |
|
|
415
|
+
| `2` | Cancelled by the user (Ctrl-C, or declining a confirmation prompt) |
|
|
416
|
+
|
|
417
|
+
Note that `dg` reports `2` for an interrupt rather than the shell's
|
|
418
|
+
conventional `130`, so the code is the same whether the cancellation came from
|
|
419
|
+
Ctrl-C or from declining a prompt.
|
|
420
|
+
|
|
421
|
+
If a CI step relied on `dg` always exiting `0` (every command did, before
|
|
422
|
+
0.3.0), it will now fail where it previously passed silently.
|
|
423
|
+
|
|
405
424
|
### Forcing non-interactive mode
|
|
406
425
|
|
|
407
426
|
Three explicit ways to skip every prompt and run with defaults — useful from a
|
|
@@ -445,7 +464,10 @@ dg profiles --list # List profiles
|
|
|
445
464
|
dg profiles --switch staging # Switch profile
|
|
446
465
|
```
|
|
447
466
|
|
|
448
|
-
|
|
467
|
+
For structured output, use `--output json|yaml|table|csv` after leaf commands
|
|
468
|
+
that do not define their own output option, or before any command as a global
|
|
469
|
+
flag: `dg --output json <command>`. `dg speak --output FILE` writes audio to
|
|
470
|
+
`FILE`, so use `dg --output json speak ...` for Speak's structured output.
|
|
449
471
|
|
|
450
472
|
## Telemetry
|
|
451
473
|
|
|
@@ -1,24 +1,24 @@
|
|
|
1
1
|
click>=8.0.0
|
|
2
2
|
deepgram-sdk<8,>=7.7.0
|
|
3
|
-
deepctl-core>=0.2.
|
|
4
|
-
deepctl-cmd-login>=0.1.
|
|
3
|
+
deepctl-core>=0.2.17
|
|
4
|
+
deepctl-cmd-login>=0.1.18
|
|
5
5
|
deepctl-cmd-projects>=0.2.0
|
|
6
|
-
deepctl-cmd-transcribe>=0.1.
|
|
6
|
+
deepctl-cmd-transcribe>=0.1.12
|
|
7
7
|
deepctl-cmd-usage>=0.2.0
|
|
8
8
|
deepctl-cmd-mcp>=0.1.15
|
|
9
|
-
deepctl-cmd-api>=0.0.
|
|
10
|
-
deepctl-cmd-debug>=0.1.
|
|
11
|
-
deepctl-cmd-debug-browser>=0.1.
|
|
12
|
-
deepctl-cmd-debug-network>=0.1.
|
|
13
|
-
deepctl-cmd-debug-audio>=0.1.
|
|
14
|
-
deepctl-cmd-debug-probe>=0.0.
|
|
15
|
-
deepctl-cmd-debug-toolkit>=0.0
|
|
16
|
-
deepctl-cmd-ffprobe>=0.0.
|
|
17
|
-
deepctl-cmd-update>=0.2.
|
|
18
|
-
deepctl-cmd-plugin>=0.1.
|
|
19
|
-
deepctl-cmd-skills>=0.0.
|
|
20
|
-
deepctl-cmd-init>=0.0.
|
|
21
|
-
deepctl-cmd-models>=0.1.
|
|
9
|
+
deepctl-cmd-api>=0.0.2
|
|
10
|
+
deepctl-cmd-debug>=0.1.12
|
|
11
|
+
deepctl-cmd-debug-browser>=0.1.12
|
|
12
|
+
deepctl-cmd-debug-network>=0.1.12
|
|
13
|
+
deepctl-cmd-debug-audio>=0.1.13
|
|
14
|
+
deepctl-cmd-debug-probe>=0.0.2
|
|
15
|
+
deepctl-cmd-debug-toolkit>=0.1.0
|
|
16
|
+
deepctl-cmd-ffprobe>=0.0.2
|
|
17
|
+
deepctl-cmd-update>=0.2.7
|
|
18
|
+
deepctl-cmd-plugin>=0.1.13
|
|
19
|
+
deepctl-cmd-skills>=0.0.8
|
|
20
|
+
deepctl-cmd-init>=0.0.4
|
|
21
|
+
deepctl-cmd-models>=0.1.1
|
|
22
22
|
deepctl-cmd-speak>=0.0.4
|
|
23
23
|
deepctl-cmd-keys>=0.1.0
|
|
24
24
|
deepctl-cmd-read>=0.1.0
|
|
@@ -26,8 +26,8 @@ deepctl-cmd-listen>=0.0.14
|
|
|
26
26
|
deepctl-cmd-requests>=0.1.0
|
|
27
27
|
deepctl-cmd-billing>=0.1.0
|
|
28
28
|
deepctl-cmd-members>=0.1.0
|
|
29
|
-
deepctl-cmd-completion>=0.0.
|
|
30
|
-
deepctl-shared-utils>=0.1.
|
|
29
|
+
deepctl-cmd-completion>=0.0.3
|
|
30
|
+
deepctl-shared-utils>=0.1.12
|
|
31
31
|
deepctl-telemetry>=0.0.6
|
|
32
32
|
pydantic>=2.0.0
|
|
33
33
|
rich>=13.0.0
|
|
@@ -48,6 +48,7 @@ pytest-timeout<3,>=2.3.1
|
|
|
48
48
|
responses>=0.23.0
|
|
49
49
|
ruff>=0.8.0
|
|
50
50
|
mypy>=1.0.0
|
|
51
|
+
packaging>=23.0
|
|
51
52
|
types-PyYAML>=6.0.0
|
|
52
53
|
types-requests>=2.31.0
|
|
53
54
|
pre-commit>=3.0.0
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|