isa-mate 0.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 (250) hide show
  1. isa_mate-0.2.0/.gitignore +51 -0
  2. isa_mate-0.2.0/PKG-INFO +217 -0
  3. isa_mate-0.2.0/README.md +164 -0
  4. isa_mate-0.2.0/isa_mate/__init__.py +27 -0
  5. isa_mate-0.2.0/isa_mate/__main__.py +5 -0
  6. isa_mate-0.2.0/isa_mate/accounts/__init__.py +5 -0
  7. isa_mate-0.2.0/isa_mate/accounts/commands.py +394 -0
  8. isa_mate-0.2.0/isa_mate/agent/__init__.py +12 -0
  9. isa_mate-0.2.0/isa_mate/agent/config.py +1194 -0
  10. isa_mate-0.2.0/isa_mate/agent/delegation_directory.py +266 -0
  11. isa_mate-0.2.0/isa_mate/agent/multi_team_detection.py +145 -0
  12. isa_mate-0.2.0/isa_mate/agent/project_context.py +128 -0
  13. isa_mate-0.2.0/isa_mate/agent/research.py +197 -0
  14. isa_mate-0.2.0/isa_mate/agent/runtime.py +1861 -0
  15. isa_mate-0.2.0/isa_mate/agent/trading_contract.py +297 -0
  16. isa_mate-0.2.0/isa_mate/agent/trading_handoff.py +316 -0
  17. isa_mate-0.2.0/isa_mate/auth/__init__.py +20 -0
  18. isa_mate-0.2.0/isa_mate/auth/audit.py +79 -0
  19. isa_mate-0.2.0/isa_mate/auth/authorization.py +46 -0
  20. isa_mate-0.2.0/isa_mate/auth/clients.py +150 -0
  21. isa_mate-0.2.0/isa_mate/auth/middleware.py +214 -0
  22. isa_mate-0.2.0/isa_mate/auth/models.py +51 -0
  23. isa_mate-0.2.0/isa_mate/auth/scopes.py +120 -0
  24. isa_mate-0.2.0/isa_mate/channels/__init__.py +35 -0
  25. isa_mate-0.2.0/isa_mate/channels/discord/__init__.py +5 -0
  26. isa_mate-0.2.0/isa_mate/channels/discord/adapter.py +121 -0
  27. isa_mate-0.2.0/isa_mate/channels/discord/parser.py +146 -0
  28. isa_mate-0.2.0/isa_mate/channels/discord/sender.py +109 -0
  29. isa_mate-0.2.0/isa_mate/channels/feishu/__init__.py +5 -0
  30. isa_mate-0.2.0/isa_mate/channels/feishu/adapter.py +143 -0
  31. isa_mate-0.2.0/isa_mate/channels/feishu/parser.py +97 -0
  32. isa_mate-0.2.0/isa_mate/channels/feishu/sender.py +120 -0
  33. isa_mate-0.2.0/isa_mate/channels/feishu/signature.py +36 -0
  34. isa_mate-0.2.0/isa_mate/channels/google_chat/__init__.py +5 -0
  35. isa_mate-0.2.0/isa_mate/channels/google_chat/adapter.py +140 -0
  36. isa_mate-0.2.0/isa_mate/channels/imessage/__init__.py +5 -0
  37. isa_mate-0.2.0/isa_mate/channels/imessage/adapter.py +137 -0
  38. isa_mate-0.2.0/isa_mate/channels/line/__init__.py +5 -0
  39. isa_mate-0.2.0/isa_mate/channels/line/adapter.py +157 -0
  40. isa_mate-0.2.0/isa_mate/channels/matrix/__init__.py +5 -0
  41. isa_mate-0.2.0/isa_mate/channels/matrix/adapter.py +125 -0
  42. isa_mate-0.2.0/isa_mate/channels/matrix/parser.py +81 -0
  43. isa_mate-0.2.0/isa_mate/channels/matrix/sender.py +91 -0
  44. isa_mate-0.2.0/isa_mate/channels/msteams/__init__.py +5 -0
  45. isa_mate-0.2.0/isa_mate/channels/msteams/adapter.py +136 -0
  46. isa_mate-0.2.0/isa_mate/channels/msteams/parser.py +103 -0
  47. isa_mate-0.2.0/isa_mate/channels/msteams/sender.py +132 -0
  48. isa_mate-0.2.0/isa_mate/channels/runtime/__init__.py +30 -0
  49. isa_mate-0.2.0/isa_mate/channels/runtime/contracts.py +31 -0
  50. isa_mate-0.2.0/isa_mate/channels/runtime/metrics.py +182 -0
  51. isa_mate-0.2.0/isa_mate/channels/runtime/models.py +66 -0
  52. isa_mate-0.2.0/isa_mate/channels/runtime/replay.py +48 -0
  53. isa_mate-0.2.0/isa_mate/channels/runtime/store.py +369 -0
  54. isa_mate-0.2.0/isa_mate/channels/runtime/workers.py +462 -0
  55. isa_mate-0.2.0/isa_mate/channels/security/__init__.py +86 -0
  56. isa_mate-0.2.0/isa_mate/channels/security/channel_policy.py +439 -0
  57. isa_mate-0.2.0/isa_mate/channels/security/channel_policy_models.py +384 -0
  58. isa_mate-0.2.0/isa_mate/channels/security/pairing_store.py +652 -0
  59. isa_mate-0.2.0/isa_mate/channels/security/security_audit_log.py +321 -0
  60. isa_mate-0.2.0/isa_mate/channels/security/webhook_security_models.py +413 -0
  61. isa_mate-0.2.0/isa_mate/channels/security/webhook_signature.py +188 -0
  62. isa_mate-0.2.0/isa_mate/channels/signal/__init__.py +5 -0
  63. isa_mate-0.2.0/isa_mate/channels/signal/adapter.py +125 -0
  64. isa_mate-0.2.0/isa_mate/channels/signal/parser.py +72 -0
  65. isa_mate-0.2.0/isa_mate/channels/signal/sender.py +96 -0
  66. isa_mate-0.2.0/isa_mate/channels/slack/__init__.py +5 -0
  67. isa_mate-0.2.0/isa_mate/channels/slack/adapter.py +153 -0
  68. isa_mate-0.2.0/isa_mate/channels/slack/parser.py +95 -0
  69. isa_mate-0.2.0/isa_mate/channels/slack/sender.py +96 -0
  70. isa_mate-0.2.0/isa_mate/channels/slack/signature.py +61 -0
  71. isa_mate-0.2.0/isa_mate/channels/telegram/__init__.py +5 -0
  72. isa_mate-0.2.0/isa_mate/channels/telegram/adapter.py +390 -0
  73. isa_mate-0.2.0/isa_mate/channels/telegram/parser.py +107 -0
  74. isa_mate-0.2.0/isa_mate/channels/telegram/sender.py +95 -0
  75. isa_mate-0.2.0/isa_mate/channels/telegram_bridge.py +177 -0
  76. isa_mate-0.2.0/isa_mate/channels/whatsapp/__init__.py +5 -0
  77. isa_mate-0.2.0/isa_mate/channels/whatsapp/adapter.py +152 -0
  78. isa_mate-0.2.0/isa_mate/channels/whatsapp/parser.py +191 -0
  79. isa_mate-0.2.0/isa_mate/channels/whatsapp/sender.py +109 -0
  80. isa_mate-0.2.0/isa_mate/channels/whatsapp/signature.py +40 -0
  81. isa_mate-0.2.0/isa_mate/cli.py +1299 -0
  82. isa_mate-0.2.0/isa_mate/connectivity.py +295 -0
  83. isa_mate-0.2.0/isa_mate/credentials/__init__.py +5 -0
  84. isa_mate-0.2.0/isa_mate/credentials/cli.py +132 -0
  85. isa_mate-0.2.0/isa_mate/credentials/models.py +86 -0
  86. isa_mate-0.2.0/isa_mate/credentials/resolver.py +289 -0
  87. isa_mate-0.2.0/isa_mate/credentials/routes.py +185 -0
  88. isa_mate-0.2.0/isa_mate/desktop_agent.py +26 -0
  89. isa_mate-0.2.0/isa_mate/doctor/__init__.py +19 -0
  90. isa_mate-0.2.0/isa_mate/doctor/engine.py +1368 -0
  91. isa_mate-0.2.0/isa_mate/errors/__init__.py +38 -0
  92. isa_mate-0.2.0/isa_mate/errors/registry.py +467 -0
  93. isa_mate-0.2.0/isa_mate/errors/taxonomy.py +348 -0
  94. isa_mate-0.2.0/isa_mate/execution/__init__.py +44 -0
  95. isa_mate-0.2.0/isa_mate/execution/a2a_router.py +198 -0
  96. isa_mate-0.2.0/isa_mate/execution/agent_config_client.py +109 -0
  97. isa_mate-0.2.0/isa_mate/execution/audit_emitter.py +401 -0
  98. isa_mate-0.2.0/isa_mate/execution/autonomous.py +342 -0
  99. isa_mate-0.2.0/isa_mate/execution/autonomous_event_bus.py +285 -0
  100. isa_mate-0.2.0/isa_mate/execution/autonomous_reactive_router.py +1717 -0
  101. isa_mate-0.2.0/isa_mate/execution/browser_router.py +173 -0
  102. isa_mate-0.2.0/isa_mate/execution/chat_metrics.py +430 -0
  103. isa_mate-0.2.0/isa_mate/execution/chat_router.py +435 -0
  104. isa_mate-0.2.0/isa_mate/execution/dispatch_lifecycle.py +435 -0
  105. isa_mate-0.2.0/isa_mate/execution/dispatch_store.py +141 -0
  106. isa_mate-0.2.0/isa_mate/execution/hil_router.py +830 -0
  107. isa_mate-0.2.0/isa_mate/execution/idempotency.py +320 -0
  108. isa_mate-0.2.0/isa_mate/execution/notification_router.py +128 -0
  109. isa_mate-0.2.0/isa_mate/execution/observability_router.py +795 -0
  110. isa_mate-0.2.0/isa_mate/execution/persistence_router.py +2454 -0
  111. isa_mate-0.2.0/isa_mate/execution/proactive_router.py +1593 -0
  112. isa_mate-0.2.0/isa_mate/execution/response_filter.py +61 -0
  113. isa_mate-0.2.0/isa_mate/execution/responsive_publisher.py +488 -0
  114. isa_mate-0.2.0/isa_mate/execution/responsive_router.py +709 -0
  115. isa_mate-0.2.0/isa_mate/execution/stream_helpers.py +457 -0
  116. isa_mate-0.2.0/isa_mate/execution/swarm_router.py +188 -0
  117. isa_mate-0.2.0/isa_mate/execution/workflow_manager.py +125 -0
  118. isa_mate-0.2.0/isa_mate/execution/workflow_router.py +134 -0
  119. isa_mate-0.2.0/isa_mate/failover/__init__.py +33 -0
  120. isa_mate-0.2.0/isa_mate/failover/classifier.py +83 -0
  121. isa_mate-0.2.0/isa_mate/failover/cooldown.py +42 -0
  122. isa_mate-0.2.0/isa_mate/failover/exceptions.py +49 -0
  123. isa_mate-0.2.0/isa_mate/failover/health.py +142 -0
  124. isa_mate-0.2.0/isa_mate/failover/response_normalizer.py +82 -0
  125. isa_mate-0.2.0/isa_mate/failover/router.py +372 -0
  126. isa_mate-0.2.0/isa_mate/fault_injection/__init__.py +44 -0
  127. isa_mate-0.2.0/isa_mate/fault_injection/config.py +152 -0
  128. isa_mate-0.2.0/isa_mate/fault_injection/engine.py +397 -0
  129. isa_mate-0.2.0/isa_mate/fault_injection/injectors.py +275 -0
  130. isa_mate-0.2.0/isa_mate/gateway/__init__.py +6 -0
  131. isa_mate-0.2.0/isa_mate/gateway/catalog.py +440 -0
  132. isa_mate-0.2.0/isa_mate/gateway/cli_handler.py +117 -0
  133. isa_mate-0.2.0/isa_mate/gateway/pair_commands.py +489 -0
  134. isa_mate-0.2.0/isa_mate/gateway/rate_limit.py +203 -0
  135. isa_mate-0.2.0/isa_mate/gateway/rate_limit_middleware.py +110 -0
  136. isa_mate-0.2.0/isa_mate/gateway/rate_limit_policy.py +106 -0
  137. isa_mate-0.2.0/isa_mate/gateway/redis_rate_limiter.py +173 -0
  138. isa_mate-0.2.0/isa_mate/gateway/scope_dependency.py +78 -0
  139. isa_mate-0.2.0/isa_mate/gateway/server.py +2838 -0
  140. isa_mate-0.2.0/isa_mate/gateway/skills_routes.py +178 -0
  141. isa_mate-0.2.0/isa_mate/gateway/startup_validator.py +197 -0
  142. isa_mate-0.2.0/isa_mate/gateway/token_bucket.py +142 -0
  143. isa_mate-0.2.0/isa_mate/hub/__init__.py +17 -0
  144. isa_mate-0.2.0/isa_mate/hub/autonomy_hub.py +6 -0
  145. isa_mate-0.2.0/isa_mate/hub/base.py +4 -0
  146. isa_mate-0.2.0/isa_mate/hub/data_hub.py +8 -0
  147. isa_mate-0.2.0/isa_mate/hub/event_bus.py +4 -0
  148. isa_mate-0.2.0/isa_mate/hub/event_hub.py +9 -0
  149. isa_mate-0.2.0/isa_mate/hub/events.py +28 -0
  150. isa_mate-0.2.0/isa_mate/hub/hub.py +4 -0
  151. isa_mate-0.2.0/isa_mate/hub/interaction_hub.py +8 -0
  152. isa_mate-0.2.0/isa_mate/hub/memory_hub.py +7 -0
  153. isa_mate-0.2.0/isa_mate/hub/response_hub.py +16 -0
  154. isa_mate-0.2.0/isa_mate/logging/__init__.py +32 -0
  155. isa_mate-0.2.0/isa_mate/logging/structured.py +217 -0
  156. isa_mate-0.2.0/isa_mate/marketplace/__init__.py +1 -0
  157. isa_mate-0.2.0/isa_mate/marketplace/models.py +256 -0
  158. isa_mate-0.2.0/isa_mate/marketplace/pipeline.py +305 -0
  159. isa_mate-0.2.0/isa_mate/marketplace/repository.py +256 -0
  160. isa_mate-0.2.0/isa_mate/marketplace/router.py +112 -0
  161. isa_mate-0.2.0/isa_mate/marketplace/service.py +273 -0
  162. isa_mate-0.2.0/isa_mate/mate_agent.py +1256 -0
  163. isa_mate-0.2.0/isa_mate/mcp_server.py +154 -0
  164. isa_mate-0.2.0/isa_mate/memory/__init__.py +16 -0
  165. isa_mate-0.2.0/isa_mate/memory/adapters/__init__.py +5 -0
  166. isa_mate-0.2.0/isa_mate/memory/api.py +289 -0
  167. isa_mate-0.2.0/isa_mate/memory/benchmark.py +210 -0
  168. isa_mate-0.2.0/isa_mate/memory/cli.py +305 -0
  169. isa_mate-0.2.0/isa_mate/memory/compaction.py +221 -0
  170. isa_mate-0.2.0/isa_mate/memory/compactor.py +272 -0
  171. isa_mate-0.2.0/isa_mate/memory/local_store.py +328 -0
  172. isa_mate-0.2.0/isa_mate/memory/migration.py +125 -0
  173. isa_mate-0.2.0/isa_mate/memory/models.py +84 -0
  174. isa_mate-0.2.0/isa_mate/memory/store_adapter.py +241 -0
  175. isa_mate-0.2.0/isa_mate/memory/turn_capture.py +221 -0
  176. isa_mate-0.2.0/isa_mate/metrics/__init__.py +45 -0
  177. isa_mate-0.2.0/isa_mate/metrics/gateway.py +123 -0
  178. isa_mate-0.2.0/isa_mate/metrics/memory.py +128 -0
  179. isa_mate-0.2.0/isa_mate/metrics/middleware.py +129 -0
  180. isa_mate-0.2.0/isa_mate/metrics/registry.py +275 -0
  181. isa_mate-0.2.0/isa_mate/metrics/scheduler.py +110 -0
  182. isa_mate-0.2.0/isa_mate/migrate/__init__.py +265 -0
  183. isa_mate-0.2.0/isa_mate/onboard/__init__.py +5 -0
  184. isa_mate-0.2.0/isa_mate/onboard/connect.py +197 -0
  185. isa_mate-0.2.0/isa_mate/onboard/templates/default_config.yaml +147 -0
  186. isa_mate-0.2.0/isa_mate/onboard/wizard.py +807 -0
  187. isa_mate-0.2.0/isa_mate/pool_bridge.py +512 -0
  188. isa_mate-0.2.0/isa_mate/proactive/__init__.py +83 -0
  189. isa_mate-0.2.0/isa_mate/proactive/dry_run.py +407 -0
  190. isa_mate-0.2.0/isa_mate/proactive/event_backend.py +515 -0
  191. isa_mate-0.2.0/isa_mate/proactive/handler.py +251 -0
  192. isa_mate-0.2.0/isa_mate/proactive/rate_limit.py +510 -0
  193. isa_mate-0.2.0/isa_mate/proactive/scheduler_bridge.py +280 -0
  194. isa_mate-0.2.0/isa_mate/proactive/store.py +687 -0
  195. isa_mate-0.2.0/isa_mate/proactive/threshold_bridge.py +320 -0
  196. isa_mate-0.2.0/isa_mate/proactive/webhook_signature.py +193 -0
  197. isa_mate-0.2.0/isa_mate/routing/__init__.py +24 -0
  198. isa_mate-0.2.0/isa_mate/routing/budget.py +219 -0
  199. isa_mate-0.2.0/isa_mate/routing/guardrails.py +232 -0
  200. isa_mate-0.2.0/isa_mate/routing/health_registry.py +290 -0
  201. isa_mate-0.2.0/isa_mate/routing/latency.py +206 -0
  202. isa_mate-0.2.0/isa_mate/routing/router.py +246 -0
  203. isa_mate-0.2.0/isa_mate/scheduler/__init__.py +116 -0
  204. isa_mate-0.2.0/isa_mate/scheduler/api.py +620 -0
  205. isa_mate-0.2.0/isa_mate/scheduler/cli.py +822 -0
  206. isa_mate-0.2.0/isa_mate/scheduler/cron_parser.py +232 -0
  207. isa_mate-0.2.0/isa_mate/scheduler/loop.py +240 -0
  208. isa_mate-0.2.0/isa_mate/scheduler/migrations.py +174 -0
  209. isa_mate-0.2.0/isa_mate/scheduler/models.py +408 -0
  210. isa_mate-0.2.0/isa_mate/scheduler/runner.py +172 -0
  211. isa_mate-0.2.0/isa_mate/scheduler/scheduler.py +252 -0
  212. isa_mate-0.2.0/isa_mate/scheduler/store.py +681 -0
  213. isa_mate-0.2.0/isa_mate/scheduler/team_jobs.py +227 -0
  214. isa_mate-0.2.0/isa_mate/shell_safety/__init__.py +9 -0
  215. isa_mate-0.2.0/isa_mate/shell_safety/redactor.py +94 -0
  216. isa_mate-0.2.0/isa_mate/skills/__init__.py +155 -0
  217. isa_mate-0.2.0/isa_mate/skills/commands.py +842 -0
  218. isa_mate-0.2.0/isa_mate/skills/file-manager/SKILL.md +81 -0
  219. isa_mate-0.2.0/isa_mate/skills/local_executor.py +140 -0
  220. isa_mate-0.2.0/isa_mate/skills/office-manager/SKILL.md +36 -0
  221. isa_mate-0.2.0/isa_mate/sync/__init__.py +18 -0
  222. isa_mate-0.2.0/isa_mate/sync/cli.py +177 -0
  223. isa_mate-0.2.0/isa_mate/sync/encryption.py +128 -0
  224. isa_mate-0.2.0/isa_mate/sync/engine.py +434 -0
  225. isa_mate-0.2.0/isa_mate/sync/models.py +135 -0
  226. isa_mate-0.2.0/isa_mate/tools/__init__.py +547 -0
  227. isa_mate-0.2.0/isa_mate/tools/errors.py +591 -0
  228. isa_mate-0.2.0/isa_mate/tools/exec_tools.py +97 -0
  229. isa_mate-0.2.0/isa_mate/tools/file_tools.py +188 -0
  230. isa_mate-0.2.0/isa_mate/tools/office_tools.py +344 -0
  231. isa_mate-0.2.0/isa_mate/tools/protocol_validator.py +530 -0
  232. isa_mate-0.2.0/isa_mate/tools/redaction.py +227 -0
  233. isa_mate-0.2.0/isa_mate/tools/search_tools.py +169 -0
  234. isa_mate-0.2.0/isa_mate/tools/shell_safety.py +310 -0
  235. isa_mate-0.2.0/isa_mate/tools/system_tools.py +195 -0
  236. isa_mate-0.2.0/isa_mate/trace_context.py +142 -0
  237. isa_mate-0.2.0/isa_mate/tracing.py +142 -0
  238. isa_mate-0.2.0/isa_mate/tracker/__init__.py +0 -0
  239. isa_mate-0.2.0/isa_mate/tracker/lifecycle.py +133 -0
  240. isa_mate-0.2.0/isa_mate/triggers/__init__.py +31 -0
  241. isa_mate-0.2.0/isa_mate/triggers/base.py +83 -0
  242. isa_mate-0.2.0/isa_mate/triggers/github_trigger.py +105 -0
  243. isa_mate-0.2.0/isa_mate/triggers/health_plugins.py +248 -0
  244. isa_mate-0.2.0/isa_mate/triggers/metric_threshold_trigger.py +216 -0
  245. isa_mate-0.2.0/isa_mate/triggers/trigger_manager.py +89 -0
  246. isa_mate-0.2.0/isa_mate/triggers/webhook_trigger.py +64 -0
  247. isa_mate-0.2.0/isa_mate/watchdog/__init__.py +16 -0
  248. isa_mate-0.2.0/isa_mate/watchdog/health_model.py +139 -0
  249. isa_mate-0.2.0/isa_mate/watchdog/supervisor.py +161 -0
  250. isa_mate-0.2.0/pyproject.toml +66 -0
@@ -0,0 +1,51 @@
1
+ # Python
2
+ __pycache__/
3
+ *.py[cod]
4
+ *$py.class
5
+ *.so
6
+ *.egg-info/
7
+ dist/
8
+ build/
9
+ *.egg
10
+
11
+ # Virtual environments
12
+ .venv/
13
+ .venv-bringup/
14
+ venv/
15
+ env/
16
+
17
+ # IDE
18
+ .idea/
19
+ .vscode/
20
+ *.swp
21
+ *.swo
22
+ *~
23
+
24
+ # OS
25
+ .DS_Store
26
+ Thumbs.db
27
+
28
+ # Testing
29
+ .pytest_cache/
30
+ .coverage
31
+ htmlcov/
32
+ .tox/
33
+
34
+ # Environment
35
+ .env
36
+ .env.local
37
+ .env.*.local
38
+
39
+ # Database
40
+ *.db
41
+ *.db-shm
42
+ *.db-wal
43
+ *.sqlite
44
+ *.sqlite3
45
+
46
+ # Runtime logs
47
+ logs/
48
+
49
+ # Local secret overrides — gitignored, never commit (secret sweep 2026-06)
50
+ *.local.env
51
+ dev.local.env
@@ -0,0 +1,217 @@
1
+ Metadata-Version: 2.4
2
+ Name: isa-mate
3
+ Version: 0.2.0
4
+ Summary: isA Mate - The default agent app of the isA platform
5
+ Project-URL: Homepage, https://github.com/xenoISA/isA_Mate
6
+ Project-URL: Repository, https://github.com/xenoISA/isA_Mate
7
+ Project-URL: Issues, https://github.com/xenoISA/isA_Mate/issues
8
+ License: MIT
9
+ Classifier: Development Status :: 4 - Beta
10
+ Classifier: Intended Audience :: Developers
11
+ Classifier: License :: OSI Approved :: MIT License
12
+ Classifier: Programming Language :: Python :: 3
13
+ Classifier: Programming Language :: Python :: 3.10
14
+ Classifier: Programming Language :: Python :: 3.11
15
+ Classifier: Programming Language :: Python :: 3.12
16
+ Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
17
+ Requires-Python: >=3.10
18
+ Requires-Dist: aiosqlite>=0.19.0
19
+ Requires-Dist: croniter>=2.0.0
20
+ Requires-Dist: docker>=7.0.0
21
+ Requires-Dist: fastapi>=0.109.0
22
+ Requires-Dist: httpx>=0.25.0
23
+ Requires-Dist: huggingface-hub>=0.20.0
24
+ Requires-Dist: isa-agent-sdk>=0.3.3
25
+ Requires-Dist: isa-common>=0.6.0
26
+ Requires-Dist: isa-model>=0.6.0
27
+ Requires-Dist: mcp>=1.0.0
28
+ Requires-Dist: packaging>=23.0
29
+ Requires-Dist: prometheus-client>=0.20.0
30
+ Requires-Dist: python-dotenv>=1.0.0
31
+ Requires-Dist: pyyaml>=6.0
32
+ Requires-Dist: redis>=5.0.0
33
+ Requires-Dist: sse-starlette>=1.6.5
34
+ Requires-Dist: uvicorn>=0.27.0
35
+ Requires-Dist: websockets>=12.0
36
+ Provides-Extra: channels
37
+ Requires-Dist: discord-py>=2.0; extra == 'channels'
38
+ Requires-Dist: python-telegram-bot>=20.0; extra == 'channels'
39
+ Provides-Extra: dev
40
+ Requires-Dist: cryptography>=41.0; extra == 'dev'
41
+ Requires-Dist: pytest-asyncio>=0.21; extra == 'dev'
42
+ Requires-Dist: pytest-timeout>=2.2.0; extra == 'dev'
43
+ Requires-Dist: pytest>=7.0; extra == 'dev'
44
+ Requires-Dist: ruff>=0.1.0; extra == 'dev'
45
+ Provides-Extra: office
46
+ Requires-Dist: fpdf2>=2.8.0; extra == 'office'
47
+ Requires-Dist: openpyxl>=3.1.0; extra == 'office'
48
+ Requires-Dist: python-docx>=1.1.0; extra == 'office'
49
+ Requires-Dist: python-pptx>=0.6.23; extra == 'office'
50
+ Provides-Extra: sync
51
+ Requires-Dist: cryptography>=41.0; extra == 'sync'
52
+ Description-Content-Type: text/markdown
53
+
54
+ # isA Mate
55
+
56
+ The default agent app of the [isA platform](https://github.com/xenoISA). A personal AI companion that connects to any messaging platform and runs locally or in the cloud.
57
+
58
+ ## Features
59
+
60
+ - **Multi-channel**: Telegram, Discord, Slack, WhatsApp, Feishu, Signal, Teams, Matrix (and more coming)
61
+ - **Multi-model**: Route through Anthropic, OpenAI, or local Ollama models
62
+ - **Multi-agent**: Hybrid A2A delegation across pinned platform teams and dynamically discovered org agents
63
+ - **Memory**: Persistent conversation memory with SQLite or remote backends
64
+ - **Tools**: 190+ tools via MCP (Model Context Protocol)
65
+ - **Local-first**: Runs on your machine with optional cloud deployment
66
+
67
+ ## Quick Start
68
+
69
+ ### Option A: pip install (recommended)
70
+
71
+ ```bash
72
+ pip install isa-mate
73
+
74
+ # Interactive setup — picks your model provider, channels, etc.
75
+ isa-mate init
76
+
77
+ # Start the gateway server
78
+ isa-mate serve
79
+ ```
80
+
81
+ ### Option B: Docker (one command)
82
+
83
+ ```bash
84
+ docker run -e ANTHROPIC_API_KEY=sk-... -p 18789:18789 ghcr.io/xenoisa/isa-mate
85
+ ```
86
+
87
+ Or with Docker Compose for the full stack:
88
+
89
+ ```bash
90
+ git clone https://github.com/xenoISA/isA_Mate.git && cd isA_Mate
91
+ echo "ANTHROPIC_API_KEY=sk-..." > .env
92
+ docker compose up
93
+ ```
94
+
95
+ ### Verify it's running
96
+
97
+ ```bash
98
+ # Health check
99
+ curl http://localhost:18789/health
100
+
101
+ # Send a message
102
+ curl -X POST http://localhost:18789/v1/query \
103
+ -H "Content-Type: application/json" \
104
+ -d '{"prompt":"Hello!"}'
105
+ ```
106
+
107
+ ## Requirements
108
+
109
+ - Python 3.10+ (pip install) or Docker
110
+ - An AI model provider (Ollama for free local models, or Anthropic/OpenAI subscription)
111
+ - If using a subscription provider (`anthropic-sub` / `codex-sub`):
112
+ `SUBSCRIPTION_PROXY_URL` pointing at an `isa_model` deployment. The
113
+ subscription proxy lives in `isa_model` since xenoISA/isA_Model#901 —
114
+ Mate no longer starts it locally. See
115
+ `docs/guides/subscription_proxy_migration.md` in the isa_model repo.
116
+
117
+ ## Commands
118
+
119
+ | Command | Description |
120
+ |---------|-------------|
121
+ | `isa-mate init` | Interactive setup wizard |
122
+ | `isa-mate serve` | Start gateway server |
123
+ | `isa-mate cli` | Interactive terminal mode |
124
+ | `isa-mate query "..."` | One-shot query |
125
+ | `isa-mate doctor` | Run diagnostics |
126
+ | `isa-mate accounts` | Manage subscription accounts |
127
+
128
+ ## Connecting Channels
129
+
130
+ After setup, connect your favorite messaging platform:
131
+
132
+ ### Telegram
133
+
134
+ ```bash
135
+ # 1. Create a bot via @BotFather, get your token
136
+ # 2. Set the token
137
+ export TELEGRAM_BOT_TOKEN=your-token-here
138
+
139
+ # 3. Start with Telegram enabled
140
+ isa-mate serve
141
+ ```
142
+
143
+ ### Discord
144
+
145
+ ```bash
146
+ # 1. Create a Discord bot at https://discord.com/developers
147
+ # 2. Set the token
148
+ export DISCORD_BOT_TOKEN=your-token-here
149
+
150
+ # 3. Install the channels extra
151
+ pip install isa-mate[channels]
152
+
153
+ # 4. Start
154
+ isa-mate serve
155
+ ```
156
+
157
+ ### Slack
158
+
159
+ ```bash
160
+ # 1. Create a Slack app at https://api.slack.com/apps
161
+ # 2. Set credentials
162
+ export SLACK_BOT_TOKEN=xoxb-...
163
+ export SLACK_SIGNING_SECRET=your-secret
164
+
165
+ # 3. Start
166
+ isa-mate serve
167
+ ```
168
+
169
+ See [Channel Integrations Guide](docs/channels.md) for all supported platforms.
170
+
171
+ ## Configuration
172
+
173
+ Configuration is stored at `~/.isa/mate/config.yaml`. Run `isa-mate init` to generate it interactively, or use `--non-interactive` mode with environment variables:
174
+
175
+ ```bash
176
+ ISA_MATE_MODEL=llama3 ISA_MATE_PROVIDER=ollama isa-mate init --non-interactive
177
+ ```
178
+
179
+ Mate delegation supports a hybrid routing model:
180
+ - Pinned core teams from `teams.entries`
181
+ - Dynamic org-agent lookup from `teams.directory`
182
+ - Per-request shortlisting before the model decides whether to delegate
183
+
184
+ ### Environment Variables
185
+
186
+ | Variable | Default | Description |
187
+ |----------|---------|-------------|
188
+ | `ISA_MATE_HOST` | `127.0.0.1` | Gateway bind host |
189
+ | `ISA_MATE_PORT` | `18789` | Gateway bind port |
190
+ | `ISA_MATE_MODEL` | `gpt-5-nano` | Model name |
191
+ | `ISA_MATE_PROVIDER` | (empty) | Provider: `anthropic-sub`, `codex-sub`, `ollama` |
192
+ | `ISA_MATE_EXECUTION_MODE` | `reactive` | Agent execution mode |
193
+ | `ANTHROPIC_API_KEY` | (empty) | Anthropic API key (for Docker) |
194
+
195
+ ## Deployment Modes
196
+
197
+ - **Local-first** (`isa-mate serve`): Run on your machine
198
+ - **Docker** (`docker compose up`): Containerized with health checks
199
+ - **Cloud** (`isa-mate cloud`): Headless cloud deployment
200
+ - **Pool** (`isa-mate pool`): Shared pool mode for multi-tenant setups
201
+
202
+ ## isA Mate vs OpenClaw
203
+
204
+ | Capability | isA Mate | OpenClaw |
205
+ |------------|----------|----------|
206
+ | Setup | `pip install isa-mate && isa-mate init` | Clone repo + manual config |
207
+ | Docker | `docker run ... ghcr.io/xenoisa/isa-mate` | No official image |
208
+ | Channels | 8+ (Telegram, Discord, Slack, WhatsApp, ...) | API only |
209
+ | Multi-model | Anthropic, OpenAI, Ollama, local | Single provider |
210
+ | Multi-agent | Hybrid A2A delegation | Single agent |
211
+ | Tools | 190+ via MCP | Plugin-based |
212
+ | Memory | SQLite/remote with compaction | In-memory |
213
+ | Local-first | Yes — runs on your laptop | Server-only |
214
+
215
+ ## License
216
+
217
+ MIT
@@ -0,0 +1,164 @@
1
+ # isA Mate
2
+
3
+ The default agent app of the [isA platform](https://github.com/xenoISA). A personal AI companion that connects to any messaging platform and runs locally or in the cloud.
4
+
5
+ ## Features
6
+
7
+ - **Multi-channel**: Telegram, Discord, Slack, WhatsApp, Feishu, Signal, Teams, Matrix (and more coming)
8
+ - **Multi-model**: Route through Anthropic, OpenAI, or local Ollama models
9
+ - **Multi-agent**: Hybrid A2A delegation across pinned platform teams and dynamically discovered org agents
10
+ - **Memory**: Persistent conversation memory with SQLite or remote backends
11
+ - **Tools**: 190+ tools via MCP (Model Context Protocol)
12
+ - **Local-first**: Runs on your machine with optional cloud deployment
13
+
14
+ ## Quick Start
15
+
16
+ ### Option A: pip install (recommended)
17
+
18
+ ```bash
19
+ pip install isa-mate
20
+
21
+ # Interactive setup — picks your model provider, channels, etc.
22
+ isa-mate init
23
+
24
+ # Start the gateway server
25
+ isa-mate serve
26
+ ```
27
+
28
+ ### Option B: Docker (one command)
29
+
30
+ ```bash
31
+ docker run -e ANTHROPIC_API_KEY=sk-... -p 18789:18789 ghcr.io/xenoisa/isa-mate
32
+ ```
33
+
34
+ Or with Docker Compose for the full stack:
35
+
36
+ ```bash
37
+ git clone https://github.com/xenoISA/isA_Mate.git && cd isA_Mate
38
+ echo "ANTHROPIC_API_KEY=sk-..." > .env
39
+ docker compose up
40
+ ```
41
+
42
+ ### Verify it's running
43
+
44
+ ```bash
45
+ # Health check
46
+ curl http://localhost:18789/health
47
+
48
+ # Send a message
49
+ curl -X POST http://localhost:18789/v1/query \
50
+ -H "Content-Type: application/json" \
51
+ -d '{"prompt":"Hello!"}'
52
+ ```
53
+
54
+ ## Requirements
55
+
56
+ - Python 3.10+ (pip install) or Docker
57
+ - An AI model provider (Ollama for free local models, or Anthropic/OpenAI subscription)
58
+ - If using a subscription provider (`anthropic-sub` / `codex-sub`):
59
+ `SUBSCRIPTION_PROXY_URL` pointing at an `isa_model` deployment. The
60
+ subscription proxy lives in `isa_model` since xenoISA/isA_Model#901 —
61
+ Mate no longer starts it locally. See
62
+ `docs/guides/subscription_proxy_migration.md` in the isa_model repo.
63
+
64
+ ## Commands
65
+
66
+ | Command | Description |
67
+ |---------|-------------|
68
+ | `isa-mate init` | Interactive setup wizard |
69
+ | `isa-mate serve` | Start gateway server |
70
+ | `isa-mate cli` | Interactive terminal mode |
71
+ | `isa-mate query "..."` | One-shot query |
72
+ | `isa-mate doctor` | Run diagnostics |
73
+ | `isa-mate accounts` | Manage subscription accounts |
74
+
75
+ ## Connecting Channels
76
+
77
+ After setup, connect your favorite messaging platform:
78
+
79
+ ### Telegram
80
+
81
+ ```bash
82
+ # 1. Create a bot via @BotFather, get your token
83
+ # 2. Set the token
84
+ export TELEGRAM_BOT_TOKEN=your-token-here
85
+
86
+ # 3. Start with Telegram enabled
87
+ isa-mate serve
88
+ ```
89
+
90
+ ### Discord
91
+
92
+ ```bash
93
+ # 1. Create a Discord bot at https://discord.com/developers
94
+ # 2. Set the token
95
+ export DISCORD_BOT_TOKEN=your-token-here
96
+
97
+ # 3. Install the channels extra
98
+ pip install isa-mate[channels]
99
+
100
+ # 4. Start
101
+ isa-mate serve
102
+ ```
103
+
104
+ ### Slack
105
+
106
+ ```bash
107
+ # 1. Create a Slack app at https://api.slack.com/apps
108
+ # 2. Set credentials
109
+ export SLACK_BOT_TOKEN=xoxb-...
110
+ export SLACK_SIGNING_SECRET=your-secret
111
+
112
+ # 3. Start
113
+ isa-mate serve
114
+ ```
115
+
116
+ See [Channel Integrations Guide](docs/channels.md) for all supported platforms.
117
+
118
+ ## Configuration
119
+
120
+ Configuration is stored at `~/.isa/mate/config.yaml`. Run `isa-mate init` to generate it interactively, or use `--non-interactive` mode with environment variables:
121
+
122
+ ```bash
123
+ ISA_MATE_MODEL=llama3 ISA_MATE_PROVIDER=ollama isa-mate init --non-interactive
124
+ ```
125
+
126
+ Mate delegation supports a hybrid routing model:
127
+ - Pinned core teams from `teams.entries`
128
+ - Dynamic org-agent lookup from `teams.directory`
129
+ - Per-request shortlisting before the model decides whether to delegate
130
+
131
+ ### Environment Variables
132
+
133
+ | Variable | Default | Description |
134
+ |----------|---------|-------------|
135
+ | `ISA_MATE_HOST` | `127.0.0.1` | Gateway bind host |
136
+ | `ISA_MATE_PORT` | `18789` | Gateway bind port |
137
+ | `ISA_MATE_MODEL` | `gpt-5-nano` | Model name |
138
+ | `ISA_MATE_PROVIDER` | (empty) | Provider: `anthropic-sub`, `codex-sub`, `ollama` |
139
+ | `ISA_MATE_EXECUTION_MODE` | `reactive` | Agent execution mode |
140
+ | `ANTHROPIC_API_KEY` | (empty) | Anthropic API key (for Docker) |
141
+
142
+ ## Deployment Modes
143
+
144
+ - **Local-first** (`isa-mate serve`): Run on your machine
145
+ - **Docker** (`docker compose up`): Containerized with health checks
146
+ - **Cloud** (`isa-mate cloud`): Headless cloud deployment
147
+ - **Pool** (`isa-mate pool`): Shared pool mode for multi-tenant setups
148
+
149
+ ## isA Mate vs OpenClaw
150
+
151
+ | Capability | isA Mate | OpenClaw |
152
+ |------------|----------|----------|
153
+ | Setup | `pip install isa-mate && isa-mate init` | Clone repo + manual config |
154
+ | Docker | `docker run ... ghcr.io/xenoisa/isa-mate` | No official image |
155
+ | Channels | 8+ (Telegram, Discord, Slack, WhatsApp, ...) | API only |
156
+ | Multi-model | Anthropic, OpenAI, Ollama, local | Single provider |
157
+ | Multi-agent | Hybrid A2A delegation | Single agent |
158
+ | Tools | 190+ via MCP | Plugin-based |
159
+ | Memory | SQLite/remote with compaction | In-memory |
160
+ | Local-first | Yes — runs on your laptop | Server-only |
161
+
162
+ ## License
163
+
164
+ MIT
@@ -0,0 +1,27 @@
1
+ # isA Mate Service
2
+
3
+ __version__ = "0.2.0"
4
+
5
+ from .pool_bridge import (
6
+ PoolManagerBridge,
7
+ PoolBridgeConfig,
8
+ MateVisibility,
9
+ MateTier,
10
+ MateSpecs,
11
+ # Backwards compatibility aliases
12
+ DesktopVisibility,
13
+ DesktopTier,
14
+ DesktopSpecs,
15
+ )
16
+
17
+ __all__ = [
18
+ "PoolManagerBridge",
19
+ "PoolBridgeConfig",
20
+ "MateVisibility",
21
+ "MateTier",
22
+ "MateSpecs",
23
+ # Backwards compatibility aliases
24
+ "DesktopVisibility",
25
+ "DesktopTier",
26
+ "DesktopSpecs",
27
+ ]
@@ -0,0 +1,5 @@
1
+ """Allow running as: python -m isa_mate"""
2
+ from .cli import main
3
+ import sys
4
+
5
+ sys.exit(main() or 0)
@@ -0,0 +1,5 @@
1
+ """Accounts CLI — manage subscription accounts for multi-account rotation."""
2
+
3
+ from .commands import cmd_accounts
4
+
5
+ __all__ = ["cmd_accounts"]