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.
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.5
2
2
  Name: deepsieve-cli
3
- Version: 0.4.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, workspace, scopes
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 # real run: spends credits
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 workspace + seat usage
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, workspace, scopes
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 # real run: spends credits
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 workspace + seat usage
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
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "deepsieve-cli"
3
- version = "0.4.0"
3
+ version = "0.6.0"
4
4
  description = "DeepSieve CLI — run cited deep research from your terminal"
5
5
  requires-python = ">=3.11"
6
6
  readme = "README.md"
@@ -21,10 +21,19 @@ USER_AGENT = "deepsieve-cli"
21
21
 
22
22
 
23
23
  class ApiError(Exception):
24
- def __init__(self, code: str, message: str, *, request_id: str | None = None) -> None:
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