deepsieve-cli 0.4.0__tar.gz → 0.6.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.
- {deepsieve_cli-0.4.0 → deepsieve_cli-0.6.0}/PKG-INFO +11 -6
- {deepsieve_cli-0.4.0 → deepsieve_cli-0.6.0}/README.md +10 -5
- {deepsieve_cli-0.4.0 → deepsieve_cli-0.6.0}/pyproject.toml +1 -1
- {deepsieve_cli-0.4.0 → deepsieve_cli-0.6.0}/src/deepsieve_cli/client.py +11 -1
- {deepsieve_cli-0.4.0 → deepsieve_cli-0.6.0}/src/deepsieve_cli/main.py +646 -27
- {deepsieve_cli-0.4.0 → deepsieve_cli-0.6.0}/tests/test_cli.py +919 -1
- {deepsieve_cli-0.4.0 → deepsieve_cli-0.6.0}/.gitignore +0 -0
- {deepsieve_cli-0.4.0 → deepsieve_cli-0.6.0}/src/deepsieve_cli/__init__.py +0 -0
- {deepsieve_cli-0.4.0 → deepsieve_cli-0.6.0}/src/deepsieve_cli/__main__.py +0 -0
- {deepsieve_cli-0.4.0 → deepsieve_cli-0.6.0}/src/deepsieve_cli/config.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.5
|
|
2
2
|
Name: deepsieve-cli
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.6.0
|
|
4
4
|
Summary: DeepSieve CLI — run cited deep research from your terminal
|
|
5
5
|
Requires-Python: >=3.11
|
|
6
6
|
Requires-Dist: httpx>=0.27
|
|
@@ -27,18 +27,23 @@ approval screen lists the extra scopes.
|
|
|
27
27
|
## Commands
|
|
28
28
|
|
|
29
29
|
```bash
|
|
30
|
-
deepsieve whoami # identity,
|
|
30
|
+
deepsieve whoami # identity, organization, active Blueprint, scopes
|
|
31
31
|
deepsieve runs create --query "..." --dry-run # free simulated run (~15s)
|
|
32
|
-
deepsieve runs create --query "..." --wait
|
|
33
|
-
deepsieve runs create --seeds "..." --allowed-source "*.gov" # only cite these
|
|
32
|
+
deepsieve runs create --blueprint <id> --query "..." --wait # real run: spends credits
|
|
33
|
+
deepsieve runs create --blueprint <id> --seeds "..." --allowed-source "*.gov" # only cite these
|
|
34
|
+
deepsieve runs create --blueprint <id> --query "..." --expected-total 1000 # refuse (charge nothing) if it now costs more than the estimate
|
|
34
35
|
deepsieve runs list
|
|
35
36
|
deepsieve runs get <id> # exit 4 while still running
|
|
36
37
|
deepsieve runs cancel <id>
|
|
37
|
-
deepsieve members list # who is in the
|
|
38
|
+
deepsieve members list # who is in the organization + seat usage
|
|
38
39
|
deepsieve changes list --live # merges, renames, successor links
|
|
39
40
|
deepsieve changes undo <id> # asks first; --yes in scripts
|
|
40
41
|
deepsieve merge preview <entity> --survivor <id> --loser <id> # writes nothing
|
|
41
|
-
deepsieve merge apply <entity> --survivor <id> --loser <id> [--choice KEY=loser]
|
|
42
|
+
deepsieve merge apply <entity> --survivor <id> --loser <id> [--choice KEY=loser] --preview-digest <digest>
|
|
43
|
+
deepsieve runs retry <id> # a retry that charges shows its total and asks
|
|
44
|
+
deepsieve runs reruns <id> # a report's re-research waiting for approval
|
|
45
|
+
deepsieve runs monitoring <id> --off # stop a report's monitoring; asks first
|
|
46
|
+
deepsieve links remove <entity> <record-id> <linked-entity> <target-id> # asks first
|
|
42
47
|
deepsieve data catalog # entities + columns (never guess)
|
|
43
48
|
deepsieve data get companies --receipts # rows with per-cell citations
|
|
44
49
|
deepsieve chat thread <run-id> # changes, with status + warnings
|
|
@@ -19,18 +19,23 @@ approval screen lists the extra scopes.
|
|
|
19
19
|
## Commands
|
|
20
20
|
|
|
21
21
|
```bash
|
|
22
|
-
deepsieve whoami # identity,
|
|
22
|
+
deepsieve whoami # identity, organization, active Blueprint, scopes
|
|
23
23
|
deepsieve runs create --query "..." --dry-run # free simulated run (~15s)
|
|
24
|
-
deepsieve runs create --query "..." --wait
|
|
25
|
-
deepsieve runs create --seeds "..." --allowed-source "*.gov" # only cite these
|
|
24
|
+
deepsieve runs create --blueprint <id> --query "..." --wait # real run: spends credits
|
|
25
|
+
deepsieve runs create --blueprint <id> --seeds "..." --allowed-source "*.gov" # only cite these
|
|
26
|
+
deepsieve runs create --blueprint <id> --query "..." --expected-total 1000 # refuse (charge nothing) if it now costs more than the estimate
|
|
26
27
|
deepsieve runs list
|
|
27
28
|
deepsieve runs get <id> # exit 4 while still running
|
|
28
29
|
deepsieve runs cancel <id>
|
|
29
|
-
deepsieve members list # who is in the
|
|
30
|
+
deepsieve members list # who is in the organization + seat usage
|
|
30
31
|
deepsieve changes list --live # merges, renames, successor links
|
|
31
32
|
deepsieve changes undo <id> # asks first; --yes in scripts
|
|
32
33
|
deepsieve merge preview <entity> --survivor <id> --loser <id> # writes nothing
|
|
33
|
-
deepsieve merge apply <entity> --survivor <id> --loser <id> [--choice KEY=loser]
|
|
34
|
+
deepsieve merge apply <entity> --survivor <id> --loser <id> [--choice KEY=loser] --preview-digest <digest>
|
|
35
|
+
deepsieve runs retry <id> # a retry that charges shows its total and asks
|
|
36
|
+
deepsieve runs reruns <id> # a report's re-research waiting for approval
|
|
37
|
+
deepsieve runs monitoring <id> --off # stop a report's monitoring; asks first
|
|
38
|
+
deepsieve links remove <entity> <record-id> <linked-entity> <target-id> # asks first
|
|
34
39
|
deepsieve data catalog # entities + columns (never guess)
|
|
35
40
|
deepsieve data get companies --receipts # rows with per-cell citations
|
|
36
41
|
deepsieve chat thread <run-id> # changes, with status + warnings
|
|
@@ -21,10 +21,19 @@ USER_AGENT = "deepsieve-cli"
|
|
|
21
21
|
|
|
22
22
|
|
|
23
23
|
class ApiError(Exception):
|
|
24
|
-
def __init__(
|
|
24
|
+
def __init__(
|
|
25
|
+
self,
|
|
26
|
+
code: str,
|
|
27
|
+
message: str,
|
|
28
|
+
*,
|
|
29
|
+
request_id: str | None = None,
|
|
30
|
+
details: dict | None = None,
|
|
31
|
+
) -> None:
|
|
25
32
|
self.code = code
|
|
26
33
|
self.message = message
|
|
27
34
|
self.request_id = request_id
|
|
35
|
+
#: Structured facts from the error envelope (`locked_until`), when the API sent them.
|
|
36
|
+
self.details = details or {}
|
|
28
37
|
super().__init__(message)
|
|
29
38
|
|
|
30
39
|
def __str__(self) -> str:
|
|
@@ -87,6 +96,7 @@ class Client:
|
|
|
87
96
|
err.get("code", f"http_{r.status_code}"),
|
|
88
97
|
err.get("message", f"HTTP {r.status_code} from {path}"),
|
|
89
98
|
request_id=err.get("request_id"),
|
|
99
|
+
details=err.get("details"),
|
|
90
100
|
)
|
|
91
101
|
return body
|
|
92
102
|
|