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.
- connectonion/__init__.py +46 -9
- connectonion/cli/__init__.py +11 -1
- connectonion/cli/browser_agent/__init__.py +11 -1
- connectonion/cli/browser_agent/browser.py +13 -3
- connectonion/cli/browser_agent/element_finder.py +8 -0
- connectonion/cli/browser_agent/highlight_screenshot.py +9 -1
- connectonion/cli/browser_agent/scroll.py +8 -0
- connectonion/cli/co_ai/__init__.py +6 -0
- connectonion/cli/co_ai/agent.py +87 -0
- connectonion/cli/co_ai/agents/__init__.py +5 -0
- connectonion/cli/co_ai/agents/registry.py +57 -0
- connectonion/cli/co_ai/commands/__init__.py +45 -0
- connectonion/cli/co_ai/commands/compact.py +173 -0
- connectonion/cli/co_ai/commands/cost.py +77 -0
- connectonion/cli/co_ai/commands/export.py +60 -0
- connectonion/cli/co_ai/commands/help.py +80 -0
- connectonion/cli/co_ai/commands/init.py +101 -0
- connectonion/cli/co_ai/commands/sessions.py +55 -0
- connectonion/cli/co_ai/commands/tasks.py +63 -0
- connectonion/cli/co_ai/commands/undo.py +103 -0
- connectonion/cli/co_ai/context.py +127 -0
- connectonion/cli/co_ai/main.py +52 -0
- connectonion/cli/co_ai/plugins/__init__.py +5 -0
- connectonion/cli/co_ai/plugins/system_reminder.py +154 -0
- connectonion/cli/co_ai/prompts/agents/explore.md +79 -0
- connectonion/cli/co_ai/prompts/agents/plan.md +60 -0
- connectonion/cli/co_ai/prompts/assembler.py +303 -0
- connectonion/cli/{docs/co-vibecoding-principles-docs-contexts-all-in-one.md → co_ai/prompts/connectonion/README.md} +26 -0
- connectonion/cli/co_ai/prompts/connectonion/api.md +457 -0
- connectonion/cli/co_ai/prompts/connectonion/cli/README.md +805 -0
- connectonion/cli/co_ai/prompts/connectonion/cli/auth.md +46 -0
- connectonion/cli/co_ai/prompts/connectonion/cli/browser.md +235 -0
- connectonion/cli/co_ai/prompts/connectonion/cli/copy.md +184 -0
- connectonion/cli/co_ai/prompts/connectonion/cli/create.md +335 -0
- connectonion/cli/co_ai/prompts/connectonion/cli/init.md +431 -0
- connectonion/cli/co_ai/prompts/connectonion/co-directory-structure.md +214 -0
- connectonion/cli/co_ai/prompts/connectonion/concepts/agent.md +1078 -0
- connectonion/cli/co_ai/prompts/connectonion/concepts/events.md +816 -0
- connectonion/cli/co_ai/prompts/connectonion/concepts/llm_do.md +256 -0
- connectonion/cli/co_ai/prompts/connectonion/concepts/max_iterations.md +362 -0
- connectonion/cli/co_ai/prompts/connectonion/concepts/models.md +641 -0
- connectonion/cli/co_ai/prompts/connectonion/concepts/plugins.md +100 -0
- connectonion/cli/co_ai/prompts/connectonion/concepts/prompts.md +122 -0
- connectonion/cli/co_ai/prompts/connectonion/concepts/tools.md +512 -0
- connectonion/cli/co_ai/prompts/connectonion/concepts/transcribe.md +156 -0
- connectonion/cli/co_ai/prompts/connectonion/concepts/trust.md +291 -0
- connectonion/cli/co_ai/prompts/connectonion/debug/README.md +18 -0
- connectonion/cli/co_ai/prompts/connectonion/debug/auto_debug.md +1026 -0
- connectonion/cli/co_ai/prompts/connectonion/debug/console.md +129 -0
- connectonion/cli/co_ai/prompts/connectonion/debug/eval-format.md +178 -0
- connectonion/cli/co_ai/prompts/connectonion/debug/eval.md +230 -0
- connectonion/cli/co_ai/prompts/connectonion/debug/exceptions.md +307 -0
- connectonion/cli/co_ai/prompts/connectonion/debug/log.md +117 -0
- connectonion/cli/co_ai/prompts/connectonion/debug/xray.md +215 -0
- connectonion/cli/co_ai/prompts/connectonion/design-decisions/001-choosing-input-method.md +202 -0
- connectonion/cli/co_ai/prompts/connectonion/design-decisions/002-choosing-llm-function-name.md +202 -0
- connectonion/cli/co_ai/prompts/connectonion/design-decisions/003-choosing-trust-keyword.md +141 -0
- connectonion/cli/co_ai/prompts/connectonion/design-decisions/004-cli-create-flow.md +117 -0
- connectonion/cli/co_ai/prompts/connectonion/design-decisions/005-designing-agent-network-protocol.md +503 -0
- connectonion/cli/co_ai/prompts/connectonion/design-decisions/006-agent-address-format.md +305 -0
- connectonion/cli/co_ai/prompts/connectonion/design-decisions/007-authentication-backend-design.md +240 -0
- connectonion/cli/co_ai/prompts/connectonion/design-decisions/008-naming-is-hard.md +228 -0
- connectonion/cli/co_ai/prompts/connectonion/design-decisions/009-why-connect-function.md +167 -0
- connectonion/cli/co_ai/prompts/connectonion/design-decisions/010-cli-ux-progressive-disclosure.md +176 -0
- connectonion/cli/co_ai/prompts/connectonion/design-decisions/011-global-config-identity-management.md +357 -0
- connectonion/cli/co_ai/prompts/connectonion/design-decisions/012-tool-execution-separation.md +259 -0
- connectonion/cli/co_ai/prompts/connectonion/design-decisions/013-debug-and-logging-design.md +253 -0
- connectonion/cli/co_ai/prompts/connectonion/design-decisions/014-hook-system-design.md +510 -0
- connectonion/cli/co_ai/prompts/connectonion/design-decisions/015-interactive-auto-debug-design.md +837 -0
- connectonion/cli/co_ai/prompts/connectonion/design-decisions/016-why-no-zero-knowledge-proofs.md +358 -0
- connectonion/cli/co_ai/prompts/connectonion/design-decisions/017-session-logging-and-eval-format.md +120 -0
- connectonion/cli/co_ai/prompts/connectonion/design-decisions/018-event-api-naming.md +274 -0
- connectonion/cli/co_ai/prompts/connectonion/design-decisions/019-agent-lifecycle-design.md +655 -0
- connectonion/cli/co_ai/prompts/connectonion/design-decisions/020-trust-system-and-network-architecture.md +503 -0
- connectonion/cli/co_ai/prompts/connectonion/design-decisions/021-task-storage-jsonl-design.md +496 -0
- connectonion/cli/co_ai/prompts/connectonion/design-decisions/022-raw-asgi-implementation.md +273 -0
- connectonion/cli/co_ai/prompts/connectonion/examples/agent_reasoning.md +62 -0
- connectonion/cli/co_ai/prompts/connectonion/examples/atomic_tools.md +24 -0
- connectonion/cli/co_ai/prompts/connectonion/examples/load_guide.md +18 -0
- connectonion/cli/co_ai/prompts/connectonion/examples.md +0 -0
- connectonion/cli/co_ai/prompts/connectonion/hook-system-options.md +364 -0
- connectonion/cli/co_ai/prompts/connectonion/index.md +162 -0
- connectonion/cli/co_ai/prompts/connectonion/integrations/README.md +12 -0
- connectonion/cli/co_ai/prompts/connectonion/integrations/auth.md +450 -0
- connectonion/cli/co_ai/prompts/connectonion/integrations/google.md +431 -0
- connectonion/cli/co_ai/prompts/connectonion/integrations/microsoft.md +370 -0
- connectonion/cli/co_ai/prompts/connectonion/network/README.md +14 -0
- connectonion/cli/co_ai/prompts/connectonion/network/connect.md +543 -0
- connectonion/cli/co_ai/prompts/connectonion/network/connection.md +538 -0
- connectonion/cli/co_ai/prompts/connectonion/network/deploy.md +123 -0
- connectonion/cli/co_ai/prompts/connectonion/network/host.md +1049 -0
- connectonion/cli/co_ai/prompts/connectonion/network/protocol/agent-relay-protocol.md +495 -0
- connectonion/cli/co_ai/prompts/connectonion/network/protocol/announce-message.md +115 -0
- connectonion/cli/co_ai/prompts/connectonion/principles.md +124 -0
- connectonion/cli/co_ai/prompts/connectonion/quickstart.md +261 -0
- connectonion/cli/co_ai/prompts/connectonion/roadmap.md +81 -0
- connectonion/cli/co_ai/prompts/connectonion/templates/README.md +77 -0
- connectonion/cli/co_ai/prompts/connectonion/templates/meta-agent.md +152 -0
- connectonion/cli/co_ai/prompts/connectonion/templates/minimal.md +105 -0
- connectonion/cli/co_ai/prompts/connectonion/templates/playwright.md +130 -0
- connectonion/cli/co_ai/prompts/connectonion/templates/web-research.md +144 -0
- connectonion/cli/co_ai/prompts/connectonion/tui/README.md +95 -0
- connectonion/cli/co_ai/prompts/connectonion/tui/chat.md +181 -0
- connectonion/cli/co_ai/prompts/connectonion/tui/divider.md +63 -0
- connectonion/cli/co_ai/prompts/connectonion/tui/dropdown.md +83 -0
- connectonion/cli/co_ai/prompts/connectonion/tui/footer.md +44 -0
- connectonion/cli/co_ai/prompts/connectonion/tui/fuzzy.md +68 -0
- connectonion/cli/co_ai/prompts/connectonion/tui/input.md +84 -0
- connectonion/cli/co_ai/prompts/connectonion/tui/keys.md +77 -0
- connectonion/cli/co_ai/prompts/connectonion/tui/pick.md +71 -0
- connectonion/cli/co_ai/prompts/connectonion/tui/providers.md +89 -0
- connectonion/cli/co_ai/prompts/connectonion/tui/status_bar.md +67 -0
- connectonion/cli/co_ai/prompts/connectonion/useful_plugins/README.md +156 -0
- connectonion/cli/co_ai/prompts/connectonion/useful_plugins/calendar_plugin.md +68 -0
- connectonion/cli/co_ai/prompts/connectonion/useful_plugins/eval.md +89 -0
- connectonion/cli/co_ai/prompts/connectonion/useful_plugins/gmail_plugin.md +68 -0
- connectonion/cli/co_ai/prompts/connectonion/useful_plugins/image_result_formatter.md +74 -0
- connectonion/cli/co_ai/prompts/connectonion/useful_plugins/re_act.md +86 -0
- connectonion/cli/co_ai/prompts/connectonion/useful_plugins/shell_approval.md +69 -0
- connectonion/cli/co_ai/prompts/connectonion/useful_tools/README.md +81 -0
- connectonion/cli/co_ai/prompts/connectonion/useful_tools/diff_writer.md +138 -0
- connectonion/cli/co_ai/prompts/connectonion/useful_tools/get_emails.md +499 -0
- connectonion/cli/co_ai/prompts/connectonion/useful_tools/gmail.md +135 -0
- connectonion/cli/co_ai/prompts/connectonion/useful_tools/google_calendar.md +106 -0
- connectonion/cli/co_ai/prompts/connectonion/useful_tools/memory.md +486 -0
- connectonion/cli/co_ai/prompts/connectonion/useful_tools/microsoft_calendar.md +106 -0
- connectonion/cli/co_ai/prompts/connectonion/useful_tools/outlook.md +120 -0
- connectonion/cli/co_ai/prompts/connectonion/useful_tools/send_email.md +403 -0
- connectonion/cli/co_ai/prompts/connectonion/useful_tools/shell.md +95 -0
- connectonion/cli/co_ai/prompts/connectonion/useful_tools/slash_command.md +96 -0
- connectonion/cli/co_ai/prompts/connectonion/useful_tools/terminal.md +97 -0
- connectonion/cli/co_ai/prompts/connectonion/useful_tools/todo_list.md +252 -0
- connectonion/cli/co_ai/prompts/connectonion/useful_tools/web_fetch.md +130 -0
- connectonion/cli/co_ai/prompts/connectonion/vibe-coding-guide.md +97 -0
- connectonion/cli/co_ai/prompts/connectonion/windows-support.md +258 -0
- connectonion/cli/co_ai/prompts/main.md +247 -0
- connectonion/cli/co_ai/prompts/summarization.md +55 -0
- connectonion/cli/co_ai/prompts/system-reminders/agent.md +23 -0
- connectonion/cli/co_ai/prompts/system-reminders/plan_mode.md +13 -0
- connectonion/cli/co_ai/prompts/system-reminders/security.md +14 -0
- connectonion/cli/co_ai/prompts/system-reminders/simplicity.md +14 -0
- connectonion/cli/co_ai/prompts/tools/ask_user.md +61 -0
- connectonion/cli/co_ai/prompts/tools/background.md +57 -0
- connectonion/cli/co_ai/prompts/tools/edit.md +90 -0
- connectonion/cli/co_ai/prompts/tools/glob.md +52 -0
- connectonion/cli/co_ai/prompts/tools/grep.md +55 -0
- connectonion/cli/co_ai/prompts/tools/plan_mode.md +80 -0
- connectonion/cli/co_ai/prompts/tools/read.md +40 -0
- connectonion/cli/co_ai/prompts/tools/shell.md +67 -0
- connectonion/cli/co_ai/prompts/tools/task.md +51 -0
- connectonion/cli/co_ai/prompts/tools/todo.md +139 -0
- connectonion/cli/co_ai/prompts/tools/write.md +47 -0
- connectonion/cli/co_ai/prompts/workflow.md +89 -0
- connectonion/cli/co_ai/sessions.py +110 -0
- connectonion/cli/co_ai/skills/__init__.py +37 -0
- connectonion/cli/co_ai/skills/builtin/commit/SKILL.md +63 -0
- connectonion/cli/co_ai/skills/builtin/review-pr/SKILL.md +76 -0
- connectonion/cli/co_ai/skills/loader.py +166 -0
- connectonion/cli/co_ai/skills/tool.py +46 -0
- connectonion/cli/co_ai/tools/__init__.py +92 -0
- connectonion/cli/co_ai/tools/ask_user.py +35 -0
- connectonion/cli/co_ai/tools/background.py +201 -0
- connectonion/cli/co_ai/tools/diff_writer.py +291 -0
- connectonion/cli/co_ai/tools/edit.py +89 -0
- connectonion/cli/co_ai/tools/glob.py +84 -0
- connectonion/cli/co_ai/tools/grep.py +158 -0
- connectonion/cli/co_ai/tools/load_guide.py +23 -0
- connectonion/cli/co_ai/tools/multi_edit.py +116 -0
- connectonion/cli/co_ai/tools/plan_mode.py +169 -0
- connectonion/cli/co_ai/tools/read.py +61 -0
- connectonion/cli/co_ai/tools/task.py +59 -0
- connectonion/cli/co_ai/tools/todo_list.py +159 -0
- connectonion/cli/co_ai/tools/write.py +126 -0
- connectonion/cli/commands/__init__.py +11 -1
- connectonion/cli/commands/ai_commands.py +34 -0
- connectonion/cli/commands/copy_commands.py +55 -6
- connectonion/cli/commands/create.py +20 -17
- connectonion/cli/commands/init.py +19 -22
- connectonion/cli/commands/project_cmd_lib.py +15 -0
- connectonion/cli/main.py +11 -0
- connectonion/console.py +15 -1
- connectonion/core/__init__.py +10 -1
- connectonion/core/agent.py +37 -16
- connectonion/core/exceptions.py +74 -0
- connectonion/core/llm.py +54 -6
- connectonion/core/tool_executor.py +32 -31
- connectonion/core/tool_factory.py +47 -10
- connectonion/debug/__init__.py +10 -1
- connectonion/debug/debug_explainer/__init__.py +10 -1
- connectonion/debug/execution_analyzer/__init__.py +10 -1
- connectonion/debug/execution_analyzer/execution_analysis.py +5 -2
- connectonion/debug/runtime_inspector/__init__.py +10 -1
- connectonion/docs/.package-ignore +6 -0
- connectonion/docs/README.md +2036 -0
- connectonion/docs/api.md +457 -0
- connectonion/docs/archive/001-ai-agent-is-just-prompt-plus-function.md +249 -0
- connectonion/docs/archive/README.md +53 -0
- connectonion/docs/archive/archive/consolidation-plan.md +72 -0
- connectonion/docs/archive/archive/core-principles-extracted.md +239 -0
- connectonion/docs/archive/archive/master-principles.md +222 -0
- connectonion/docs/archive/archive/principles.md +293 -0
- connectonion/docs/archive/archive/simplicity-principles.md +221 -0
- connectonion/docs/archive/attack-defense-insights.md +410 -0
- connectonion/docs/archive/business-model.md +305 -0
- connectonion/docs/archive/core-principles-unified.md +190 -0
- connectonion/docs/archive/discussion-journey.md +178 -0
- connectonion/docs/archive/economic-analysis.md +323 -0
- connectonion/docs/archive/features/01-share-and-find.md +256 -0
- connectonion/docs/archive/features/02-agent-authentication.md +93 -0
- connectonion/docs/archive/features/03-test-before-trust.md +71 -0
- connectonion/docs/archive/features/06-reliability-and-offline.md +197 -0
- connectonion/docs/archive/features/README.md +46 -0
- connectonion/docs/archive/features-roadmap.md +247 -0
- connectonion/docs/archive/mcp-comparison-insights.md +215 -0
- connectonion/docs/archive/migration-strategy.md +571 -0
- connectonion/docs/archive/mini-whitepaper.md +293 -0
- connectonion/docs/archive/network-protocol.md +394 -0
- connectonion/docs/archive/semantic-revolution.md +367 -0
- connectonion/docs/archive/technical-architecture.md +453 -0
- connectonion/docs/archive/the-semantic-insight.md +207 -0
- connectonion/docs/archive/threat-model.md +164 -0
- connectonion/docs/cli/README.md +805 -0
- connectonion/docs/cli/auth.md +46 -0
- connectonion/docs/cli/browser.md +235 -0
- connectonion/docs/cli/copy.md +232 -0
- connectonion/docs/cli/create.md +335 -0
- connectonion/docs/cli/init.md +431 -0
- connectonion/docs/co-directory-structure.md +214 -0
- connectonion/docs/concepts/agent.md +1078 -0
- connectonion/docs/concepts/events.md +699 -0
- connectonion/docs/concepts/llm_do.md +256 -0
- connectonion/docs/concepts/max_iterations.md +362 -0
- connectonion/docs/concepts/models.md +641 -0
- connectonion/docs/concepts/plugins.md +101 -0
- connectonion/docs/concepts/prompts.md +122 -0
- connectonion/docs/concepts/session.md +428 -0
- connectonion/docs/concepts/tools.md +512 -0
- connectonion/docs/concepts/transcribe.md +156 -0
- connectonion/docs/concepts/trust.md +291 -0
- connectonion/docs/connectonion.md +1256 -0
- connectonion/docs/debug/README.md +18 -0
- connectonion/docs/debug/auto_debug.md +1026 -0
- connectonion/docs/debug/console.md +129 -0
- connectonion/docs/debug/eval-format.md +178 -0
- connectonion/docs/debug/eval.md +230 -0
- connectonion/docs/debug/exceptions.md +307 -0
- connectonion/docs/debug/log.md +117 -0
- connectonion/docs/debug/xray.md +215 -0
- connectonion/docs/design-decisions/001-choosing-input-method.md +202 -0
- connectonion/docs/design-decisions/002-choosing-llm-function-name.md +202 -0
- connectonion/docs/design-decisions/003-choosing-trust-keyword.md +141 -0
- connectonion/docs/design-decisions/004-cli-create-flow.md +117 -0
- connectonion/docs/design-decisions/005-designing-agent-network-protocol.md +503 -0
- connectonion/docs/design-decisions/006-agent-address-format.md +305 -0
- connectonion/docs/design-decisions/007-authentication-backend-design.md +240 -0
- connectonion/docs/design-decisions/008-naming-is-hard.md +228 -0
- connectonion/docs/design-decisions/009-why-connect-function.md +167 -0
- connectonion/docs/design-decisions/010-cli-ux-progressive-disclosure.md +176 -0
- connectonion/docs/design-decisions/011-global-config-identity-management.md +357 -0
- connectonion/docs/design-decisions/012-tool-execution-separation.md +259 -0
- connectonion/docs/design-decisions/013-debug-and-logging-design.md +253 -0
- connectonion/docs/design-decisions/014-hook-system-design.md +510 -0
- connectonion/docs/design-decisions/015-interactive-auto-debug-design.md +837 -0
- connectonion/docs/design-decisions/016-why-no-zero-knowledge-proofs.md +358 -0
- connectonion/docs/design-decisions/017-session-logging-and-eval-format.md +120 -0
- connectonion/docs/design-decisions/018-event-api-naming.md +274 -0
- connectonion/docs/design-decisions/019-agent-lifecycle-design.md +655 -0
- connectonion/docs/design-decisions/020-trust-system-and-network-architecture.md +503 -0
- connectonion/docs/design-decisions/021-task-storage-jsonl-design.md +496 -0
- connectonion/docs/design-decisions/022-raw-asgi-implementation.md +273 -0
- connectonion/docs/examples.md +0 -0
- connectonion/docs/hook-system-options.md +364 -0
- connectonion/docs/integrations/README.md +12 -0
- connectonion/docs/integrations/auth.md +450 -0
- connectonion/docs/integrations/google.md +431 -0
- connectonion/docs/integrations/microsoft.md +370 -0
- connectonion/docs/network/README.md +14 -0
- connectonion/docs/network/connect.md +629 -0
- connectonion/docs/network/deploy.md +124 -0
- connectonion/docs/network/host.md +1087 -0
- connectonion/docs/network/io.md +538 -0
- connectonion/docs/network/protocol/agent-relay-protocol.md +495 -0
- connectonion/docs/network/protocol/announce-message.md +115 -0
- connectonion/docs/principles.md +124 -0
- connectonion/docs/quickstart.md +261 -0
- connectonion/docs/roadmap.md +81 -0
- connectonion/docs/templates/README.md +77 -0
- connectonion/docs/templates/meta-agent.md +152 -0
- connectonion/docs/templates/minimal.md +105 -0
- connectonion/docs/templates/playwright.md +130 -0
- connectonion/docs/templates/web-research.md +144 -0
- connectonion/docs/tui/README.md +95 -0
- connectonion/docs/tui/chat.md +181 -0
- connectonion/docs/tui/divider.md +63 -0
- connectonion/docs/tui/dropdown.md +83 -0
- connectonion/docs/tui/footer.md +44 -0
- connectonion/docs/tui/fuzzy.md +68 -0
- connectonion/docs/tui/input.md +84 -0
- connectonion/docs/tui/keys.md +77 -0
- connectonion/docs/tui/pick.md +71 -0
- connectonion/docs/tui/providers.md +89 -0
- connectonion/docs/tui/status_bar.md +67 -0
- connectonion/docs/useful_plugins/README.md +160 -0
- connectonion/docs/useful_plugins/calendar_plugin.md +68 -0
- connectonion/docs/useful_plugins/eval.md +89 -0
- connectonion/docs/useful_plugins/gmail_plugin.md +68 -0
- connectonion/docs/useful_plugins/image_result_formatter.md +74 -0
- connectonion/docs/useful_plugins/re_act.md +86 -0
- connectonion/docs/useful_plugins/shell_approval.md +69 -0
- connectonion/docs/useful_plugins/system_reminder.md +210 -0
- connectonion/docs/useful_plugins/tool_approval.md +139 -0
- connectonion/docs/useful_prompts/README.md +127 -0
- connectonion/docs/useful_prompts/coding_agent.md +214 -0
- connectonion/docs/useful_tools/README.md +81 -0
- connectonion/docs/useful_tools/ask_user.md +103 -0
- connectonion/docs/useful_tools/diff_writer.md +158 -0
- connectonion/docs/useful_tools/get_emails.md +519 -0
- connectonion/docs/useful_tools/gmail.md +155 -0
- connectonion/docs/useful_tools/google_calendar.md +126 -0
- connectonion/docs/useful_tools/memory.md +506 -0
- connectonion/docs/useful_tools/microsoft_calendar.md +126 -0
- connectonion/docs/useful_tools/outlook.md +140 -0
- connectonion/docs/useful_tools/send_email.md +423 -0
- connectonion/docs/useful_tools/shell.md +115 -0
- connectonion/docs/useful_tools/slash_command.md +116 -0
- connectonion/docs/useful_tools/terminal.md +115 -0
- connectonion/docs/useful_tools/todo_list.md +272 -0
- connectonion/docs/useful_tools/web_fetch.md +150 -0
- connectonion/docs/vibe-coding-guide.md +97 -0
- connectonion/docs/windows-support.md +258 -0
- connectonion/logger.py +3 -3
- connectonion/network/__init__.py +19 -6
- connectonion/network/asgi/__init__.py +81 -0
- connectonion/network/asgi/http.py +205 -0
- connectonion/network/asgi/websocket.py +217 -0
- connectonion/network/connect.py +232 -185
- connectonion/network/host/__init__.py +59 -0
- connectonion/network/host/auth.py +191 -0
- connectonion/network/host/routes.py +135 -0
- connectonion/network/host/server.py +289 -0
- connectonion/network/host/session.py +78 -0
- connectonion/network/io/__init__.py +21 -0
- connectonion/network/{connection.py → io/base.py} +17 -42
- connectonion/network/io/websocket.py +55 -0
- connectonion/network/relay.py +37 -16
- connectonion/network/trust/__init__.py +30 -0
- connectonion/network/trust/factory.py +138 -0
- connectonion/network/{trust_agents.py → trust/prompts.py} +3 -3
- connectonion/network/{trust_functions.py → trust/tools.py} +2 -2
- connectonion/prompt_files/__init__.py +11 -1
- connectonion/prompt_files/react_acknowledge.md +26 -0
- connectonion/prompts.py +10 -1
- connectonion/tui/chat.py +10 -1
- connectonion/tui/divider.py +10 -1
- connectonion/tui/dropdown.py +10 -1
- connectonion/tui/footer.py +8 -0
- connectonion/tui/fuzzy.py +11 -1
- connectonion/tui/input.py +118 -70
- connectonion/tui/keys.py +133 -6
- connectonion/tui/providers.py +11 -1
- connectonion/tui/status_bar.py +10 -1
- connectonion/useful_events_handlers/__init__.py +8 -0
- connectonion/useful_events_handlers/reflect.py +19 -4
- connectonion/useful_plugins/__init__.py +3 -1
- connectonion/useful_plugins/eval.py +2 -2
- connectonion/useful_plugins/gmail_plugin.py +3 -3
- connectonion/useful_plugins/image_result_formatter.py +3 -3
- connectonion/useful_plugins/re_act.py +114 -28
- connectonion/useful_plugins/shell_approval.py +2 -2
- connectonion/useful_plugins/system_reminder.py +103 -0
- connectonion/useful_plugins/tool_approval.py +233 -0
- connectonion/useful_plugins/ui_stream.py +18 -133
- connectonion/useful_prompts/README.md +61 -0
- connectonion/useful_prompts/__init__.py +45 -0
- connectonion/useful_prompts/coding_agent/README.md +106 -0
- connectonion/useful_prompts/coding_agent/assembler.py +123 -0
- connectonion/useful_prompts/coding_agent/prompts/main.md +227 -0
- connectonion/useful_prompts/coding_agent/prompts/tools/ask_user.md +61 -0
- connectonion/useful_prompts/coding_agent/prompts/tools/background.md +57 -0
- connectonion/useful_prompts/coding_agent/prompts/tools/edit.md +90 -0
- connectonion/useful_prompts/coding_agent/prompts/tools/glob.md +52 -0
- connectonion/useful_prompts/coding_agent/prompts/tools/grep.md +55 -0
- connectonion/useful_prompts/coding_agent/prompts/tools/plan_mode.md +80 -0
- connectonion/useful_prompts/coding_agent/prompts/tools/read.md +40 -0
- connectonion/useful_prompts/coding_agent/prompts/tools/shell.md +67 -0
- connectonion/useful_prompts/coding_agent/prompts/tools/task.md +51 -0
- connectonion/useful_prompts/coding_agent/prompts/tools/todo.md +139 -0
- connectonion/useful_prompts/coding_agent/prompts/tools/write.md +48 -0
- connectonion/useful_prompts/system-reminders/security-warning.md +14 -0
- connectonion/useful_prompts/system-reminders/test-reminder.md +11 -0
- connectonion/useful_tools/__init__.py +31 -4
- connectonion/useful_tools/ask_user.py +35 -0
- connectonion/useful_tools/bash.py +69 -0
- connectonion/useful_tools/diff_writer.py +186 -94
- connectonion/useful_tools/edit.py +102 -0
- connectonion/useful_tools/glob_files.py +97 -0
- connectonion/useful_tools/grep_files.py +171 -0
- connectonion/useful_tools/multi_edit.py +116 -0
- connectonion/useful_tools/read_file.py +73 -0
- connectonion/useful_tools/shell.py +50 -45
- connectonion/useful_tools/write_file.py +129 -0
- {connectonion-0.6.2.dist-info → connectonion-0.6.4.dist-info}/METADATA +10 -3
- connectonion-0.6.4.dist-info/RECORD +472 -0
- connectonion/network/asgi.py +0 -407
- connectonion/network/host.py +0 -616
- connectonion/network/trust.py +0 -166
- connectonion-0.6.2.dist-info/RECORD +0 -129
- /connectonion/cli/{docs → co_ai/prompts/connectonion}/connectonion.md +0 -0
- {connectonion-0.6.2.dist-info → connectonion-0.6.4.dist-info}/WHEEL +0 -0
- {connectonion-0.6.2.dist-info → connectonion-0.6.4.dist-info}/entry_points.txt +0 -0
|
@@ -0,0 +1,370 @@
|
|
|
1
|
+
# Microsoft Integration (co auth microsoft)
|
|
2
|
+
|
|
3
|
+
> Send emails via Outlook and read calendar events from your AI agents. 30-second setup.
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## Quick Start
|
|
8
|
+
|
|
9
|
+
```bash
|
|
10
|
+
co auth microsoft
|
|
11
|
+
```
|
|
12
|
+
|
|
13
|
+
What happens:
|
|
14
|
+
1. Clears any existing Microsoft connection (allows switching accounts)
|
|
15
|
+
2. Opens browser to Microsoft OAuth consent screen
|
|
16
|
+
3. You authorize Mail + Calendar permissions
|
|
17
|
+
4. Credentials saved to `.env` (both local and global `~/.co/keys.env`)
|
|
18
|
+
5. Ready to use Outlook and Microsoft Calendar tools immediately
|
|
19
|
+
|
|
20
|
+
**That's it.** Your agents can now send emails via Outlook and read your Microsoft calendar.
|
|
21
|
+
|
|
22
|
+
**Switching accounts?** Just run `co auth microsoft` again - it will clear the old connection and let you pick a new Microsoft account.
|
|
23
|
+
|
|
24
|
+
---
|
|
25
|
+
|
|
26
|
+
## Prerequisites
|
|
27
|
+
|
|
28
|
+
Before running `co auth microsoft`, you must authenticate with OpenOnion:
|
|
29
|
+
|
|
30
|
+
```bash
|
|
31
|
+
co auth
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
This creates your `OPENONION_API_KEY` which is required for Microsoft OAuth to work.
|
|
35
|
+
|
|
36
|
+
---
|
|
37
|
+
|
|
38
|
+
## What Gets Saved
|
|
39
|
+
|
|
40
|
+
After successful authentication, your `.env` file contains:
|
|
41
|
+
|
|
42
|
+
```bash
|
|
43
|
+
# Microsoft OAuth Credentials
|
|
44
|
+
MICROSOFT_ACCESS_TOKEN=eyJ0eXAi...
|
|
45
|
+
MICROSOFT_REFRESH_TOKEN=0.ATcA...
|
|
46
|
+
MICROSOFT_TOKEN_EXPIRES_AT=2025-12-31T23:59:59
|
|
47
|
+
MICROSOFT_SCOPES=Mail.Read,Mail.Send,Calendars.Read,Calendars.ReadWrite
|
|
48
|
+
MICROSOFT_EMAIL=your.email@outlook.com
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
**Security notes:**
|
|
52
|
+
- Credentials are saved to both local `.env` and `~/.co/keys.env`
|
|
53
|
+
- File permissions set to `0600` (read/write for owner only) on Unix systems
|
|
54
|
+
- Access tokens expire, but refresh tokens allow automatic renewal
|
|
55
|
+
- You can revoke access anytime via Microsoft Account settings
|
|
56
|
+
|
|
57
|
+
---
|
|
58
|
+
|
|
59
|
+
## Permissions Requested
|
|
60
|
+
|
|
61
|
+
When you run `co auth microsoft`, we request these Microsoft Graph API scopes:
|
|
62
|
+
|
|
63
|
+
| Scope | Purpose | What agents can do |
|
|
64
|
+
|-------|---------|-------------------|
|
|
65
|
+
| `Mail.Read` | Read user emails | Read inbox, search emails |
|
|
66
|
+
| `Mail.Send` | Send emails on your behalf | Send emails via Outlook |
|
|
67
|
+
| `Calendars.Read` | Read calendar events | Read your calendar to check availability |
|
|
68
|
+
| `Calendars.ReadWrite` | Create/modify calendar events | Create and update events |
|
|
69
|
+
| `User.Read` | Get your profile | Identify which Microsoft account is connected |
|
|
70
|
+
| `offline_access` | Refresh tokens | Keep credentials working without re-auth |
|
|
71
|
+
|
|
72
|
+
**Privacy**: We only request the permissions needed. We cannot:
|
|
73
|
+
- Delete your emails
|
|
74
|
+
- Access your OneDrive or other services
|
|
75
|
+
- Access your contacts beyond basic profile
|
|
76
|
+
|
|
77
|
+
---
|
|
78
|
+
|
|
79
|
+
## Using Microsoft OAuth in Agents
|
|
80
|
+
|
|
81
|
+
Once authenticated, your agents can use Microsoft-powered tools:
|
|
82
|
+
|
|
83
|
+
### Send Email via Outlook
|
|
84
|
+
|
|
85
|
+
```python
|
|
86
|
+
from connectonion import Agent, Outlook
|
|
87
|
+
|
|
88
|
+
outlook = Outlook()
|
|
89
|
+
|
|
90
|
+
agent = Agent(
|
|
91
|
+
"Outlook Assistant",
|
|
92
|
+
tools=[outlook]
|
|
93
|
+
)
|
|
94
|
+
|
|
95
|
+
agent.input("Send an email to alice@example.com saying hello")
|
|
96
|
+
```
|
|
97
|
+
|
|
98
|
+
### Read Calendar Events
|
|
99
|
+
|
|
100
|
+
```python
|
|
101
|
+
from connectonion import Agent, MicrosoftCalendar
|
|
102
|
+
|
|
103
|
+
calendar = MicrosoftCalendar()
|
|
104
|
+
|
|
105
|
+
agent = Agent(
|
|
106
|
+
"Calendar Assistant",
|
|
107
|
+
tools=[calendar]
|
|
108
|
+
)
|
|
109
|
+
|
|
110
|
+
agent.input("What's on my calendar this week?")
|
|
111
|
+
```
|
|
112
|
+
|
|
113
|
+
---
|
|
114
|
+
|
|
115
|
+
## Outlook Tool Methods
|
|
116
|
+
|
|
117
|
+
The `Outlook` tool provides these capabilities:
|
|
118
|
+
|
|
119
|
+
```python
|
|
120
|
+
from connectonion import Outlook
|
|
121
|
+
|
|
122
|
+
outlook = Outlook()
|
|
123
|
+
|
|
124
|
+
# Reading emails
|
|
125
|
+
outlook.read_inbox(last=10, unread=False) # Get recent inbox emails
|
|
126
|
+
outlook.get_sent_emails(max_results=10) # Get sent emails
|
|
127
|
+
outlook.search_emails("quarterly report") # Search all emails
|
|
128
|
+
outlook.get_email_body(email_id) # Get full email content
|
|
129
|
+
|
|
130
|
+
# Sending emails
|
|
131
|
+
outlook.send(to="alice@example.com", subject="Hello", body="Hi there!")
|
|
132
|
+
outlook.send(to="alice@example.com", subject="Hello", body="Hi!", cc="bob@example.com")
|
|
133
|
+
outlook.reply(email_id, body="Thanks for your message")
|
|
134
|
+
|
|
135
|
+
# Actions
|
|
136
|
+
outlook.mark_read(email_id) # Mark email as read
|
|
137
|
+
outlook.mark_unread(email_id) # Mark email as unread
|
|
138
|
+
outlook.archive_email(email_id) # Move to archive folder
|
|
139
|
+
|
|
140
|
+
# Stats
|
|
141
|
+
outlook.count_unread() # Count unread emails in inbox
|
|
142
|
+
outlook.get_my_email() # Get connected Microsoft email address
|
|
143
|
+
```
|
|
144
|
+
|
|
145
|
+
---
|
|
146
|
+
|
|
147
|
+
## Microsoft Calendar Tool Methods
|
|
148
|
+
|
|
149
|
+
The `MicrosoftCalendar` tool provides:
|
|
150
|
+
|
|
151
|
+
```python
|
|
152
|
+
from connectonion import MicrosoftCalendar
|
|
153
|
+
|
|
154
|
+
calendar = MicrosoftCalendar()
|
|
155
|
+
|
|
156
|
+
# Reading events
|
|
157
|
+
calendar.list_events(days_ahead=7, max_results=20) # Get upcoming events
|
|
158
|
+
calendar.get_today_events() # Get today's events
|
|
159
|
+
calendar.get_event(event_id) # Get event details
|
|
160
|
+
|
|
161
|
+
# Creating events
|
|
162
|
+
calendar.create_event(
|
|
163
|
+
title="Team Meeting",
|
|
164
|
+
start_time="2025-01-15 14:00",
|
|
165
|
+
end_time="2025-01-15 15:00",
|
|
166
|
+
description="Weekly sync",
|
|
167
|
+
attendees="alice@example.com,bob@example.com",
|
|
168
|
+
location="Conference Room A"
|
|
169
|
+
)
|
|
170
|
+
|
|
171
|
+
# Create Teams meeting (with auto-generated meeting link)
|
|
172
|
+
calendar.create_teams_meeting(
|
|
173
|
+
title="Project Sync",
|
|
174
|
+
start_time="2025-01-15 14:00",
|
|
175
|
+
end_time="2025-01-15 15:00",
|
|
176
|
+
attendees="alice@example.com,bob@example.com"
|
|
177
|
+
)
|
|
178
|
+
|
|
179
|
+
# Updating & deleting
|
|
180
|
+
calendar.update_event(event_id, title="Updated Title")
|
|
181
|
+
calendar.delete_event(event_id)
|
|
182
|
+
|
|
183
|
+
# Meetings & availability
|
|
184
|
+
calendar.get_upcoming_meetings(days_ahead=7) # Get events with attendees
|
|
185
|
+
calendar.find_free_slots("2025-01-15", duration_minutes=60) # Find free time
|
|
186
|
+
calendar.check_availability("2025-01-15 14:00") # Check if specific time is free
|
|
187
|
+
```
|
|
188
|
+
|
|
189
|
+
---
|
|
190
|
+
|
|
191
|
+
## Troubleshooting
|
|
192
|
+
|
|
193
|
+
### "Not authenticated with OpenOnion"
|
|
194
|
+
|
|
195
|
+
You need to run `co auth` first to get your `OPENONION_API_KEY`:
|
|
196
|
+
|
|
197
|
+
```bash
|
|
198
|
+
co auth
|
|
199
|
+
co auth microsoft
|
|
200
|
+
```
|
|
201
|
+
|
|
202
|
+
### Authorization Timeout
|
|
203
|
+
|
|
204
|
+
If the browser window doesn't complete authorization within 5 minutes:
|
|
205
|
+
|
|
206
|
+
```bash
|
|
207
|
+
# Try again
|
|
208
|
+
co auth microsoft
|
|
209
|
+
```
|
|
210
|
+
|
|
211
|
+
### Access Denied / User Cancelled
|
|
212
|
+
|
|
213
|
+
If you click "Cancel" on the Microsoft consent screen:
|
|
214
|
+
|
|
215
|
+
```bash
|
|
216
|
+
# Just run it again when ready
|
|
217
|
+
co auth microsoft
|
|
218
|
+
```
|
|
219
|
+
|
|
220
|
+
### Credentials Not Working
|
|
221
|
+
|
|
222
|
+
Check if credentials are properly saved:
|
|
223
|
+
|
|
224
|
+
```bash
|
|
225
|
+
# Check local .env
|
|
226
|
+
cat .env | grep MICROSOFT_
|
|
227
|
+
|
|
228
|
+
# Check global keys
|
|
229
|
+
cat ~/.co/keys.env | grep MICROSOFT_
|
|
230
|
+
```
|
|
231
|
+
|
|
232
|
+
If credentials exist but don't work, re-authenticate:
|
|
233
|
+
|
|
234
|
+
```bash
|
|
235
|
+
co auth microsoft
|
|
236
|
+
```
|
|
237
|
+
|
|
238
|
+
### Switch Microsoft Account
|
|
239
|
+
|
|
240
|
+
To use a different Microsoft account:
|
|
241
|
+
|
|
242
|
+
```bash
|
|
243
|
+
co auth microsoft
|
|
244
|
+
```
|
|
245
|
+
|
|
246
|
+
This automatically clears the old connection before starting a new OAuth flow.
|
|
247
|
+
|
|
248
|
+
### Revoke Access
|
|
249
|
+
|
|
250
|
+
To disconnect your Microsoft account:
|
|
251
|
+
|
|
252
|
+
1. Via Microsoft Account Settings:
|
|
253
|
+
- Go to https://account.live.com/consent/Manage
|
|
254
|
+
- Find "OpenOnion" and click "Remove"
|
|
255
|
+
|
|
256
|
+
2. Manually remove credentials:
|
|
257
|
+
```bash
|
|
258
|
+
# Remove from local .env
|
|
259
|
+
sed -i '' '/^MICROSOFT_/d' .env
|
|
260
|
+
|
|
261
|
+
# Remove from global keys
|
|
262
|
+
sed -i '' '/^MICROSOFT_/d' ~/.co/keys.env
|
|
263
|
+
```
|
|
264
|
+
|
|
265
|
+
---
|
|
266
|
+
|
|
267
|
+
## Environment Variables Reference
|
|
268
|
+
|
|
269
|
+
After running `co auth microsoft`, these variables are available:
|
|
270
|
+
|
|
271
|
+
```bash
|
|
272
|
+
MICROSOFT_ACCESS_TOKEN # Short-lived token for API calls (expires in 1 hour)
|
|
273
|
+
MICROSOFT_REFRESH_TOKEN # Long-lived token for getting new access tokens
|
|
274
|
+
MICROSOFT_TOKEN_EXPIRES_AT # ISO timestamp when access token expires
|
|
275
|
+
MICROSOFT_SCOPES # Comma-separated list of granted scopes
|
|
276
|
+
MICROSOFT_EMAIL # Your Microsoft account email address
|
|
277
|
+
```
|
|
278
|
+
|
|
279
|
+
**Usage in code:**
|
|
280
|
+
|
|
281
|
+
```python
|
|
282
|
+
import os
|
|
283
|
+
|
|
284
|
+
# Check if Microsoft OAuth is configured
|
|
285
|
+
if os.getenv("MICROSOFT_ACCESS_TOKEN"):
|
|
286
|
+
print(f"Connected as: {os.getenv('MICROSOFT_EMAIL')}")
|
|
287
|
+
else:
|
|
288
|
+
print("Not connected. Run: co auth microsoft")
|
|
289
|
+
```
|
|
290
|
+
|
|
291
|
+
---
|
|
292
|
+
|
|
293
|
+
## How It Works
|
|
294
|
+
|
|
295
|
+
Behind the scenes, `co auth microsoft`:
|
|
296
|
+
|
|
297
|
+
1. **Clears existing connection**: Calls `/api/v1/oauth/microsoft/revoke` to remove old credentials
|
|
298
|
+
2. **Initiates OAuth flow**: Calls `/api/v1/oauth/microsoft/init` with your `OPENONION_API_KEY`
|
|
299
|
+
3. **Opens browser**: Launches Microsoft's OAuth consent screen with required scopes
|
|
300
|
+
4. **Polls for completion**: Checks `/api/v1/oauth/microsoft/status` every 5 seconds
|
|
301
|
+
5. **Retrieves credentials**: Gets tokens from `/api/v1/oauth/microsoft/credentials`
|
|
302
|
+
6. **Saves locally**: Writes credentials to `.env` files with secure permissions
|
|
303
|
+
|
|
304
|
+
The backend handles:
|
|
305
|
+
- OAuth 2.0 authorization code flow
|
|
306
|
+
- Token refresh logic via Microsoft Graph API
|
|
307
|
+
- Secure storage of credentials
|
|
308
|
+
- Association with your OpenOnion account
|
|
309
|
+
|
|
310
|
+
---
|
|
311
|
+
|
|
312
|
+
## Comparison: Google vs Microsoft
|
|
313
|
+
|
|
314
|
+
| Feature | Google (`co auth google`) | Microsoft (`co auth microsoft`) |
|
|
315
|
+
|---------|--------------------------|--------------------------------|
|
|
316
|
+
| Email | Gmail | Outlook |
|
|
317
|
+
| Calendar | Google Calendar | Microsoft Calendar |
|
|
318
|
+
| API | Google APIs | Microsoft Graph API |
|
|
319
|
+
| Scopes | gmail.send, calendar | Mail.Read, Mail.Send, Calendars.* |
|
|
320
|
+
| Token endpoint | oauth2.googleapis.com | login.microsoftonline.com |
|
|
321
|
+
|
|
322
|
+
Both follow the same CLI pattern and save credentials in the same format.
|
|
323
|
+
|
|
324
|
+
---
|
|
325
|
+
|
|
326
|
+
## Security Best Practices
|
|
327
|
+
|
|
328
|
+
1. **Never commit `.env` files**: Add to `.gitignore`
|
|
329
|
+
```bash
|
|
330
|
+
echo ".env" >> .gitignore
|
|
331
|
+
```
|
|
332
|
+
|
|
333
|
+
2. **Use environment-specific credentials**:
|
|
334
|
+
- Development: Use test Microsoft account
|
|
335
|
+
- Production: Use production account
|
|
336
|
+
|
|
337
|
+
3. **Regularly rotate credentials**:
|
|
338
|
+
```bash
|
|
339
|
+
# Re-authenticate every few months
|
|
340
|
+
co auth microsoft
|
|
341
|
+
```
|
|
342
|
+
|
|
343
|
+
4. **Monitor usage**: Check your Microsoft Account activity regularly
|
|
344
|
+
|
|
345
|
+
5. **Revoke when done**: If you stop using a project, revoke access
|
|
346
|
+
|
|
347
|
+
---
|
|
348
|
+
|
|
349
|
+
## Related
|
|
350
|
+
|
|
351
|
+
- [Google Integration](google.md) - Gmail and Google Calendar integration
|
|
352
|
+
- [CLI Auth](../cli/auth.md) - Authenticate with OpenOnion first
|
|
353
|
+
- [Global .co Directory](../co-directory-structure.md) - Where credentials are stored
|
|
354
|
+
|
|
355
|
+
---
|
|
356
|
+
|
|
357
|
+
## Privacy Policy & Terms
|
|
358
|
+
|
|
359
|
+
By using `co auth microsoft`, you agree to:
|
|
360
|
+
- [OpenOnion Privacy Policy](https://o.openonion.ai/privacy)
|
|
361
|
+
- [OpenOnion Terms of Service](https://o.openonion.ai/terms)
|
|
362
|
+
- [Microsoft APIs Terms of Use](https://docs.microsoft.com/en-us/legal/microsoft-apis/terms-of-use)
|
|
363
|
+
|
|
364
|
+
We only use your Microsoft data for the purposes you authorize. We never:
|
|
365
|
+
- Sell your data
|
|
366
|
+
- Share with third parties (except Microsoft)
|
|
367
|
+
- Store more than necessary
|
|
368
|
+
- Access data beyond requested scopes
|
|
369
|
+
|
|
370
|
+
You can revoke access at any time.
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
# Multi-Agent Networking
|
|
2
|
+
|
|
3
|
+
Connect and collaborate between agents.
|
|
4
|
+
|
|
5
|
+
## Core Concepts
|
|
6
|
+
|
|
7
|
+
- [host.md](host.md) - Make agents network-accessible with `host()`
|
|
8
|
+
- [connect.md](connect.md) - Connect to remote agents with `connect()`
|
|
9
|
+
- [connection.md](connection.md) - Stream events and communicate with clients
|
|
10
|
+
|
|
11
|
+
## Protocol Specifications
|
|
12
|
+
|
|
13
|
+
- [protocol/agent-relay-protocol.md](protocol/agent-relay-protocol.md) - Agent relay protocol spec
|
|
14
|
+
- [protocol/announce-message.md](protocol/announce-message.md) - Service announcement protocol
|