utim-cli 2.2.2__tar.gz → 2.3.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.
- {utim_cli-2.2.2 → utim_cli-2.3.0}/CHANGELOG.md +11 -0
- {utim_cli-2.2.2/utim_cli.egg-info → utim_cli-2.3.0}/PKG-INFO +1 -1
- {utim_cli-2.2.2 → utim_cli-2.3.0}/pyproject.toml +4 -2
- {utim_cli-2.2.2 → utim_cli-2.3.0}/utim_cli/__init__.py +2 -1
- {utim_cli-2.2.2 → utim_cli-2.3.0}/utim_cli/_version.py +2 -1
- {utim_cli-2.2.2 → utim_cli-2.3.0}/utim_cli/agent.py +12 -1
- utim_cli-2.3.0/utim_cli/ask_helper.py +652 -0
- {utim_cli-2.2.2 → utim_cli-2.3.0}/utim_cli/brain.py +199 -24
- {utim_cli-2.2.2 → utim_cli-2.3.0}/utim_cli/constants.py +2 -0
- utim_cli-2.3.0/utim_cli/models.txt +38350 -0
- {utim_cli-2.2.2 → utim_cli-2.3.0}/utim_cli/orchestrator.py +597 -344
- utim_cli-2.3.0/utim_cli/server/admin_auth.py +163 -0
- {utim_cli-2.2.2 → utim_cli-2.3.0}/utim_cli/server/db.py +15 -11
- {utim_cli-2.2.2 → utim_cli-2.3.0}/utim_cli/server/micro_batcher.py +99 -60
- utim_cli-2.3.0/utim_cli/server/model_agent.py +41 -0
- {utim_cli-2.2.2 → utim_cli-2.3.0}/utim_cli/server/models.py +418 -292
- utim_cli-2.3.0/utim_cli/server/pricing_updater.py +215 -0
- {utim_cli-2.2.2 → utim_cli-2.3.0}/utim_cli/server/router.py +202 -19
- {utim_cli-2.2.2 → utim_cli-2.3.0}/utim_cli/server/routes/rewards_routes.py +15 -19
- {utim_cli-2.2.2 → utim_cli-2.3.0}/utim_cli/server/storage_nodes.py +28 -13
- {utim_cli-2.2.2 → utim_cli-2.3.0}/utim_cli/share.py +24 -35
- utim_cli-2.3.0/utim_cli/subagent_manager.py +1280 -0
- utim_cli-2.3.0/utim_cli/task_dispatcher.py +413 -0
- {utim_cli-2.2.2 → utim_cli-2.3.0}/utim_cli/tools.py +509 -39
- {utim_cli-2.2.2 → utim_cli-2.3.0}/utim_cli/tui/marketplace_layout_engine.py +21 -21
- {utim_cli-2.2.2 → utim_cli-2.3.0}/utim_cli/tui/mcp_dialog.py +2 -2
- {utim_cli-2.2.2 → utim_cli-2.3.0}/utim_cli/tui/miniagents_dialog.py +21 -23
- {utim_cli-2.2.2 → utim_cli-2.3.0}/utim_cli/tui/model_dialog.py +143 -406
- {utim_cli-2.2.2 → utim_cli-2.3.0}/utim_cli/tui/skills_dialog.py +19 -23
- {utim_cli-2.2.2 → utim_cli-2.3.0}/utim_cli/tui/subagents_dialog.py +2 -2
- {utim_cli-2.2.2 → utim_cli-2.3.0}/utim_cli/utim.py +512 -95
- utim_cli-2.3.0/utim_cli/utimmodel.txt +133 -0
- {utim_cli-2.2.2 → utim_cli-2.3.0/utim_cli.egg-info}/PKG-INFO +1 -1
- {utim_cli-2.2.2 → utim_cli-2.3.0}/utim_cli.egg-info/SOURCES.txt +5 -0
- utim_cli-2.2.2/utim_cli/server/model_agent.py +0 -233
- utim_cli-2.2.2/utim_cli/server/pricing_updater.py +0 -144
- utim_cli-2.2.2/utim_cli/subagent_manager.py +0 -724
- {utim_cli-2.2.2 → utim_cli-2.3.0}/LICENSE +0 -0
- {utim_cli-2.2.2 → utim_cli-2.3.0}/MANIFEST.in +0 -0
- {utim_cli-2.2.2 → utim_cli-2.3.0}/README.md +0 -0
- {utim_cli-2.2.2 → utim_cli-2.3.0}/setup.cfg +0 -0
- {utim_cli-2.2.2 → utim_cli-2.3.0}/setup.py +0 -0
- {utim_cli-2.2.2 → utim_cli-2.3.0}/utim_cli/_check_obj.py +0 -0
- {utim_cli-2.2.2 → utim_cli-2.3.0}/utim_cli/_find_mcp.py +0 -0
- {utim_cli-2.2.2 → utim_cli-2.3.0}/utim_cli/_find_plan.py +0 -0
- {utim_cli-2.2.2 → utim_cli-2.3.0}/utim_cli/_find_tool.py +0 -0
- {utim_cli-2.2.2 → utim_cli-2.3.0}/utim_cli/_patch_multimodal.py +0 -0
- {utim_cli-2.2.2 → utim_cli-2.3.0}/utim_cli/_test_regex.py +0 -0
- {utim_cli-2.2.2 → utim_cli-2.3.0}/utim_cli/auth.py +0 -0
- {utim_cli-2.2.2 → utim_cli-2.3.0}/utim_cli/backup.py +0 -0
- {utim_cli-2.2.2 → utim_cli-2.3.0}/utim_cli/billing.py +0 -0
- {utim_cli-2.2.2 → utim_cli-2.3.0}/utim_cli/blender_agent.py +0 -0
- {utim_cli-2.2.2 → utim_cli-2.3.0}/utim_cli/bootstrap.py +0 -0
- {utim_cli-2.2.2 → utim_cli-2.3.0}/utim_cli/client_utils.py +0 -0
- {utim_cli-2.2.2 → utim_cli-2.3.0}/utim_cli/config.py +0 -0
- {utim_cli-2.2.2 → utim_cli-2.3.0}/utim_cli/context_pruner.py +0 -0
- {utim_cli-2.2.2 → utim_cli-2.3.0}/utim_cli/doctor.py +0 -0
- {utim_cli-2.2.2 → utim_cli-2.3.0}/utim_cli/harbor.py +0 -0
- {utim_cli-2.2.2 → utim_cli-2.3.0}/utim_cli/knowledge_graph.py +0 -0
- {utim_cli-2.2.2 → utim_cli-2.3.0}/utim_cli/local_db.py +0 -0
- {utim_cli-2.2.2 → utim_cli-2.3.0}/utim_cli/logger.py +0 -0
- {utim_cli-2.2.2 → utim_cli-2.3.0}/utim_cli/mcp_clean_wrapper.py +0 -0
- {utim_cli-2.2.2 → utim_cli-2.3.0}/utim_cli/mcp_client.py +0 -0
- {utim_cli-2.2.2 → utim_cli-2.3.0}/utim_cli/mcp_registry.json +0 -0
- {utim_cli-2.2.2 → utim_cli-2.3.0}/utim_cli/reflection.py +0 -0
- {utim_cli-2.2.2 → utim_cli-2.3.0}/utim_cli/report.py +0 -0
- {utim_cli-2.2.2 → utim_cli-2.3.0}/utim_cli/scrapy_search.py +0 -0
- {utim_cli-2.2.2 → utim_cli-2.3.0}/utim_cli/server/__init__.py +0 -0
- {utim_cli-2.2.2 → utim_cli-2.3.0}/utim_cli/server/attribution.py +0 -0
- {utim_cli-2.2.2 → utim_cli-2.3.0}/utim_cli/server/audit_log.py +0 -0
- {utim_cli-2.2.2 → utim_cli-2.3.0}/utim_cli/server/auth.py +0 -0
- {utim_cli-2.2.2 → utim_cli-2.3.0}/utim_cli/server/batch_processor.py +0 -0
- {utim_cli-2.2.2 → utim_cli-2.3.0}/utim_cli/server/captcha.py +0 -0
- {utim_cli-2.2.2 → utim_cli-2.3.0}/utim_cli/server/cli_auth.py +0 -0
- {utim_cli-2.2.2 → utim_cli-2.3.0}/utim_cli/server/docs_md/SECRET_PROVISIONING.md +0 -0
- {utim_cli-2.2.2 → utim_cli-2.3.0}/utim_cli/server/docs_md/about.md +0 -0
- {utim_cli-2.2.2 → utim_cli-2.3.0}/utim_cli/server/docs_md/changelog.md +0 -0
- {utim_cli-2.2.2 → utim_cli-2.3.0}/utim_cli/server/docs_md/docs.md +0 -0
- {utim_cli-2.2.2 → utim_cli-2.3.0}/utim_cli/server/docs_md/features.md +0 -0
- {utim_cli-2.2.2 → utim_cli-2.3.0}/utim_cli/server/docs_md/license.md +0 -0
- {utim_cli-2.2.2 → utim_cli-2.3.0}/utim_cli/server/docs_md/pricing.md +0 -0
- {utim_cli-2.2.2 → utim_cli-2.3.0}/utim_cli/server/docs_md/privacy.md +0 -0
- {utim_cli-2.2.2 → utim_cli-2.3.0}/utim_cli/server/docs_md/refund.md +0 -0
- {utim_cli-2.2.2 → utim_cli-2.3.0}/utim_cli/server/docs_md/support.md +0 -0
- {utim_cli-2.2.2 → utim_cli-2.3.0}/utim_cli/server/docs_md/terms.md +0 -0
- {utim_cli-2.2.2 → utim_cli-2.3.0}/utim_cli/server/email_utils.py +0 -0
- {utim_cli-2.2.2 → utim_cli-2.3.0}/utim_cli/server/exchange_rate.py +0 -0
- {utim_cli-2.2.2 → utim_cli-2.3.0}/utim_cli/server/firebase.py +0 -0
- {utim_cli-2.2.2 → utim_cli-2.3.0}/utim_cli/server/fix_duplicate_users.py +0 -0
- {utim_cli-2.2.2 → utim_cli-2.3.0}/utim_cli/server/history.py +0 -0
- {utim_cli-2.2.2 → utim_cli-2.3.0}/utim_cli/server/local_llm.py +0 -0
- {utim_cli-2.2.2 → utim_cli-2.3.0}/utim_cli/server/logging_config.py +0 -0
- {utim_cli-2.2.2 → utim_cli-2.3.0}/utim_cli/server/provision_build.py +0 -0
- {utim_cli-2.2.2 → utim_cli-2.3.0}/utim_cli/server/rate_limit.py +0 -0
- {utim_cli-2.2.2 → utim_cli-2.3.0}/utim_cli/server/rewards_engine.py +0 -0
- {utim_cli-2.2.2 → utim_cli-2.3.0}/utim_cli/server/routes/__init__.py +0 -0
- {utim_cli-2.2.2 → utim_cli-2.3.0}/utim_cli/server/routes/auth_routes.py +0 -0
- {utim_cli-2.2.2 → utim_cli-2.3.0}/utim_cli/server/routes/billing_routes.py +0 -0
- {utim_cli-2.2.2 → utim_cli-2.3.0}/utim_cli/server/routes/completion_routes.py +0 -0
- {utim_cli-2.2.2 → utim_cli-2.3.0}/utim_cli/server/routes/credit_routes.py +0 -0
- {utim_cli-2.2.2 → utim_cli-2.3.0}/utim_cli/server/routes/feedback_routes.py +0 -0
- {utim_cli-2.2.2 → utim_cli-2.3.0}/utim_cli/server/routes/marketplace_routes.py +0 -0
- {utim_cli-2.2.2 → utim_cli-2.3.0}/utim_cli/server/routes/quota_routes.py +0 -0
- {utim_cli-2.2.2 → utim_cli-2.3.0}/utim_cli/server/routes/quota_share_routes.py +0 -0
- {utim_cli-2.2.2 → utim_cli-2.3.0}/utim_cli/server/routes/referral_routes.py +0 -0
- {utim_cli-2.2.2 → utim_cli-2.3.0}/utim_cli/server/routes/security_routes.py +0 -0
- {utim_cli-2.2.2 → utim_cli-2.3.0}/utim_cli/server/routes/session_routes.py +0 -0
- {utim_cli-2.2.2 → utim_cli-2.3.0}/utim_cli/server/routes/share_routes.py +0 -0
- {utim_cli-2.2.2 → utim_cli-2.3.0}/utim_cli/server/server.py +0 -0
- {utim_cli-2.2.2 → utim_cli-2.3.0}/utim_cli/share_tui.py +0 -0
- {utim_cli-2.2.2 → utim_cli-2.3.0}/utim_cli/situational_scoring.py +0 -0
- {utim_cli-2.2.2 → utim_cli-2.3.0}/utim_cli/state.py +0 -0
- {utim_cli-2.2.2 → utim_cli-2.3.0}/utim_cli/tui/__init__.py +0 -0
- {utim_cli-2.2.2 → utim_cli-2.3.0}/utim_cli/tui/feedback_dialog.py +0 -0
- {utim_cli-2.2.2 → utim_cli-2.3.0}/utim_cli/tui/history_dialog.py +0 -0
- {utim_cli-2.2.2 → utim_cli-2.3.0}/utim_cli/tui/marketplace_app_state.py +0 -0
- {utim_cli-2.2.2 → utim_cli-2.3.0}/utim_cli/tui/marketplace_dialog.py +0 -0
- {utim_cli-2.2.2 → utim_cli-2.3.0}/utim_cli/tui/publish_dialog.py +0 -0
- {utim_cli-2.2.2 → utim_cli-2.3.0}/utim_cli/tui/quota_dialog.py +0 -0
- {utim_cli-2.2.2 → utim_cli-2.3.0}/utim_cli/tui/quota_redeem_dialog.py +0 -0
- {utim_cli-2.2.2 → utim_cli-2.3.0}/utim_cli/tui/quota_share_dialog.py +0 -0
- {utim_cli-2.2.2 → utim_cli-2.3.0}/utim_cli/tui/resume_dialog.py +0 -0
- {utim_cli-2.2.2 → utim_cli-2.3.0}/utim_cli/tui/rewards_tui.py +0 -0
- {utim_cli-2.2.2 → utim_cli-2.3.0}/utim_cli/tui/thinking_display.py +0 -0
- {utim_cli-2.2.2 → utim_cli-2.3.0}/utim_cli/tui/tools_dialog.py +0 -0
- {utim_cli-2.2.2 → utim_cli-2.3.0}/utim_cli/tui/update_dialog.py +0 -0
- {utim_cli-2.2.2 → utim_cli-2.3.0}/utim_cli/utilities.py +0 -0
- {utim_cli-2.2.2 → utim_cli-2.3.0}/utim_cli/vector_memory.py +0 -0
- {utim_cli-2.2.2 → utim_cli-2.3.0}/utim_cli/wheel.py +0 -0
- {utim_cli-2.2.2 → utim_cli-2.3.0}/utim_cli/workspace.py +0 -0
- {utim_cli-2.2.2 → utim_cli-2.3.0}/utim_cli.egg-info/dependency_links.txt +0 -0
- {utim_cli-2.2.2 → utim_cli-2.3.0}/utim_cli.egg-info/entry_points.txt +0 -0
- {utim_cli-2.2.2 → utim_cli-2.3.0}/utim_cli.egg-info/requires.txt +0 -0
- {utim_cli-2.2.2 → utim_cli-2.3.0}/utim_cli.egg-info/top_level.txt +0 -0
|
@@ -1,7 +1,18 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## [2.3.0] - 2026-08-18
|
|
4
|
+
|
|
5
|
+
### 🚀 Features & Enhancements
|
|
6
|
+
- **UTIM Sidecar**: UTIM sidecar is here. Use `/ask` command with your prompt to activate sidecar while your agent is running for parallel research.
|
|
7
|
+
|
|
8
|
+
## [2.2.3] - 2026-08-16
|
|
9
|
+
|
|
10
|
+
### 🛠️ Fixes & Minor Polish
|
|
11
|
+
- Minor bug fixes and enhancements
|
|
12
|
+
|
|
3
13
|
## [2.2.2] - 2026-08-15
|
|
4
14
|
|
|
15
|
+
|
|
5
16
|
### 🚀 Features & Enhancements
|
|
6
17
|
- **Order History & Invoices**: Added comprehensive order history and tax invoice viewing with printable receipts on the pricing page.
|
|
7
18
|
- **Automated Refund Request Workflow**: Policy-enforced refund claim submission system with automatic admin email alerts and user autoresponder (3-day money-back guarantee window).
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: utim-cli
|
|
3
|
-
Version: 2.
|
|
3
|
+
Version: 2.3.0
|
|
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
|
|
@@ -4,7 +4,8 @@ build-backend = "setuptools.build_meta"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "utim-cli"
|
|
7
|
-
version = "2.
|
|
7
|
+
version = "2.3.0"
|
|
8
|
+
|
|
8
9
|
description = "UTIM – Universal Terminal Intelligence Manager. A powerful agentic AI coding assistant for your terminal."
|
|
9
10
|
readme = "README.md"
|
|
10
11
|
requires-python = ">=3.9"
|
|
@@ -96,7 +97,8 @@ include = ["utim_cli*"]
|
|
|
96
97
|
exclude = ["tests*", "landing*", "scripts*"]
|
|
97
98
|
|
|
98
99
|
[tool.setuptools.package-data]
|
|
99
|
-
utim_cli = ["mcp_registry.json", "_version.py", "server/docs_md/*.md"]
|
|
100
|
+
utim_cli = ["mcp_registry.json", "_version.py", "utimmodel.txt", "models.txt", "server/docs_md/*.md"]
|
|
101
|
+
|
|
100
102
|
|
|
101
103
|
[tool.pytest.ini_options]
|
|
102
104
|
markers = [
|
|
@@ -111,7 +111,18 @@ class ReActAgent:
|
|
|
111
111
|
if func_name == "read_file":
|
|
112
112
|
lines = result.split("\n")
|
|
113
113
|
summary.append(f"{len(lines)} lines", style="dim white")
|
|
114
|
-
elif func_name
|
|
114
|
+
elif func_name == "write_file":
|
|
115
|
+
filepath = args.get("filepath", args.get("path", ""))
|
|
116
|
+
new_content = args.get("content") or args.get("code") or args.get("text") or ""
|
|
117
|
+
if not new_content and filepath and os.path.exists(filepath):
|
|
118
|
+
try:
|
|
119
|
+
with open(filepath, "r", encoding="utf-8", errors="ignore") as _f:
|
|
120
|
+
new_content = _f.read()
|
|
121
|
+
except Exception:
|
|
122
|
+
pass
|
|
123
|
+
lines = new_content.splitlines() if new_content else []
|
|
124
|
+
summary.append(f"{len(lines)} lines", style="dim white")
|
|
125
|
+
elif func_name == "edit_file":
|
|
115
126
|
first = result.strip().splitlines()[0][:80] if result.strip() else "done"
|
|
116
127
|
summary.append(first, style="dim white")
|
|
117
128
|
elif func_name == "run_command":
|