unique-sdk 2026.30.0.dev2__tar.gz → 2026.30.0.dev4__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.
- {unique_sdk-2026.30.0.dev2 → unique_sdk-2026.30.0.dev4}/PKG-INFO +1 -1
- {unique_sdk-2026.30.0.dev2 → unique_sdk-2026.30.0.dev4}/pyproject.toml +1 -1
- {unique_sdk-2026.30.0.dev2 → unique_sdk-2026.30.0.dev4}/unique_sdk/cli/commands/search.py +9 -2
- {unique_sdk-2026.30.0.dev2 → unique_sdk-2026.30.0.dev4}/unique_sdk/cli/skills/unique-cli-search/SKILL.md +1 -37
- unique_sdk-2026.30.0.dev4/unique_sdk/cli/skills/unique-cli-uploaded-search/SKILL.md +113 -0
- {unique_sdk-2026.30.0.dev2 → unique_sdk-2026.30.0.dev4}/unique_sdk/cli/state.py +10 -0
- {unique_sdk-2026.30.0.dev2 → unique_sdk-2026.30.0.dev4}/README.md +0 -0
- {unique_sdk-2026.30.0.dev2 → unique_sdk-2026.30.0.dev4}/unique_sdk/__init__.py +0 -0
- {unique_sdk-2026.30.0.dev2 → unique_sdk-2026.30.0.dev4}/unique_sdk/_api_requestor.py +0 -0
- {unique_sdk-2026.30.0.dev2 → unique_sdk-2026.30.0.dev4}/unique_sdk/_api_resource.py +0 -0
- {unique_sdk-2026.30.0.dev2 → unique_sdk-2026.30.0.dev4}/unique_sdk/_api_version.py +0 -0
- {unique_sdk-2026.30.0.dev2 → unique_sdk-2026.30.0.dev4}/unique_sdk/_error.py +0 -0
- {unique_sdk-2026.30.0.dev2 → unique_sdk-2026.30.0.dev4}/unique_sdk/_http_client.py +0 -0
- {unique_sdk-2026.30.0.dev2 → unique_sdk-2026.30.0.dev4}/unique_sdk/_list_object.py +0 -0
- {unique_sdk-2026.30.0.dev2 → unique_sdk-2026.30.0.dev4}/unique_sdk/_object_classes.py +0 -0
- {unique_sdk-2026.30.0.dev2 → unique_sdk-2026.30.0.dev4}/unique_sdk/_request_options.py +0 -0
- {unique_sdk-2026.30.0.dev2 → unique_sdk-2026.30.0.dev4}/unique_sdk/_unique_object.py +0 -0
- {unique_sdk-2026.30.0.dev2 → unique_sdk-2026.30.0.dev4}/unique_sdk/_unique_ql.py +0 -0
- {unique_sdk-2026.30.0.dev2 → unique_sdk-2026.30.0.dev4}/unique_sdk/_unique_response.py +0 -0
- {unique_sdk-2026.30.0.dev2 → unique_sdk-2026.30.0.dev4}/unique_sdk/_util.py +0 -0
- {unique_sdk-2026.30.0.dev2 → unique_sdk-2026.30.0.dev4}/unique_sdk/_version.py +0 -0
- {unique_sdk-2026.30.0.dev2 → unique_sdk-2026.30.0.dev4}/unique_sdk/_webhook.py +0 -0
- {unique_sdk-2026.30.0.dev2 → unique_sdk-2026.30.0.dev4}/unique_sdk/api_resources/__init__.py +0 -0
- {unique_sdk-2026.30.0.dev2 → unique_sdk-2026.30.0.dev4}/unique_sdk/api_resources/_acronyms.py +0 -0
- {unique_sdk-2026.30.0.dev2 → unique_sdk-2026.30.0.dev4}/unique_sdk/api_resources/_agentic_table.py +0 -0
- {unique_sdk-2026.30.0.dev2 → unique_sdk-2026.30.0.dev4}/unique_sdk/api_resources/_analytics_order.py +0 -0
- {unique_sdk-2026.30.0.dev2 → unique_sdk-2026.30.0.dev4}/unique_sdk/api_resources/_benchmarking.py +0 -0
- {unique_sdk-2026.30.0.dev2 → unique_sdk-2026.30.0.dev4}/unique_sdk/api_resources/_briefing.py +0 -0
- {unique_sdk-2026.30.0.dev2 → unique_sdk-2026.30.0.dev4}/unique_sdk/api_resources/_chat_completion.py +0 -0
- {unique_sdk-2026.30.0.dev2 → unique_sdk-2026.30.0.dev4}/unique_sdk/api_resources/_content.py +0 -0
- {unique_sdk-2026.30.0.dev2 → unique_sdk-2026.30.0.dev4}/unique_sdk/api_resources/_dynamic_frontend.py +0 -0
- {unique_sdk-2026.30.0.dev2 → unique_sdk-2026.30.0.dev4}/unique_sdk/api_resources/_elicitation.py +0 -0
- {unique_sdk-2026.30.0.dev2 → unique_sdk-2026.30.0.dev4}/unique_sdk/api_resources/_embedding.py +0 -0
- {unique_sdk-2026.30.0.dev2 → unique_sdk-2026.30.0.dev4}/unique_sdk/api_resources/_event.py +0 -0
- {unique_sdk-2026.30.0.dev2 → unique_sdk-2026.30.0.dev4}/unique_sdk/api_resources/_folder.py +0 -0
- {unique_sdk-2026.30.0.dev2 → unique_sdk-2026.30.0.dev4}/unique_sdk/api_resources/_group.py +0 -0
- {unique_sdk-2026.30.0.dev2 → unique_sdk-2026.30.0.dev4}/unique_sdk/api_resources/_integrated.py +0 -0
- {unique_sdk-2026.30.0.dev2 → unique_sdk-2026.30.0.dev4}/unique_sdk/api_resources/_llm_models.py +0 -0
- {unique_sdk-2026.30.0.dev2 → unique_sdk-2026.30.0.dev4}/unique_sdk/api_resources/_mcp.py +0 -0
- {unique_sdk-2026.30.0.dev2 → unique_sdk-2026.30.0.dev4}/unique_sdk/api_resources/_message.py +0 -0
- {unique_sdk-2026.30.0.dev2 → unique_sdk-2026.30.0.dev4}/unique_sdk/api_resources/_message_assessment.py +0 -0
- {unique_sdk-2026.30.0.dev2 → unique_sdk-2026.30.0.dev4}/unique_sdk/api_resources/_message_execution.py +0 -0
- {unique_sdk-2026.30.0.dev2 → unique_sdk-2026.30.0.dev4}/unique_sdk/api_resources/_message_log.py +0 -0
- {unique_sdk-2026.30.0.dev2 → unique_sdk-2026.30.0.dev4}/unique_sdk/api_resources/_message_tool.py +0 -0
- {unique_sdk-2026.30.0.dev2 → unique_sdk-2026.30.0.dev4}/unique_sdk/api_resources/_module.py +0 -0
- {unique_sdk-2026.30.0.dev2 → unique_sdk-2026.30.0.dev4}/unique_sdk/api_resources/_scheduled_task.py +0 -0
- {unique_sdk-2026.30.0.dev2 → unique_sdk-2026.30.0.dev4}/unique_sdk/api_resources/_search.py +0 -0
- {unique_sdk-2026.30.0.dev2 → unique_sdk-2026.30.0.dev4}/unique_sdk/api_resources/_search_string.py +0 -0
- {unique_sdk-2026.30.0.dev2 → unique_sdk-2026.30.0.dev4}/unique_sdk/api_resources/_short_term_memory.py +0 -0
- {unique_sdk-2026.30.0.dev2 → unique_sdk-2026.30.0.dev4}/unique_sdk/api_resources/_space.py +0 -0
- {unique_sdk-2026.30.0.dev2 → unique_sdk-2026.30.0.dev4}/unique_sdk/api_resources/_user.py +0 -0
- {unique_sdk-2026.30.0.dev2 → unique_sdk-2026.30.0.dev4}/unique_sdk/api_resources/_web_search.py +0 -0
- {unique_sdk-2026.30.0.dev2 → unique_sdk-2026.30.0.dev4}/unique_sdk/cli/__init__.py +0 -0
- {unique_sdk-2026.30.0.dev2 → unique_sdk-2026.30.0.dev4}/unique_sdk/cli/__main__.py +0 -0
- {unique_sdk-2026.30.0.dev2 → unique_sdk-2026.30.0.dev4}/unique_sdk/cli/cli.py +0 -0
- {unique_sdk-2026.30.0.dev2 → unique_sdk-2026.30.0.dev4}/unique_sdk/cli/commands/__init__.py +0 -0
- {unique_sdk-2026.30.0.dev2 → unique_sdk-2026.30.0.dev4}/unique_sdk/cli/commands/_citation_manifest.py +0 -0
- {unique_sdk-2026.30.0.dev2 → unique_sdk-2026.30.0.dev4}/unique_sdk/cli/commands/browser.py +0 -0
- {unique_sdk-2026.30.0.dev2 → unique_sdk-2026.30.0.dev4}/unique_sdk/cli/commands/cite_file.py +0 -0
- {unique_sdk-2026.30.0.dev2 → unique_sdk-2026.30.0.dev4}/unique_sdk/cli/commands/dynamic_frontend.py +0 -0
- {unique_sdk-2026.30.0.dev2 → unique_sdk-2026.30.0.dev4}/unique_sdk/cli/commands/elicitation.py +0 -0
- {unique_sdk-2026.30.0.dev2 → unique_sdk-2026.30.0.dev4}/unique_sdk/cli/commands/files.py +0 -0
- {unique_sdk-2026.30.0.dev2 → unique_sdk-2026.30.0.dev4}/unique_sdk/cli/commands/folders.py +0 -0
- {unique_sdk-2026.30.0.dev2 → unique_sdk-2026.30.0.dev4}/unique_sdk/cli/commands/mcp.py +0 -0
- {unique_sdk-2026.30.0.dev2 → unique_sdk-2026.30.0.dev4}/unique_sdk/cli/commands/navigation.py +0 -0
- {unique_sdk-2026.30.0.dev2 → unique_sdk-2026.30.0.dev4}/unique_sdk/cli/commands/read.py +0 -0
- {unique_sdk-2026.30.0.dev2 → unique_sdk-2026.30.0.dev4}/unique_sdk/cli/commands/scheduled_tasks.py +0 -0
- {unique_sdk-2026.30.0.dev2 → unique_sdk-2026.30.0.dev4}/unique_sdk/cli/commands/subagent.py +0 -0
- {unique_sdk-2026.30.0.dev2 → unique_sdk-2026.30.0.dev4}/unique_sdk/cli/commands/web_search.py +0 -0
- {unique_sdk-2026.30.0.dev2 → unique_sdk-2026.30.0.dev4}/unique_sdk/cli/commands/web_search_config.py +0 -0
- {unique_sdk-2026.30.0.dev2 → unique_sdk-2026.30.0.dev4}/unique_sdk/cli/config.py +0 -0
- {unique_sdk-2026.30.0.dev2 → unique_sdk-2026.30.0.dev4}/unique_sdk/cli/formatting.py +0 -0
- {unique_sdk-2026.30.0.dev2 → unique_sdk-2026.30.0.dev4}/unique_sdk/cli/metadata_filter.py +0 -0
- {unique_sdk-2026.30.0.dev2 → unique_sdk-2026.30.0.dev4}/unique_sdk/cli/shell.py +0 -0
- {unique_sdk-2026.30.0.dev2 → unique_sdk-2026.30.0.dev4}/unique_sdk/cli/skills/unique-cli-dynamic-frontend/SKILL.md +0 -0
- {unique_sdk-2026.30.0.dev2 → unique_sdk-2026.30.0.dev4}/unique_sdk/cli/skills/unique-cli-elicitation/SKILL.md +0 -0
- {unique_sdk-2026.30.0.dev2 → unique_sdk-2026.30.0.dev4}/unique_sdk/cli/skills/unique-cli-file-management/SKILL.md +0 -0
- {unique_sdk-2026.30.0.dev2 → unique_sdk-2026.30.0.dev4}/unique_sdk/cli/skills/unique-cli-mcp/SKILL.md +0 -0
- {unique_sdk-2026.30.0.dev2 → unique_sdk-2026.30.0.dev4}/unique_sdk/cli/skills/unique-cli-scheduled-tasks/SKILL.md +0 -0
- {unique_sdk-2026.30.0.dev2 → unique_sdk-2026.30.0.dev4}/unique_sdk/cli/skills/unique-cli-subagent/SKILL.md +0 -0
- {unique_sdk-2026.30.0.dev2 → unique_sdk-2026.30.0.dev4}/unique_sdk/cli/skills/unique-cli-web-search/SKILL.md +0 -0
- {unique_sdk-2026.30.0.dev2 → unique_sdk-2026.30.0.dev4}/unique_sdk/utils/analytics_order_run.py +0 -0
- {unique_sdk-2026.30.0.dev2 → unique_sdk-2026.30.0.dev4}/unique_sdk/utils/benchmarking_run.py +0 -0
- {unique_sdk-2026.30.0.dev2 → unique_sdk-2026.30.0.dev4}/unique_sdk/utils/chat_history.py +0 -0
- {unique_sdk-2026.30.0.dev2 → unique_sdk-2026.30.0.dev4}/unique_sdk/utils/chat_in_space.py +0 -0
- {unique_sdk-2026.30.0.dev2 → unique_sdk-2026.30.0.dev4}/unique_sdk/utils/file_io.py +0 -0
- {unique_sdk-2026.30.0.dev2 → unique_sdk-2026.30.0.dev4}/unique_sdk/utils/sources.py +0 -0
- {unique_sdk-2026.30.0.dev2 → unique_sdk-2026.30.0.dev4}/unique_sdk/utils/token.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.3
|
|
2
2
|
Name: unique-sdk
|
|
3
|
-
Version: 2026.30.0.
|
|
3
|
+
Version: 2026.30.0.dev4
|
|
4
4
|
Summary:
|
|
5
5
|
Author: Martin Fadler, Konstantin Krauss, Andreas Hauri
|
|
6
6
|
Author-email: Martin Fadler <martin.fadler@unique.ch>, Konstantin Krauss <konstantin@unique.ch>, Andreas Hauri <andreas@unique.ch>
|
|
@@ -261,9 +261,16 @@ def cmd_search(
|
|
|
261
261
|
"searchString": query,
|
|
262
262
|
"searchType": "COMBINED",
|
|
263
263
|
"limit": limit,
|
|
264
|
+
# An unscoped search must send an explicit ``scopeIds: null``,
|
|
265
|
+
# never omit the key. An absent key reaches node-ingestion as
|
|
266
|
+
# ``undefined`` and is destructure-defaulted to ``[]``, which
|
|
267
|
+
# getScopes treats as "restrict to zero scopes" — an entire-KB
|
|
268
|
+
# search then returns nothing on companies without file-based
|
|
269
|
+
# access. A JSON ``null`` bypasses both the default and the
|
|
270
|
+
# truthy check, matching what unique_toolkit's
|
|
271
|
+
# search_content_chunks sends. See UN-22753.
|
|
272
|
+
"scopeIds": scope_ids or None,
|
|
264
273
|
}
|
|
265
|
-
if scope_ids:
|
|
266
|
-
search_params["scopeIds"] = scope_ids
|
|
267
274
|
if metadata_filter:
|
|
268
275
|
search_params["metaDataFilter"] = metadata_filter
|
|
269
276
|
|
|
@@ -7,10 +7,7 @@ description: >-
|
|
|
7
7
|
platform. Use whenever the user asks to find, search, or query documents
|
|
8
8
|
or content on Unique, including filtering by folder or metadata.
|
|
9
9
|
Also covers `unique-cli read <cont_id>` for reading the full indexed text
|
|
10
|
-
of a document when its content ID is already known
|
|
11
|
-
`unique-cli uploaded-search "<query>"` for searching documents uploaded for
|
|
12
|
-
the current task/row, which are NOT in the knowledge-base scope and never
|
|
13
|
-
appear in `unique-cli search`.
|
|
10
|
+
of a document when its content ID is already known.
|
|
14
11
|
NOTE: This search uses combined vector + full-text indexing. Excel
|
|
15
12
|
(.xlsx/.xls), CSV (.csv), and image files are NOT full-text indexed,
|
|
16
13
|
so they will not appear in search results. To locate these file types,
|
|
@@ -95,43 +92,10 @@ unique-cli search "audit" -m department=Legal -m year=2025
|
|
|
95
92
|
unique-cli search "regulatory" -f /Legal -m year=2025 -l 50
|
|
96
93
|
```
|
|
97
94
|
|
|
98
|
-
## Searching Uploaded Documents (`uploaded-search`)
|
|
99
|
-
|
|
100
|
-
Documents **uploaded for the current task** (e.g. an Agentic Table row's
|
|
101
|
-
attached files) are **not** part of the knowledge-base folder scope. They will
|
|
102
|
-
**never** appear in `unique-cli search` results, no matter the folder or
|
|
103
|
-
metadata filters — uploaded files are scoped to the chat, not to a KB folder.
|
|
104
|
-
Use `uploaded-search` to retrieve them:
|
|
105
|
-
|
|
106
|
-
```bash
|
|
107
|
-
# Search the documents uploaded for this row/task
|
|
108
|
-
unique-cli uploaded-search "target asset classes and investment strategy"
|
|
109
|
-
|
|
110
|
-
# Limit results
|
|
111
|
-
unique-cli uploaded-search "fee structure" --limit 50
|
|
112
|
-
```
|
|
113
|
-
|
|
114
|
-
When to use which:
|
|
115
|
-
|
|
116
|
-
| You want to search… | Command |
|
|
117
|
-
|---------------------|---------|
|
|
118
|
-
| The knowledge base (folders the task scope grants) | `unique-cli search "<query>"` |
|
|
119
|
-
| Documents uploaded for **this** row/task | `unique-cli uploaded-search "<query>"` |
|
|
120
|
-
|
|
121
|
-
`uploaded-search` returns the same `<sourceN>...</sourceN>` blocks as `search`
|
|
122
|
-
and shares the **same per-turn citation manifest**, so `[sourceN]` numbering is
|
|
123
|
-
continuous across both commands within a turn — cite an uploaded-document fact
|
|
124
|
-
exactly the same way (`[sourceN]`). If no documents were uploaded for the task,
|
|
125
|
-
the command reports that and you should fall back to `unique-cli search`.
|
|
126
|
-
|
|
127
|
-
> **Note:** there is no `--folder`/`--metadata` for `uploaded-search` — the set
|
|
128
|
-
> of uploaded documents is fixed by what was attached to the task.
|
|
129
|
-
|
|
130
95
|
## Command Reference
|
|
131
96
|
|
|
132
97
|
```
|
|
133
98
|
unique-cli search <query> [--folder <path|scope_id>] [--metadata <key=value>]... [--limit <N>]
|
|
134
|
-
unique-cli uploaded-search <query> [--limit <N>]
|
|
135
99
|
```
|
|
136
100
|
|
|
137
101
|
| Option | Short | Default | Description |
|
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: unique-cli-uploaded-search
|
|
3
|
+
description: >-
|
|
4
|
+
Search the documents uploaded for the CURRENT task/row (e.g. an Agentic
|
|
5
|
+
Table row's attached files) via the `unique-cli uploaded-search "<query>"`
|
|
6
|
+
command, with the same per-turn citation tracking as `unique-cli search`
|
|
7
|
+
so cited facts render as `<sup>N</sup>` footnotes and clickable reference
|
|
8
|
+
chips on the Unique platform. ALWAYS use this skill when the user refers to
|
|
9
|
+
documents they uploaded/attached to this task, or when you need facts from
|
|
10
|
+
the task's own attached files. These uploaded files are scoped to the chat,
|
|
11
|
+
NOT to a knowledge-base folder, so they will NEVER appear in
|
|
12
|
+
`unique-cli search` results no matter the folder or metadata filters. Use
|
|
13
|
+
`unique-cli search` for the knowledge base and this command for the task's
|
|
14
|
+
uploaded documents; the two are complementary and citation numbering is
|
|
15
|
+
shared across them within a turn.
|
|
16
|
+
---
|
|
17
|
+
|
|
18
|
+
# Unique CLI -- Uploaded Document Search
|
|
19
|
+
|
|
20
|
+
Documents **uploaded for the current task** (for example an Agentic Table
|
|
21
|
+
row's attached files) are **not** part of the knowledge-base folder scope.
|
|
22
|
+
They are scoped to the chat, so they will **never** appear in
|
|
23
|
+
`unique-cli search` results — no folder or metadata filter can surface them.
|
|
24
|
+
Use `unique-cli uploaded-search` to retrieve them.
|
|
25
|
+
|
|
26
|
+
## Basic Usage
|
|
27
|
+
|
|
28
|
+
```bash
|
|
29
|
+
# Search the documents uploaded for this row/task
|
|
30
|
+
unique-cli uploaded-search "target asset classes and investment strategy"
|
|
31
|
+
|
|
32
|
+
# Limit results
|
|
33
|
+
unique-cli uploaded-search "fee structure" --limit 50
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
There is **no** `--folder`/`--metadata` for `uploaded-search` — the set of
|
|
37
|
+
uploaded documents is fixed by what was attached to the task.
|
|
38
|
+
|
|
39
|
+
If no documents were uploaded for this task, the command reports that and you
|
|
40
|
+
should fall back to `unique-cli search` for the knowledge base.
|
|
41
|
+
|
|
42
|
+
## When to use which command
|
|
43
|
+
|
|
44
|
+
| You want to search… | Command |
|
|
45
|
+
|---------------------|---------|
|
|
46
|
+
| The knowledge base (folders the task scope grants) | `unique-cli search "<query>"` |
|
|
47
|
+
| Documents uploaded for **this** row/task | `unique-cli uploaded-search "<query>"` |
|
|
48
|
+
|
|
49
|
+
## Output Format
|
|
50
|
+
|
|
51
|
+
Each result is rendered as a `<sourceN>...</sourceN>` block, identical to
|
|
52
|
+
`unique-cli search`. `N` is **1-based** and **shared with `unique-cli search`
|
|
53
|
+
within the same turn** — both commands append to the same per-turn citation
|
|
54
|
+
manifest, so numbering stays continuous across them (a `search` call that
|
|
55
|
+
emitted `<source1>`–`<source3>` is followed by an `uploaded-search` call whose
|
|
56
|
+
first result is `<source4>`).
|
|
57
|
+
|
|
58
|
+
```
|
|
59
|
+
Found 1 result(s):
|
|
60
|
+
|
|
61
|
+
<source1>
|
|
62
|
+
<|document|>investment-mandate.pdf</|document|>
|
|
63
|
+
<|page|>2</|page|>
|
|
64
|
+
<|info|>cont_abc123</|info|>
|
|
65
|
+
...the mandate targets EMEA equities with a 5% cap per issuer...
|
|
66
|
+
</source1>
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
## Citation Rules
|
|
70
|
+
|
|
71
|
+
Cite a fact from `uploaded-search` results with `[sourceN]`, **exactly** as you
|
|
72
|
+
would for `unique-cli search` — the two share the same namespace and manifest.
|
|
73
|
+
The Unique platform converts each `[sourceN]` marker in your final answer into a
|
|
74
|
+
`<sup>N</sup>` footnote and a clickable reference chip.
|
|
75
|
+
|
|
76
|
+
```
|
|
77
|
+
The uploaded mandate caps single-issuer exposure at 5% [source1].
|
|
78
|
+
```
|
|
79
|
+
|
|
80
|
+
**Rules** (enforced by the platform's reference post-processor):
|
|
81
|
+
|
|
82
|
+
1. **`[sourceN]` is for KB and uploaded-document results.** Web results from
|
|
83
|
+
`unique-cli web-search` use `[websourceN]` — never mix the two namespaces.
|
|
84
|
+
2. Only cite numbers you saw in the **current** turn's `search` /
|
|
85
|
+
`uploaded-search` output. Numbers from previous turns are stale and will be
|
|
86
|
+
silently dropped.
|
|
87
|
+
3. Write `source` in singular form with the number in digits: `[source1]`,
|
|
88
|
+
`[source2]` — not `[Source 1]` or `[source one]`.
|
|
89
|
+
4. Prefer citing each fact with a single, most-relevant source.
|
|
90
|
+
5. Do not invent source numbers for remembered or inferred facts.
|
|
91
|
+
|
|
92
|
+
## Command Reference
|
|
93
|
+
|
|
94
|
+
```
|
|
95
|
+
unique-cli uploaded-search <query> [--limit <N>]
|
|
96
|
+
```
|
|
97
|
+
|
|
98
|
+
| Option | Short | Default | Description |
|
|
99
|
+
|--------|-------|---------|-------------|
|
|
100
|
+
| `--limit` | `-l` | 200 | Max results |
|
|
101
|
+
|
|
102
|
+
## Prerequisites
|
|
103
|
+
|
|
104
|
+
Requires these environment variables:
|
|
105
|
+
|
|
106
|
+
```bash
|
|
107
|
+
UNIQUE_USER_ID # User ID (required)
|
|
108
|
+
UNIQUE_COMPANY_ID # Company ID (required)
|
|
109
|
+
UNIQUE_API_KEY # API key — optional on localhost / secured cluster
|
|
110
|
+
UNIQUE_APP_ID # App ID — optional on localhost / secured cluster
|
|
111
|
+
```
|
|
112
|
+
|
|
113
|
+
Install: `pip install unique-sdk`
|
|
@@ -263,6 +263,14 @@ class ShellState:
|
|
|
263
263
|
"""Return True if *content_id* is in the current workspace scope.
|
|
264
264
|
|
|
265
265
|
Precedence (UN-21780):
|
|
266
|
+
0. Per-row uploaded documents (``.unique-uploaded.json``) surfaced by
|
|
267
|
+
``unique-cli uploaded-search`` are task inputs that live *outside* the
|
|
268
|
+
KB scope boundary by design, so neither the metadata filter nor the
|
|
269
|
+
static ``scopeIds`` path below would admit them. Exempt them for
|
|
270
|
+
non-destructive access so the agent can ``read``/``ls``/``cite`` a doc
|
|
271
|
+
it just found via uploaded-search — mirroring the chat-file exemption.
|
|
272
|
+
Mutating ops (``rm``/``mv``) pass ``allow_chat_files=False`` and stay
|
|
273
|
+
denied, so an uploaded input can't be deleted or renamed this way.
|
|
266
274
|
1. A per-message UniqueQL ``metaDataFilter`` (e.g. an Agentic Table
|
|
267
275
|
column's ``scope_rules``) is the authority for this turn and
|
|
268
276
|
*replaces* the static ``scopeIds`` for content access. Files the
|
|
@@ -275,6 +283,8 @@ class ShellState:
|
|
|
275
283
|
``is_folder_target_within_workspace``).
|
|
276
284
|
3. With neither configured, everything is in scope.
|
|
277
285
|
"""
|
|
286
|
+
if allow_chat_files and content_id in self.uploaded_search_content_ids:
|
|
287
|
+
return True
|
|
278
288
|
if self.workspace_metadata_filter is not None:
|
|
279
289
|
if allow_chat_files and content_id in self._chat_file_content_ids():
|
|
280
290
|
return True
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{unique_sdk-2026.30.0.dev2 → unique_sdk-2026.30.0.dev4}/unique_sdk/api_resources/__init__.py
RENAMED
|
File without changes
|
{unique_sdk-2026.30.0.dev2 → unique_sdk-2026.30.0.dev4}/unique_sdk/api_resources/_acronyms.py
RENAMED
|
File without changes
|
{unique_sdk-2026.30.0.dev2 → unique_sdk-2026.30.0.dev4}/unique_sdk/api_resources/_agentic_table.py
RENAMED
|
File without changes
|
{unique_sdk-2026.30.0.dev2 → unique_sdk-2026.30.0.dev4}/unique_sdk/api_resources/_analytics_order.py
RENAMED
|
File without changes
|
{unique_sdk-2026.30.0.dev2 → unique_sdk-2026.30.0.dev4}/unique_sdk/api_resources/_benchmarking.py
RENAMED
|
File without changes
|
{unique_sdk-2026.30.0.dev2 → unique_sdk-2026.30.0.dev4}/unique_sdk/api_resources/_briefing.py
RENAMED
|
File without changes
|
{unique_sdk-2026.30.0.dev2 → unique_sdk-2026.30.0.dev4}/unique_sdk/api_resources/_chat_completion.py
RENAMED
|
File without changes
|
{unique_sdk-2026.30.0.dev2 → unique_sdk-2026.30.0.dev4}/unique_sdk/api_resources/_content.py
RENAMED
|
File without changes
|
|
File without changes
|
{unique_sdk-2026.30.0.dev2 → unique_sdk-2026.30.0.dev4}/unique_sdk/api_resources/_elicitation.py
RENAMED
|
File without changes
|
{unique_sdk-2026.30.0.dev2 → unique_sdk-2026.30.0.dev4}/unique_sdk/api_resources/_embedding.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{unique_sdk-2026.30.0.dev2 → unique_sdk-2026.30.0.dev4}/unique_sdk/api_resources/_integrated.py
RENAMED
|
File without changes
|
{unique_sdk-2026.30.0.dev2 → unique_sdk-2026.30.0.dev4}/unique_sdk/api_resources/_llm_models.py
RENAMED
|
File without changes
|
|
File without changes
|
{unique_sdk-2026.30.0.dev2 → unique_sdk-2026.30.0.dev4}/unique_sdk/api_resources/_message.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{unique_sdk-2026.30.0.dev2 → unique_sdk-2026.30.0.dev4}/unique_sdk/api_resources/_message_log.py
RENAMED
|
File without changes
|
{unique_sdk-2026.30.0.dev2 → unique_sdk-2026.30.0.dev4}/unique_sdk/api_resources/_message_tool.py
RENAMED
|
File without changes
|
|
File without changes
|
{unique_sdk-2026.30.0.dev2 → unique_sdk-2026.30.0.dev4}/unique_sdk/api_resources/_scheduled_task.py
RENAMED
|
File without changes
|
|
File without changes
|
{unique_sdk-2026.30.0.dev2 → unique_sdk-2026.30.0.dev4}/unique_sdk/api_resources/_search_string.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{unique_sdk-2026.30.0.dev2 → unique_sdk-2026.30.0.dev4}/unique_sdk/api_resources/_web_search.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{unique_sdk-2026.30.0.dev2 → unique_sdk-2026.30.0.dev4}/unique_sdk/cli/commands/cite_file.py
RENAMED
|
File without changes
|
{unique_sdk-2026.30.0.dev2 → unique_sdk-2026.30.0.dev4}/unique_sdk/cli/commands/dynamic_frontend.py
RENAMED
|
File without changes
|
{unique_sdk-2026.30.0.dev2 → unique_sdk-2026.30.0.dev4}/unique_sdk/cli/commands/elicitation.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{unique_sdk-2026.30.0.dev2 → unique_sdk-2026.30.0.dev4}/unique_sdk/cli/commands/navigation.py
RENAMED
|
File without changes
|
|
File without changes
|
{unique_sdk-2026.30.0.dev2 → unique_sdk-2026.30.0.dev4}/unique_sdk/cli/commands/scheduled_tasks.py
RENAMED
|
File without changes
|
|
File without changes
|
{unique_sdk-2026.30.0.dev2 → unique_sdk-2026.30.0.dev4}/unique_sdk/cli/commands/web_search.py
RENAMED
|
File without changes
|
{unique_sdk-2026.30.0.dev2 → unique_sdk-2026.30.0.dev4}/unique_sdk/cli/commands/web_search_config.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{unique_sdk-2026.30.0.dev2 → unique_sdk-2026.30.0.dev4}/unique_sdk/utils/analytics_order_run.py
RENAMED
|
File without changes
|
{unique_sdk-2026.30.0.dev2 → unique_sdk-2026.30.0.dev4}/unique_sdk/utils/benchmarking_run.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|