connectonion 0.6.2__py3-none-any.whl → 0.6.3__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 +6 -0
- connectonion/cli/co_ai/plugins/reminder.py +76 -0
- connectonion/cli/co_ai/plugins/shell_approval.py +105 -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/reminders/plan_mode.md +34 -0
- connectonion/cli/co_ai/prompts/summarization.md +55 -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/reminders.py +159 -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 +172 -0
- connectonion/cli/co_ai/tools/read.py +67 -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 +100 -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_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 +2 -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/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.3.dist-info}/METADATA +10 -3
- connectonion-0.6.3.dist-info/RECORD +469 -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.3.dist-info}/WHEEL +0 -0
- {connectonion-0.6.2.dist-info → connectonion-0.6.3.dist-info}/entry_points.txt +0 -0
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
# Dropdown
|
|
2
|
+
|
|
3
|
+
Selection list component for autocomplete menus.
|
|
4
|
+
|
|
5
|
+
## Quick Start
|
|
6
|
+
|
|
7
|
+
```python
|
|
8
|
+
from connectonion.tui import Dropdown, DropdownItem
|
|
9
|
+
|
|
10
|
+
# Create items
|
|
11
|
+
items = [
|
|
12
|
+
DropdownItem(display="/today", value="/today", description="Daily briefing"),
|
|
13
|
+
DropdownItem(display="/inbox", value="/inbox", description="Show emails"),
|
|
14
|
+
]
|
|
15
|
+
|
|
16
|
+
# Create dropdown
|
|
17
|
+
dropdown = Dropdown(items, max_visible=5, style="modern")
|
|
18
|
+
```
|
|
19
|
+
|
|
20
|
+
## DropdownItem
|
|
21
|
+
|
|
22
|
+
Structured item with rich metadata.
|
|
23
|
+
|
|
24
|
+
```python
|
|
25
|
+
from connectonion.tui import DropdownItem
|
|
26
|
+
|
|
27
|
+
# Simple item
|
|
28
|
+
item = DropdownItem(display="/today", value="/today")
|
|
29
|
+
|
|
30
|
+
# With description
|
|
31
|
+
item = DropdownItem(
|
|
32
|
+
display="/today",
|
|
33
|
+
value="/today",
|
|
34
|
+
description="Daily email briefing",
|
|
35
|
+
icon="📅"
|
|
36
|
+
)
|
|
37
|
+
|
|
38
|
+
# Contact style
|
|
39
|
+
item = DropdownItem(
|
|
40
|
+
display="Davis Baer",
|
|
41
|
+
value="davis@oneupapp.io",
|
|
42
|
+
description="davis@oneupapp.io",
|
|
43
|
+
subtitle="OneUp · founder",
|
|
44
|
+
icon="👤"
|
|
45
|
+
)
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
## API
|
|
49
|
+
|
|
50
|
+
### DropdownItem
|
|
51
|
+
|
|
52
|
+
```python
|
|
53
|
+
DropdownItem(
|
|
54
|
+
display: str, # Main text to show
|
|
55
|
+
value: Any, # Value returned when selected
|
|
56
|
+
score: int = 0, # Match score for sorting
|
|
57
|
+
positions: list = [], # Matched char positions (for highlighting)
|
|
58
|
+
description: str = "", # Secondary text
|
|
59
|
+
subtitle: str = "", # Third line
|
|
60
|
+
icon: str = "", # Left icon (emoji)
|
|
61
|
+
style: str = "", # Rich style
|
|
62
|
+
)
|
|
63
|
+
```
|
|
64
|
+
|
|
65
|
+
### Dropdown
|
|
66
|
+
|
|
67
|
+
```python
|
|
68
|
+
Dropdown(
|
|
69
|
+
items: list[DropdownItem],
|
|
70
|
+
max_visible: int = 8,
|
|
71
|
+
selected: int = 0,
|
|
72
|
+
style: str = "modern",
|
|
73
|
+
)
|
|
74
|
+
```
|
|
75
|
+
|
|
76
|
+
## File Icons
|
|
77
|
+
|
|
78
|
+
Built-in icons for common file types:
|
|
79
|
+
- 📁 folder
|
|
80
|
+
- 📄 file (default)
|
|
81
|
+
- 🐍 .py
|
|
82
|
+
- 📜 .js, .ts
|
|
83
|
+
- ⚙️ .json, .yaml
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
# Footer
|
|
2
|
+
|
|
3
|
+
Simple footer with tips/hints display.
|
|
4
|
+
|
|
5
|
+
## Quick Start
|
|
6
|
+
|
|
7
|
+
```python
|
|
8
|
+
from connectonion.tui import Footer
|
|
9
|
+
from rich.console import Console
|
|
10
|
+
|
|
11
|
+
console = Console()
|
|
12
|
+
|
|
13
|
+
footer = Footer(["? help", "/ commands", "@ contacts"])
|
|
14
|
+
console.print(footer.render())
|
|
15
|
+
```
|
|
16
|
+
|
|
17
|
+
## Output
|
|
18
|
+
|
|
19
|
+
```
|
|
20
|
+
? help / commands @ contacts
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
## API
|
|
24
|
+
|
|
25
|
+
```python
|
|
26
|
+
Footer(tips: list[str])
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
### Methods
|
|
30
|
+
|
|
31
|
+
```python
|
|
32
|
+
footer.render() -> Text # Returns Rich Text object
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
## Usage with Input
|
|
36
|
+
|
|
37
|
+
```python
|
|
38
|
+
from connectonion.tui import Input, Footer
|
|
39
|
+
|
|
40
|
+
# Footer tips shown below input
|
|
41
|
+
text = Input(
|
|
42
|
+
hints=["? help", "/ commands", "Enter submit"]
|
|
43
|
+
).run()
|
|
44
|
+
```
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
# fuzzy
|
|
2
|
+
|
|
3
|
+
Fuzzy matching utilities for autocomplete.
|
|
4
|
+
|
|
5
|
+
## Quick Start
|
|
6
|
+
|
|
7
|
+
```python
|
|
8
|
+
from connectonion.tui import fuzzy_match, highlight_match
|
|
9
|
+
|
|
10
|
+
# Check if query matches text
|
|
11
|
+
matched, score, positions = fuzzy_match("gp", "gpt-4")
|
|
12
|
+
# matched: True
|
|
13
|
+
# score: 16 (higher = better)
|
|
14
|
+
# positions: [0, 1] (matched char indices)
|
|
15
|
+
```
|
|
16
|
+
|
|
17
|
+
## fuzzy_match
|
|
18
|
+
|
|
19
|
+
Match query against text with scoring.
|
|
20
|
+
|
|
21
|
+
```python
|
|
22
|
+
from connectonion.tui import fuzzy_match
|
|
23
|
+
|
|
24
|
+
matched, score, positions = fuzzy_match(query, text)
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
### Scoring
|
|
28
|
+
|
|
29
|
+
- **+1** per matched character
|
|
30
|
+
- **+10** consecutive character bonus
|
|
31
|
+
- **+5** word boundary bonus (after `/_-. `)
|
|
32
|
+
|
|
33
|
+
### Examples
|
|
34
|
+
|
|
35
|
+
```python
|
|
36
|
+
fuzzy_match("gp", "gpt-4") # (True, 16, [0, 1])
|
|
37
|
+
fuzzy_match("g4", "gpt-4") # (True, 7, [0, 4])
|
|
38
|
+
fuzzy_match("xyz", "gpt-4") # (False, 0, [])
|
|
39
|
+
fuzzy_match("", "anything") # (True, 0, [])
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
## highlight_match
|
|
43
|
+
|
|
44
|
+
Highlight matched characters in Rich Text.
|
|
45
|
+
|
|
46
|
+
```python
|
|
47
|
+
from connectonion.tui import highlight_match
|
|
48
|
+
from rich.console import Console
|
|
49
|
+
|
|
50
|
+
console = Console()
|
|
51
|
+
|
|
52
|
+
# Get match positions
|
|
53
|
+
matched, score, positions = fuzzy_match("gp", "gpt-4")
|
|
54
|
+
|
|
55
|
+
# Create highlighted text
|
|
56
|
+
text = highlight_match("gpt-4", positions)
|
|
57
|
+
console.print(text) # "gp" highlighted in magenta
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
## API
|
|
61
|
+
|
|
62
|
+
```python
|
|
63
|
+
fuzzy_match(query: str, text: str) -> tuple[bool, int, list[int]]
|
|
64
|
+
# Returns: (matched, score, positions)
|
|
65
|
+
|
|
66
|
+
highlight_match(text: str, positions: list[int]) -> Text
|
|
67
|
+
# Returns: Rich Text with matched chars highlighted
|
|
68
|
+
```
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
# Input
|
|
2
|
+
|
|
3
|
+
Smart text input with trigger-based autocomplete.
|
|
4
|
+
|
|
5
|
+
## Quick Start
|
|
6
|
+
|
|
7
|
+
```python
|
|
8
|
+
from connectonion.tui import Input
|
|
9
|
+
|
|
10
|
+
# Simple input
|
|
11
|
+
text = Input().run()
|
|
12
|
+
|
|
13
|
+
# With file autocomplete
|
|
14
|
+
from connectonion.tui import FileProvider
|
|
15
|
+
text = Input(triggers={"@": FileProvider()}).run()
|
|
16
|
+
```
|
|
17
|
+
|
|
18
|
+
## Features
|
|
19
|
+
|
|
20
|
+
### Trigger Autocomplete
|
|
21
|
+
|
|
22
|
+
```python
|
|
23
|
+
from connectonion.tui import Input, FileProvider, StaticProvider
|
|
24
|
+
|
|
25
|
+
# @ triggers file browser
|
|
26
|
+
text = Input(triggers={"@": FileProvider()}).run()
|
|
27
|
+
# User types: "edit @src/" → shows file dropdown
|
|
28
|
+
|
|
29
|
+
# / triggers command palette
|
|
30
|
+
commands = StaticProvider([("/today", "/today"), ("/inbox", "/inbox")])
|
|
31
|
+
text = Input(triggers={"/": commands}).run()
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
### Hints and Tips
|
|
35
|
+
|
|
36
|
+
```python
|
|
37
|
+
text = Input(
|
|
38
|
+
hints=["/ commands", "@ files", "Enter submit"],
|
|
39
|
+
tips=["Try /today for briefing", "Join Discord!"],
|
|
40
|
+
divider=True,
|
|
41
|
+
).run()
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
## API
|
|
45
|
+
|
|
46
|
+
```python
|
|
47
|
+
Input(
|
|
48
|
+
prompt: str = None, # Custom prompt text
|
|
49
|
+
triggers: dict = None, # {char: Provider} for autocomplete
|
|
50
|
+
hints: list[str] = None, # Always-visible hints
|
|
51
|
+
tips: list[str] = None, # Rotating tips
|
|
52
|
+
divider: bool = False, # Add horizontal dividers
|
|
53
|
+
max_visible: int = 8, # Max dropdown items
|
|
54
|
+
console: Console = None,
|
|
55
|
+
style: str = "modern", # "modern", "minimal", "classic"
|
|
56
|
+
).run() -> str
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
## Styles
|
|
60
|
+
|
|
61
|
+
- **modern** - Magenta prompt, clean design
|
|
62
|
+
- **minimal** - Bare bones, no decorations
|
|
63
|
+
- **classic** - Traditional input style
|
|
64
|
+
|
|
65
|
+
## Keyboard Shortcuts
|
|
66
|
+
|
|
67
|
+
| Key | Action |
|
|
68
|
+
|-----|--------|
|
|
69
|
+
| `Enter` | Submit input or accept selection |
|
|
70
|
+
| `Tab` | Accept autocomplete selection |
|
|
71
|
+
| `Escape` | Cancel autocomplete |
|
|
72
|
+
| `↑` / `↓` | Navigate dropdown |
|
|
73
|
+
| `Ctrl+C` | Cancel input |
|
|
74
|
+
| `Ctrl+D` | Exit |
|
|
75
|
+
|
|
76
|
+
## Paste Handling
|
|
77
|
+
|
|
78
|
+
Input uses **bracketed paste mode** for reliable paste detection:
|
|
79
|
+
|
|
80
|
+
- Pasted text is handled atomically (no display glitches)
|
|
81
|
+
- Works with any terminal that supports bracketed paste
|
|
82
|
+
- Automatically enabled/disabled during input
|
|
83
|
+
|
|
84
|
+
This prevents the common issue of pasted text causing multiple prompt lines or character loss.
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
# keys
|
|
2
|
+
|
|
3
|
+
Low-level keyboard input primitives.
|
|
4
|
+
|
|
5
|
+
## Quick Start
|
|
6
|
+
|
|
7
|
+
```python
|
|
8
|
+
from connectonion.tui import getch, read_key
|
|
9
|
+
|
|
10
|
+
# Read single character
|
|
11
|
+
ch = getch() # Blocks until keypress
|
|
12
|
+
|
|
13
|
+
# Read key with arrow handling
|
|
14
|
+
key = read_key() # Returns 'up', 'down', etc.
|
|
15
|
+
```
|
|
16
|
+
|
|
17
|
+
## getch
|
|
18
|
+
|
|
19
|
+
Read single character without waiting for Enter.
|
|
20
|
+
|
|
21
|
+
```python
|
|
22
|
+
from connectonion.tui import getch
|
|
23
|
+
|
|
24
|
+
ch = getch()
|
|
25
|
+
# Returns: 'a', '1', '\n', etc.
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
Works on both Unix (termios) and Windows (msvcrt).
|
|
29
|
+
|
|
30
|
+
## read_key
|
|
31
|
+
|
|
32
|
+
Read key with arrow/escape sequence handling.
|
|
33
|
+
|
|
34
|
+
```python
|
|
35
|
+
from connectonion.tui import read_key
|
|
36
|
+
|
|
37
|
+
key = read_key()
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
### Return Values
|
|
41
|
+
|
|
42
|
+
| Input | Returns |
|
|
43
|
+
|-------|---------|
|
|
44
|
+
| Arrow Up | `'up'` |
|
|
45
|
+
| Arrow Down | `'down'` |
|
|
46
|
+
| Arrow Left | `'left'` |
|
|
47
|
+
| Arrow Right | `'right'` |
|
|
48
|
+
| Escape | `'esc'` |
|
|
49
|
+
| Enter | `'\n'` or `'\r'` |
|
|
50
|
+
| Regular char | The character |
|
|
51
|
+
|
|
52
|
+
## Example: Navigation Loop
|
|
53
|
+
|
|
54
|
+
```python
|
|
55
|
+
from connectonion.tui import read_key
|
|
56
|
+
|
|
57
|
+
selected = 0
|
|
58
|
+
options = ["Option A", "Option B", "Option C"]
|
|
59
|
+
|
|
60
|
+
while True:
|
|
61
|
+
key = read_key()
|
|
62
|
+
|
|
63
|
+
if key == 'up':
|
|
64
|
+
selected = max(0, selected - 1)
|
|
65
|
+
elif key == 'down':
|
|
66
|
+
selected = min(len(options) - 1, selected + 1)
|
|
67
|
+
elif key == '\n':
|
|
68
|
+
break # Selected
|
|
69
|
+
elif key == 'esc':
|
|
70
|
+
selected = -1
|
|
71
|
+
break # Cancelled
|
|
72
|
+
```
|
|
73
|
+
|
|
74
|
+
## Platform Support
|
|
75
|
+
|
|
76
|
+
- **Unix/macOS**: Uses `termios` + `tty`
|
|
77
|
+
- **Windows**: Uses `msvcrt`
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
# pick
|
|
2
|
+
|
|
3
|
+
Single-select menu with keyboard navigation.
|
|
4
|
+
|
|
5
|
+
## Quick Start
|
|
6
|
+
|
|
7
|
+
```python
|
|
8
|
+
from connectonion.tui import pick
|
|
9
|
+
|
|
10
|
+
choice = pick("Pick a color", ["Red", "Green", "Blue"])
|
|
11
|
+
# Press 1 → "Red", 2 → "Green", 3 → "Blue"
|
|
12
|
+
# Or use arrow keys + Enter
|
|
13
|
+
```
|
|
14
|
+
|
|
15
|
+
## Options
|
|
16
|
+
|
|
17
|
+
### Simple List
|
|
18
|
+
|
|
19
|
+
```python
|
|
20
|
+
choice = pick("Select model", ["gpt-4", "claude-3", "gemini"])
|
|
21
|
+
# Returns: "gpt-4" (selected string)
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
### With Descriptions
|
|
25
|
+
|
|
26
|
+
```python
|
|
27
|
+
choice = pick("Send email?", [
|
|
28
|
+
("Yes, send it", "Send immediately"),
|
|
29
|
+
("Auto approve", "Skip approval for this recipient"),
|
|
30
|
+
("No", "Cancel"),
|
|
31
|
+
])
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
### With "Other" Option
|
|
35
|
+
|
|
36
|
+
```python
|
|
37
|
+
choice = pick("Continue?", ["Yes", "No"], other=True)
|
|
38
|
+
# Adds "Other..." option for custom text input
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
## Keyboard Controls
|
|
42
|
+
|
|
43
|
+
| Key | Action |
|
|
44
|
+
|-----|--------|
|
|
45
|
+
| ↑/↓ | Navigate |
|
|
46
|
+
| 1-9 | Jump to option |
|
|
47
|
+
| Enter | Confirm |
|
|
48
|
+
| Esc | Cancel |
|
|
49
|
+
|
|
50
|
+
## API
|
|
51
|
+
|
|
52
|
+
```python
|
|
53
|
+
pick(
|
|
54
|
+
title: str, # Question to display
|
|
55
|
+
options: list, # Strings or (label, description) tuples
|
|
56
|
+
other: bool = False, # Add "Other..." option
|
|
57
|
+
console: Console = None
|
|
58
|
+
) -> str # Returns selected label
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
## Example Output
|
|
62
|
+
|
|
63
|
+
```
|
|
64
|
+
Pick a color
|
|
65
|
+
|
|
66
|
+
❯ 1 Red
|
|
67
|
+
2 Green
|
|
68
|
+
3 Blue
|
|
69
|
+
|
|
70
|
+
↑↓ navigate 1-9 jump Enter select
|
|
71
|
+
```
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
# providers
|
|
2
|
+
|
|
3
|
+
Data providers for autocomplete in Input and CommandPalette.
|
|
4
|
+
|
|
5
|
+
## Quick Start
|
|
6
|
+
|
|
7
|
+
```python
|
|
8
|
+
from connectonion.tui import Input, FileProvider, StaticProvider
|
|
9
|
+
|
|
10
|
+
# File autocomplete
|
|
11
|
+
text = Input(triggers={"@": FileProvider()}).run()
|
|
12
|
+
|
|
13
|
+
# Command autocomplete
|
|
14
|
+
commands = StaticProvider([
|
|
15
|
+
("/today", "/today", "Daily briefing"),
|
|
16
|
+
("/inbox", "/inbox", "Show emails"),
|
|
17
|
+
])
|
|
18
|
+
text = Input(triggers={"/": commands}).run()
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
## StaticProvider
|
|
22
|
+
|
|
23
|
+
Provider for static list of items.
|
|
24
|
+
|
|
25
|
+
```python
|
|
26
|
+
from connectonion.tui import StaticProvider
|
|
27
|
+
|
|
28
|
+
# Simple (display, value)
|
|
29
|
+
provider = StaticProvider([
|
|
30
|
+
("/today", "/today"),
|
|
31
|
+
("/inbox", "/inbox"),
|
|
32
|
+
])
|
|
33
|
+
|
|
34
|
+
# With descriptions
|
|
35
|
+
provider = StaticProvider([
|
|
36
|
+
("/today", "/today", "Daily email briefing"),
|
|
37
|
+
("/inbox", "/inbox", "Show recent emails"),
|
|
38
|
+
])
|
|
39
|
+
|
|
40
|
+
# With icons
|
|
41
|
+
provider = StaticProvider([
|
|
42
|
+
("/today", "/today", "Daily briefing", "📅"),
|
|
43
|
+
("/inbox", "/inbox", "Show emails", "📥"),
|
|
44
|
+
])
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
## FileProvider
|
|
48
|
+
|
|
49
|
+
Provider for filesystem autocomplete.
|
|
50
|
+
|
|
51
|
+
```python
|
|
52
|
+
from connectonion.tui import FileProvider
|
|
53
|
+
|
|
54
|
+
# Default: current directory
|
|
55
|
+
provider = FileProvider()
|
|
56
|
+
|
|
57
|
+
# Custom root
|
|
58
|
+
provider = FileProvider(root="src/")
|
|
59
|
+
|
|
60
|
+
# Results include:
|
|
61
|
+
# - Folders with 📁 icon
|
|
62
|
+
# - Files with type-specific icons
|
|
63
|
+
# - Fuzzy matched against query
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
## Custom Provider
|
|
67
|
+
|
|
68
|
+
Implement the Provider protocol:
|
|
69
|
+
|
|
70
|
+
```python
|
|
71
|
+
from connectonion.tui import DropdownItem
|
|
72
|
+
|
|
73
|
+
class MyProvider:
|
|
74
|
+
def search(self, query: str) -> list[DropdownItem]:
|
|
75
|
+
# Return matching items
|
|
76
|
+
return [
|
|
77
|
+
DropdownItem(display="Result", value="result"),
|
|
78
|
+
]
|
|
79
|
+
```
|
|
80
|
+
|
|
81
|
+
## Provider Protocol
|
|
82
|
+
|
|
83
|
+
```python
|
|
84
|
+
class Provider(Protocol):
|
|
85
|
+
def search(self, query: str) -> list[DropdownItem]:
|
|
86
|
+
...
|
|
87
|
+
```
|
|
88
|
+
|
|
89
|
+
Returns list of `DropdownItem` or tuples `(display, value, score, positions)`.
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
# StatusBar
|
|
2
|
+
|
|
3
|
+
Powerline-style status bar with colored segments.
|
|
4
|
+
|
|
5
|
+
## Quick Start
|
|
6
|
+
|
|
7
|
+
```python
|
|
8
|
+
from connectonion.tui import StatusBar
|
|
9
|
+
from rich.console import Console
|
|
10
|
+
|
|
11
|
+
console = Console()
|
|
12
|
+
|
|
13
|
+
status = StatusBar([
|
|
14
|
+
("🤖", "co/gemini-2.5-pro", "magenta"),
|
|
15
|
+
("📊", "50%", "green"),
|
|
16
|
+
("", "main", "blue"),
|
|
17
|
+
])
|
|
18
|
+
console.print(status.render())
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
## Segments
|
|
22
|
+
|
|
23
|
+
### Text Segments
|
|
24
|
+
|
|
25
|
+
```python
|
|
26
|
+
# (icon, text, color)
|
|
27
|
+
segments = [
|
|
28
|
+
("🤖", "gpt-4", "magenta"),
|
|
29
|
+
("💰", "$0.02", "yellow"),
|
|
30
|
+
("", "main", "blue"),
|
|
31
|
+
]
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
### Progress Segments
|
|
35
|
+
|
|
36
|
+
```python
|
|
37
|
+
from connectonion.tui import StatusBar, ProgressSegment
|
|
38
|
+
|
|
39
|
+
status = StatusBar([
|
|
40
|
+
("🤖", "gpt-4", "magenta"),
|
|
41
|
+
ProgressSegment(percent=78, bg_color="green"),
|
|
42
|
+
])
|
|
43
|
+
# Output: 🤖 gpt-4 ████████░░ 78%
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
## ProgressSegment
|
|
47
|
+
|
|
48
|
+
```python
|
|
49
|
+
ProgressSegment(
|
|
50
|
+
percent: float, # 0-100, how much used
|
|
51
|
+
bg_color: str = "green",
|
|
52
|
+
width: int = 10,
|
|
53
|
+
show_percent: bool = True,
|
|
54
|
+
)
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
## Styles
|
|
58
|
+
|
|
59
|
+
- Uses powerline arrows for segment transitions
|
|
60
|
+
- Falls back to unicode on terminals without powerline fonts
|
|
61
|
+
- Works on both light and dark terminals
|
|
62
|
+
|
|
63
|
+
## Example Output
|
|
64
|
+
|
|
65
|
+
```
|
|
66
|
+
🤖 co/gemini-2.5-pro 📊 50% main
|
|
67
|
+
```
|