unique-sdk 2026.32.0.dev0__tar.gz → 2026.32.0.dev1__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.
Files changed (89) hide show
  1. {unique_sdk-2026.32.0.dev0 → unique_sdk-2026.32.0.dev1}/PKG-INFO +1 -1
  2. {unique_sdk-2026.32.0.dev0 → unique_sdk-2026.32.0.dev1}/pyproject.toml +1 -1
  3. {unique_sdk-2026.32.0.dev0 → unique_sdk-2026.32.0.dev1}/unique_sdk/cli/commands/elicitation.py +12 -2
  4. {unique_sdk-2026.32.0.dev0 → unique_sdk-2026.32.0.dev1}/unique_sdk/cli/skills/unique-cli-elicitation/SKILL.md +7 -0
  5. {unique_sdk-2026.32.0.dev0 → unique_sdk-2026.32.0.dev1}/README.md +0 -0
  6. {unique_sdk-2026.32.0.dev0 → unique_sdk-2026.32.0.dev1}/unique_sdk/__init__.py +0 -0
  7. {unique_sdk-2026.32.0.dev0 → unique_sdk-2026.32.0.dev1}/unique_sdk/_api_requestor.py +0 -0
  8. {unique_sdk-2026.32.0.dev0 → unique_sdk-2026.32.0.dev1}/unique_sdk/_api_resource.py +0 -0
  9. {unique_sdk-2026.32.0.dev0 → unique_sdk-2026.32.0.dev1}/unique_sdk/_api_version.py +0 -0
  10. {unique_sdk-2026.32.0.dev0 → unique_sdk-2026.32.0.dev1}/unique_sdk/_error.py +0 -0
  11. {unique_sdk-2026.32.0.dev0 → unique_sdk-2026.32.0.dev1}/unique_sdk/_http_client.py +0 -0
  12. {unique_sdk-2026.32.0.dev0 → unique_sdk-2026.32.0.dev1}/unique_sdk/_list_object.py +0 -0
  13. {unique_sdk-2026.32.0.dev0 → unique_sdk-2026.32.0.dev1}/unique_sdk/_object_classes.py +0 -0
  14. {unique_sdk-2026.32.0.dev0 → unique_sdk-2026.32.0.dev1}/unique_sdk/_request_options.py +0 -0
  15. {unique_sdk-2026.32.0.dev0 → unique_sdk-2026.32.0.dev1}/unique_sdk/_unique_object.py +0 -0
  16. {unique_sdk-2026.32.0.dev0 → unique_sdk-2026.32.0.dev1}/unique_sdk/_unique_ql.py +0 -0
  17. {unique_sdk-2026.32.0.dev0 → unique_sdk-2026.32.0.dev1}/unique_sdk/_unique_response.py +0 -0
  18. {unique_sdk-2026.32.0.dev0 → unique_sdk-2026.32.0.dev1}/unique_sdk/_util.py +0 -0
  19. {unique_sdk-2026.32.0.dev0 → unique_sdk-2026.32.0.dev1}/unique_sdk/_version.py +0 -0
  20. {unique_sdk-2026.32.0.dev0 → unique_sdk-2026.32.0.dev1}/unique_sdk/_webhook.py +0 -0
  21. {unique_sdk-2026.32.0.dev0 → unique_sdk-2026.32.0.dev1}/unique_sdk/api_resources/__init__.py +0 -0
  22. {unique_sdk-2026.32.0.dev0 → unique_sdk-2026.32.0.dev1}/unique_sdk/api_resources/_acronyms.py +0 -0
  23. {unique_sdk-2026.32.0.dev0 → unique_sdk-2026.32.0.dev1}/unique_sdk/api_resources/_agentic_table.py +0 -0
  24. {unique_sdk-2026.32.0.dev0 → unique_sdk-2026.32.0.dev1}/unique_sdk/api_resources/_analytics_order.py +0 -0
  25. {unique_sdk-2026.32.0.dev0 → unique_sdk-2026.32.0.dev1}/unique_sdk/api_resources/_benchmarking.py +0 -0
  26. {unique_sdk-2026.32.0.dev0 → unique_sdk-2026.32.0.dev1}/unique_sdk/api_resources/_briefing.py +0 -0
  27. {unique_sdk-2026.32.0.dev0 → unique_sdk-2026.32.0.dev1}/unique_sdk/api_resources/_chat_completion.py +0 -0
  28. {unique_sdk-2026.32.0.dev0 → unique_sdk-2026.32.0.dev1}/unique_sdk/api_resources/_content.py +0 -0
  29. {unique_sdk-2026.32.0.dev0 → unique_sdk-2026.32.0.dev1}/unique_sdk/api_resources/_dynamic_frontend.py +0 -0
  30. {unique_sdk-2026.32.0.dev0 → unique_sdk-2026.32.0.dev1}/unique_sdk/api_resources/_elicitation.py +0 -0
  31. {unique_sdk-2026.32.0.dev0 → unique_sdk-2026.32.0.dev1}/unique_sdk/api_resources/_embedding.py +0 -0
  32. {unique_sdk-2026.32.0.dev0 → unique_sdk-2026.32.0.dev1}/unique_sdk/api_resources/_event.py +0 -0
  33. {unique_sdk-2026.32.0.dev0 → unique_sdk-2026.32.0.dev1}/unique_sdk/api_resources/_folder.py +0 -0
  34. {unique_sdk-2026.32.0.dev0 → unique_sdk-2026.32.0.dev1}/unique_sdk/api_resources/_group.py +0 -0
  35. {unique_sdk-2026.32.0.dev0 → unique_sdk-2026.32.0.dev1}/unique_sdk/api_resources/_integrated.py +0 -0
  36. {unique_sdk-2026.32.0.dev0 → unique_sdk-2026.32.0.dev1}/unique_sdk/api_resources/_llm_models.py +0 -0
  37. {unique_sdk-2026.32.0.dev0 → unique_sdk-2026.32.0.dev1}/unique_sdk/api_resources/_mcp.py +0 -0
  38. {unique_sdk-2026.32.0.dev0 → unique_sdk-2026.32.0.dev1}/unique_sdk/api_resources/_message.py +0 -0
  39. {unique_sdk-2026.32.0.dev0 → unique_sdk-2026.32.0.dev1}/unique_sdk/api_resources/_message_assessment.py +0 -0
  40. {unique_sdk-2026.32.0.dev0 → unique_sdk-2026.32.0.dev1}/unique_sdk/api_resources/_message_execution.py +0 -0
  41. {unique_sdk-2026.32.0.dev0 → unique_sdk-2026.32.0.dev1}/unique_sdk/api_resources/_message_log.py +0 -0
  42. {unique_sdk-2026.32.0.dev0 → unique_sdk-2026.32.0.dev1}/unique_sdk/api_resources/_message_tool.py +0 -0
  43. {unique_sdk-2026.32.0.dev0 → unique_sdk-2026.32.0.dev1}/unique_sdk/api_resources/_module.py +0 -0
  44. {unique_sdk-2026.32.0.dev0 → unique_sdk-2026.32.0.dev1}/unique_sdk/api_resources/_scheduled_task.py +0 -0
  45. {unique_sdk-2026.32.0.dev0 → unique_sdk-2026.32.0.dev1}/unique_sdk/api_resources/_search.py +0 -0
  46. {unique_sdk-2026.32.0.dev0 → unique_sdk-2026.32.0.dev1}/unique_sdk/api_resources/_search_string.py +0 -0
  47. {unique_sdk-2026.32.0.dev0 → unique_sdk-2026.32.0.dev1}/unique_sdk/api_resources/_short_term_memory.py +0 -0
  48. {unique_sdk-2026.32.0.dev0 → unique_sdk-2026.32.0.dev1}/unique_sdk/api_resources/_space.py +0 -0
  49. {unique_sdk-2026.32.0.dev0 → unique_sdk-2026.32.0.dev1}/unique_sdk/api_resources/_user.py +0 -0
  50. {unique_sdk-2026.32.0.dev0 → unique_sdk-2026.32.0.dev1}/unique_sdk/api_resources/_web_search.py +0 -0
  51. {unique_sdk-2026.32.0.dev0 → unique_sdk-2026.32.0.dev1}/unique_sdk/cli/__init__.py +0 -0
  52. {unique_sdk-2026.32.0.dev0 → unique_sdk-2026.32.0.dev1}/unique_sdk/cli/__main__.py +0 -0
  53. {unique_sdk-2026.32.0.dev0 → unique_sdk-2026.32.0.dev1}/unique_sdk/cli/cli.py +0 -0
  54. {unique_sdk-2026.32.0.dev0 → unique_sdk-2026.32.0.dev1}/unique_sdk/cli/commands/__init__.py +0 -0
  55. {unique_sdk-2026.32.0.dev0 → unique_sdk-2026.32.0.dev1}/unique_sdk/cli/commands/_citation_manifest.py +0 -0
  56. {unique_sdk-2026.32.0.dev0 → unique_sdk-2026.32.0.dev1}/unique_sdk/cli/commands/browser.py +0 -0
  57. {unique_sdk-2026.32.0.dev0 → unique_sdk-2026.32.0.dev1}/unique_sdk/cli/commands/cite_file.py +0 -0
  58. {unique_sdk-2026.32.0.dev0 → unique_sdk-2026.32.0.dev1}/unique_sdk/cli/commands/dynamic_frontend.py +0 -0
  59. {unique_sdk-2026.32.0.dev0 → unique_sdk-2026.32.0.dev1}/unique_sdk/cli/commands/files.py +0 -0
  60. {unique_sdk-2026.32.0.dev0 → unique_sdk-2026.32.0.dev1}/unique_sdk/cli/commands/folders.py +0 -0
  61. {unique_sdk-2026.32.0.dev0 → unique_sdk-2026.32.0.dev1}/unique_sdk/cli/commands/mcp.py +0 -0
  62. {unique_sdk-2026.32.0.dev0 → unique_sdk-2026.32.0.dev1}/unique_sdk/cli/commands/navigation.py +0 -0
  63. {unique_sdk-2026.32.0.dev0 → unique_sdk-2026.32.0.dev1}/unique_sdk/cli/commands/read.py +0 -0
  64. {unique_sdk-2026.32.0.dev0 → unique_sdk-2026.32.0.dev1}/unique_sdk/cli/commands/scheduled_tasks.py +0 -0
  65. {unique_sdk-2026.32.0.dev0 → unique_sdk-2026.32.0.dev1}/unique_sdk/cli/commands/search.py +0 -0
  66. {unique_sdk-2026.32.0.dev0 → unique_sdk-2026.32.0.dev1}/unique_sdk/cli/commands/subagent.py +0 -0
  67. {unique_sdk-2026.32.0.dev0 → unique_sdk-2026.32.0.dev1}/unique_sdk/cli/commands/web_search.py +0 -0
  68. {unique_sdk-2026.32.0.dev0 → unique_sdk-2026.32.0.dev1}/unique_sdk/cli/commands/web_search_config.py +0 -0
  69. {unique_sdk-2026.32.0.dev0 → unique_sdk-2026.32.0.dev1}/unique_sdk/cli/config.py +0 -0
  70. {unique_sdk-2026.32.0.dev0 → unique_sdk-2026.32.0.dev1}/unique_sdk/cli/formatting.py +0 -0
  71. {unique_sdk-2026.32.0.dev0 → unique_sdk-2026.32.0.dev1}/unique_sdk/cli/identity.py +0 -0
  72. {unique_sdk-2026.32.0.dev0 → unique_sdk-2026.32.0.dev1}/unique_sdk/cli/metadata_filter.py +0 -0
  73. {unique_sdk-2026.32.0.dev0 → unique_sdk-2026.32.0.dev1}/unique_sdk/cli/shell.py +0 -0
  74. {unique_sdk-2026.32.0.dev0 → unique_sdk-2026.32.0.dev1}/unique_sdk/cli/skills/unique-cli-dynamic-frontend/SKILL.md +0 -0
  75. {unique_sdk-2026.32.0.dev0 → unique_sdk-2026.32.0.dev1}/unique_sdk/cli/skills/unique-cli-file-management/SKILL.md +0 -0
  76. {unique_sdk-2026.32.0.dev0 → unique_sdk-2026.32.0.dev1}/unique_sdk/cli/skills/unique-cli-mcp/SKILL.md +0 -0
  77. {unique_sdk-2026.32.0.dev0 → unique_sdk-2026.32.0.dev1}/unique_sdk/cli/skills/unique-cli-scheduled-tasks/SKILL.md +0 -0
  78. {unique_sdk-2026.32.0.dev0 → unique_sdk-2026.32.0.dev1}/unique_sdk/cli/skills/unique-cli-search/SKILL.md +0 -0
  79. {unique_sdk-2026.32.0.dev0 → unique_sdk-2026.32.0.dev1}/unique_sdk/cli/skills/unique-cli-subagent/SKILL.md +0 -0
  80. {unique_sdk-2026.32.0.dev0 → unique_sdk-2026.32.0.dev1}/unique_sdk/cli/skills/unique-cli-uploaded-search/SKILL.md +0 -0
  81. {unique_sdk-2026.32.0.dev0 → unique_sdk-2026.32.0.dev1}/unique_sdk/cli/skills/unique-cli-web-search/SKILL.md +0 -0
  82. {unique_sdk-2026.32.0.dev0 → unique_sdk-2026.32.0.dev1}/unique_sdk/cli/state.py +0 -0
  83. {unique_sdk-2026.32.0.dev0 → unique_sdk-2026.32.0.dev1}/unique_sdk/utils/analytics_order_run.py +0 -0
  84. {unique_sdk-2026.32.0.dev0 → unique_sdk-2026.32.0.dev1}/unique_sdk/utils/benchmarking_run.py +0 -0
  85. {unique_sdk-2026.32.0.dev0 → unique_sdk-2026.32.0.dev1}/unique_sdk/utils/chat_history.py +0 -0
  86. {unique_sdk-2026.32.0.dev0 → unique_sdk-2026.32.0.dev1}/unique_sdk/utils/chat_in_space.py +0 -0
  87. {unique_sdk-2026.32.0.dev0 → unique_sdk-2026.32.0.dev1}/unique_sdk/utils/file_io.py +0 -0
  88. {unique_sdk-2026.32.0.dev0 → unique_sdk-2026.32.0.dev1}/unique_sdk/utils/sources.py +0 -0
  89. {unique_sdk-2026.32.0.dev0 → unique_sdk-2026.32.0.dev1}/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.dev0
3
+ Version: 2026.32.0.dev1
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>
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "unique_sdk"
3
- version = "2026.32.0.dev0"
3
+ version = "2026.32.0.dev1"
4
4
  description = ""
5
5
  readme = "README.md"
6
6
  license = { text = "MIT" }
@@ -687,9 +687,19 @@ def cmd_elicit_wait(
687
687
  if final_status in TERMINAL_STATUSES:
688
688
  terminal_status = final_status
689
689
  return format_elicitation(final)
690
+ # Non-terminal timeout: this is the one output every harness
691
+ # (Claude Code, Codex, ...) reads after every poll. Make it an
692
+ # explicit instruction to poll again, not just a description of
693
+ # what happened — a model that stops here has nowhere else to
694
+ # look for "what do I do next" (see UN-23181).
690
695
  return (
691
- f"elicit: timed out after {timeout}s waiting for "
692
- f"{elicitation_id} (last status: {final_status or 'UNKNOWN'})\n\n"
696
+ f"elicit: still PENDING after {timeout}s waiting for "
697
+ f"{elicitation_id} (last status: {final_status or 'UNKNOWN'}) "
698
+ "— this is NOT a stopping condition.\n"
699
+ f"Call again now: unique-cli elicit wait {elicitation_id} "
700
+ f"--timeout {timeout} --poll-interval {poll_interval}\n"
701
+ "Do not tell the user you stopped waiting; keep polling "
702
+ "until a terminal status or expiry.\n\n"
693
703
  f"{format_elicitation(last)}"
694
704
  )
695
705
  time.sleep(poll_interval)
@@ -52,6 +52,13 @@ default — comfortably under Claude Code's ~120s):
52
52
  2. **Poll in short bursts**, each well under your harness's Bash foreground
53
53
  timeout:
54
54
 
55
+ **You MUST NOT stop after a single `PENDING` result.** If `elicit wait`
56
+ returns `PENDING`, immediately call `elicit wait` again (same elicitation
57
+ id) — as its own new tool call if you are not running the loop below —
58
+ and keep doing so until you see a terminal status or the elicitation
59
+ reaches its `--expires-in` deadline. Never tell the user you "stopped
60
+ waiting" or "gave up" while `PENDING` is the last known status.
61
+
55
62
  ```bash
56
63
  status="PENDING"
57
64
  elapsed=0