utim-cli 2.3.7__tar.gz → 2.3.12__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.
- {utim_cli-2.3.7 → utim_cli-2.3.12}/CHANGELOG.md +34 -0
- {utim_cli-2.3.7/utim_cli.egg-info → utim_cli-2.3.12}/PKG-INFO +1 -1
- {utim_cli-2.3.7 → utim_cli-2.3.12}/pyproject.toml +1 -1
- {utim_cli-2.3.7 → utim_cli-2.3.12}/utim/__init__.py +75 -75
- {utim_cli-2.3.7 → utim_cli-2.3.12}/utim_cli/__init__.py +1 -1
- {utim_cli-2.3.7 → utim_cli-2.3.12}/utim_cli/_version.py +1 -1
- {utim_cli-2.3.7 → utim_cli-2.3.12}/utim_cli/ask_helper.py +613 -609
- utim_cli-2.3.12/utim_cli/auth.py +686 -0
- {utim_cli-2.3.7 → utim_cli-2.3.12}/utim_cli/blender_agent.py +1113 -1114
- {utim_cli-2.3.7 → utim_cli-2.3.12}/utim_cli/bootstrap.py +10 -0
- {utim_cli-2.3.7 → utim_cli-2.3.12}/utim_cli/brain.py +1 -0
- {utim_cli-2.3.7 → utim_cli-2.3.12}/utim_cli/client_utils.py +30 -13
- {utim_cli-2.3.7 → utim_cli-2.3.12}/utim_cli/config.py +13 -9
- {utim_cli-2.3.7 → utim_cli-2.3.12}/utim_cli/constants.py +21 -21
- {utim_cli-2.3.7 → utim_cli-2.3.12}/utim_cli/context_pruner.py +6 -2
- {utim_cli-2.3.7 → utim_cli-2.3.12}/utim_cli/crawler/engine.py +534 -344
- {utim_cli-2.3.7 → utim_cli-2.3.12}/utim_cli/harbor.py +3 -4
- {utim_cli-2.3.7 → utim_cli-2.3.12}/utim_cli/local_db.py +295 -218
- {utim_cli-2.3.7 → utim_cli-2.3.12}/utim_cli/orchestrator.py +76 -62
- {utim_cli-2.3.7 → utim_cli-2.3.12}/utim_cli/orchestrator_helpers.py +58 -4
- {utim_cli-2.3.7 → utim_cli-2.3.12}/utim_cli/orchestrator_llm_transport.py +732 -39
- utim_cli-2.3.12/utim_cli/personalities.py +251 -0
- {utim_cli-2.3.7 → utim_cli-2.3.12}/utim_cli/reflection.py +152 -37
- {utim_cli-2.3.7 → utim_cli-2.3.12}/utim_cli/sdk/session.py +9 -1
- {utim_cli-2.3.7 → utim_cli-2.3.12}/utim_cli/server/auth.py +155 -19
- utim_cli-2.3.12/utim_cli/server/concurrency.py +154 -0
- {utim_cli-2.3.7 → utim_cli-2.3.12}/utim_cli/server/db.py +28 -8
- {utim_cli-2.3.7 → utim_cli-2.3.12}/utim_cli/server/micro_batcher.py +0 -7
- {utim_cli-2.3.7 → utim_cli-2.3.12}/utim_cli/server/models.py +134 -2
- {utim_cli-2.3.7 → utim_cli-2.3.12}/utim_cli/server/pricing_updater.py +1 -0
- {utim_cli-2.3.7 → utim_cli-2.3.12}/utim_cli/server/router.py +526 -391
- utim_cli-2.3.12/utim_cli/server/routes/admin_db_routes.py +549 -0
- utim_cli-2.3.12/utim_cli/server/routes/auth_routes.py +941 -0
- utim_cli-2.3.12/utim_cli/server/routes/billing_routes.py +276 -0
- utim_cli-2.3.12/utim_cli/server/routes/completion_routes.py +1816 -0
- utim_cli-2.3.12/utim_cli/server/routes/credit_routes.py +340 -0
- {utim_cli-2.3.7 → utim_cli-2.3.12}/utim_cli/server/routes/feedback_routes.py +39 -29
- utim_cli-2.3.12/utim_cli/server/routes/marketplace_routes.py +1552 -0
- {utim_cli-2.3.7 → utim_cli-2.3.12}/utim_cli/server/routes/quota_routes.py +728 -661
- utim_cli-2.3.12/utim_cli/server/routes/quota_share_routes.py +768 -0
- {utim_cli-2.3.7 → utim_cli-2.3.12}/utim_cli/server/routes/referral_routes.py +110 -95
- {utim_cli-2.3.7 → utim_cli-2.3.12}/utim_cli/server/routes/rewards_routes.py +261 -236
- {utim_cli-2.3.7 → utim_cli-2.3.12}/utim_cli/server/routes/security_routes.py +1 -1
- {utim_cli-2.3.7 → utim_cli-2.3.12}/utim_cli/server/routes/session_routes.py +94 -69
- {utim_cli-2.3.7 → utim_cli-2.3.12}/utim_cli/server/routes/share_routes.py +121 -116
- utim_cli-2.3.12/utim_cli/server/server.py +135 -0
- {utim_cli-2.3.7 → utim_cli-2.3.12}/utim_cli/task_dispatcher.py +36 -12
- {utim_cli-2.3.7 → utim_cli-2.3.12}/utim_cli/tools.py +12 -10
- {utim_cli-2.3.7 → utim_cli-2.3.12}/utim_cli/tui/model_dialog.py +173 -44
- utim_cli-2.3.12/utim_cli/tui/personality_dialog.py +192 -0
- utim_cli-2.3.12/utim_cli/tui/resume_dialog.py +285 -0
- {utim_cli-2.3.7 → utim_cli-2.3.12}/utim_cli/utim.py +236 -70
- {utim_cli-2.3.7 → utim_cli-2.3.12/utim_cli.egg-info}/PKG-INFO +1 -1
- {utim_cli-2.3.7 → utim_cli-2.3.12}/utim_cli.egg-info/SOURCES.txt +3 -0
- utim_cli-2.3.7/utim_cli/auth.py +0 -354
- utim_cli-2.3.7/utim_cli/server/routes/admin_db_routes.py +0 -514
- utim_cli-2.3.7/utim_cli/server/routes/auth_routes.py +0 -862
- utim_cli-2.3.7/utim_cli/server/routes/billing_routes.py +0 -262
- utim_cli-2.3.7/utim_cli/server/routes/completion_routes.py +0 -1695
- utim_cli-2.3.7/utim_cli/server/routes/credit_routes.py +0 -325
- utim_cli-2.3.7/utim_cli/server/routes/marketplace_routes.py +0 -1430
- utim_cli-2.3.7/utim_cli/server/routes/quota_share_routes.py +0 -751
- utim_cli-2.3.7/utim_cli/server/server.py +0 -94
- utim_cli-2.3.7/utim_cli/tui/resume_dialog.py +0 -147
- {utim_cli-2.3.7 → utim_cli-2.3.12}/LICENSE +0 -0
- {utim_cli-2.3.7 → utim_cli-2.3.12}/MANIFEST.in +0 -0
- {utim_cli-2.3.7 → utim_cli-2.3.12}/README.md +0 -0
- {utim_cli-2.3.7 → utim_cli-2.3.12}/setup.cfg +0 -0
- {utim_cli-2.3.7 → utim_cli-2.3.12}/setup.py +0 -0
- {utim_cli-2.3.7 → utim_cli-2.3.12}/utim_cli/_verify_repro.py +0 -0
- {utim_cli-2.3.7 → utim_cli-2.3.12}/utim_cli/_verify_syntax.py +0 -0
- {utim_cli-2.3.7 → utim_cli-2.3.12}/utim_cli/agent.py +0 -0
- {utim_cli-2.3.7 → utim_cli-2.3.12}/utim_cli/backup.py +0 -0
- {utim_cli-2.3.7 → utim_cli-2.3.12}/utim_cli/billing.py +0 -0
- {utim_cli-2.3.7 → utim_cli-2.3.12}/utim_cli/crawler/__init__.py +0 -0
- {utim_cli-2.3.7 → utim_cli-2.3.12}/utim_cli/crawler/markdown_distiller.py +0 -0
- {utim_cli-2.3.7 → utim_cli-2.3.12}/utim_cli/dependency_manager.py +0 -0
- {utim_cli-2.3.7 → utim_cli-2.3.12}/utim_cli/doctor.py +0 -0
- {utim_cli-2.3.7 → utim_cli-2.3.12}/utim_cli/evidence_registry.py +0 -0
- {utim_cli-2.3.7 → utim_cli-2.3.12}/utim_cli/knowledge_graph.py +0 -0
- {utim_cli-2.3.7 → utim_cli-2.3.12}/utim_cli/logger.py +0 -0
- {utim_cli-2.3.7 → utim_cli-2.3.12}/utim_cli/mcp_clean_wrapper.py +0 -0
- {utim_cli-2.3.7 → utim_cli-2.3.12}/utim_cli/mcp_client.py +0 -0
- {utim_cli-2.3.7 → utim_cli-2.3.12}/utim_cli/mcp_registry.json +0 -0
- {utim_cli-2.3.7 → utim_cli-2.3.12}/utim_cli/models.txt +0 -0
- {utim_cli-2.3.7 → utim_cli-2.3.12}/utim_cli/orchestrator_tool_exec.py +0 -0
- {utim_cli-2.3.7 → utim_cli-2.3.12}/utim_cli/orchestrator_turn_history.py +0 -0
- {utim_cli-2.3.7 → utim_cli-2.3.12}/utim_cli/platform_installer.py +0 -0
- {utim_cli-2.3.7 → utim_cli-2.3.12}/utim_cli/plugins/__init__.py +0 -0
- {utim_cli-2.3.7 → utim_cli-2.3.12}/utim_cli/plugins/hooks.py +0 -0
- {utim_cli-2.3.7 → utim_cli-2.3.12}/utim_cli/plugins/manager.py +0 -0
- {utim_cli-2.3.7 → utim_cli-2.3.12}/utim_cli/plugins/registry.py +0 -0
- {utim_cli-2.3.7 → utim_cli-2.3.12}/utim_cli/plugins/schema.py +0 -0
- {utim_cli-2.3.7 → utim_cli-2.3.12}/utim_cli/plugins/tool_loader.py +0 -0
- {utim_cli-2.3.7 → utim_cli-2.3.12}/utim_cli/report.py +0 -0
- {utim_cli-2.3.7 → utim_cli-2.3.12}/utim_cli/scrapy_search.py +0 -0
- {utim_cli-2.3.7 → utim_cli-2.3.12}/utim_cli/sdk/__init__.py +0 -0
- {utim_cli-2.3.7 → utim_cli-2.3.12}/utim_cli/sdk/config.py +0 -0
- {utim_cli-2.3.7 → utim_cli-2.3.12}/utim_cli/sdk/context.py +0 -0
- {utim_cli-2.3.7 → utim_cli-2.3.12}/utim_cli/sdk/events.py +0 -0
- {utim_cli-2.3.7 → utim_cli-2.3.12}/utim_cli/sdk/handlers.py +0 -0
- {utim_cli-2.3.7 → utim_cli-2.3.12}/utim_cli/sdk/sidecar.py +0 -0
- {utim_cli-2.3.7 → utim_cli-2.3.12}/utim_cli/server/__init__.py +0 -0
- {utim_cli-2.3.7 → utim_cli-2.3.12}/utim_cli/server/admin_auth.py +0 -0
- {utim_cli-2.3.7 → utim_cli-2.3.12}/utim_cli/server/attribution.py +0 -0
- {utim_cli-2.3.7 → utim_cli-2.3.12}/utim_cli/server/audit_log.py +0 -0
- {utim_cli-2.3.7 → utim_cli-2.3.12}/utim_cli/server/batch_processor.py +0 -0
- {utim_cli-2.3.7 → utim_cli-2.3.12}/utim_cli/server/captcha.py +0 -0
- {utim_cli-2.3.7 → utim_cli-2.3.12}/utim_cli/server/cli_auth.py +0 -0
- {utim_cli-2.3.7 → utim_cli-2.3.12}/utim_cli/server/docs_md/SECRET_PROVISIONING.md +0 -0
- {utim_cli-2.3.7 → utim_cli-2.3.12}/utim_cli/server/docs_md/about.md +0 -0
- {utim_cli-2.3.7 → utim_cli-2.3.12}/utim_cli/server/docs_md/changelog.md +0 -0
- {utim_cli-2.3.7 → utim_cli-2.3.12}/utim_cli/server/docs_md/docs.md +0 -0
- {utim_cli-2.3.7 → utim_cli-2.3.12}/utim_cli/server/docs_md/features.md +0 -0
- {utim_cli-2.3.7 → utim_cli-2.3.12}/utim_cli/server/docs_md/license.md +0 -0
- {utim_cli-2.3.7 → utim_cli-2.3.12}/utim_cli/server/docs_md/pricing.md +0 -0
- {utim_cli-2.3.7 → utim_cli-2.3.12}/utim_cli/server/docs_md/privacy.md +0 -0
- {utim_cli-2.3.7 → utim_cli-2.3.12}/utim_cli/server/docs_md/refund.md +0 -0
- {utim_cli-2.3.7 → utim_cli-2.3.12}/utim_cli/server/docs_md/support.md +0 -0
- {utim_cli-2.3.7 → utim_cli-2.3.12}/utim_cli/server/docs_md/terms.md +0 -0
- {utim_cli-2.3.7 → utim_cli-2.3.12}/utim_cli/server/email_utils.py +0 -0
- {utim_cli-2.3.7 → utim_cli-2.3.12}/utim_cli/server/exchange_rate.py +0 -0
- {utim_cli-2.3.7 → utim_cli-2.3.12}/utim_cli/server/firebase.py +0 -0
- {utim_cli-2.3.7 → utim_cli-2.3.12}/utim_cli/server/fix_duplicate_users.py +0 -0
- {utim_cli-2.3.7 → utim_cli-2.3.12}/utim_cli/server/history.py +0 -0
- {utim_cli-2.3.7 → utim_cli-2.3.12}/utim_cli/server/local_llm.py +0 -0
- {utim_cli-2.3.7 → utim_cli-2.3.12}/utim_cli/server/logging_config.py +0 -0
- {utim_cli-2.3.7 → utim_cli-2.3.12}/utim_cli/server/model_agent.py +0 -0
- {utim_cli-2.3.7 → utim_cli-2.3.12}/utim_cli/server/provision_build.py +0 -0
- {utim_cli-2.3.7 → utim_cli-2.3.12}/utim_cli/server/rate_limit.py +0 -0
- {utim_cli-2.3.7 → utim_cli-2.3.12}/utim_cli/server/rewards_engine.py +0 -0
- {utim_cli-2.3.7 → utim_cli-2.3.12}/utim_cli/server/routes/__init__.py +0 -0
- {utim_cli-2.3.7 → utim_cli-2.3.12}/utim_cli/server/storage_nodes.py +0 -0
- {utim_cli-2.3.7 → utim_cli-2.3.12}/utim_cli/share.py +0 -0
- {utim_cli-2.3.7 → utim_cli-2.3.12}/utim_cli/share_tui.py +0 -0
- {utim_cli-2.3.7 → utim_cli-2.3.12}/utim_cli/situational_scoring.py +0 -0
- {utim_cli-2.3.7 → utim_cli-2.3.12}/utim_cli/state.py +0 -0
- {utim_cli-2.3.7 → utim_cli-2.3.12}/utim_cli/subagent_manager.py +0 -0
- {utim_cli-2.3.7 → utim_cli-2.3.12}/utim_cli/task_logger.py +0 -0
- {utim_cli-2.3.7 → utim_cli-2.3.12}/utim_cli/tools_grep.py +0 -0
- {utim_cli-2.3.7 → utim_cli-2.3.12}/utim_cli/tui/__init__.py +0 -0
- {utim_cli-2.3.7 → utim_cli-2.3.12}/utim_cli/tui/feedback_dialog.py +0 -0
- {utim_cli-2.3.7 → utim_cli-2.3.12}/utim_cli/tui/history_dialog.py +0 -0
- {utim_cli-2.3.7 → utim_cli-2.3.12}/utim_cli/tui/marketplace_app_state.py +0 -0
- {utim_cli-2.3.7 → utim_cli-2.3.12}/utim_cli/tui/marketplace_dialog.py +0 -0
- {utim_cli-2.3.7 → utim_cli-2.3.12}/utim_cli/tui/marketplace_layout_engine.py +0 -0
- {utim_cli-2.3.7 → utim_cli-2.3.12}/utim_cli/tui/mcp_dialog.py +0 -0
- {utim_cli-2.3.7 → utim_cli-2.3.12}/utim_cli/tui/miniagents_dialog.py +0 -0
- {utim_cli-2.3.7 → utim_cli-2.3.12}/utim_cli/tui/plugins_dialog.py +0 -0
- {utim_cli-2.3.7 → utim_cli-2.3.12}/utim_cli/tui/publish_dialog.py +0 -0
- {utim_cli-2.3.7 → utim_cli-2.3.12}/utim_cli/tui/quota_dialog.py +0 -0
- {utim_cli-2.3.7 → utim_cli-2.3.12}/utim_cli/tui/quota_redeem_dialog.py +0 -0
- {utim_cli-2.3.7 → utim_cli-2.3.12}/utim_cli/tui/quota_share_dialog.py +0 -0
- {utim_cli-2.3.7 → utim_cli-2.3.12}/utim_cli/tui/rewards_tui.py +0 -0
- {utim_cli-2.3.7 → utim_cli-2.3.12}/utim_cli/tui/skills_dialog.py +0 -0
- {utim_cli-2.3.7 → utim_cli-2.3.12}/utim_cli/tui/subagents_dialog.py +0 -0
- {utim_cli-2.3.7 → utim_cli-2.3.12}/utim_cli/tui/tasks_dialog.py +0 -0
- {utim_cli-2.3.7 → utim_cli-2.3.12}/utim_cli/tui/thinking_display.py +0 -0
- {utim_cli-2.3.7 → utim_cli-2.3.12}/utim_cli/tui/tools_dialog.py +0 -0
- {utim_cli-2.3.7 → utim_cli-2.3.12}/utim_cli/tui/update_dialog.py +0 -0
- {utim_cli-2.3.7 → utim_cli-2.3.12}/utim_cli/utilities.py +0 -0
- {utim_cli-2.3.7 → utim_cli-2.3.12}/utim_cli/utimmodel.txt +0 -0
- {utim_cli-2.3.7 → utim_cli-2.3.12}/utim_cli/vector_memory.py +0 -0
- {utim_cli-2.3.7 → utim_cli-2.3.12}/utim_cli/wheel.py +0 -0
- {utim_cli-2.3.7 → utim_cli-2.3.12}/utim_cli/workspace.py +0 -0
- {utim_cli-2.3.7 → utim_cli-2.3.12}/utim_cli.egg-info/dependency_links.txt +0 -0
- {utim_cli-2.3.7 → utim_cli-2.3.12}/utim_cli.egg-info/entry_points.txt +0 -0
- {utim_cli-2.3.7 → utim_cli-2.3.12}/utim_cli.egg-info/requires.txt +0 -0
- {utim_cli-2.3.7 → utim_cli-2.3.12}/utim_cli.egg-info/top_level.txt +0 -0
|
@@ -1,5 +1,39 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## [2.3.12] - 2026-08-27
|
|
4
|
+
|
|
5
|
+
### ⚡ Hedged TTFT Fallback Racing & Smart Nudge Improvements
|
|
6
|
+
- **Hedged Racing Fallback Execution (Lowest TTFT)**: When the primary model fails or encounters a rate limit (`429`), UTIM concurrently queries all available free fallback models in parallel background threads. The fastest model to return its initial token chunk (lowest TTFT) wins the race and streams live to the terminal, while competing sockets are silently closed and dropped, eliminating user-facing sequential trial latency.
|
|
7
|
+
- **Eliminated False-Positive "CONTINUE" Nudges**: Re-engineered the orchestrator's lazy-transition detector to prevent false-positive continuation prompts on substantive responses ($\ge 80$ chars), informational/research queries, and completed turns.
|
|
8
|
+
- **Session History & UI Refresh Leak Fix**: Updated system note filtering in `utim.py` so internal `CONTINUE:` messages, recovery prompts, and deliverable checklists never render as user prompts when expanding or collapsing tool outputs (`Ctrl+O`) or refreshing the terminal UI.
|
|
9
|
+
- **Windows Post-Login Cleanup Fix**: Fixed post-login stdin/terminal cleanup on Windows to prevent terminal freezes after authentication.
|
|
10
|
+
- **BYOK Wizard Enhancements**: Added support for Gemini API query-key authentication (`?key=`), Vertex AI model selection, and local 9router endpoints.
|
|
11
|
+
|
|
12
|
+
## [2.3.11] - 2026-08-26
|
|
13
|
+
|
|
14
|
+
### 🚀 High-Concurrency & Parallel Architecture Scaling
|
|
15
|
+
- Scaled server architecture to non-blocking async DB thread pool execution across all 110 endpoints.
|
|
16
|
+
- High-throughput parallel concurrency improvements and zero regression verification.
|
|
17
|
+
|
|
18
|
+
## [2.3.10] - 2026-08-26
|
|
19
|
+
|
|
20
|
+
### 🐞 No Spurious "CONTINUE" Nudges
|
|
21
|
+
- **Stop nudging when the model is already done** — the lazy-transition detector in the orchestrator was firing on any short reply (`len(content) < 60` with no marker) even when the model had *already* delivered a successful mutation this turn (e.g. it wrote/edited a file, then said "Done."). That wasted up to 3 extra LLM calls per turn. The new check `not _model_already_delivered` (gated on `_successful_mutations_this_turn`) means a terse final answer after a real mutation is now correctly treated as the end of the turn.
|
|
22
|
+
- **Smarter completion-marker matching** — widened the marker list so common terse-final-answer phrases ("All synced.", "Both verifications are green.", etc.) don't fall through to the length-only heuristic.
|
|
23
|
+
|
|
24
|
+
## [2.3.9] - 2026-08-26
|
|
25
|
+
|
|
26
|
+
### ⚡ Instant Abort
|
|
27
|
+
- **Instant Ctrl+C / Esc abort** — `orchestrator.abort()` now layers four independent kill paths (`resp.close()` → low-level socket `SHUT_RDWR` → socket `close()` → urllib3 `connection.release()`) so the streaming reader thread is guaranteed to unblock within ~1.5s instead of hanging 2–5 minutes when urllib3 / TLS / proxy buffering swallows the close.
|
|
28
|
+
- **1.5-second abort watchdog** in the streaming reader (`orchestrator_llm_transport.py`) — if any of the socket-level kill paths fail (firewall, half-closed TLS, captive portal), a background thread forces the reader to return with an `aborted` sentinel after 1.5s of cancel.
|
|
29
|
+
- **No more race between abort print and new turn** — removed the `STATE["busy"] = False` reset from the Esc / Ctrl+C / third-site keybinds and replaced it with a generation-counter–gated release inside `_run_queue`. The prompt stays disabled until the old orchestrator has actually drained, so the user can no longer type a new message into a frozen prompt while the previous turn is still in its kernel-level close.
|
|
30
|
+
- **Generation-aware `_run_queue` release** — both `_run_queue` blocks now re-evaluate `busy=False` ownership at every iteration: they always release the prompt unless a strictly newer `_run_queue` has already taken over (`STATE["_task_gen"] > my_gen` AND `STATE["busy"] is True`), so a new Enter press after abort no longer races the old thread's True→False cycle.
|
|
31
|
+
|
|
32
|
+
## [2.3.8] - 2026-08-26
|
|
33
|
+
|
|
34
|
+
### ✨ Smoother Auth Flow
|
|
35
|
+
- Smoother Auth Flow
|
|
36
|
+
|
|
3
37
|
## [2.3.7] - 2026-08-25
|
|
4
38
|
|
|
5
39
|
### 🐞 Small Bug Fix
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: utim-cli
|
|
3
|
-
Version: 2.3.
|
|
3
|
+
Version: 2.3.12
|
|
4
4
|
Summary: UTIM – Universal Terminal Intelligence Manager. A powerful agentic AI coding assistant for your terminal.
|
|
5
5
|
License: Emend AI Proprietary EULA
|
|
6
6
|
Project-URL: Homepage, https://utim.dev
|
|
@@ -1,76 +1,76 @@
|
|
|
1
|
-
"""
|
|
2
|
-
UTIM Developer SDK
|
|
3
|
-
------------------
|
|
4
|
-
Unified autonomous coding agent SDK.
|
|
5
|
-
|
|
6
|
-
Quickstart:
|
|
7
|
-
import utim
|
|
8
|
-
|
|
9
|
-
session = utim.Session()
|
|
10
|
-
async for event in session.send_message("Explain this codebase"):
|
|
11
|
-
if event.type == utim.EventType.TOKEN:
|
|
12
|
-
print(event.text, end="", flush=True)
|
|
13
|
-
"""
|
|
14
|
-
try:
|
|
15
|
-
from utim_cli._version import VERSION as __version__
|
|
16
|
-
except ImportError:
|
|
17
|
-
__version__ = "2.3.
|
|
18
|
-
|
|
19
|
-
# Developer-friendly core classes (similar to `import genai` / `import openai`)
|
|
20
|
-
from utim_cli.sdk.session import UtimSession as Session
|
|
21
|
-
from utim_cli.sdk.config import UtimConfig as Config
|
|
22
|
-
from utim_cli.sdk.context import IDEContext, Diagnostic
|
|
23
|
-
from utim_cli.sdk.events import (
|
|
24
|
-
AgentEvent,
|
|
25
|
-
UtimEventType as EventType,
|
|
26
|
-
TokenStreamEvent,
|
|
27
|
-
ThoughtStreamEvent,
|
|
28
|
-
ToolCallStartEvent,
|
|
29
|
-
ToolCallEndEvent,
|
|
30
|
-
FileEditEvent,
|
|
31
|
-
CommandExecEvent,
|
|
32
|
-
ConfirmationRequestEvent,
|
|
33
|
-
PlanUpdateEvent,
|
|
34
|
-
SubagentEvent,
|
|
35
|
-
TurnEndEvent,
|
|
36
|
-
)
|
|
37
|
-
from utim_cli.sdk.handlers import (
|
|
38
|
-
ConfirmationHandler,
|
|
39
|
-
AutoApprovalHandler,
|
|
40
|
-
CallbackApprovalHandler,
|
|
41
|
-
)
|
|
42
|
-
from utim_cli.sdk.sidecar import UtimSidecarServer as SidecarServer
|
|
43
|
-
|
|
44
|
-
# Backwards compatible alias names
|
|
45
|
-
UtimSession = Session
|
|
46
|
-
UtimConfig = Config
|
|
47
|
-
UtimEventType = EventType
|
|
48
|
-
UtimSidecarServer = SidecarServer
|
|
49
|
-
|
|
50
|
-
__all__ = [
|
|
51
|
-
"__version__",
|
|
52
|
-
"Session",
|
|
53
|
-
"Config",
|
|
54
|
-
"IDEContext",
|
|
55
|
-
"Diagnostic",
|
|
56
|
-
"EventType",
|
|
57
|
-
"AgentEvent",
|
|
58
|
-
"TokenStreamEvent",
|
|
59
|
-
"ThoughtStreamEvent",
|
|
60
|
-
"ToolCallStartEvent",
|
|
61
|
-
"ToolCallEndEvent",
|
|
62
|
-
"FileEditEvent",
|
|
63
|
-
"CommandExecEvent",
|
|
64
|
-
"ConfirmationRequestEvent",
|
|
65
|
-
"PlanUpdateEvent",
|
|
66
|
-
"SubagentEvent",
|
|
67
|
-
"TurnEndEvent",
|
|
68
|
-
"ConfirmationHandler",
|
|
69
|
-
"AutoApprovalHandler",
|
|
70
|
-
"CallbackApprovalHandler",
|
|
71
|
-
"SidecarServer",
|
|
72
|
-
"UtimSession",
|
|
73
|
-
"UtimConfig",
|
|
74
|
-
"UtimEventType",
|
|
75
|
-
"UtimSidecarServer",
|
|
1
|
+
"""
|
|
2
|
+
UTIM Developer SDK
|
|
3
|
+
------------------
|
|
4
|
+
Unified autonomous coding agent SDK.
|
|
5
|
+
|
|
6
|
+
Quickstart:
|
|
7
|
+
import utim
|
|
8
|
+
|
|
9
|
+
session = utim.Session()
|
|
10
|
+
async for event in session.send_message("Explain this codebase"):
|
|
11
|
+
if event.type == utim.EventType.TOKEN:
|
|
12
|
+
print(event.text, end="", flush=True)
|
|
13
|
+
"""
|
|
14
|
+
try:
|
|
15
|
+
from utim_cli._version import VERSION as __version__
|
|
16
|
+
except ImportError:
|
|
17
|
+
__version__ = "2.3.12"
|
|
18
|
+
|
|
19
|
+
# Developer-friendly core classes (similar to `import genai` / `import openai`)
|
|
20
|
+
from utim_cli.sdk.session import UtimSession as Session
|
|
21
|
+
from utim_cli.sdk.config import UtimConfig as Config
|
|
22
|
+
from utim_cli.sdk.context import IDEContext, Diagnostic
|
|
23
|
+
from utim_cli.sdk.events import (
|
|
24
|
+
AgentEvent,
|
|
25
|
+
UtimEventType as EventType,
|
|
26
|
+
TokenStreamEvent,
|
|
27
|
+
ThoughtStreamEvent,
|
|
28
|
+
ToolCallStartEvent,
|
|
29
|
+
ToolCallEndEvent,
|
|
30
|
+
FileEditEvent,
|
|
31
|
+
CommandExecEvent,
|
|
32
|
+
ConfirmationRequestEvent,
|
|
33
|
+
PlanUpdateEvent,
|
|
34
|
+
SubagentEvent,
|
|
35
|
+
TurnEndEvent,
|
|
36
|
+
)
|
|
37
|
+
from utim_cli.sdk.handlers import (
|
|
38
|
+
ConfirmationHandler,
|
|
39
|
+
AutoApprovalHandler,
|
|
40
|
+
CallbackApprovalHandler,
|
|
41
|
+
)
|
|
42
|
+
from utim_cli.sdk.sidecar import UtimSidecarServer as SidecarServer
|
|
43
|
+
|
|
44
|
+
# Backwards compatible alias names
|
|
45
|
+
UtimSession = Session
|
|
46
|
+
UtimConfig = Config
|
|
47
|
+
UtimEventType = EventType
|
|
48
|
+
UtimSidecarServer = SidecarServer
|
|
49
|
+
|
|
50
|
+
__all__ = [
|
|
51
|
+
"__version__",
|
|
52
|
+
"Session",
|
|
53
|
+
"Config",
|
|
54
|
+
"IDEContext",
|
|
55
|
+
"Diagnostic",
|
|
56
|
+
"EventType",
|
|
57
|
+
"AgentEvent",
|
|
58
|
+
"TokenStreamEvent",
|
|
59
|
+
"ThoughtStreamEvent",
|
|
60
|
+
"ToolCallStartEvent",
|
|
61
|
+
"ToolCallEndEvent",
|
|
62
|
+
"FileEditEvent",
|
|
63
|
+
"CommandExecEvent",
|
|
64
|
+
"ConfirmationRequestEvent",
|
|
65
|
+
"PlanUpdateEvent",
|
|
66
|
+
"SubagentEvent",
|
|
67
|
+
"TurnEndEvent",
|
|
68
|
+
"ConfirmationHandler",
|
|
69
|
+
"AutoApprovalHandler",
|
|
70
|
+
"CallbackApprovalHandler",
|
|
71
|
+
"SidecarServer",
|
|
72
|
+
"UtimSession",
|
|
73
|
+
"UtimConfig",
|
|
74
|
+
"UtimEventType",
|
|
75
|
+
"UtimSidecarServer",
|
|
76
76
|
]
|