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.
Files changed (134) hide show
  1. {utim_cli-2.2.2 → utim_cli-2.3.0}/CHANGELOG.md +11 -0
  2. {utim_cli-2.2.2/utim_cli.egg-info → utim_cli-2.3.0}/PKG-INFO +1 -1
  3. {utim_cli-2.2.2 → utim_cli-2.3.0}/pyproject.toml +4 -2
  4. {utim_cli-2.2.2 → utim_cli-2.3.0}/utim_cli/__init__.py +2 -1
  5. {utim_cli-2.2.2 → utim_cli-2.3.0}/utim_cli/_version.py +2 -1
  6. {utim_cli-2.2.2 → utim_cli-2.3.0}/utim_cli/agent.py +12 -1
  7. utim_cli-2.3.0/utim_cli/ask_helper.py +652 -0
  8. {utim_cli-2.2.2 → utim_cli-2.3.0}/utim_cli/brain.py +199 -24
  9. {utim_cli-2.2.2 → utim_cli-2.3.0}/utim_cli/constants.py +2 -0
  10. utim_cli-2.3.0/utim_cli/models.txt +38350 -0
  11. {utim_cli-2.2.2 → utim_cli-2.3.0}/utim_cli/orchestrator.py +597 -344
  12. utim_cli-2.3.0/utim_cli/server/admin_auth.py +163 -0
  13. {utim_cli-2.2.2 → utim_cli-2.3.0}/utim_cli/server/db.py +15 -11
  14. {utim_cli-2.2.2 → utim_cli-2.3.0}/utim_cli/server/micro_batcher.py +99 -60
  15. utim_cli-2.3.0/utim_cli/server/model_agent.py +41 -0
  16. {utim_cli-2.2.2 → utim_cli-2.3.0}/utim_cli/server/models.py +418 -292
  17. utim_cli-2.3.0/utim_cli/server/pricing_updater.py +215 -0
  18. {utim_cli-2.2.2 → utim_cli-2.3.0}/utim_cli/server/router.py +202 -19
  19. {utim_cli-2.2.2 → utim_cli-2.3.0}/utim_cli/server/routes/rewards_routes.py +15 -19
  20. {utim_cli-2.2.2 → utim_cli-2.3.0}/utim_cli/server/storage_nodes.py +28 -13
  21. {utim_cli-2.2.2 → utim_cli-2.3.0}/utim_cli/share.py +24 -35
  22. utim_cli-2.3.0/utim_cli/subagent_manager.py +1280 -0
  23. utim_cli-2.3.0/utim_cli/task_dispatcher.py +413 -0
  24. {utim_cli-2.2.2 → utim_cli-2.3.0}/utim_cli/tools.py +509 -39
  25. {utim_cli-2.2.2 → utim_cli-2.3.0}/utim_cli/tui/marketplace_layout_engine.py +21 -21
  26. {utim_cli-2.2.2 → utim_cli-2.3.0}/utim_cli/tui/mcp_dialog.py +2 -2
  27. {utim_cli-2.2.2 → utim_cli-2.3.0}/utim_cli/tui/miniagents_dialog.py +21 -23
  28. {utim_cli-2.2.2 → utim_cli-2.3.0}/utim_cli/tui/model_dialog.py +143 -406
  29. {utim_cli-2.2.2 → utim_cli-2.3.0}/utim_cli/tui/skills_dialog.py +19 -23
  30. {utim_cli-2.2.2 → utim_cli-2.3.0}/utim_cli/tui/subagents_dialog.py +2 -2
  31. {utim_cli-2.2.2 → utim_cli-2.3.0}/utim_cli/utim.py +512 -95
  32. utim_cli-2.3.0/utim_cli/utimmodel.txt +133 -0
  33. {utim_cli-2.2.2 → utim_cli-2.3.0/utim_cli.egg-info}/PKG-INFO +1 -1
  34. {utim_cli-2.2.2 → utim_cli-2.3.0}/utim_cli.egg-info/SOURCES.txt +5 -0
  35. utim_cli-2.2.2/utim_cli/server/model_agent.py +0 -233
  36. utim_cli-2.2.2/utim_cli/server/pricing_updater.py +0 -144
  37. utim_cli-2.2.2/utim_cli/subagent_manager.py +0 -724
  38. {utim_cli-2.2.2 → utim_cli-2.3.0}/LICENSE +0 -0
  39. {utim_cli-2.2.2 → utim_cli-2.3.0}/MANIFEST.in +0 -0
  40. {utim_cli-2.2.2 → utim_cli-2.3.0}/README.md +0 -0
  41. {utim_cli-2.2.2 → utim_cli-2.3.0}/setup.cfg +0 -0
  42. {utim_cli-2.2.2 → utim_cli-2.3.0}/setup.py +0 -0
  43. {utim_cli-2.2.2 → utim_cli-2.3.0}/utim_cli/_check_obj.py +0 -0
  44. {utim_cli-2.2.2 → utim_cli-2.3.0}/utim_cli/_find_mcp.py +0 -0
  45. {utim_cli-2.2.2 → utim_cli-2.3.0}/utim_cli/_find_plan.py +0 -0
  46. {utim_cli-2.2.2 → utim_cli-2.3.0}/utim_cli/_find_tool.py +0 -0
  47. {utim_cli-2.2.2 → utim_cli-2.3.0}/utim_cli/_patch_multimodal.py +0 -0
  48. {utim_cli-2.2.2 → utim_cli-2.3.0}/utim_cli/_test_regex.py +0 -0
  49. {utim_cli-2.2.2 → utim_cli-2.3.0}/utim_cli/auth.py +0 -0
  50. {utim_cli-2.2.2 → utim_cli-2.3.0}/utim_cli/backup.py +0 -0
  51. {utim_cli-2.2.2 → utim_cli-2.3.0}/utim_cli/billing.py +0 -0
  52. {utim_cli-2.2.2 → utim_cli-2.3.0}/utim_cli/blender_agent.py +0 -0
  53. {utim_cli-2.2.2 → utim_cli-2.3.0}/utim_cli/bootstrap.py +0 -0
  54. {utim_cli-2.2.2 → utim_cli-2.3.0}/utim_cli/client_utils.py +0 -0
  55. {utim_cli-2.2.2 → utim_cli-2.3.0}/utim_cli/config.py +0 -0
  56. {utim_cli-2.2.2 → utim_cli-2.3.0}/utim_cli/context_pruner.py +0 -0
  57. {utim_cli-2.2.2 → utim_cli-2.3.0}/utim_cli/doctor.py +0 -0
  58. {utim_cli-2.2.2 → utim_cli-2.3.0}/utim_cli/harbor.py +0 -0
  59. {utim_cli-2.2.2 → utim_cli-2.3.0}/utim_cli/knowledge_graph.py +0 -0
  60. {utim_cli-2.2.2 → utim_cli-2.3.0}/utim_cli/local_db.py +0 -0
  61. {utim_cli-2.2.2 → utim_cli-2.3.0}/utim_cli/logger.py +0 -0
  62. {utim_cli-2.2.2 → utim_cli-2.3.0}/utim_cli/mcp_clean_wrapper.py +0 -0
  63. {utim_cli-2.2.2 → utim_cli-2.3.0}/utim_cli/mcp_client.py +0 -0
  64. {utim_cli-2.2.2 → utim_cli-2.3.0}/utim_cli/mcp_registry.json +0 -0
  65. {utim_cli-2.2.2 → utim_cli-2.3.0}/utim_cli/reflection.py +0 -0
  66. {utim_cli-2.2.2 → utim_cli-2.3.0}/utim_cli/report.py +0 -0
  67. {utim_cli-2.2.2 → utim_cli-2.3.0}/utim_cli/scrapy_search.py +0 -0
  68. {utim_cli-2.2.2 → utim_cli-2.3.0}/utim_cli/server/__init__.py +0 -0
  69. {utim_cli-2.2.2 → utim_cli-2.3.0}/utim_cli/server/attribution.py +0 -0
  70. {utim_cli-2.2.2 → utim_cli-2.3.0}/utim_cli/server/audit_log.py +0 -0
  71. {utim_cli-2.2.2 → utim_cli-2.3.0}/utim_cli/server/auth.py +0 -0
  72. {utim_cli-2.2.2 → utim_cli-2.3.0}/utim_cli/server/batch_processor.py +0 -0
  73. {utim_cli-2.2.2 → utim_cli-2.3.0}/utim_cli/server/captcha.py +0 -0
  74. {utim_cli-2.2.2 → utim_cli-2.3.0}/utim_cli/server/cli_auth.py +0 -0
  75. {utim_cli-2.2.2 → utim_cli-2.3.0}/utim_cli/server/docs_md/SECRET_PROVISIONING.md +0 -0
  76. {utim_cli-2.2.2 → utim_cli-2.3.0}/utim_cli/server/docs_md/about.md +0 -0
  77. {utim_cli-2.2.2 → utim_cli-2.3.0}/utim_cli/server/docs_md/changelog.md +0 -0
  78. {utim_cli-2.2.2 → utim_cli-2.3.0}/utim_cli/server/docs_md/docs.md +0 -0
  79. {utim_cli-2.2.2 → utim_cli-2.3.0}/utim_cli/server/docs_md/features.md +0 -0
  80. {utim_cli-2.2.2 → utim_cli-2.3.0}/utim_cli/server/docs_md/license.md +0 -0
  81. {utim_cli-2.2.2 → utim_cli-2.3.0}/utim_cli/server/docs_md/pricing.md +0 -0
  82. {utim_cli-2.2.2 → utim_cli-2.3.0}/utim_cli/server/docs_md/privacy.md +0 -0
  83. {utim_cli-2.2.2 → utim_cli-2.3.0}/utim_cli/server/docs_md/refund.md +0 -0
  84. {utim_cli-2.2.2 → utim_cli-2.3.0}/utim_cli/server/docs_md/support.md +0 -0
  85. {utim_cli-2.2.2 → utim_cli-2.3.0}/utim_cli/server/docs_md/terms.md +0 -0
  86. {utim_cli-2.2.2 → utim_cli-2.3.0}/utim_cli/server/email_utils.py +0 -0
  87. {utim_cli-2.2.2 → utim_cli-2.3.0}/utim_cli/server/exchange_rate.py +0 -0
  88. {utim_cli-2.2.2 → utim_cli-2.3.0}/utim_cli/server/firebase.py +0 -0
  89. {utim_cli-2.2.2 → utim_cli-2.3.0}/utim_cli/server/fix_duplicate_users.py +0 -0
  90. {utim_cli-2.2.2 → utim_cli-2.3.0}/utim_cli/server/history.py +0 -0
  91. {utim_cli-2.2.2 → utim_cli-2.3.0}/utim_cli/server/local_llm.py +0 -0
  92. {utim_cli-2.2.2 → utim_cli-2.3.0}/utim_cli/server/logging_config.py +0 -0
  93. {utim_cli-2.2.2 → utim_cli-2.3.0}/utim_cli/server/provision_build.py +0 -0
  94. {utim_cli-2.2.2 → utim_cli-2.3.0}/utim_cli/server/rate_limit.py +0 -0
  95. {utim_cli-2.2.2 → utim_cli-2.3.0}/utim_cli/server/rewards_engine.py +0 -0
  96. {utim_cli-2.2.2 → utim_cli-2.3.0}/utim_cli/server/routes/__init__.py +0 -0
  97. {utim_cli-2.2.2 → utim_cli-2.3.0}/utim_cli/server/routes/auth_routes.py +0 -0
  98. {utim_cli-2.2.2 → utim_cli-2.3.0}/utim_cli/server/routes/billing_routes.py +0 -0
  99. {utim_cli-2.2.2 → utim_cli-2.3.0}/utim_cli/server/routes/completion_routes.py +0 -0
  100. {utim_cli-2.2.2 → utim_cli-2.3.0}/utim_cli/server/routes/credit_routes.py +0 -0
  101. {utim_cli-2.2.2 → utim_cli-2.3.0}/utim_cli/server/routes/feedback_routes.py +0 -0
  102. {utim_cli-2.2.2 → utim_cli-2.3.0}/utim_cli/server/routes/marketplace_routes.py +0 -0
  103. {utim_cli-2.2.2 → utim_cli-2.3.0}/utim_cli/server/routes/quota_routes.py +0 -0
  104. {utim_cli-2.2.2 → utim_cli-2.3.0}/utim_cli/server/routes/quota_share_routes.py +0 -0
  105. {utim_cli-2.2.2 → utim_cli-2.3.0}/utim_cli/server/routes/referral_routes.py +0 -0
  106. {utim_cli-2.2.2 → utim_cli-2.3.0}/utim_cli/server/routes/security_routes.py +0 -0
  107. {utim_cli-2.2.2 → utim_cli-2.3.0}/utim_cli/server/routes/session_routes.py +0 -0
  108. {utim_cli-2.2.2 → utim_cli-2.3.0}/utim_cli/server/routes/share_routes.py +0 -0
  109. {utim_cli-2.2.2 → utim_cli-2.3.0}/utim_cli/server/server.py +0 -0
  110. {utim_cli-2.2.2 → utim_cli-2.3.0}/utim_cli/share_tui.py +0 -0
  111. {utim_cli-2.2.2 → utim_cli-2.3.0}/utim_cli/situational_scoring.py +0 -0
  112. {utim_cli-2.2.2 → utim_cli-2.3.0}/utim_cli/state.py +0 -0
  113. {utim_cli-2.2.2 → utim_cli-2.3.0}/utim_cli/tui/__init__.py +0 -0
  114. {utim_cli-2.2.2 → utim_cli-2.3.0}/utim_cli/tui/feedback_dialog.py +0 -0
  115. {utim_cli-2.2.2 → utim_cli-2.3.0}/utim_cli/tui/history_dialog.py +0 -0
  116. {utim_cli-2.2.2 → utim_cli-2.3.0}/utim_cli/tui/marketplace_app_state.py +0 -0
  117. {utim_cli-2.2.2 → utim_cli-2.3.0}/utim_cli/tui/marketplace_dialog.py +0 -0
  118. {utim_cli-2.2.2 → utim_cli-2.3.0}/utim_cli/tui/publish_dialog.py +0 -0
  119. {utim_cli-2.2.2 → utim_cli-2.3.0}/utim_cli/tui/quota_dialog.py +0 -0
  120. {utim_cli-2.2.2 → utim_cli-2.3.0}/utim_cli/tui/quota_redeem_dialog.py +0 -0
  121. {utim_cli-2.2.2 → utim_cli-2.3.0}/utim_cli/tui/quota_share_dialog.py +0 -0
  122. {utim_cli-2.2.2 → utim_cli-2.3.0}/utim_cli/tui/resume_dialog.py +0 -0
  123. {utim_cli-2.2.2 → utim_cli-2.3.0}/utim_cli/tui/rewards_tui.py +0 -0
  124. {utim_cli-2.2.2 → utim_cli-2.3.0}/utim_cli/tui/thinking_display.py +0 -0
  125. {utim_cli-2.2.2 → utim_cli-2.3.0}/utim_cli/tui/tools_dialog.py +0 -0
  126. {utim_cli-2.2.2 → utim_cli-2.3.0}/utim_cli/tui/update_dialog.py +0 -0
  127. {utim_cli-2.2.2 → utim_cli-2.3.0}/utim_cli/utilities.py +0 -0
  128. {utim_cli-2.2.2 → utim_cli-2.3.0}/utim_cli/vector_memory.py +0 -0
  129. {utim_cli-2.2.2 → utim_cli-2.3.0}/utim_cli/wheel.py +0 -0
  130. {utim_cli-2.2.2 → utim_cli-2.3.0}/utim_cli/workspace.py +0 -0
  131. {utim_cli-2.2.2 → utim_cli-2.3.0}/utim_cli.egg-info/dependency_links.txt +0 -0
  132. {utim_cli-2.2.2 → utim_cli-2.3.0}/utim_cli.egg-info/entry_points.txt +0 -0
  133. {utim_cli-2.2.2 → utim_cli-2.3.0}/utim_cli.egg-info/requires.txt +0 -0
  134. {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.2.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.2.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 = [
@@ -5,7 +5,8 @@ try:
5
5
  from utim_cli._version import VERSION as __version__
6
6
  except ImportError:
7
7
  # Fallback during first-install / editable-install edge cases
8
- __version__ = "2.2.2"
8
+ __version__ = "2.3.0"
9
+
9
10
 
10
11
  import builtins, os, pathlib, urllib.parse, re
11
12
 
@@ -11,5 +11,6 @@
11
11
  # from here so every surface stays in sync automatically.
12
12
  # ─────────────────────────────────────────────────────────────────────────────
13
13
 
14
- VERSION = "2.2.2"
14
+ VERSION = "2.3.0"
15
+
15
16
 
@@ -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 in ("write_file", "edit_file"):
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":