comodor 1.1.2__tar.gz → 1.2.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 (397) hide show
  1. {comodor-1.1.2 → comodor-1.2.0}/PKG-INFO +4 -1
  2. {comodor-1.1.2 → comodor-1.2.0}/README.md +3 -0
  3. {comodor-1.1.2 → comodor-1.2.0}/docs/README.md +2 -0
  4. {comodor-1.1.2 → comodor-1.2.0}/src/comodor/_version.py +2 -2
  5. comodor-1.2.0/src/comodor/agent/background.py +875 -0
  6. {comodor-1.1.2 → comodor-1.2.0}/src/comodor/channels/daemon.py +19 -13
  7. {comodor-1.1.2 → comodor-1.2.0}/src/comodor/cli.py +8 -2
  8. {comodor-1.1.2 → comodor-1.2.0}/src/comodor/desktop/overlay.py +28 -14
  9. {comodor-1.1.2 → comodor-1.2.0}/src/comodor/local/catalogue.py +12 -1
  10. {comodor-1.1.2 → comodor-1.2.0}/src/comodor/ui/app.py +71 -8
  11. {comodor-1.1.2 → comodor-1.2.0}/src/comodor/ui/layout.py +124 -4
  12. {comodor-1.1.2 → comodor-1.2.0}/src/comodor/ui/screen.py +81 -6
  13. {comodor-1.1.2 → comodor-1.2.0}/src/comodor/ui/theme.py +39 -2
  14. {comodor-1.1.2 → comodor-1.2.0}/src/comodor/ui/widgets/chat.py +96 -54
  15. {comodor-1.1.2 → comodor-1.2.0}/src/comodor/ui/widgets/prompt.py +165 -6
  16. {comodor-1.1.2 → comodor-1.2.0}/src/comodor/ui/widgets/statusbar.py +23 -5
  17. comodor-1.2.0/src/comodor/ui/widgets/welcome.py +380 -0
  18. {comodor-1.1.2 → comodor-1.2.0}/src/comodor/web/session.py +13 -0
  19. {comodor-1.1.2 → comodor-1.2.0}/tests/test_app.py +212 -0
  20. comodor-1.2.0/tests/test_background_delegates.py +2191 -0
  21. {comodor-1.1.2 → comodor-1.2.0}/tests/test_bidi.py +3 -1
  22. {comodor-1.1.2 → comodor-1.2.0}/tests/test_channel_service.py +97 -6
  23. {comodor-1.1.2 → comodor-1.2.0}/tests/test_copy_and_bands.py +109 -0
  24. {comodor-1.1.2 → comodor-1.2.0}/tests/test_layout.py +305 -4
  25. {comodor-1.1.2 → comodor-1.2.0}/tests/test_local.py +245 -0
  26. {comodor-1.1.2 → comodor-1.2.0}/tests/test_overlay_buttons.py +23 -32
  27. {comodor-1.1.2 → comodor-1.2.0}/tests/test_run_loop.py +9 -3
  28. comodor-1.2.0/tests/test_slash_completions.py +821 -0
  29. comodor-1.2.0/tests/test_surface_impact_contract.py +1027 -0
  30. {comodor-1.1.2 → comodor-1.2.0}/tests/test_web.py +22 -0
  31. comodor-1.2.0/tests/test_welcome.py +371 -0
  32. comodor-1.1.2/src/comodor/agent/background.py +0 -412
  33. comodor-1.1.2/src/comodor/ui/widgets/welcome.py +0 -163
  34. comodor-1.1.2/tests/test_background_delegates.py +0 -288
  35. comodor-1.1.2/tests/test_welcome.py +0 -151
  36. {comodor-1.1.2 → comodor-1.2.0}/.gitignore +0 -0
  37. {comodor-1.1.2 → comodor-1.2.0}/LICENSE +0 -0
  38. {comodor-1.1.2 → comodor-1.2.0}/bench/README.md +0 -0
  39. {comodor-1.1.2 → comodor-1.2.0}/bench/tasks/careful-unknowable/repo/README.md +0 -0
  40. {comodor-1.1.2 → comodor-1.2.0}/docs/AR/README.md +0 -0
  41. {comodor-1.1.2 → comodor-1.2.0}/docs/DE/README.md +0 -0
  42. {comodor-1.1.2 → comodor-1.2.0}/docs/ES/README.md +0 -0
  43. {comodor-1.1.2 → comodor-1.2.0}/docs/FA/README.md +0 -0
  44. {comodor-1.1.2 → comodor-1.2.0}/docs/FR/README.md +0 -0
  45. {comodor-1.1.2 → comodor-1.2.0}/docs/RU/README.md +0 -0
  46. {comodor-1.1.2 → comodor-1.2.0}/docs/TR/README.md +0 -0
  47. {comodor-1.1.2 → comodor-1.2.0}/docs/ZH/README.md +0 -0
  48. {comodor-1.1.2 → comodor-1.2.0}/docs/upgrade-specs/README.md +0 -0
  49. {comodor-1.1.2 → comodor-1.2.0}/pyproject.toml +0 -0
  50. {comodor-1.1.2 → comodor-1.2.0}/src/comodor/__init__.py +0 -0
  51. {comodor-1.1.2 → comodor-1.2.0}/src/comodor/__main__.py +0 -0
  52. {comodor-1.1.2 → comodor-1.2.0}/src/comodor/acp/__init__.py +0 -0
  53. {comodor-1.1.2 → comodor-1.2.0}/src/comodor/acp/agent.py +0 -0
  54. {comodor-1.1.2 → comodor-1.2.0}/src/comodor/acp/commands.py +0 -0
  55. {comodor-1.1.2 → comodor-1.2.0}/src/comodor/acp/jsonrpc.py +0 -0
  56. {comodor-1.1.2 → comodor-1.2.0}/src/comodor/agent/__init__.py +0 -0
  57. {comodor-1.1.2 → comodor-1.2.0}/src/comodor/agent/claims.py +0 -0
  58. {comodor-1.1.2 → comodor-1.2.0}/src/comodor/agent/constraints.py +0 -0
  59. {comodor-1.1.2 → comodor-1.2.0}/src/comodor/agent/context.py +0 -0
  60. {comodor-1.1.2 → comodor-1.2.0}/src/comodor/agent/loop.py +0 -0
  61. {comodor-1.1.2 → comodor-1.2.0}/src/comodor/agent/plan.py +0 -0
  62. {comodor-1.1.2 → comodor-1.2.0}/src/comodor/agent/prompts.py +0 -0
  63. {comodor-1.1.2 → comodor-1.2.0}/src/comodor/agent/spawn.py +0 -0
  64. {comodor-1.1.2 → comodor-1.2.0}/src/comodor/agent/staleness.py +0 -0
  65. {comodor-1.1.2 → comodor-1.2.0}/src/comodor/agent/tokens.py +0 -0
  66. {comodor-1.1.2 → comodor-1.2.0}/src/comodor/agent/tool_bridge.py +0 -0
  67. {comodor-1.1.2 → comodor-1.2.0}/src/comodor/agent/verify.py +0 -0
  68. {comodor-1.1.2 → comodor-1.2.0}/src/comodor/api/__init__.py +0 -0
  69. {comodor-1.1.2 → comodor-1.2.0}/src/comodor/api/schema.py +0 -0
  70. {comodor-1.1.2 → comodor-1.2.0}/src/comodor/api/server.py +0 -0
  71. {comodor-1.1.2 → comodor-1.2.0}/src/comodor/api/session_map.py +0 -0
  72. {comodor-1.1.2 → comodor-1.2.0}/src/comodor/browser/__init__.py +0 -0
  73. {comodor-1.1.2 → comodor-1.2.0}/src/comodor/browser/cdp.py +0 -0
  74. {comodor-1.1.2 → comodor-1.2.0}/src/comodor/browser/launch.py +0 -0
  75. {comodor-1.1.2 → comodor-1.2.0}/src/comodor/browser/page.py +0 -0
  76. {comodor-1.1.2 → comodor-1.2.0}/src/comodor/catalogue.py +0 -0
  77. {comodor-1.1.2 → comodor-1.2.0}/src/comodor/channels/__init__.py +0 -0
  78. {comodor-1.1.2 → comodor-1.2.0}/src/comodor/channels/breaker.py +0 -0
  79. {comodor-1.1.2 → comodor-1.2.0}/src/comodor/channels/busy.py +0 -0
  80. {comodor-1.1.2 → comodor-1.2.0}/src/comodor/channels/ledger.py +0 -0
  81. {comodor-1.1.2 → comodor-1.2.0}/src/comodor/channels/markdown.py +0 -0
  82. {comodor-1.1.2 → comodor-1.2.0}/src/comodor/channels/settings.py +0 -0
  83. {comodor-1.1.2 → comodor-1.2.0}/src/comodor/channels/unit.py +0 -0
  84. {comodor-1.1.2 → comodor-1.2.0}/src/comodor/config.py +0 -0
  85. {comodor-1.1.2 → comodor-1.2.0}/src/comodor/context_refs.py +0 -0
  86. {comodor-1.1.2 → comodor-1.2.0}/src/comodor/cron/__init__.py +0 -0
  87. {comodor-1.1.2 → comodor-1.2.0}/src/comodor/cron/commands.py +0 -0
  88. {comodor-1.1.2 → comodor-1.2.0}/src/comodor/cron/deliver.py +0 -0
  89. {comodor-1.1.2 → comodor-1.2.0}/src/comodor/cron/jobs.py +0 -0
  90. {comodor-1.1.2 → comodor-1.2.0}/src/comodor/cron/parse.py +0 -0
  91. {comodor-1.1.2 → comodor-1.2.0}/src/comodor/cron/runner.py +0 -0
  92. {comodor-1.1.2 → comodor-1.2.0}/src/comodor/cron/scheduler.py +0 -0
  93. {comodor-1.1.2 → comodor-1.2.0}/src/comodor/desktop/__init__.py +0 -0
  94. {comodor-1.1.2 → comodor-1.2.0}/src/comodor/desktop/guard.py +0 -0
  95. {comodor-1.1.2 → comodor-1.2.0}/src/comodor/desktop/keys.py +0 -0
  96. {comodor-1.1.2 → comodor-1.2.0}/src/comodor/desktop/png.py +0 -0
  97. {comodor-1.1.2 → comodor-1.2.0}/src/comodor/desktop/quartz.py +0 -0
  98. {comodor-1.1.2 → comodor-1.2.0}/src/comodor/desktop/screen.py +0 -0
  99. {comodor-1.1.2 → comodor-1.2.0}/src/comodor/desktop/win32.py +0 -0
  100. {comodor-1.1.2 → comodor-1.2.0}/src/comodor/desktop/x11.py +0 -0
  101. {comodor-1.1.2 → comodor-1.2.0}/src/comodor/discord/__init__.py +0 -0
  102. {comodor-1.1.2 → comodor-1.2.0}/src/comodor/discord/api.py +0 -0
  103. {comodor-1.1.2 → comodor-1.2.0}/src/comodor/discord/bot.py +0 -0
  104. {comodor-1.1.2 → comodor-1.2.0}/src/comodor/discord/commands.py +0 -0
  105. {comodor-1.1.2 → comodor-1.2.0}/src/comodor/discord/gateway.py +0 -0
  106. {comodor-1.1.2 → comodor-1.2.0}/src/comodor/discord/service.py +0 -0
  107. {comodor-1.1.2 → comodor-1.2.0}/src/comodor/discord/unit.py +0 -0
  108. {comodor-1.1.2 → comodor-1.2.0}/src/comodor/doctor.py +0 -0
  109. {comodor-1.1.2 → comodor-1.2.0}/src/comodor/events.py +0 -0
  110. {comodor-1.1.2 → comodor-1.2.0}/src/comodor/github/__init__.py +0 -0
  111. {comodor-1.1.2 → comodor-1.2.0}/src/comodor/github/api.py +0 -0
  112. {comodor-1.1.2 → comodor-1.2.0}/src/comodor/github/commands.py +0 -0
  113. {comodor-1.1.2 → comodor-1.2.0}/src/comodor/github/connect.py +0 -0
  114. {comodor-1.1.2 → comodor-1.2.0}/src/comodor/github/identity.py +0 -0
  115. {comodor-1.1.2 → comodor-1.2.0}/src/comodor/github/repos.py +0 -0
  116. {comodor-1.1.2 → comodor-1.2.0}/src/comodor/github/tokens.py +0 -0
  117. {comodor-1.1.2 → comodor-1.2.0}/src/comodor/help.py +0 -0
  118. {comodor-1.1.2 → comodor-1.2.0}/src/comodor/image_gen/__init__.py +0 -0
  119. {comodor-1.1.2 → comodor-1.2.0}/src/comodor/image_gen/registry.py +0 -0
  120. {comodor-1.1.2 → comodor-1.2.0}/src/comodor/insights.py +0 -0
  121. {comodor-1.1.2 → comodor-1.2.0}/src/comodor/learning/__init__.py +0 -0
  122. {comodor-1.1.2 → comodor-1.2.0}/src/comodor/learning/associations.py +0 -0
  123. {comodor-1.1.2 → comodor-1.2.0}/src/comodor/learning/bm25.py +0 -0
  124. {comodor-1.1.2 → comodor-1.2.0}/src/comodor/learning/commands.py +0 -0
  125. {comodor-1.1.2 → comodor-1.2.0}/src/comodor/learning/curator.py +0 -0
  126. {comodor-1.1.2 → comodor-1.2.0}/src/comodor/learning/facts.py +0 -0
  127. {comodor-1.1.2 → comodor-1.2.0}/src/comodor/learning/hotindex.py +0 -0
  128. {comodor-1.1.2 → comodor-1.2.0}/src/comodor/learning/journey.py +0 -0
  129. {comodor-1.1.2 → comodor-1.2.0}/src/comodor/learning/journey_commands.py +0 -0
  130. {comodor-1.1.2 → comodor-1.2.0}/src/comodor/learning/memory.py +0 -0
  131. {comodor-1.1.2 → comodor-1.2.0}/src/comodor/learning/progress.py +0 -0
  132. {comodor-1.1.2 → comodor-1.2.0}/src/comodor/learning/providers/__init__.py +0 -0
  133. {comodor-1.1.2 → comodor-1.2.0}/src/comodor/learning/providers/base.py +0 -0
  134. {comodor-1.1.2 → comodor-1.2.0}/src/comodor/learning/providers/commands.py +0 -0
  135. {comodor-1.1.2 → comodor-1.2.0}/src/comodor/learning/providers/http_generic.py +0 -0
  136. {comodor-1.1.2 → comodor-1.2.0}/src/comodor/learning/reflect.py +0 -0
  137. {comodor-1.1.2 → comodor-1.2.0}/src/comodor/learning/render.py +0 -0
  138. {comodor-1.1.2 → comodor-1.2.0}/src/comodor/learning/review.py +0 -0
  139. {comodor-1.1.2 → comodor-1.2.0}/src/comodor/learning/rules.py +0 -0
  140. {comodor-1.1.2 → comodor-1.2.0}/src/comodor/learning/signals.py +0 -0
  141. {comodor-1.1.2 → comodor-1.2.0}/src/comodor/learning/store.py +0 -0
  142. {comodor-1.1.2 → comodor-1.2.0}/src/comodor/learning/writer.py +0 -0
  143. {comodor-1.1.2 → comodor-1.2.0}/src/comodor/local/__init__.py +0 -0
  144. {comodor-1.1.2 → comodor-1.2.0}/src/comodor/local/commands.py +0 -0
  145. {comodor-1.1.2 → comodor-1.2.0}/src/comodor/local/download.py +0 -0
  146. {comodor-1.1.2 → comodor-1.2.0}/src/comodor/local/models.json +0 -0
  147. {comodor-1.1.2 → comodor-1.2.0}/src/comodor/local/provider.py +0 -0
  148. {comodor-1.1.2 → comodor-1.2.0}/src/comodor/local/runtime.py +0 -0
  149. {comodor-1.1.2 → comodor-1.2.0}/src/comodor/local/store.py +0 -0
  150. {comodor-1.1.2 → comodor-1.2.0}/src/comodor/mcp/__init__.py +0 -0
  151. {comodor-1.1.2 → comodor-1.2.0}/src/comodor/mcp/catalogue.py +0 -0
  152. {comodor-1.1.2 → comodor-1.2.0}/src/comodor/mcp/commands.py +0 -0
  153. {comodor-1.1.2 → comodor-1.2.0}/src/comodor/mcp/http.py +0 -0
  154. {comodor-1.1.2 → comodor-1.2.0}/src/comodor/mcp/manager.py +0 -0
  155. {comodor-1.1.2 → comodor-1.2.0}/src/comodor/mcp/protocol.py +0 -0
  156. {comodor-1.1.2 → comodor-1.2.0}/src/comodor/media/__init__.py +0 -0
  157. {comodor-1.1.2 → comodor-1.2.0}/src/comodor/media/ingest.py +0 -0
  158. {comodor-1.1.2 → comodor-1.2.0}/src/comodor/media/route.py +0 -0
  159. {comodor-1.1.2 → comodor-1.2.0}/src/comodor/migrate.py +0 -0
  160. {comodor-1.1.2 → comodor-1.2.0}/src/comodor/net/__init__.py +0 -0
  161. {comodor-1.1.2 → comodor-1.2.0}/src/comodor/net/http.py +0 -0
  162. {comodor-1.1.2 → comodor-1.2.0}/src/comodor/net/sse.py +0 -0
  163. {comodor-1.1.2 → comodor-1.2.0}/src/comodor/net/ws.py +0 -0
  164. {comodor-1.1.2 → comodor-1.2.0}/src/comodor/paths.py +0 -0
  165. {comodor-1.1.2 → comodor-1.2.0}/src/comodor/plugins/__init__.py +0 -0
  166. {comodor-1.1.2 → comodor-1.2.0}/src/comodor/plugins/api.py +0 -0
  167. {comodor-1.1.2 → comodor-1.2.0}/src/comodor/plugins/commands.py +0 -0
  168. {comodor-1.1.2 → comodor-1.2.0}/src/comodor/plugins/manager.py +0 -0
  169. {comodor-1.1.2 → comodor-1.2.0}/src/comodor/providers/__init__.py +0 -0
  170. {comodor-1.1.2 → comodor-1.2.0}/src/comodor/providers/anthropic.py +0 -0
  171. {comodor-1.1.2 → comodor-1.2.0}/src/comodor/providers/base.py +0 -0
  172. {comodor-1.1.2 → comodor-1.2.0}/src/comodor/providers/caching.py +0 -0
  173. {comodor-1.1.2 → comodor-1.2.0}/src/comodor/providers/discover.py +0 -0
  174. {comodor-1.1.2 → comodor-1.2.0}/src/comodor/providers/fake.py +0 -0
  175. {comodor-1.1.2 → comodor-1.2.0}/src/comodor/providers/gateway.py +0 -0
  176. {comodor-1.1.2 → comodor-1.2.0}/src/comodor/providers/models.py +0 -0
  177. {comodor-1.1.2 → comodor-1.2.0}/src/comodor/providers/oauth.py +0 -0
  178. {comodor-1.1.2 → comodor-1.2.0}/src/comodor/providers/openai_compat.py +0 -0
  179. {comodor-1.1.2 → comodor-1.2.0}/src/comodor/providers/pool.py +0 -0
  180. {comodor-1.1.2 → comodor-1.2.0}/src/comodor/providers/profile.py +0 -0
  181. {comodor-1.1.2 → comodor-1.2.0}/src/comodor/providers/registry.py +0 -0
  182. {comodor-1.1.2 → comodor-1.2.0}/src/comodor/questions.py +0 -0
  183. {comodor-1.1.2 → comodor-1.2.0}/src/comodor/safety/__init__.py +0 -0
  184. {comodor-1.1.2 → comodor-1.2.0}/src/comodor/safety/backends.py +0 -0
  185. {comodor-1.1.2 → comodor-1.2.0}/src/comodor/safety/checkpoints.py +0 -0
  186. {comodor-1.1.2 → comodor-1.2.0}/src/comodor/safety/mining.py +0 -0
  187. {comodor-1.1.2 → comodor-1.2.0}/src/comodor/safety/permissions.py +0 -0
  188. {comodor-1.1.2 → comodor-1.2.0}/src/comodor/safety/redact.py +0 -0
  189. {comodor-1.1.2 → comodor-1.2.0}/src/comodor/safety/smart.py +0 -0
  190. {comodor-1.1.2 → comodor-1.2.0}/src/comodor/safety/ssrf.py +0 -0
  191. {comodor-1.1.2 → comodor-1.2.0}/src/comodor/session/__init__.py +0 -0
  192. {comodor-1.1.2 → comodor-1.2.0}/src/comodor/session/search.py +0 -0
  193. {comodor-1.1.2 → comodor-1.2.0}/src/comodor/session/store.py +0 -0
  194. {comodor-1.1.2 → comodor-1.2.0}/src/comodor/setup.py +0 -0
  195. {comodor-1.1.2 → comodor-1.2.0}/src/comodor/skills/__init__.py +0 -0
  196. {comodor-1.1.2 → comodor-1.2.0}/src/comodor/skills/catalogue.py +0 -0
  197. {comodor-1.1.2 → comodor-1.2.0}/src/comodor/skills/commands.py +0 -0
  198. {comodor-1.1.2 → comodor-1.2.0}/src/comodor/skills/examples.py +0 -0
  199. {comodor-1.1.2 → comodor-1.2.0}/src/comodor/skills/ledger.py +0 -0
  200. {comodor-1.1.2 → comodor-1.2.0}/src/comodor/skills/linter.py +0 -0
  201. {comodor-1.1.2 → comodor-1.2.0}/src/comodor/skills/loader.py +0 -0
  202. {comodor-1.1.2 → comodor-1.2.0}/src/comodor/skills/propose.py +0 -0
  203. {comodor-1.1.2 → comodor-1.2.0}/src/comodor/skills/registry.py +0 -0
  204. {comodor-1.1.2 → comodor-1.2.0}/src/comodor/skills/threats.py +0 -0
  205. {comodor-1.1.2 → comodor-1.2.0}/src/comodor/skills/usage.py +0 -0
  206. {comodor-1.1.2 → comodor-1.2.0}/src/comodor/slack/__init__.py +0 -0
  207. {comodor-1.1.2 → comodor-1.2.0}/src/comodor/slack/api.py +0 -0
  208. {comodor-1.1.2 → comodor-1.2.0}/src/comodor/slack/blocks.py +0 -0
  209. {comodor-1.1.2 → comodor-1.2.0}/src/comodor/slack/bot.py +0 -0
  210. {comodor-1.1.2 → comodor-1.2.0}/src/comodor/slack/commands.py +0 -0
  211. {comodor-1.1.2 → comodor-1.2.0}/src/comodor/slack/service.py +0 -0
  212. {comodor-1.1.2 → comodor-1.2.0}/src/comodor/slack/socket.py +0 -0
  213. {comodor-1.1.2 → comodor-1.2.0}/src/comodor/slack/unit.py +0 -0
  214. {comodor-1.1.2 → comodor-1.2.0}/src/comodor/telegram/__init__.py +0 -0
  215. {comodor-1.1.2 → comodor-1.2.0}/src/comodor/telegram/api.py +0 -0
  216. {comodor-1.1.2 → comodor-1.2.0}/src/comodor/telegram/bot.py +0 -0
  217. {comodor-1.1.2 → comodor-1.2.0}/src/comodor/telegram/commands.py +0 -0
  218. {comodor-1.1.2 → comodor-1.2.0}/src/comodor/telegram/keyboard.py +0 -0
  219. {comodor-1.1.2 → comodor-1.2.0}/src/comodor/telegram/service.py +0 -0
  220. {comodor-1.1.2 → comodor-1.2.0}/src/comodor/telegram/unit.py +0 -0
  221. {comodor-1.1.2 → comodor-1.2.0}/src/comodor/tools/__init__.py +0 -0
  222. {comodor-1.1.2 → comodor-1.2.0}/src/comodor/tools/ask.py +0 -0
  223. {comodor-1.1.2 → comodor-1.2.0}/src/comodor/tools/base.py +0 -0
  224. {comodor-1.1.2 → comodor-1.2.0}/src/comodor/tools/browse.py +0 -0
  225. {comodor-1.1.2 → comodor-1.2.0}/src/comodor/tools/browser.py +0 -0
  226. {comodor-1.1.2 → comodor-1.2.0}/src/comodor/tools/computer.py +0 -0
  227. {comodor-1.1.2 → comodor-1.2.0}/src/comodor/tools/cronjob.py +0 -0
  228. {comodor-1.1.2 → comodor-1.2.0}/src/comodor/tools/delegate.py +0 -0
  229. {comodor-1.1.2 → comodor-1.2.0}/src/comodor/tools/fs.py +0 -0
  230. {comodor-1.1.2 → comodor-1.2.0}/src/comodor/tools/github.py +0 -0
  231. {comodor-1.1.2 → comodor-1.2.0}/src/comodor/tools/history.py +0 -0
  232. {comodor-1.1.2 → comodor-1.2.0}/src/comodor/tools/image_gen.py +0 -0
  233. {comodor-1.1.2 → comodor-1.2.0}/src/comodor/tools/matching.py +0 -0
  234. {comodor-1.1.2 → comodor-1.2.0}/src/comodor/tools/mcp.py +0 -0
  235. {comodor-1.1.2 → comodor-1.2.0}/src/comodor/tools/mcp_resources.py +0 -0
  236. {comodor-1.1.2 → comodor-1.2.0}/src/comodor/tools/memory.py +0 -0
  237. {comodor-1.1.2 → comodor-1.2.0}/src/comodor/tools/overflow.py +0 -0
  238. {comodor-1.1.2 → comodor-1.2.0}/src/comodor/tools/plugin.py +0 -0
  239. {comodor-1.1.2 → comodor-1.2.0}/src/comodor/tools/propose_mode.py +0 -0
  240. {comodor-1.1.2 → comodor-1.2.0}/src/comodor/tools/registry.py +0 -0
  241. {comodor-1.1.2 → comodor-1.2.0}/src/comodor/tools/search.py +0 -0
  242. {comodor-1.1.2 → comodor-1.2.0}/src/comodor/tools/shell.py +0 -0
  243. {comodor-1.1.2 → comodor-1.2.0}/src/comodor/tools/skill_manage.py +0 -0
  244. {comodor-1.1.2 → comodor-1.2.0}/src/comodor/tools/skills.py +0 -0
  245. {comodor-1.1.2 → comodor-1.2.0}/src/comodor/tools/todo.py +0 -0
  246. {comodor-1.1.2 → comodor-1.2.0}/src/comodor/tools/verify.py +0 -0
  247. {comodor-1.1.2 → comodor-1.2.0}/src/comodor/tools/vision.py +0 -0
  248. {comodor-1.1.2 → comodor-1.2.0}/src/comodor/tools/web.py +0 -0
  249. {comodor-1.1.2 → comodor-1.2.0}/src/comodor/ui/__init__.py +0 -0
  250. {comodor-1.1.2 → comodor-1.2.0}/src/comodor/ui/banner.py +0 -0
  251. {comodor-1.1.2 → comodor-1.2.0}/src/comodor/ui/bidi.py +0 -0
  252. {comodor-1.1.2 → comodor-1.2.0}/src/comodor/ui/chooser.py +0 -0
  253. {comodor-1.1.2 → comodor-1.2.0}/src/comodor/ui/clipboard.py +0 -0
  254. {comodor-1.1.2 → comodor-1.2.0}/src/comodor/ui/console.py +0 -0
  255. {comodor-1.1.2 → comodor-1.2.0}/src/comodor/ui/input/__init__.py +0 -0
  256. {comodor-1.1.2 → comodor-1.2.0}/src/comodor/ui/input/keys.py +0 -0
  257. {comodor-1.1.2 → comodor-1.2.0}/src/comodor/ui/input/reader.py +0 -0
  258. {comodor-1.1.2 → comodor-1.2.0}/src/comodor/ui/markdown.py +0 -0
  259. {comodor-1.1.2 → comodor-1.2.0}/src/comodor/ui/widgets/__init__.py +0 -0
  260. {comodor-1.1.2 → comodor-1.2.0}/src/comodor/ui/widgets/buttons.py +0 -0
  261. {comodor-1.1.2 → comodor-1.2.0}/src/comodor/ui/widgets/history.py +0 -0
  262. {comodor-1.1.2 → comodor-1.2.0}/src/comodor/ui/widgets/overlay.py +0 -0
  263. {comodor-1.1.2 → comodor-1.2.0}/src/comodor/ui/widgets/panel.py +0 -0
  264. {comodor-1.1.2 → comodor-1.2.0}/src/comodor/ui/widgets/progress.py +0 -0
  265. {comodor-1.1.2 → comodor-1.2.0}/src/comodor/ui/widgets/questions.py +0 -0
  266. {comodor-1.1.2 → comodor-1.2.0}/src/comodor/ui/widgets/toast.py +0 -0
  267. {comodor-1.1.2 → comodor-1.2.0}/src/comodor/uninstall.py +0 -0
  268. {comodor-1.1.2 → comodor-1.2.0}/src/comodor/update.py +0 -0
  269. {comodor-1.1.2 → comodor-1.2.0}/src/comodor/vision.py +0 -0
  270. {comodor-1.1.2 → comodor-1.2.0}/src/comodor/voice/__init__.py +0 -0
  271. {comodor-1.1.2 → comodor-1.2.0}/src/comodor/voice/stt.py +0 -0
  272. {comodor-1.1.2 → comodor-1.2.0}/src/comodor/voice/tts.py +0 -0
  273. {comodor-1.1.2 → comodor-1.2.0}/src/comodor/web/__init__.py +0 -0
  274. {comodor-1.1.2 → comodor-1.2.0}/src/comodor/web/commands.py +0 -0
  275. {comodor-1.1.2 → comodor-1.2.0}/src/comodor/web/index.html +0 -0
  276. {comodor-1.1.2 → comodor-1.2.0}/src/comodor/web/server.py +0 -0
  277. {comodor-1.1.2 → comodor-1.2.0}/src/comodor/web/ui.css +0 -0
  278. {comodor-1.1.2 → comodor-1.2.0}/src/comodor/web/ui.js +0 -0
  279. {comodor-1.1.2 → comodor-1.2.0}/src/comodor/web/vazirmatn-OFL.txt +0 -0
  280. {comodor-1.1.2 → comodor-1.2.0}/src/comodor/web/vazirmatn.woff2 +0 -0
  281. {comodor-1.1.2 → comodor-1.2.0}/src/comodor/webhook/__init__.py +0 -0
  282. {comodor-1.1.2 → comodor-1.2.0}/src/comodor/webhook/commands.py +0 -0
  283. {comodor-1.1.2 → comodor-1.2.0}/src/comodor/webhook/server.py +0 -0
  284. {comodor-1.1.2 → comodor-1.2.0}/src/comodor/webhook/subs.py +0 -0
  285. {comodor-1.1.2 → comodor-1.2.0}/src/comodor/whatsapp/__init__.py +0 -0
  286. {comodor-1.1.2 → comodor-1.2.0}/src/comodor/whatsapp/api.py +0 -0
  287. {comodor-1.1.2 → comodor-1.2.0}/src/comodor/whatsapp/bot.py +0 -0
  288. {comodor-1.1.2 → comodor-1.2.0}/src/comodor/whatsapp/commands.py +0 -0
  289. {comodor-1.1.2 → comodor-1.2.0}/src/comodor/whatsapp/guide.py +0 -0
  290. {comodor-1.1.2 → comodor-1.2.0}/src/comodor/whatsapp/menu.py +0 -0
  291. {comodor-1.1.2 → comodor-1.2.0}/src/comodor/whatsapp/service.py +0 -0
  292. {comodor-1.1.2 → comodor-1.2.0}/src/comodor/whatsapp/tunnel.py +0 -0
  293. {comodor-1.1.2 → comodor-1.2.0}/src/comodor/whatsapp/unit.py +0 -0
  294. {comodor-1.1.2 → comodor-1.2.0}/src/comodor/whatsapp/webhook.py +0 -0
  295. {comodor-1.1.2 → comodor-1.2.0}/src/comodor/workspace.py +0 -0
  296. {comodor-1.1.2 → comodor-1.2.0}/tests/conftest.py +0 -0
  297. {comodor-1.1.2 → comodor-1.2.0}/tests/support/fake_mcp_server.py +0 -0
  298. {comodor-1.1.2 → comodor-1.2.0}/tests/test_acp.py +0 -0
  299. {comodor-1.1.2 → comodor-1.2.0}/tests/test_agent_loop.py +0 -0
  300. {comodor-1.1.2 → comodor-1.2.0}/tests/test_api.py +0 -0
  301. {comodor-1.1.2 → comodor-1.2.0}/tests/test_approval_mining.py +0 -0
  302. {comodor-1.1.2 → comodor-1.2.0}/tests/test_associations.py +0 -0
  303. {comodor-1.1.2 → comodor-1.2.0}/tests/test_backends.py +0 -0
  304. {comodor-1.1.2 → comodor-1.2.0}/tests/test_banner.py +0 -0
  305. {comodor-1.1.2 → comodor-1.2.0}/tests/test_bench.py +0 -0
  306. {comodor-1.1.2 → comodor-1.2.0}/tests/test_blind_writes.py +0 -0
  307. {comodor-1.1.2 → comodor-1.2.0}/tests/test_breaker.py +0 -0
  308. {comodor-1.1.2 → comodor-1.2.0}/tests/test_browser.py +0 -0
  309. {comodor-1.1.2 → comodor-1.2.0}/tests/test_busy_modes.py +0 -0
  310. {comodor-1.1.2 → comodor-1.2.0}/tests/test_caching.py +0 -0
  311. {comodor-1.1.2 → comodor-1.2.0}/tests/test_capability_map.py +0 -0
  312. {comodor-1.1.2 → comodor-1.2.0}/tests/test_chooser.py +0 -0
  313. {comodor-1.1.2 → comodor-1.2.0}/tests/test_claims.py +0 -0
  314. {comodor-1.1.2 → comodor-1.2.0}/tests/test_computer_tool.py +0 -0
  315. {comodor-1.1.2 → comodor-1.2.0}/tests/test_config_save.py +0 -0
  316. {comodor-1.1.2 → comodor-1.2.0}/tests/test_constraints.py +0 -0
  317. {comodor-1.1.2 → comodor-1.2.0}/tests/test_context_refs.py +0 -0
  318. {comodor-1.1.2 → comodor-1.2.0}/tests/test_cron.py +0 -0
  319. {comodor-1.1.2 → comodor-1.2.0}/tests/test_cronjob.py +0 -0
  320. {comodor-1.1.2 → comodor-1.2.0}/tests/test_curator.py +0 -0
  321. {comodor-1.1.2 → comodor-1.2.0}/tests/test_delegate.py +0 -0
  322. {comodor-1.1.2 → comodor-1.2.0}/tests/test_delivery_ledger.py +0 -0
  323. {comodor-1.1.2 → comodor-1.2.0}/tests/test_desktop.py +0 -0
  324. {comodor-1.1.2 → comodor-1.2.0}/tests/test_discord.py +0 -0
  325. {comodor-1.1.2 → comodor-1.2.0}/tests/test_discover.py +0 -0
  326. {comodor-1.1.2 → comodor-1.2.0}/tests/test_docker.py +0 -0
  327. {comodor-1.1.2 → comodor-1.2.0}/tests/test_doctor.py +0 -0
  328. {comodor-1.1.2 → comodor-1.2.0}/tests/test_facts.py +0 -0
  329. {comodor-1.1.2 → comodor-1.2.0}/tests/test_github.py +0 -0
  330. {comodor-1.1.2 → comodor-1.2.0}/tests/test_github_identity.py +0 -0
  331. {comodor-1.1.2 → comodor-1.2.0}/tests/test_github_tool.py +0 -0
  332. {comodor-1.1.2 → comodor-1.2.0}/tests/test_headless.py +0 -0
  333. {comodor-1.1.2 → comodor-1.2.0}/tests/test_help.py +0 -0
  334. {comodor-1.1.2 → comodor-1.2.0}/tests/test_history.py +0 -0
  335. {comodor-1.1.2 → comodor-1.2.0}/tests/test_image_gen.py +0 -0
  336. {comodor-1.1.2 → comodor-1.2.0}/tests/test_import_command.py +0 -0
  337. {comodor-1.1.2 → comodor-1.2.0}/tests/test_input.py +0 -0
  338. {comodor-1.1.2 → comodor-1.2.0}/tests/test_insights.py +0 -0
  339. {comodor-1.1.2 → comodor-1.2.0}/tests/test_journey.py +0 -0
  340. {comodor-1.1.2 → comodor-1.2.0}/tests/test_key_pool.py +0 -0
  341. {comodor-1.1.2 → comodor-1.2.0}/tests/test_learning.py +0 -0
  342. {comodor-1.1.2 → comodor-1.2.0}/tests/test_live_settings.py +0 -0
  343. {comodor-1.1.2 → comodor-1.2.0}/tests/test_markdown.py +0 -0
  344. {comodor-1.1.2 → comodor-1.2.0}/tests/test_matching.py +0 -0
  345. {comodor-1.1.2 → comodor-1.2.0}/tests/test_mcp.py +0 -0
  346. {comodor-1.1.2 → comodor-1.2.0}/tests/test_mcp_http.py +0 -0
  347. {comodor-1.1.2 → comodor-1.2.0}/tests/test_mcp_resources.py +0 -0
  348. {comodor-1.1.2 → comodor-1.2.0}/tests/test_media.py +0 -0
  349. {comodor-1.1.2 → comodor-1.2.0}/tests/test_memory_provider.py +0 -0
  350. {comodor-1.1.2 → comodor-1.2.0}/tests/test_memory_tool.py +0 -0
  351. {comodor-1.1.2 → comodor-1.2.0}/tests/test_migrate.py +0 -0
  352. {comodor-1.1.2 → comodor-1.2.0}/tests/test_nothing_is_left_running.py +0 -0
  353. {comodor-1.1.2 → comodor-1.2.0}/tests/test_oauth.py +0 -0
  354. {comodor-1.1.2 → comodor-1.2.0}/tests/test_overflow.py +0 -0
  355. {comodor-1.1.2 → comodor-1.2.0}/tests/test_overlay.py +0 -0
  356. {comodor-1.1.2 → comodor-1.2.0}/tests/test_performance.py +0 -0
  357. {comodor-1.1.2 → comodor-1.2.0}/tests/test_plan_memory.py +0 -0
  358. {comodor-1.1.2 → comodor-1.2.0}/tests/test_plugins.py +0 -0
  359. {comodor-1.1.2 → comodor-1.2.0}/tests/test_prefix_stability.py +0 -0
  360. {comodor-1.1.2 → comodor-1.2.0}/tests/test_profile.py +0 -0
  361. {comodor-1.1.2 → comodor-1.2.0}/tests/test_profiles.py +0 -0
  362. {comodor-1.1.2 → comodor-1.2.0}/tests/test_progress.py +0 -0
  363. {comodor-1.1.2 → comodor-1.2.0}/tests/test_project_check.py +0 -0
  364. {comodor-1.1.2 → comodor-1.2.0}/tests/test_propose.py +0 -0
  365. {comodor-1.1.2 → comodor-1.2.0}/tests/test_propose_mode.py +0 -0
  366. {comodor-1.1.2 → comodor-1.2.0}/tests/test_providers.py +0 -0
  367. {comodor-1.1.2 → comodor-1.2.0}/tests/test_quartz_backend.py +0 -0
  368. {comodor-1.1.2 → comodor-1.2.0}/tests/test_questions.py +0 -0
  369. {comodor-1.1.2 → comodor-1.2.0}/tests/test_real_browser.py +0 -0
  370. {comodor-1.1.2 → comodor-1.2.0}/tests/test_real_desktop.py +0 -0
  371. {comodor-1.1.2 → comodor-1.2.0}/tests/test_real_web_ui.py +0 -0
  372. {comodor-1.1.2 → comodor-1.2.0}/tests/test_reflex.py +0 -0
  373. {comodor-1.1.2 → comodor-1.2.0}/tests/test_release_workflow.py +0 -0
  374. {comodor-1.1.2 → comodor-1.2.0}/tests/test_revoked_writes.py +0 -0
  375. {comodor-1.1.2 → comodor-1.2.0}/tests/test_setup.py +0 -0
  376. {comodor-1.1.2 → comodor-1.2.0}/tests/test_setup_import.py +0 -0
  377. {comodor-1.1.2 → comodor-1.2.0}/tests/test_skill_budget.py +0 -0
  378. {comodor-1.1.2 → comodor-1.2.0}/tests/test_skill_catalogue.py +0 -0
  379. {comodor-1.1.2 → comodor-1.2.0}/tests/test_skill_manage.py +0 -0
  380. {comodor-1.1.2 → comodor-1.2.0}/tests/test_skills.py +0 -0
  381. {comodor-1.1.2 → comodor-1.2.0}/tests/test_slack.py +0 -0
  382. {comodor-1.1.2 → comodor-1.2.0}/tests/test_smart_approvals.py +0 -0
  383. {comodor-1.1.2 → comodor-1.2.0}/tests/test_source_hygiene.py +0 -0
  384. {comodor-1.1.2 → comodor-1.2.0}/tests/test_ssrf.py +0 -0
  385. {comodor-1.1.2 → comodor-1.2.0}/tests/test_staleness.py +0 -0
  386. {comodor-1.1.2 → comodor-1.2.0}/tests/test_switching_model.py +0 -0
  387. {comodor-1.1.2 → comodor-1.2.0}/tests/test_telegram.py +0 -0
  388. {comodor-1.1.2 → comodor-1.2.0}/tests/test_tool_bridge.py +0 -0
  389. {comodor-1.1.2 → comodor-1.2.0}/tests/test_tools.py +0 -0
  390. {comodor-1.1.2 → comodor-1.2.0}/tests/test_uninstall.py +0 -0
  391. {comodor-1.1.2 → comodor-1.2.0}/tests/test_update.py +0 -0
  392. {comodor-1.1.2 → comodor-1.2.0}/tests/test_verify.py +0 -0
  393. {comodor-1.1.2 → comodor-1.2.0}/tests/test_vision_tool.py +0 -0
  394. {comodor-1.1.2 → comodor-1.2.0}/tests/test_voice.py +0 -0
  395. {comodor-1.1.2 → comodor-1.2.0}/tests/test_webhook.py +0 -0
  396. {comodor-1.1.2 → comodor-1.2.0}/tests/test_whatsapp.py +0 -0
  397. {comodor-1.1.2 → comodor-1.2.0}/tests/test_x11_backend.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.5
2
2
  Name: comodor
3
- Version: 1.1.2
3
+ Version: 1.2.0
4
4
  Summary: Comodor — a self-improving terminal coding agent with a Rich TUI
5
5
  Project-URL: Homepage, https://comodor.ai
6
6
  Project-URL: Repository, https://github.com/ifekri/Comodor
@@ -80,6 +80,9 @@ or the next one. Not a setting you turn on. Not a file you maintain.
80
80
  ---
81
81
 
82
82
  [![](.github/ascii-comodor.svg)]()
83
+
84
+ [![](.github/install-anim.svg)](https://comodor.ai 'Comodor.ai Install in Linux and Mac')
85
+
83
86
  </div>
84
87
 
85
88
  ## Why this one
@@ -48,6 +48,9 @@ or the next one. Not a setting you turn on. Not a file you maintain.
48
48
  ---
49
49
 
50
50
  [![](.github/ascii-comodor.svg)]()
51
+
52
+ [![](.github/install-anim.svg)](https://comodor.ai 'Comodor.ai Install in Linux and Mac')
53
+
51
54
  </div>
52
55
 
53
56
  ## Why this one
@@ -51,6 +51,8 @@ ends with the agent doing something useful.
51
51
  | [Safety and permissions](safety.md) | What it can do, what it asks, what it never does |
52
52
  | [Cost](cost.md) | Caching, budgets, and paying less for the same work |
53
53
  | [Configuration](configuration.md) | Every setting, where files live, what wins |
54
+ | [Architecture](architecture.md) | Shared ownership, dependency direction, and product surfaces |
55
+ | [Surface parity contract](surface-parity.md) | Required PR impact assessment and verification evidence |
54
56
 
55
57
  ### When something is wrong
56
58
 
@@ -18,7 +18,7 @@ version_tuple: tuple[int | str, ...]
18
18
  commit_id: str | None
19
19
  __commit_id__: str | None
20
20
 
21
- __version__ = version = '1.1.2'
22
- __version_tuple__ = version_tuple = (1, 1, 2)
21
+ __version__ = version = '1.2.0'
22
+ __version_tuple__ = version_tuple = (1, 2, 0)
23
23
 
24
24
  __commit_id__ = commit_id = None