connectonion 0.6.2__py3-none-any.whl → 0.6.4__py3-none-any.whl

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 (410) hide show
  1. connectonion/__init__.py +46 -9
  2. connectonion/cli/__init__.py +11 -1
  3. connectonion/cli/browser_agent/__init__.py +11 -1
  4. connectonion/cli/browser_agent/browser.py +13 -3
  5. connectonion/cli/browser_agent/element_finder.py +8 -0
  6. connectonion/cli/browser_agent/highlight_screenshot.py +9 -1
  7. connectonion/cli/browser_agent/scroll.py +8 -0
  8. connectonion/cli/co_ai/__init__.py +6 -0
  9. connectonion/cli/co_ai/agent.py +87 -0
  10. connectonion/cli/co_ai/agents/__init__.py +5 -0
  11. connectonion/cli/co_ai/agents/registry.py +57 -0
  12. connectonion/cli/co_ai/commands/__init__.py +45 -0
  13. connectonion/cli/co_ai/commands/compact.py +173 -0
  14. connectonion/cli/co_ai/commands/cost.py +77 -0
  15. connectonion/cli/co_ai/commands/export.py +60 -0
  16. connectonion/cli/co_ai/commands/help.py +80 -0
  17. connectonion/cli/co_ai/commands/init.py +101 -0
  18. connectonion/cli/co_ai/commands/sessions.py +55 -0
  19. connectonion/cli/co_ai/commands/tasks.py +63 -0
  20. connectonion/cli/co_ai/commands/undo.py +103 -0
  21. connectonion/cli/co_ai/context.py +127 -0
  22. connectonion/cli/co_ai/main.py +52 -0
  23. connectonion/cli/co_ai/plugins/__init__.py +5 -0
  24. connectonion/cli/co_ai/plugins/system_reminder.py +154 -0
  25. connectonion/cli/co_ai/prompts/agents/explore.md +79 -0
  26. connectonion/cli/co_ai/prompts/agents/plan.md +60 -0
  27. connectonion/cli/co_ai/prompts/assembler.py +303 -0
  28. connectonion/cli/{docs/co-vibecoding-principles-docs-contexts-all-in-one.md → co_ai/prompts/connectonion/README.md} +26 -0
  29. connectonion/cli/co_ai/prompts/connectonion/api.md +457 -0
  30. connectonion/cli/co_ai/prompts/connectonion/cli/README.md +805 -0
  31. connectonion/cli/co_ai/prompts/connectonion/cli/auth.md +46 -0
  32. connectonion/cli/co_ai/prompts/connectonion/cli/browser.md +235 -0
  33. connectonion/cli/co_ai/prompts/connectonion/cli/copy.md +184 -0
  34. connectonion/cli/co_ai/prompts/connectonion/cli/create.md +335 -0
  35. connectonion/cli/co_ai/prompts/connectonion/cli/init.md +431 -0
  36. connectonion/cli/co_ai/prompts/connectonion/co-directory-structure.md +214 -0
  37. connectonion/cli/co_ai/prompts/connectonion/concepts/agent.md +1078 -0
  38. connectonion/cli/co_ai/prompts/connectonion/concepts/events.md +816 -0
  39. connectonion/cli/co_ai/prompts/connectonion/concepts/llm_do.md +256 -0
  40. connectonion/cli/co_ai/prompts/connectonion/concepts/max_iterations.md +362 -0
  41. connectonion/cli/co_ai/prompts/connectonion/concepts/models.md +641 -0
  42. connectonion/cli/co_ai/prompts/connectonion/concepts/plugins.md +100 -0
  43. connectonion/cli/co_ai/prompts/connectonion/concepts/prompts.md +122 -0
  44. connectonion/cli/co_ai/prompts/connectonion/concepts/tools.md +512 -0
  45. connectonion/cli/co_ai/prompts/connectonion/concepts/transcribe.md +156 -0
  46. connectonion/cli/co_ai/prompts/connectonion/concepts/trust.md +291 -0
  47. connectonion/cli/co_ai/prompts/connectonion/debug/README.md +18 -0
  48. connectonion/cli/co_ai/prompts/connectonion/debug/auto_debug.md +1026 -0
  49. connectonion/cli/co_ai/prompts/connectonion/debug/console.md +129 -0
  50. connectonion/cli/co_ai/prompts/connectonion/debug/eval-format.md +178 -0
  51. connectonion/cli/co_ai/prompts/connectonion/debug/eval.md +230 -0
  52. connectonion/cli/co_ai/prompts/connectonion/debug/exceptions.md +307 -0
  53. connectonion/cli/co_ai/prompts/connectonion/debug/log.md +117 -0
  54. connectonion/cli/co_ai/prompts/connectonion/debug/xray.md +215 -0
  55. connectonion/cli/co_ai/prompts/connectonion/design-decisions/001-choosing-input-method.md +202 -0
  56. connectonion/cli/co_ai/prompts/connectonion/design-decisions/002-choosing-llm-function-name.md +202 -0
  57. connectonion/cli/co_ai/prompts/connectonion/design-decisions/003-choosing-trust-keyword.md +141 -0
  58. connectonion/cli/co_ai/prompts/connectonion/design-decisions/004-cli-create-flow.md +117 -0
  59. connectonion/cli/co_ai/prompts/connectonion/design-decisions/005-designing-agent-network-protocol.md +503 -0
  60. connectonion/cli/co_ai/prompts/connectonion/design-decisions/006-agent-address-format.md +305 -0
  61. connectonion/cli/co_ai/prompts/connectonion/design-decisions/007-authentication-backend-design.md +240 -0
  62. connectonion/cli/co_ai/prompts/connectonion/design-decisions/008-naming-is-hard.md +228 -0
  63. connectonion/cli/co_ai/prompts/connectonion/design-decisions/009-why-connect-function.md +167 -0
  64. connectonion/cli/co_ai/prompts/connectonion/design-decisions/010-cli-ux-progressive-disclosure.md +176 -0
  65. connectonion/cli/co_ai/prompts/connectonion/design-decisions/011-global-config-identity-management.md +357 -0
  66. connectonion/cli/co_ai/prompts/connectonion/design-decisions/012-tool-execution-separation.md +259 -0
  67. connectonion/cli/co_ai/prompts/connectonion/design-decisions/013-debug-and-logging-design.md +253 -0
  68. connectonion/cli/co_ai/prompts/connectonion/design-decisions/014-hook-system-design.md +510 -0
  69. connectonion/cli/co_ai/prompts/connectonion/design-decisions/015-interactive-auto-debug-design.md +837 -0
  70. connectonion/cli/co_ai/prompts/connectonion/design-decisions/016-why-no-zero-knowledge-proofs.md +358 -0
  71. connectonion/cli/co_ai/prompts/connectonion/design-decisions/017-session-logging-and-eval-format.md +120 -0
  72. connectonion/cli/co_ai/prompts/connectonion/design-decisions/018-event-api-naming.md +274 -0
  73. connectonion/cli/co_ai/prompts/connectonion/design-decisions/019-agent-lifecycle-design.md +655 -0
  74. connectonion/cli/co_ai/prompts/connectonion/design-decisions/020-trust-system-and-network-architecture.md +503 -0
  75. connectonion/cli/co_ai/prompts/connectonion/design-decisions/021-task-storage-jsonl-design.md +496 -0
  76. connectonion/cli/co_ai/prompts/connectonion/design-decisions/022-raw-asgi-implementation.md +273 -0
  77. connectonion/cli/co_ai/prompts/connectonion/examples/agent_reasoning.md +62 -0
  78. connectonion/cli/co_ai/prompts/connectonion/examples/atomic_tools.md +24 -0
  79. connectonion/cli/co_ai/prompts/connectonion/examples/load_guide.md +18 -0
  80. connectonion/cli/co_ai/prompts/connectonion/examples.md +0 -0
  81. connectonion/cli/co_ai/prompts/connectonion/hook-system-options.md +364 -0
  82. connectonion/cli/co_ai/prompts/connectonion/index.md +162 -0
  83. connectonion/cli/co_ai/prompts/connectonion/integrations/README.md +12 -0
  84. connectonion/cli/co_ai/prompts/connectonion/integrations/auth.md +450 -0
  85. connectonion/cli/co_ai/prompts/connectonion/integrations/google.md +431 -0
  86. connectonion/cli/co_ai/prompts/connectonion/integrations/microsoft.md +370 -0
  87. connectonion/cli/co_ai/prompts/connectonion/network/README.md +14 -0
  88. connectonion/cli/co_ai/prompts/connectonion/network/connect.md +543 -0
  89. connectonion/cli/co_ai/prompts/connectonion/network/connection.md +538 -0
  90. connectonion/cli/co_ai/prompts/connectonion/network/deploy.md +123 -0
  91. connectonion/cli/co_ai/prompts/connectonion/network/host.md +1049 -0
  92. connectonion/cli/co_ai/prompts/connectonion/network/protocol/agent-relay-protocol.md +495 -0
  93. connectonion/cli/co_ai/prompts/connectonion/network/protocol/announce-message.md +115 -0
  94. connectonion/cli/co_ai/prompts/connectonion/principles.md +124 -0
  95. connectonion/cli/co_ai/prompts/connectonion/quickstart.md +261 -0
  96. connectonion/cli/co_ai/prompts/connectonion/roadmap.md +81 -0
  97. connectonion/cli/co_ai/prompts/connectonion/templates/README.md +77 -0
  98. connectonion/cli/co_ai/prompts/connectonion/templates/meta-agent.md +152 -0
  99. connectonion/cli/co_ai/prompts/connectonion/templates/minimal.md +105 -0
  100. connectonion/cli/co_ai/prompts/connectonion/templates/playwright.md +130 -0
  101. connectonion/cli/co_ai/prompts/connectonion/templates/web-research.md +144 -0
  102. connectonion/cli/co_ai/prompts/connectonion/tui/README.md +95 -0
  103. connectonion/cli/co_ai/prompts/connectonion/tui/chat.md +181 -0
  104. connectonion/cli/co_ai/prompts/connectonion/tui/divider.md +63 -0
  105. connectonion/cli/co_ai/prompts/connectonion/tui/dropdown.md +83 -0
  106. connectonion/cli/co_ai/prompts/connectonion/tui/footer.md +44 -0
  107. connectonion/cli/co_ai/prompts/connectonion/tui/fuzzy.md +68 -0
  108. connectonion/cli/co_ai/prompts/connectonion/tui/input.md +84 -0
  109. connectonion/cli/co_ai/prompts/connectonion/tui/keys.md +77 -0
  110. connectonion/cli/co_ai/prompts/connectonion/tui/pick.md +71 -0
  111. connectonion/cli/co_ai/prompts/connectonion/tui/providers.md +89 -0
  112. connectonion/cli/co_ai/prompts/connectonion/tui/status_bar.md +67 -0
  113. connectonion/cli/co_ai/prompts/connectonion/useful_plugins/README.md +156 -0
  114. connectonion/cli/co_ai/prompts/connectonion/useful_plugins/calendar_plugin.md +68 -0
  115. connectonion/cli/co_ai/prompts/connectonion/useful_plugins/eval.md +89 -0
  116. connectonion/cli/co_ai/prompts/connectonion/useful_plugins/gmail_plugin.md +68 -0
  117. connectonion/cli/co_ai/prompts/connectonion/useful_plugins/image_result_formatter.md +74 -0
  118. connectonion/cli/co_ai/prompts/connectonion/useful_plugins/re_act.md +86 -0
  119. connectonion/cli/co_ai/prompts/connectonion/useful_plugins/shell_approval.md +69 -0
  120. connectonion/cli/co_ai/prompts/connectonion/useful_tools/README.md +81 -0
  121. connectonion/cli/co_ai/prompts/connectonion/useful_tools/diff_writer.md +138 -0
  122. connectonion/cli/co_ai/prompts/connectonion/useful_tools/get_emails.md +499 -0
  123. connectonion/cli/co_ai/prompts/connectonion/useful_tools/gmail.md +135 -0
  124. connectonion/cli/co_ai/prompts/connectonion/useful_tools/google_calendar.md +106 -0
  125. connectonion/cli/co_ai/prompts/connectonion/useful_tools/memory.md +486 -0
  126. connectonion/cli/co_ai/prompts/connectonion/useful_tools/microsoft_calendar.md +106 -0
  127. connectonion/cli/co_ai/prompts/connectonion/useful_tools/outlook.md +120 -0
  128. connectonion/cli/co_ai/prompts/connectonion/useful_tools/send_email.md +403 -0
  129. connectonion/cli/co_ai/prompts/connectonion/useful_tools/shell.md +95 -0
  130. connectonion/cli/co_ai/prompts/connectonion/useful_tools/slash_command.md +96 -0
  131. connectonion/cli/co_ai/prompts/connectonion/useful_tools/terminal.md +97 -0
  132. connectonion/cli/co_ai/prompts/connectonion/useful_tools/todo_list.md +252 -0
  133. connectonion/cli/co_ai/prompts/connectonion/useful_tools/web_fetch.md +130 -0
  134. connectonion/cli/co_ai/prompts/connectonion/vibe-coding-guide.md +97 -0
  135. connectonion/cli/co_ai/prompts/connectonion/windows-support.md +258 -0
  136. connectonion/cli/co_ai/prompts/main.md +247 -0
  137. connectonion/cli/co_ai/prompts/summarization.md +55 -0
  138. connectonion/cli/co_ai/prompts/system-reminders/agent.md +23 -0
  139. connectonion/cli/co_ai/prompts/system-reminders/plan_mode.md +13 -0
  140. connectonion/cli/co_ai/prompts/system-reminders/security.md +14 -0
  141. connectonion/cli/co_ai/prompts/system-reminders/simplicity.md +14 -0
  142. connectonion/cli/co_ai/prompts/tools/ask_user.md +61 -0
  143. connectonion/cli/co_ai/prompts/tools/background.md +57 -0
  144. connectonion/cli/co_ai/prompts/tools/edit.md +90 -0
  145. connectonion/cli/co_ai/prompts/tools/glob.md +52 -0
  146. connectonion/cli/co_ai/prompts/tools/grep.md +55 -0
  147. connectonion/cli/co_ai/prompts/tools/plan_mode.md +80 -0
  148. connectonion/cli/co_ai/prompts/tools/read.md +40 -0
  149. connectonion/cli/co_ai/prompts/tools/shell.md +67 -0
  150. connectonion/cli/co_ai/prompts/tools/task.md +51 -0
  151. connectonion/cli/co_ai/prompts/tools/todo.md +139 -0
  152. connectonion/cli/co_ai/prompts/tools/write.md +47 -0
  153. connectonion/cli/co_ai/prompts/workflow.md +89 -0
  154. connectonion/cli/co_ai/sessions.py +110 -0
  155. connectonion/cli/co_ai/skills/__init__.py +37 -0
  156. connectonion/cli/co_ai/skills/builtin/commit/SKILL.md +63 -0
  157. connectonion/cli/co_ai/skills/builtin/review-pr/SKILL.md +76 -0
  158. connectonion/cli/co_ai/skills/loader.py +166 -0
  159. connectonion/cli/co_ai/skills/tool.py +46 -0
  160. connectonion/cli/co_ai/tools/__init__.py +92 -0
  161. connectonion/cli/co_ai/tools/ask_user.py +35 -0
  162. connectonion/cli/co_ai/tools/background.py +201 -0
  163. connectonion/cli/co_ai/tools/diff_writer.py +291 -0
  164. connectonion/cli/co_ai/tools/edit.py +89 -0
  165. connectonion/cli/co_ai/tools/glob.py +84 -0
  166. connectonion/cli/co_ai/tools/grep.py +158 -0
  167. connectonion/cli/co_ai/tools/load_guide.py +23 -0
  168. connectonion/cli/co_ai/tools/multi_edit.py +116 -0
  169. connectonion/cli/co_ai/tools/plan_mode.py +169 -0
  170. connectonion/cli/co_ai/tools/read.py +61 -0
  171. connectonion/cli/co_ai/tools/task.py +59 -0
  172. connectonion/cli/co_ai/tools/todo_list.py +159 -0
  173. connectonion/cli/co_ai/tools/write.py +126 -0
  174. connectonion/cli/commands/__init__.py +11 -1
  175. connectonion/cli/commands/ai_commands.py +34 -0
  176. connectonion/cli/commands/copy_commands.py +55 -6
  177. connectonion/cli/commands/create.py +20 -17
  178. connectonion/cli/commands/init.py +19 -22
  179. connectonion/cli/commands/project_cmd_lib.py +15 -0
  180. connectonion/cli/main.py +11 -0
  181. connectonion/console.py +15 -1
  182. connectonion/core/__init__.py +10 -1
  183. connectonion/core/agent.py +37 -16
  184. connectonion/core/exceptions.py +74 -0
  185. connectonion/core/llm.py +54 -6
  186. connectonion/core/tool_executor.py +32 -31
  187. connectonion/core/tool_factory.py +47 -10
  188. connectonion/debug/__init__.py +10 -1
  189. connectonion/debug/debug_explainer/__init__.py +10 -1
  190. connectonion/debug/execution_analyzer/__init__.py +10 -1
  191. connectonion/debug/execution_analyzer/execution_analysis.py +5 -2
  192. connectonion/debug/runtime_inspector/__init__.py +10 -1
  193. connectonion/docs/.package-ignore +6 -0
  194. connectonion/docs/README.md +2036 -0
  195. connectonion/docs/api.md +457 -0
  196. connectonion/docs/archive/001-ai-agent-is-just-prompt-plus-function.md +249 -0
  197. connectonion/docs/archive/README.md +53 -0
  198. connectonion/docs/archive/archive/consolidation-plan.md +72 -0
  199. connectonion/docs/archive/archive/core-principles-extracted.md +239 -0
  200. connectonion/docs/archive/archive/master-principles.md +222 -0
  201. connectonion/docs/archive/archive/principles.md +293 -0
  202. connectonion/docs/archive/archive/simplicity-principles.md +221 -0
  203. connectonion/docs/archive/attack-defense-insights.md +410 -0
  204. connectonion/docs/archive/business-model.md +305 -0
  205. connectonion/docs/archive/core-principles-unified.md +190 -0
  206. connectonion/docs/archive/discussion-journey.md +178 -0
  207. connectonion/docs/archive/economic-analysis.md +323 -0
  208. connectonion/docs/archive/features/01-share-and-find.md +256 -0
  209. connectonion/docs/archive/features/02-agent-authentication.md +93 -0
  210. connectonion/docs/archive/features/03-test-before-trust.md +71 -0
  211. connectonion/docs/archive/features/06-reliability-and-offline.md +197 -0
  212. connectonion/docs/archive/features/README.md +46 -0
  213. connectonion/docs/archive/features-roadmap.md +247 -0
  214. connectonion/docs/archive/mcp-comparison-insights.md +215 -0
  215. connectonion/docs/archive/migration-strategy.md +571 -0
  216. connectonion/docs/archive/mini-whitepaper.md +293 -0
  217. connectonion/docs/archive/network-protocol.md +394 -0
  218. connectonion/docs/archive/semantic-revolution.md +367 -0
  219. connectonion/docs/archive/technical-architecture.md +453 -0
  220. connectonion/docs/archive/the-semantic-insight.md +207 -0
  221. connectonion/docs/archive/threat-model.md +164 -0
  222. connectonion/docs/cli/README.md +805 -0
  223. connectonion/docs/cli/auth.md +46 -0
  224. connectonion/docs/cli/browser.md +235 -0
  225. connectonion/docs/cli/copy.md +232 -0
  226. connectonion/docs/cli/create.md +335 -0
  227. connectonion/docs/cli/init.md +431 -0
  228. connectonion/docs/co-directory-structure.md +214 -0
  229. connectonion/docs/concepts/agent.md +1078 -0
  230. connectonion/docs/concepts/events.md +699 -0
  231. connectonion/docs/concepts/llm_do.md +256 -0
  232. connectonion/docs/concepts/max_iterations.md +362 -0
  233. connectonion/docs/concepts/models.md +641 -0
  234. connectonion/docs/concepts/plugins.md +101 -0
  235. connectonion/docs/concepts/prompts.md +122 -0
  236. connectonion/docs/concepts/session.md +428 -0
  237. connectonion/docs/concepts/tools.md +512 -0
  238. connectonion/docs/concepts/transcribe.md +156 -0
  239. connectonion/docs/concepts/trust.md +291 -0
  240. connectonion/docs/connectonion.md +1256 -0
  241. connectonion/docs/debug/README.md +18 -0
  242. connectonion/docs/debug/auto_debug.md +1026 -0
  243. connectonion/docs/debug/console.md +129 -0
  244. connectonion/docs/debug/eval-format.md +178 -0
  245. connectonion/docs/debug/eval.md +230 -0
  246. connectonion/docs/debug/exceptions.md +307 -0
  247. connectonion/docs/debug/log.md +117 -0
  248. connectonion/docs/debug/xray.md +215 -0
  249. connectonion/docs/design-decisions/001-choosing-input-method.md +202 -0
  250. connectonion/docs/design-decisions/002-choosing-llm-function-name.md +202 -0
  251. connectonion/docs/design-decisions/003-choosing-trust-keyword.md +141 -0
  252. connectonion/docs/design-decisions/004-cli-create-flow.md +117 -0
  253. connectonion/docs/design-decisions/005-designing-agent-network-protocol.md +503 -0
  254. connectonion/docs/design-decisions/006-agent-address-format.md +305 -0
  255. connectonion/docs/design-decisions/007-authentication-backend-design.md +240 -0
  256. connectonion/docs/design-decisions/008-naming-is-hard.md +228 -0
  257. connectonion/docs/design-decisions/009-why-connect-function.md +167 -0
  258. connectonion/docs/design-decisions/010-cli-ux-progressive-disclosure.md +176 -0
  259. connectonion/docs/design-decisions/011-global-config-identity-management.md +357 -0
  260. connectonion/docs/design-decisions/012-tool-execution-separation.md +259 -0
  261. connectonion/docs/design-decisions/013-debug-and-logging-design.md +253 -0
  262. connectonion/docs/design-decisions/014-hook-system-design.md +510 -0
  263. connectonion/docs/design-decisions/015-interactive-auto-debug-design.md +837 -0
  264. connectonion/docs/design-decisions/016-why-no-zero-knowledge-proofs.md +358 -0
  265. connectonion/docs/design-decisions/017-session-logging-and-eval-format.md +120 -0
  266. connectonion/docs/design-decisions/018-event-api-naming.md +274 -0
  267. connectonion/docs/design-decisions/019-agent-lifecycle-design.md +655 -0
  268. connectonion/docs/design-decisions/020-trust-system-and-network-architecture.md +503 -0
  269. connectonion/docs/design-decisions/021-task-storage-jsonl-design.md +496 -0
  270. connectonion/docs/design-decisions/022-raw-asgi-implementation.md +273 -0
  271. connectonion/docs/examples.md +0 -0
  272. connectonion/docs/hook-system-options.md +364 -0
  273. connectonion/docs/integrations/README.md +12 -0
  274. connectonion/docs/integrations/auth.md +450 -0
  275. connectonion/docs/integrations/google.md +431 -0
  276. connectonion/docs/integrations/microsoft.md +370 -0
  277. connectonion/docs/network/README.md +14 -0
  278. connectonion/docs/network/connect.md +629 -0
  279. connectonion/docs/network/deploy.md +124 -0
  280. connectonion/docs/network/host.md +1087 -0
  281. connectonion/docs/network/io.md +538 -0
  282. connectonion/docs/network/protocol/agent-relay-protocol.md +495 -0
  283. connectonion/docs/network/protocol/announce-message.md +115 -0
  284. connectonion/docs/principles.md +124 -0
  285. connectonion/docs/quickstart.md +261 -0
  286. connectonion/docs/roadmap.md +81 -0
  287. connectonion/docs/templates/README.md +77 -0
  288. connectonion/docs/templates/meta-agent.md +152 -0
  289. connectonion/docs/templates/minimal.md +105 -0
  290. connectonion/docs/templates/playwright.md +130 -0
  291. connectonion/docs/templates/web-research.md +144 -0
  292. connectonion/docs/tui/README.md +95 -0
  293. connectonion/docs/tui/chat.md +181 -0
  294. connectonion/docs/tui/divider.md +63 -0
  295. connectonion/docs/tui/dropdown.md +83 -0
  296. connectonion/docs/tui/footer.md +44 -0
  297. connectonion/docs/tui/fuzzy.md +68 -0
  298. connectonion/docs/tui/input.md +84 -0
  299. connectonion/docs/tui/keys.md +77 -0
  300. connectonion/docs/tui/pick.md +71 -0
  301. connectonion/docs/tui/providers.md +89 -0
  302. connectonion/docs/tui/status_bar.md +67 -0
  303. connectonion/docs/useful_plugins/README.md +160 -0
  304. connectonion/docs/useful_plugins/calendar_plugin.md +68 -0
  305. connectonion/docs/useful_plugins/eval.md +89 -0
  306. connectonion/docs/useful_plugins/gmail_plugin.md +68 -0
  307. connectonion/docs/useful_plugins/image_result_formatter.md +74 -0
  308. connectonion/docs/useful_plugins/re_act.md +86 -0
  309. connectonion/docs/useful_plugins/shell_approval.md +69 -0
  310. connectonion/docs/useful_plugins/system_reminder.md +210 -0
  311. connectonion/docs/useful_plugins/tool_approval.md +139 -0
  312. connectonion/docs/useful_prompts/README.md +127 -0
  313. connectonion/docs/useful_prompts/coding_agent.md +214 -0
  314. connectonion/docs/useful_tools/README.md +81 -0
  315. connectonion/docs/useful_tools/ask_user.md +103 -0
  316. connectonion/docs/useful_tools/diff_writer.md +158 -0
  317. connectonion/docs/useful_tools/get_emails.md +519 -0
  318. connectonion/docs/useful_tools/gmail.md +155 -0
  319. connectonion/docs/useful_tools/google_calendar.md +126 -0
  320. connectonion/docs/useful_tools/memory.md +506 -0
  321. connectonion/docs/useful_tools/microsoft_calendar.md +126 -0
  322. connectonion/docs/useful_tools/outlook.md +140 -0
  323. connectonion/docs/useful_tools/send_email.md +423 -0
  324. connectonion/docs/useful_tools/shell.md +115 -0
  325. connectonion/docs/useful_tools/slash_command.md +116 -0
  326. connectonion/docs/useful_tools/terminal.md +115 -0
  327. connectonion/docs/useful_tools/todo_list.md +272 -0
  328. connectonion/docs/useful_tools/web_fetch.md +150 -0
  329. connectonion/docs/vibe-coding-guide.md +97 -0
  330. connectonion/docs/windows-support.md +258 -0
  331. connectonion/logger.py +3 -3
  332. connectonion/network/__init__.py +19 -6
  333. connectonion/network/asgi/__init__.py +81 -0
  334. connectonion/network/asgi/http.py +205 -0
  335. connectonion/network/asgi/websocket.py +217 -0
  336. connectonion/network/connect.py +232 -185
  337. connectonion/network/host/__init__.py +59 -0
  338. connectonion/network/host/auth.py +191 -0
  339. connectonion/network/host/routes.py +135 -0
  340. connectonion/network/host/server.py +289 -0
  341. connectonion/network/host/session.py +78 -0
  342. connectonion/network/io/__init__.py +21 -0
  343. connectonion/network/{connection.py → io/base.py} +17 -42
  344. connectonion/network/io/websocket.py +55 -0
  345. connectonion/network/relay.py +37 -16
  346. connectonion/network/trust/__init__.py +30 -0
  347. connectonion/network/trust/factory.py +138 -0
  348. connectonion/network/{trust_agents.py → trust/prompts.py} +3 -3
  349. connectonion/network/{trust_functions.py → trust/tools.py} +2 -2
  350. connectonion/prompt_files/__init__.py +11 -1
  351. connectonion/prompt_files/react_acknowledge.md +26 -0
  352. connectonion/prompts.py +10 -1
  353. connectonion/tui/chat.py +10 -1
  354. connectonion/tui/divider.py +10 -1
  355. connectonion/tui/dropdown.py +10 -1
  356. connectonion/tui/footer.py +8 -0
  357. connectonion/tui/fuzzy.py +11 -1
  358. connectonion/tui/input.py +118 -70
  359. connectonion/tui/keys.py +133 -6
  360. connectonion/tui/providers.py +11 -1
  361. connectonion/tui/status_bar.py +10 -1
  362. connectonion/useful_events_handlers/__init__.py +8 -0
  363. connectonion/useful_events_handlers/reflect.py +19 -4
  364. connectonion/useful_plugins/__init__.py +3 -1
  365. connectonion/useful_plugins/eval.py +2 -2
  366. connectonion/useful_plugins/gmail_plugin.py +3 -3
  367. connectonion/useful_plugins/image_result_formatter.py +3 -3
  368. connectonion/useful_plugins/re_act.py +114 -28
  369. connectonion/useful_plugins/shell_approval.py +2 -2
  370. connectonion/useful_plugins/system_reminder.py +103 -0
  371. connectonion/useful_plugins/tool_approval.py +233 -0
  372. connectonion/useful_plugins/ui_stream.py +18 -133
  373. connectonion/useful_prompts/README.md +61 -0
  374. connectonion/useful_prompts/__init__.py +45 -0
  375. connectonion/useful_prompts/coding_agent/README.md +106 -0
  376. connectonion/useful_prompts/coding_agent/assembler.py +123 -0
  377. connectonion/useful_prompts/coding_agent/prompts/main.md +227 -0
  378. connectonion/useful_prompts/coding_agent/prompts/tools/ask_user.md +61 -0
  379. connectonion/useful_prompts/coding_agent/prompts/tools/background.md +57 -0
  380. connectonion/useful_prompts/coding_agent/prompts/tools/edit.md +90 -0
  381. connectonion/useful_prompts/coding_agent/prompts/tools/glob.md +52 -0
  382. connectonion/useful_prompts/coding_agent/prompts/tools/grep.md +55 -0
  383. connectonion/useful_prompts/coding_agent/prompts/tools/plan_mode.md +80 -0
  384. connectonion/useful_prompts/coding_agent/prompts/tools/read.md +40 -0
  385. connectonion/useful_prompts/coding_agent/prompts/tools/shell.md +67 -0
  386. connectonion/useful_prompts/coding_agent/prompts/tools/task.md +51 -0
  387. connectonion/useful_prompts/coding_agent/prompts/tools/todo.md +139 -0
  388. connectonion/useful_prompts/coding_agent/prompts/tools/write.md +48 -0
  389. connectonion/useful_prompts/system-reminders/security-warning.md +14 -0
  390. connectonion/useful_prompts/system-reminders/test-reminder.md +11 -0
  391. connectonion/useful_tools/__init__.py +31 -4
  392. connectonion/useful_tools/ask_user.py +35 -0
  393. connectonion/useful_tools/bash.py +69 -0
  394. connectonion/useful_tools/diff_writer.py +186 -94
  395. connectonion/useful_tools/edit.py +102 -0
  396. connectonion/useful_tools/glob_files.py +97 -0
  397. connectonion/useful_tools/grep_files.py +171 -0
  398. connectonion/useful_tools/multi_edit.py +116 -0
  399. connectonion/useful_tools/read_file.py +73 -0
  400. connectonion/useful_tools/shell.py +50 -45
  401. connectonion/useful_tools/write_file.py +129 -0
  402. {connectonion-0.6.2.dist-info → connectonion-0.6.4.dist-info}/METADATA +10 -3
  403. connectonion-0.6.4.dist-info/RECORD +472 -0
  404. connectonion/network/asgi.py +0 -407
  405. connectonion/network/host.py +0 -616
  406. connectonion/network/trust.py +0 -166
  407. connectonion-0.6.2.dist-info/RECORD +0 -129
  408. /connectonion/cli/{docs → co_ai/prompts/connectonion}/connectonion.md +0 -0
  409. {connectonion-0.6.2.dist-info → connectonion-0.6.4.dist-info}/WHEEL +0 -0
  410. {connectonion-0.6.2.dist-info → connectonion-0.6.4.dist-info}/entry_points.txt +0 -0
@@ -0,0 +1,543 @@
1
+ # Connect to Remote Agents
2
+
3
+ > Use any agent, anywhere, as if it were local.
4
+
5
+ ---
6
+
7
+ ## Quick Start (60 Seconds)
8
+
9
+ ```python
10
+ from connectonion import connect
11
+
12
+ # Connect to a remote agent
13
+ remote_agent = connect("0x3d4017c3e843895a92b70aa74d1b7ebc9c982ccf2ec4968cc0cd55f12af4660c")
14
+
15
+ # Use it like a local agent
16
+ result = remote_agent.input("Search for Python documentation")
17
+ print(result)
18
+ ```
19
+
20
+ **Output:**
21
+ ```
22
+ I found extensive Python documentation at docs.python.org covering tutorials,
23
+ library reference, and language specifications.
24
+ ```
25
+
26
+ **That's it.** Use remote agents with one function call.
27
+
28
+ ---
29
+
30
+ ## What Just Happened?
31
+
32
+ When you called `connect(address)`:
33
+
34
+ 1. **Created proxy agent** → Acts like a local Agent instance
35
+ 2. **Connected to relay** → WebSocket at `wss://oo.openonion.ai/ws/announce`
36
+ 3. **Sent INPUT message** → Routed to the remote agent
37
+ 4. **Received OUTPUT** → Got the result back
38
+
39
+ All of this happens transparently. The remote agent looks and acts like a local one.
40
+
41
+ ---
42
+
43
+ ## Complete Example
44
+
45
+ ### Terminal 1: Start a Serving Agent
46
+
47
+ ```python
48
+ # serve_agent.py
49
+ from connectonion import Agent, host
50
+
51
+ def calculate(expression: str) -> str:
52
+ """Perform calculations."""
53
+ return str(eval(expression))
54
+
55
+ def get_weather(city: str) -> str:
56
+ """Get weather information."""
57
+ return f"Weather in {city}: Sunny, 72°F"
58
+
59
+ agent = Agent(
60
+ "assistant",
61
+ tools=[calculate, get_weather],
62
+ system_prompt="You are a helpful assistant."
63
+ )
64
+
65
+ print("Starting agent...")
66
+ host(agent) # HTTP server + P2P relay
67
+ ```
68
+
69
+ **Output:**
70
+ ```
71
+ Starting agent...
72
+ ╭──────────── Agent 'assistant' ────────────╮
73
+ │ POST http://localhost:8000/input │
74
+ │ Address: 0x7a8f9d4c... │
75
+ │ Relay: wss://oo.openonion.ai/ws/announce│
76
+ ╰───────────────────────────────────────────╯
77
+ ```
78
+
79
+ ### Terminal 2: Connect and Use
80
+
81
+ ```python
82
+ # use_agent.py
83
+ from connectonion import connect
84
+
85
+ # Connect using the agent's address
86
+ assistant = connect("0x7a8f9d4c2b1e3f5a6c8d9e0f1a2b3c4d5e6f7a8b9c0d1e2f3a4b5c6d7e8f9a0b")
87
+
88
+ # Use it
89
+ result1 = assistant.input("What is 42 * 17?")
90
+ print(result1)
91
+ # Output: The result of 42 * 17 is 714.
92
+
93
+ result2 = assistant.input("What's the weather in Seattle?")
94
+ print(result2)
95
+ # Output: Weather in Seattle: Sunny, 72°F
96
+ ```
97
+
98
+ ---
99
+
100
+ ## API Reference
101
+
102
+ ### connect(agent_address, keys, relay_url)
103
+
104
+ Connect to a remote serving agent.
105
+
106
+ **Parameters:**
107
+ - `agent_address` (str, required): Ed25519 public key of the remote agent (hex format with 0x prefix)
108
+ - `keys` (dict, optional): Signing keys from `address.load()` - required for `trust="strict"` agents
109
+ - `relay_url` (str, optional): Relay server URL. Defaults to `"wss://oo.openonion.ai/ws/announce"`
110
+
111
+ **Returns:**
112
+ - `RemoteAgent`: Proxy object that behaves like a local Agent
113
+
114
+ **Example:**
115
+ ```python
116
+ from connectonion import connect, address
117
+
118
+ # Connect with default relay
119
+ agent = connect("0x7a8f...")
120
+
121
+ # Connect with signing (for strict trust agents)
122
+ keys = address.load(Path(".co"))
123
+ agent = connect("0x7a8f...", keys=keys)
124
+
125
+ # Connect with custom relay
126
+ agent = connect("0x7a8f...", relay_url="ws://localhost:8000/ws/announce")
127
+ ```
128
+
129
+ ### RemoteAgent Methods
130
+
131
+ **`input(prompt, timeout=30.0)`** - Sync version (standard Python scripts)
132
+ ```python
133
+ result = agent.input("Hello")
134
+ ```
135
+
136
+ **`input_async(prompt, timeout=30.0)`** - Async version (Jupyter notebooks, async code)
137
+ ```python
138
+ result = await agent.input_async("Hello")
139
+ ```
140
+
141
+ **`reset_conversation()`** - Clear session and start fresh
142
+ ```python
143
+ agent.reset_conversation()
144
+ ```
145
+
146
+ > **Note:** `input()` cannot be used inside async contexts (Jupyter notebooks, async functions).
147
+ > Use `await agent.input_async()` instead. You'll get a clear error message if you try.
148
+
149
+ ---
150
+
151
+ ## Using Remote Agents
152
+
153
+ Once connected, remote agents work exactly like local ones:
154
+
155
+ ### Single Task
156
+
157
+ ```python
158
+ remote = connect("0x7a8f...")
159
+
160
+ result = remote.input("Translate 'hello' to Spanish")
161
+ print(result)
162
+ ```
163
+
164
+ ### Multi-Turn Conversation
165
+
166
+ ```python
167
+ remote = connect("0x7a8f...")
168
+
169
+ # Turn 1
170
+ response1 = remote.input("Calculate 100 + 50")
171
+ # "The result is 150"
172
+
173
+ # Turn 2 - remembers context
174
+ response2 = remote.input("Multiply that by 2")
175
+ # "The result is 300"
176
+ ```
177
+
178
+ The remote agent maintains conversation state across multiple `input()` calls.
179
+
180
+ ---
181
+
182
+ ## How It Works
183
+
184
+ ### Message Flow
185
+
186
+ ```
187
+ Your Code Relay Server Remote Agent
188
+ | | |
189
+ |-- INPUT ----------->| |
190
+ | |-- INPUT ------------>|
191
+ | | |
192
+ | | [Process task]
193
+ | | |
194
+ | |<-- OUTPUT -----------|
195
+ |<-- OUTPUT ----------| |
196
+ | | |
197
+ ```
198
+
199
+ ### Under the Hood
200
+
201
+ ```python
202
+ # What connect() does internally
203
+ def connect(agent_address, relay_url=DEFAULT_RELAY):
204
+ # 1. Create WebSocket connection to relay
205
+ ws = websocket.create_connection(relay_url)
206
+
207
+ # 2. Return proxy that forwards input() calls
208
+ class RemoteAgent:
209
+ def input(self, prompt):
210
+ # Send INPUT message
211
+ msg = {
212
+ "type": "INPUT",
213
+ "to": agent_address,
214
+ "task": prompt
215
+ }
216
+ ws.send(json.dumps(msg))
217
+
218
+ # Wait for OUTPUT response
219
+ response = ws.recv()
220
+ return json.loads(response)["result"]
221
+
222
+ return RemoteAgent()
223
+ ```
224
+
225
+ ---
226
+
227
+ ## Configuration
228
+
229
+ ### Default Relay (Production)
230
+
231
+ ```python
232
+ # Uses wss://oo.openonion.ai/ws/announce by default
233
+ agent = connect("0x7a8f...")
234
+ ```
235
+
236
+ ### Local Relay (Development)
237
+
238
+ ```python
239
+ # Connect to local relay server
240
+ agent = connect("0x7a8f...", relay_url="ws://localhost:8000/ws/announce")
241
+ ```
242
+
243
+ ### Environment-Based
244
+
245
+ ```python
246
+ import os
247
+
248
+ relay_url = os.getenv(
249
+ "RELAY_URL",
250
+ "wss://oo.openonion.ai/ws/announce"
251
+ )
252
+
253
+ agent = connect("0x7a8f...", relay_url=relay_url)
254
+ ```
255
+
256
+ ---
257
+
258
+ ## Common Patterns
259
+
260
+ ### 1. Connect to Multiple Agents
261
+
262
+ ```python
263
+ from connectonion import connect
264
+
265
+ # Connect to specialized agents
266
+ searcher = connect("0xaaa...")
267
+ writer = connect("0xbbb...")
268
+ reviewer = connect("0xccc...")
269
+
270
+ # Use them together
271
+ research = searcher.input("Research AI trends")
272
+ draft = writer.input(f"Write article about: {research}")
273
+ final = reviewer.input(f"Review and improve: {draft}")
274
+
275
+ print(final)
276
+ ```
277
+
278
+ ### 2. Retry on Connection Failure
279
+
280
+ ```python
281
+ import time
282
+ from connectonion import connect
283
+
284
+ def connect_with_retry(address, max_retries=3):
285
+ for attempt in range(max_retries):
286
+ try:
287
+ return connect(address)
288
+ except Exception as e:
289
+ if attempt < max_retries - 1:
290
+ print(f"Connection failed, retrying... ({attempt + 1}/{max_retries})")
291
+ time.sleep(2)
292
+ else:
293
+ raise
294
+
295
+ agent = connect_with_retry("0x7a8f...")
296
+ ```
297
+
298
+ ### 3. Agent Pool
299
+
300
+ ```python
301
+ from connectonion import connect
302
+
303
+ # Pool of identical agents for load balancing
304
+ agent_addresses = [
305
+ "0xaaa...",
306
+ "0xbbb...",
307
+ "0xccc..."
308
+ ]
309
+
310
+ agents = [connect(addr) for addr in agent_addresses]
311
+
312
+ # Simple round-robin
313
+ def get_agent():
314
+ agent = agents.pop(0)
315
+ agents.append(agent)
316
+ return agent
317
+
318
+ # Use different agent each time
319
+ result1 = get_agent().input("Task 1")
320
+ result2 = get_agent().input("Task 2")
321
+ result3 = get_agent().input("Task 3")
322
+ ```
323
+
324
+ ---
325
+
326
+ ## Real-World Example: Distributed Workflow
327
+
328
+ ```python
329
+ from connectonion import Agent, connect
330
+
331
+ # Local orchestrator agent
332
+ def run_workflow(task: str) -> str:
333
+ """Run distributed workflow."""
334
+
335
+ # Connect to remote specialized agents
336
+ researcher = connect("0xaaa...")
337
+ analyst = connect("0xbbb...")
338
+ writer = connect("0xccc...")
339
+
340
+ # Step 1: Research
341
+ research = researcher.input(f"Research: {task}")
342
+
343
+ # Step 2: Analyze
344
+ analysis = analyst.input(f"Analyze this data: {research}")
345
+
346
+ # Step 3: Write report
347
+ report = writer.input(f"Write report based on: {analysis}")
348
+
349
+ return report
350
+
351
+ # Local agent with access to remote agents via tool
352
+ orchestrator = Agent("orchestrator", tools=[run_workflow])
353
+
354
+ # User just talks to local agent, it uses remote ones automatically
355
+ result = orchestrator.input("Create a report on AI market trends")
356
+ print(result)
357
+ ```
358
+
359
+ ---
360
+
361
+ ## Testing
362
+
363
+ ### Test Remote Connection
364
+
365
+ ```python
366
+ from connectonion import connect
367
+
368
+ def test_connection(address):
369
+ """Test if remote agent is reachable."""
370
+ try:
371
+ agent = connect(address)
372
+ response = agent.input("ping")
373
+ print(f"✓ Connected to {address}")
374
+ print(f"Response: {response}")
375
+ return True
376
+ except Exception as e:
377
+ print(f"✗ Failed to connect to {address}")
378
+ print(f"Error: {e}")
379
+ return False
380
+
381
+ # Test
382
+ test_connection("0x7a8f...")
383
+ ```
384
+
385
+ ### Integration Test
386
+
387
+ ```python
388
+ import pytest
389
+ from connectonion import Agent, connect, host
390
+ import threading
391
+ import time
392
+
393
+ def test_network_connection():
394
+ """Test serving and connecting to an agent."""
395
+
396
+ # Create and serve agent in background
397
+ def serve():
398
+ agent = Agent("test", tools=[lambda x: f"Echo: {x}"])
399
+ host(agent, relay_url="ws://localhost:8000/ws/announce")
400
+
401
+ thread = threading.Thread(target=serve, daemon=True)
402
+ thread.start()
403
+
404
+ # Wait for agent to start
405
+ time.sleep(2)
406
+
407
+ # Connect and test
408
+ remote = connect(
409
+ "0x...", # Agent's public key
410
+ relay_url="ws://localhost:8000/ws/announce"
411
+ )
412
+
413
+ result = remote.input("test message")
414
+ assert "Echo: test message" in result
415
+ ```
416
+
417
+ ---
418
+
419
+ ## Error Handling
420
+
421
+ ### Agent Not Found
422
+
423
+ ```python
424
+ from connectonion import connect
425
+
426
+ try:
427
+ agent = connect("0xinvalid...")
428
+ except Exception as e:
429
+ print(f"Agent not found: {e}")
430
+ # Handle: maybe agent is offline, try later
431
+ ```
432
+
433
+ ### Connection Timeout
434
+
435
+ ```python
436
+ import socket
437
+
438
+ try:
439
+ agent = connect("0x7a8f...", relay_url="ws://unreachable:8000/ws/announce")
440
+ except socket.timeout:
441
+ print("Connection timed out")
442
+ # Handle: use backup relay or local fallback
443
+ ```
444
+
445
+ ### Network Errors
446
+
447
+ ```python
448
+ from connectonion import connect
449
+
450
+ def safe_connect(address):
451
+ """Connect with error handling."""
452
+ try:
453
+ return connect(address)
454
+ except ConnectionError:
455
+ print("Network error, using local agent instead")
456
+ from connectonion import Agent
457
+ return Agent("fallback", tools=[...])
458
+
459
+ agent = safe_connect("0x7a8f...")
460
+ ```
461
+
462
+ ---
463
+
464
+ ## Comparison: Local vs Remote
465
+
466
+ ### Local Agent
467
+
468
+ ```python
469
+ from connectonion import Agent
470
+
471
+ # Create local agent
472
+ agent = Agent("local", tools=[search, calculate])
473
+
474
+ # Use it
475
+ result = agent.input("Search and calculate")
476
+ ```
477
+
478
+ **Pros:**
479
+ - No network latency
480
+ - Works offline
481
+ - Full control
482
+
483
+ **Cons:**
484
+ - Limited to one machine
485
+ - No sharing
486
+ - Scales vertically only
487
+
488
+ ### Remote Agent
489
+
490
+ ```python
491
+ from connectonion import connect
492
+
493
+ # Connect to remote agent
494
+ agent = connect("0x7a8f...")
495
+
496
+ # Use it
497
+ result = agent.input("Search and calculate")
498
+ ```
499
+
500
+ **Pros:**
501
+ - Access from anywhere
502
+ - Share across team
503
+ - Scales horizontally
504
+ - Specialized agents
505
+
506
+ **Cons:**
507
+ - Network latency
508
+ - Requires connectivity
509
+ - Depends on remote availability
510
+
511
+ ---
512
+
513
+ ## Learn More
514
+
515
+ - **[host.md](host.md)** - Make your agents network-accessible with `host()`
516
+ - **[Agent](concepts/agent.md)** - Core Agent documentation
517
+ - **[protocol/agent-relay-protocol.md](protocol/agent-relay-protocol.md)** - Protocol specification
518
+
519
+ ---
520
+
521
+ ## Summary
522
+
523
+ `connect(address)` creates a proxy to a remote agent:
524
+
525
+ - **One function call** - `connect("0x7a8f...")`
526
+ - **Works like local agents** - Same `.input()` interface
527
+ - **Automatic relay connection** - Defaults to `wss://oo.openonion.ai/ws/announce`
528
+ - **Multi-turn conversations** - Remote agent maintains state
529
+ - **Zero configuration** - Just provide the address
530
+
531
+ **Simple case:**
532
+ ```python
533
+ agent = connect("0x7a8f...")
534
+ result = agent.input("task")
535
+ ```
536
+
537
+ **Custom relay:**
538
+ ```python
539
+ agent = connect("0x7a8f...", relay_url="ws://localhost:8000/ws/announce")
540
+ result = agent.input("task")
541
+ ```
542
+
543
+ That's it. Now go use remote agents as if they were local.