unique-sdk 2026.32.0.dev10__tar.gz → 2026.32.0.dev12__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.32.0.dev10 → unique_sdk-2026.32.0.dev12}/PKG-INFO +1 -1
- {unique_sdk-2026.32.0.dev10 → unique_sdk-2026.32.0.dev12}/pyproject.toml +1 -1
- {unique_sdk-2026.32.0.dev10 → unique_sdk-2026.32.0.dev12}/unique_sdk/cli/cli.py +219 -10
- unique_sdk-2026.32.0.dev12/unique_sdk/cli/commands/agentic_table_write.py +551 -0
- {unique_sdk-2026.32.0.dev10 → unique_sdk-2026.32.0.dev12}/unique_sdk/cli/formatting.py +47 -0
- unique_sdk-2026.32.0.dev12/unique_sdk/cli/skills/unique-cli-agentic-table/SKILL.md +226 -0
- {unique_sdk-2026.32.0.dev10 → unique_sdk-2026.32.0.dev12}/unique_sdk/cli/skills/unique-cli-elicitation/SKILL.md +120 -33
- unique_sdk-2026.32.0.dev10/unique_sdk/cli/skills/unique-cli-agentic-table/SKILL.md +0 -110
- {unique_sdk-2026.32.0.dev10 → unique_sdk-2026.32.0.dev12}/README.md +0 -0
- {unique_sdk-2026.32.0.dev10 → unique_sdk-2026.32.0.dev12}/unique_sdk/__init__.py +0 -0
- {unique_sdk-2026.32.0.dev10 → unique_sdk-2026.32.0.dev12}/unique_sdk/_api_requestor.py +0 -0
- {unique_sdk-2026.32.0.dev10 → unique_sdk-2026.32.0.dev12}/unique_sdk/_api_resource.py +0 -0
- {unique_sdk-2026.32.0.dev10 → unique_sdk-2026.32.0.dev12}/unique_sdk/_api_version.py +0 -0
- {unique_sdk-2026.32.0.dev10 → unique_sdk-2026.32.0.dev12}/unique_sdk/_error.py +0 -0
- {unique_sdk-2026.32.0.dev10 → unique_sdk-2026.32.0.dev12}/unique_sdk/_http_client.py +0 -0
- {unique_sdk-2026.32.0.dev10 → unique_sdk-2026.32.0.dev12}/unique_sdk/_list_object.py +0 -0
- {unique_sdk-2026.32.0.dev10 → unique_sdk-2026.32.0.dev12}/unique_sdk/_object_classes.py +0 -0
- {unique_sdk-2026.32.0.dev10 → unique_sdk-2026.32.0.dev12}/unique_sdk/_request_options.py +0 -0
- {unique_sdk-2026.32.0.dev10 → unique_sdk-2026.32.0.dev12}/unique_sdk/_unique_object.py +0 -0
- {unique_sdk-2026.32.0.dev10 → unique_sdk-2026.32.0.dev12}/unique_sdk/_unique_ql.py +0 -0
- {unique_sdk-2026.32.0.dev10 → unique_sdk-2026.32.0.dev12}/unique_sdk/_unique_response.py +0 -0
- {unique_sdk-2026.32.0.dev10 → unique_sdk-2026.32.0.dev12}/unique_sdk/_util.py +0 -0
- {unique_sdk-2026.32.0.dev10 → unique_sdk-2026.32.0.dev12}/unique_sdk/_version.py +0 -0
- {unique_sdk-2026.32.0.dev10 → unique_sdk-2026.32.0.dev12}/unique_sdk/_webhook.py +0 -0
- {unique_sdk-2026.32.0.dev10 → unique_sdk-2026.32.0.dev12}/unique_sdk/api_resources/__init__.py +0 -0
- {unique_sdk-2026.32.0.dev10 → unique_sdk-2026.32.0.dev12}/unique_sdk/api_resources/_acronyms.py +0 -0
- {unique_sdk-2026.32.0.dev10 → unique_sdk-2026.32.0.dev12}/unique_sdk/api_resources/_agentic_table.py +0 -0
- {unique_sdk-2026.32.0.dev10 → unique_sdk-2026.32.0.dev12}/unique_sdk/api_resources/_analytics_order.py +0 -0
- {unique_sdk-2026.32.0.dev10 → unique_sdk-2026.32.0.dev12}/unique_sdk/api_resources/_benchmarking.py +0 -0
- {unique_sdk-2026.32.0.dev10 → unique_sdk-2026.32.0.dev12}/unique_sdk/api_resources/_briefing.py +0 -0
- {unique_sdk-2026.32.0.dev10 → unique_sdk-2026.32.0.dev12}/unique_sdk/api_resources/_chat_completion.py +0 -0
- {unique_sdk-2026.32.0.dev10 → unique_sdk-2026.32.0.dev12}/unique_sdk/api_resources/_content.py +0 -0
- {unique_sdk-2026.32.0.dev10 → unique_sdk-2026.32.0.dev12}/unique_sdk/api_resources/_elicitation.py +0 -0
- {unique_sdk-2026.32.0.dev10 → unique_sdk-2026.32.0.dev12}/unique_sdk/api_resources/_embedding.py +0 -0
- {unique_sdk-2026.32.0.dev10 → unique_sdk-2026.32.0.dev12}/unique_sdk/api_resources/_event.py +0 -0
- {unique_sdk-2026.32.0.dev10 → unique_sdk-2026.32.0.dev12}/unique_sdk/api_resources/_folder.py +0 -0
- {unique_sdk-2026.32.0.dev10 → unique_sdk-2026.32.0.dev12}/unique_sdk/api_resources/_group.py +0 -0
- {unique_sdk-2026.32.0.dev10 → unique_sdk-2026.32.0.dev12}/unique_sdk/api_resources/_integrated.py +0 -0
- {unique_sdk-2026.32.0.dev10 → unique_sdk-2026.32.0.dev12}/unique_sdk/api_resources/_llm_models.py +0 -0
- {unique_sdk-2026.32.0.dev10 → unique_sdk-2026.32.0.dev12}/unique_sdk/api_resources/_mcp.py +0 -0
- {unique_sdk-2026.32.0.dev10 → unique_sdk-2026.32.0.dev12}/unique_sdk/api_resources/_message.py +0 -0
- {unique_sdk-2026.32.0.dev10 → unique_sdk-2026.32.0.dev12}/unique_sdk/api_resources/_message_assessment.py +0 -0
- {unique_sdk-2026.32.0.dev10 → unique_sdk-2026.32.0.dev12}/unique_sdk/api_resources/_message_execution.py +0 -0
- {unique_sdk-2026.32.0.dev10 → unique_sdk-2026.32.0.dev12}/unique_sdk/api_resources/_message_log.py +0 -0
- {unique_sdk-2026.32.0.dev10 → unique_sdk-2026.32.0.dev12}/unique_sdk/api_resources/_message_tool.py +0 -0
- {unique_sdk-2026.32.0.dev10 → unique_sdk-2026.32.0.dev12}/unique_sdk/api_resources/_module.py +0 -0
- {unique_sdk-2026.32.0.dev10 → unique_sdk-2026.32.0.dev12}/unique_sdk/api_resources/_scheduled_task.py +0 -0
- {unique_sdk-2026.32.0.dev10 → unique_sdk-2026.32.0.dev12}/unique_sdk/api_resources/_search.py +0 -0
- {unique_sdk-2026.32.0.dev10 → unique_sdk-2026.32.0.dev12}/unique_sdk/api_resources/_search_string.py +0 -0
- {unique_sdk-2026.32.0.dev10 → unique_sdk-2026.32.0.dev12}/unique_sdk/api_resources/_short_term_memory.py +0 -0
- {unique_sdk-2026.32.0.dev10 → unique_sdk-2026.32.0.dev12}/unique_sdk/api_resources/_space.py +0 -0
- {unique_sdk-2026.32.0.dev10 → unique_sdk-2026.32.0.dev12}/unique_sdk/api_resources/_user.py +0 -0
- {unique_sdk-2026.32.0.dev10 → unique_sdk-2026.32.0.dev12}/unique_sdk/api_resources/_web_search.py +0 -0
- {unique_sdk-2026.32.0.dev10 → unique_sdk-2026.32.0.dev12}/unique_sdk/cli/__init__.py +0 -0
- {unique_sdk-2026.32.0.dev10 → unique_sdk-2026.32.0.dev12}/unique_sdk/cli/__main__.py +0 -0
- {unique_sdk-2026.32.0.dev10 → unique_sdk-2026.32.0.dev12}/unique_sdk/cli/commands/__init__.py +0 -0
- {unique_sdk-2026.32.0.dev10 → unique_sdk-2026.32.0.dev12}/unique_sdk/cli/commands/_citation_manifest.py +0 -0
- {unique_sdk-2026.32.0.dev10 → unique_sdk-2026.32.0.dev12}/unique_sdk/cli/commands/agentic_table.py +0 -0
- {unique_sdk-2026.32.0.dev10 → unique_sdk-2026.32.0.dev12}/unique_sdk/cli/commands/browser.py +0 -0
- {unique_sdk-2026.32.0.dev10 → unique_sdk-2026.32.0.dev12}/unique_sdk/cli/commands/cite_file.py +0 -0
- {unique_sdk-2026.32.0.dev10 → unique_sdk-2026.32.0.dev12}/unique_sdk/cli/commands/elicitation.py +0 -0
- {unique_sdk-2026.32.0.dev10 → unique_sdk-2026.32.0.dev12}/unique_sdk/cli/commands/files.py +0 -0
- {unique_sdk-2026.32.0.dev10 → unique_sdk-2026.32.0.dev12}/unique_sdk/cli/commands/folders.py +0 -0
- {unique_sdk-2026.32.0.dev10 → unique_sdk-2026.32.0.dev12}/unique_sdk/cli/commands/mcp.py +0 -0
- {unique_sdk-2026.32.0.dev10 → unique_sdk-2026.32.0.dev12}/unique_sdk/cli/commands/navigation.py +0 -0
- {unique_sdk-2026.32.0.dev10 → unique_sdk-2026.32.0.dev12}/unique_sdk/cli/commands/read.py +0 -0
- {unique_sdk-2026.32.0.dev10 → unique_sdk-2026.32.0.dev12}/unique_sdk/cli/commands/scheduled_tasks.py +0 -0
- {unique_sdk-2026.32.0.dev10 → unique_sdk-2026.32.0.dev12}/unique_sdk/cli/commands/search.py +0 -0
- {unique_sdk-2026.32.0.dev10 → unique_sdk-2026.32.0.dev12}/unique_sdk/cli/commands/subagent.py +0 -0
- {unique_sdk-2026.32.0.dev10 → unique_sdk-2026.32.0.dev12}/unique_sdk/cli/commands/web_search.py +0 -0
- {unique_sdk-2026.32.0.dev10 → unique_sdk-2026.32.0.dev12}/unique_sdk/cli/commands/web_search_config.py +0 -0
- {unique_sdk-2026.32.0.dev10 → unique_sdk-2026.32.0.dev12}/unique_sdk/cli/config.py +0 -0
- {unique_sdk-2026.32.0.dev10 → unique_sdk-2026.32.0.dev12}/unique_sdk/cli/identity.py +0 -0
- {unique_sdk-2026.32.0.dev10 → unique_sdk-2026.32.0.dev12}/unique_sdk/cli/metadata_filter.py +0 -0
- {unique_sdk-2026.32.0.dev10 → unique_sdk-2026.32.0.dev12}/unique_sdk/cli/shell.py +0 -0
- {unique_sdk-2026.32.0.dev10 → unique_sdk-2026.32.0.dev12}/unique_sdk/cli/skills/unique-cli-file-management/SKILL.md +0 -0
- {unique_sdk-2026.32.0.dev10 → unique_sdk-2026.32.0.dev12}/unique_sdk/cli/skills/unique-cli-mcp/SKILL.md +0 -0
- {unique_sdk-2026.32.0.dev10 → unique_sdk-2026.32.0.dev12}/unique_sdk/cli/skills/unique-cli-scheduled-tasks/SKILL.md +0 -0
- {unique_sdk-2026.32.0.dev10 → unique_sdk-2026.32.0.dev12}/unique_sdk/cli/skills/unique-cli-search/SKILL.md +0 -0
- {unique_sdk-2026.32.0.dev10 → unique_sdk-2026.32.0.dev12}/unique_sdk/cli/skills/unique-cli-subagent/SKILL.md +0 -0
- {unique_sdk-2026.32.0.dev10 → unique_sdk-2026.32.0.dev12}/unique_sdk/cli/skills/unique-cli-uploaded-search/SKILL.md +0 -0
- {unique_sdk-2026.32.0.dev10 → unique_sdk-2026.32.0.dev12}/unique_sdk/cli/skills/unique-cli-web-search/SKILL.md +0 -0
- {unique_sdk-2026.32.0.dev10 → unique_sdk-2026.32.0.dev12}/unique_sdk/cli/state.py +0 -0
- {unique_sdk-2026.32.0.dev10 → unique_sdk-2026.32.0.dev12}/unique_sdk/utils/analytics_order_run.py +0 -0
- {unique_sdk-2026.32.0.dev10 → unique_sdk-2026.32.0.dev12}/unique_sdk/utils/benchmarking_run.py +0 -0
- {unique_sdk-2026.32.0.dev10 → unique_sdk-2026.32.0.dev12}/unique_sdk/utils/chat_history.py +0 -0
- {unique_sdk-2026.32.0.dev10 → unique_sdk-2026.32.0.dev12}/unique_sdk/utils/chat_in_space.py +0 -0
- {unique_sdk-2026.32.0.dev10 → unique_sdk-2026.32.0.dev12}/unique_sdk/utils/file_io.py +0 -0
- {unique_sdk-2026.32.0.dev10 → unique_sdk-2026.32.0.dev12}/unique_sdk/utils/sources.py +0 -0
- {unique_sdk-2026.32.0.dev10 → unique_sdk-2026.32.0.dev12}/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.32.0.
|
|
3
|
+
Version: 2026.32.0.dev12
|
|
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>
|
|
@@ -18,6 +18,11 @@ from unique_sdk.cli.commands.agentic_table import (
|
|
|
18
18
|
from unique_sdk.cli.commands.agentic_table import (
|
|
19
19
|
is_error_output as _is_agentic_table_error_output,
|
|
20
20
|
)
|
|
21
|
+
from unique_sdk.cli.commands.agentic_table_write import (
|
|
22
|
+
cmd_create_sheet,
|
|
23
|
+
cmd_export,
|
|
24
|
+
cmd_import,
|
|
25
|
+
)
|
|
21
26
|
from unique_sdk.cli.commands.browser import (
|
|
22
27
|
cmd_browser_action,
|
|
23
28
|
cmd_browser_control,
|
|
@@ -2203,28 +2208,35 @@ def web_search_crawl_cmd(
|
|
|
2203
2208
|
|
|
2204
2209
|
|
|
2205
2210
|
_AGENTIC_TABLE_HELP = """\
|
|
2206
|
-
|
|
2211
|
+
Work with Agentic Table (magic table) sheets over the public magic-table API.
|
|
2207
2212
|
|
|
2208
2213
|
\b
|
|
2209
|
-
|
|
2210
|
-
no
|
|
2211
|
-
|
|
2212
|
-
is
|
|
2214
|
+
Reads (get-sheet / get-cell / cell-history / list-exports) are Tier 0: no
|
|
2215
|
+
confirmation, no side effects. Writes (create-sheet / import / export) build
|
|
2216
|
+
and run a sheet — the full loop of create, populate, run, and export. Every
|
|
2217
|
+
call is scoped to the current user/company; sheet-role access (Owner / Can
|
|
2218
|
+
manage / Can edit) is enforced server-side and a denial is reported as
|
|
2219
|
+
`agentic-table: permission denied`.
|
|
2213
2220
|
|
|
2214
2221
|
\b
|
|
2215
|
-
|
|
2222
|
+
Read subcommands:
|
|
2216
2223
|
get-sheet Show a sheet summary (state, row count, metadata, cells)
|
|
2217
2224
|
get-cell Show a single cell by row/column order
|
|
2218
2225
|
cell-history Show a single cell's log/edit history
|
|
2219
2226
|
list-exports List a sheet's export artifacts (reports, question exports)
|
|
2220
2227
|
|
|
2228
|
+
\b
|
|
2229
|
+
Write subcommands:
|
|
2230
|
+
create-sheet Create a new sheet in a space
|
|
2231
|
+
import Import questions/sources (adding questions triggers the run)
|
|
2232
|
+
export Generate export artifacts (report / question export)
|
|
2233
|
+
|
|
2221
2234
|
\b
|
|
2222
2235
|
Examples:
|
|
2223
|
-
unique-cli agentic-table get-sheet mt_abc123
|
|
2224
2236
|
unique-cli agentic-table get-sheet mt_abc123 --cells --metadata
|
|
2225
|
-
unique-cli agentic-table
|
|
2226
|
-
unique-cli agentic-table
|
|
2227
|
-
unique-cli agentic-table
|
|
2237
|
+
unique-cli agentic-table create-sheet asst_123 --name "Vendor DDQ"
|
|
2238
|
+
unique-cli agentic-table import mt_abc123 --question-file-id c_q --source-file-id c_src --wait
|
|
2239
|
+
unique-cli agentic-table export mt_abc123 --type FULL_REPORT --wait
|
|
2228
2240
|
"""
|
|
2229
2241
|
|
|
2230
2242
|
|
|
@@ -2394,3 +2406,200 @@ def agentic_table_list_exports(
|
|
|
2394
2406
|
),
|
|
2395
2407
|
is_error=_is_agentic_table_error_output,
|
|
2396
2408
|
)
|
|
2409
|
+
|
|
2410
|
+
|
|
2411
|
+
@agentic_table.command(name="create-sheet")
|
|
2412
|
+
@click.argument("assistant_id")
|
|
2413
|
+
@click.option("--name", "name", default=None, help="Sheet name.")
|
|
2414
|
+
@click.option(
|
|
2415
|
+
"--due-at",
|
|
2416
|
+
"due_at",
|
|
2417
|
+
default=None,
|
|
2418
|
+
help="Due date (ISO-8601, e.g. 2026-12-31T00:00:00Z).",
|
|
2419
|
+
)
|
|
2420
|
+
@click.option(
|
|
2421
|
+
"--json", "output_json", is_flag=True, default=False, help="Print raw JSON."
|
|
2422
|
+
)
|
|
2423
|
+
@click.pass_context
|
|
2424
|
+
def agentic_table_create_sheet(
|
|
2425
|
+
ctx: click.Context,
|
|
2426
|
+
assistant_id: str,
|
|
2427
|
+
name: str | None,
|
|
2428
|
+
due_at: str | None,
|
|
2429
|
+
output_json: bool,
|
|
2430
|
+
) -> None:
|
|
2431
|
+
"""Create a new sheet in a space.
|
|
2432
|
+
|
|
2433
|
+
\b
|
|
2434
|
+
ASSISTANT_ID is the space the sheet is created in; you must have write
|
|
2435
|
+
access to it. The printed ID is the table id for import/export/reads.
|
|
2436
|
+
|
|
2437
|
+
\b
|
|
2438
|
+
Examples:
|
|
2439
|
+
unique-cli agentic-table create-sheet asst_123 --name "Vendor DDQ"
|
|
2440
|
+
"""
|
|
2441
|
+
emit(
|
|
2442
|
+
cmd_create_sheet(
|
|
2443
|
+
LazyState.get(ctx),
|
|
2444
|
+
assistant_id,
|
|
2445
|
+
name=name,
|
|
2446
|
+
due_at=due_at,
|
|
2447
|
+
output_json=output_json,
|
|
2448
|
+
),
|
|
2449
|
+
is_error=_is_agentic_table_error_output,
|
|
2450
|
+
)
|
|
2451
|
+
|
|
2452
|
+
|
|
2453
|
+
@agentic_table.command(name="import")
|
|
2454
|
+
@click.argument("table_id")
|
|
2455
|
+
@click.option(
|
|
2456
|
+
"--question-file-id",
|
|
2457
|
+
"question_file_ids",
|
|
2458
|
+
multiple=True,
|
|
2459
|
+
help="Content id of a questionnaire file (repeatable).",
|
|
2460
|
+
)
|
|
2461
|
+
@click.option(
|
|
2462
|
+
"--question-text",
|
|
2463
|
+
"question_texts",
|
|
2464
|
+
multiple=True,
|
|
2465
|
+
help="A question to add directly (repeatable).",
|
|
2466
|
+
)
|
|
2467
|
+
@click.option(
|
|
2468
|
+
"--source-file-id",
|
|
2469
|
+
"source_file_ids",
|
|
2470
|
+
multiple=True,
|
|
2471
|
+
help="Content id of a source/knowledge file (repeatable).",
|
|
2472
|
+
)
|
|
2473
|
+
@click.option(
|
|
2474
|
+
"--context", "context", default=None, help="Free-text context for the run."
|
|
2475
|
+
)
|
|
2476
|
+
@click.option(
|
|
2477
|
+
"--wait",
|
|
2478
|
+
"wait",
|
|
2479
|
+
is_flag=True,
|
|
2480
|
+
default=False,
|
|
2481
|
+
help="Wait for the triggered run to finish before returning.",
|
|
2482
|
+
)
|
|
2483
|
+
@click.option(
|
|
2484
|
+
"--timeout",
|
|
2485
|
+
"timeout",
|
|
2486
|
+
type=click.FloatRange(min=0),
|
|
2487
|
+
default=600.0,
|
|
2488
|
+
show_default=True,
|
|
2489
|
+
help="Max seconds to wait when --wait is set.",
|
|
2490
|
+
)
|
|
2491
|
+
@click.option(
|
|
2492
|
+
"--start-timeout",
|
|
2493
|
+
"start_timeout",
|
|
2494
|
+
type=click.FloatRange(min=0),
|
|
2495
|
+
default=120.0,
|
|
2496
|
+
show_default=True,
|
|
2497
|
+
help=(
|
|
2498
|
+
"Max seconds to wait for the run to be picked up before treating it as "
|
|
2499
|
+
"never started. Raise it when the worker queue is slow."
|
|
2500
|
+
),
|
|
2501
|
+
)
|
|
2502
|
+
@click.option(
|
|
2503
|
+
"--json", "output_json", is_flag=True, default=False, help="Print raw JSON."
|
|
2504
|
+
)
|
|
2505
|
+
@click.pass_context
|
|
2506
|
+
def agentic_table_import(
|
|
2507
|
+
ctx: click.Context,
|
|
2508
|
+
table_id: str,
|
|
2509
|
+
question_file_ids: tuple[str, ...],
|
|
2510
|
+
question_texts: tuple[str, ...],
|
|
2511
|
+
source_file_ids: tuple[str, ...],
|
|
2512
|
+
context: str | None,
|
|
2513
|
+
wait: bool,
|
|
2514
|
+
timeout: float,
|
|
2515
|
+
start_timeout: float,
|
|
2516
|
+
output_json: bool,
|
|
2517
|
+
) -> None:
|
|
2518
|
+
"""Import questions and sources into a sheet.
|
|
2519
|
+
|
|
2520
|
+
\b
|
|
2521
|
+
Adding new questions triggers the agent run; adding only sources does not.
|
|
2522
|
+
Ids/texts already on the sheet are skipped. With --wait, blocks until the
|
|
2523
|
+
run finishes so you can chain an export.
|
|
2524
|
+
|
|
2525
|
+
\b
|
|
2526
|
+
Examples:
|
|
2527
|
+
unique-cli agentic-table import mt_abc123 --question-file-id c_q --source-file-id c_src
|
|
2528
|
+
unique-cli agentic-table import mt_abc123 --question-text "What is the fee?" --wait
|
|
2529
|
+
"""
|
|
2530
|
+
emit(
|
|
2531
|
+
cmd_import(
|
|
2532
|
+
LazyState.get(ctx),
|
|
2533
|
+
table_id,
|
|
2534
|
+
question_file_ids=list(question_file_ids),
|
|
2535
|
+
question_texts=list(question_texts),
|
|
2536
|
+
source_file_ids=list(source_file_ids),
|
|
2537
|
+
context=context,
|
|
2538
|
+
wait=wait,
|
|
2539
|
+
timeout=timeout,
|
|
2540
|
+
start_timeout=start_timeout,
|
|
2541
|
+
output_json=output_json,
|
|
2542
|
+
),
|
|
2543
|
+
is_error=_is_agentic_table_error_output,
|
|
2544
|
+
)
|
|
2545
|
+
|
|
2546
|
+
|
|
2547
|
+
@agentic_table.command(name="export")
|
|
2548
|
+
@click.argument("table_id")
|
|
2549
|
+
@click.option(
|
|
2550
|
+
"--type",
|
|
2551
|
+
"artifact_types",
|
|
2552
|
+
multiple=True,
|
|
2553
|
+
required=True,
|
|
2554
|
+
type=click.Choice(["FULL_REPORT", "QUESTIONS", "AGENTIC_REPORT"]),
|
|
2555
|
+
help="Artifact type to generate (repeatable).",
|
|
2556
|
+
)
|
|
2557
|
+
@click.option(
|
|
2558
|
+
"--wait",
|
|
2559
|
+
"wait",
|
|
2560
|
+
is_flag=True,
|
|
2561
|
+
default=False,
|
|
2562
|
+
help="Wait for the requested artifacts to be ready, then list them.",
|
|
2563
|
+
)
|
|
2564
|
+
@click.option(
|
|
2565
|
+
"--timeout",
|
|
2566
|
+
"timeout",
|
|
2567
|
+
type=click.FloatRange(min=0),
|
|
2568
|
+
default=600.0,
|
|
2569
|
+
show_default=True,
|
|
2570
|
+
help="Max seconds to wait when --wait is set.",
|
|
2571
|
+
)
|
|
2572
|
+
@click.option(
|
|
2573
|
+
"--json", "output_json", is_flag=True, default=False, help="Print raw JSON."
|
|
2574
|
+
)
|
|
2575
|
+
@click.pass_context
|
|
2576
|
+
def agentic_table_export(
|
|
2577
|
+
ctx: click.Context,
|
|
2578
|
+
table_id: str,
|
|
2579
|
+
artifact_types: tuple[str, ...],
|
|
2580
|
+
wait: bool,
|
|
2581
|
+
timeout: float,
|
|
2582
|
+
output_json: bool,
|
|
2583
|
+
) -> None:
|
|
2584
|
+
"""Generate export artifacts for a sheet.
|
|
2585
|
+
|
|
2586
|
+
\b
|
|
2587
|
+
Generation is asynchronous. With --wait, blocks until each requested type
|
|
2588
|
+
is DONE and prints the artifact table with the content id to download.
|
|
2589
|
+
|
|
2590
|
+
\b
|
|
2591
|
+
Examples:
|
|
2592
|
+
unique-cli agentic-table export mt_abc123 --type FULL_REPORT
|
|
2593
|
+
unique-cli agentic-table export mt_abc123 --type FULL_REPORT --type QUESTIONS --wait
|
|
2594
|
+
"""
|
|
2595
|
+
emit(
|
|
2596
|
+
cmd_export(
|
|
2597
|
+
LazyState.get(ctx),
|
|
2598
|
+
table_id,
|
|
2599
|
+
artifact_types=list(artifact_types),
|
|
2600
|
+
wait=wait,
|
|
2601
|
+
timeout=timeout,
|
|
2602
|
+
output_json=output_json,
|
|
2603
|
+
),
|
|
2604
|
+
is_error=_is_agentic_table_error_output,
|
|
2605
|
+
)
|