karox-runtime 5.0.0rc2__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- karox_runtime-5.0.0rc2/LICENSE +21 -0
- karox_runtime-5.0.0rc2/PKG-INFO +448 -0
- karox_runtime-5.0.0rc2/README.md +419 -0
- karox_runtime-5.0.0rc2/pyproject.toml +238 -0
- karox_runtime-5.0.0rc2/setup.cfg +4 -0
- karox_runtime-5.0.0rc2/src/karox/__init__.py +6 -0
- karox_runtime-5.0.0rc2/src/karox/access_mode.py +248 -0
- karox_runtime-5.0.0rc2/src/karox/action_execution.py +231 -0
- karox_runtime-5.0.0rc2/src/karox/action_policy.py +610 -0
- karox_runtime-5.0.0rc2/src/karox/activity_stream.py +439 -0
- karox_runtime-5.0.0rc2/src/karox/affected_checks.py +962 -0
- karox_runtime-5.0.0rc2/src/karox/agent.py +2576 -0
- karox_runtime-5.0.0rc2/src/karox/agent_mcp.py +92 -0
- karox_runtime-5.0.0rc2/src/karox/agent_modes.py +168 -0
- karox_runtime-5.0.0rc2/src/karox/agent_protocol.py +347 -0
- karox_runtime-5.0.0rc2/src/karox/artifacts.py +306 -0
- karox_runtime-5.0.0rc2/src/karox/autonomy_benchmark.py +1012 -0
- karox_runtime-5.0.0rc2/src/karox/autonomy_runtime.py +3207 -0
- karox_runtime-5.0.0rc2/src/karox/background_orchestration.py +344 -0
- karox_runtime-5.0.0rc2/src/karox/background_worker.py +58 -0
- karox_runtime-5.0.0rc2/src/karox/bridge.py +465 -0
- karox_runtime-5.0.0rc2/src/karox/bridge_handoff.py +185 -0
- karox_runtime-5.0.0rc2/src/karox/browser_access.py +1892 -0
- karox_runtime-5.0.0rc2/src/karox/browser_approval.py +451 -0
- karox_runtime-5.0.0rc2/src/karox/browser_bootstrap.py +218 -0
- karox_runtime-5.0.0rc2/src/karox/browser_credential_injection.py +128 -0
- karox_runtime-5.0.0rc2/src/karox/browser_credentials.py +224 -0
- karox_runtime-5.0.0rc2/src/karox/browser_errors.py +144 -0
- karox_runtime-5.0.0rc2/src/karox/browser_extension/__init__.py +1 -0
- karox_runtime-5.0.0rc2/src/karox/browser_extension/content.js +509 -0
- karox_runtime-5.0.0rc2/src/karox/browser_extension/dom_helpers.js +442 -0
- karox_runtime-5.0.0rc2/src/karox/browser_extension/manifest.json +57 -0
- karox_runtime-5.0.0rc2/src/karox/browser_extension/newtab.css +1 -0
- karox_runtime-5.0.0rc2/src/karox/browser_extension/newtab.html +21 -0
- karox_runtime-5.0.0rc2/src/karox/browser_extension/newtab.js +1 -0
- karox_runtime-5.0.0rc2/src/karox/browser_extension/page_console_bridge.js +93 -0
- karox_runtime-5.0.0rc2/src/karox/browser_extension/service_worker.js +1426 -0
- karox_runtime-5.0.0rc2/src/karox/browser_extension/sidepanel.css +1 -0
- karox_runtime-5.0.0rc2/src/karox/browser_extension/sidepanel.html +27 -0
- karox_runtime-5.0.0rc2/src/karox/browser_extension/sidepanel.js +1 -0
- karox_runtime-5.0.0rc2/src/karox/browser_session.py +521 -0
- karox_runtime-5.0.0rc2/src/karox/build_identity.py +124 -0
- karox_runtime-5.0.0rc2/src/karox/cache_scheduler.py +263 -0
- karox_runtime-5.0.0rc2/src/karox/chatgpt_project_binding.py +307 -0
- karox_runtime-5.0.0rc2/src/karox/check_jobs.py +1523 -0
- karox_runtime-5.0.0rc2/src/karox/checkpoints.py +75 -0
- karox_runtime-5.0.0rc2/src/karox/cli.py +6897 -0
- karox_runtime-5.0.0rc2/src/karox/cli_shortcuts.py +128 -0
- karox_runtime-5.0.0rc2/src/karox/clickup_setup.py +1412 -0
- karox_runtime-5.0.0rc2/src/karox/client_capabilities.py +279 -0
- karox_runtime-5.0.0rc2/src/karox/clipboard.py +175 -0
- karox_runtime-5.0.0rc2/src/karox/command_guard.py +217 -0
- karox_runtime-5.0.0rc2/src/karox/connection_controller.py +581 -0
- karox_runtime-5.0.0rc2/src/karox/connection_runtime.py +556 -0
- karox_runtime-5.0.0rc2/src/karox/connection_status.py +413 -0
- karox_runtime-5.0.0rc2/src/karox/connection_tests.py +391 -0
- karox_runtime-5.0.0rc2/src/karox/connections.py +1456 -0
- karox_runtime-5.0.0rc2/src/karox/constitution.py +288 -0
- karox_runtime-5.0.0rc2/src/karox/context_ab.py +300 -0
- karox_runtime-5.0.0rc2/src/karox/context_bus.py +425 -0
- karox_runtime-5.0.0rc2/src/karox/context_compiler.py +375 -0
- karox_runtime-5.0.0rc2/src/karox/core.py +2603 -0
- karox_runtime-5.0.0rc2/src/karox/core_tools.py +908 -0
- karox_runtime-5.0.0rc2/src/karox/cost_intelligence.py +648 -0
- karox_runtime-5.0.0rc2/src/karox/credentials.py +273 -0
- karox_runtime-5.0.0rc2/src/karox/delegated_provider.py +252 -0
- karox_runtime-5.0.0rc2/src/karox/desktop_apps.py +1058 -0
- karox_runtime-5.0.0rc2/src/karox/detached_process.py +92 -0
- karox_runtime-5.0.0rc2/src/karox/disk_maintenance.py +1099 -0
- karox_runtime-5.0.0rc2/src/karox/economy_engine.py +306 -0
- karox_runtime-5.0.0rc2/src/karox/economy_eval.py +179 -0
- karox_runtime-5.0.0rc2/src/karox/ecosystem.py +268 -0
- karox_runtime-5.0.0rc2/src/karox/effort.py +442 -0
- karox_runtime-5.0.0rc2/src/karox/effort_signals.py +324 -0
- karox_runtime-5.0.0rc2/src/karox/ellipsis_api.py +459 -0
- karox_runtime-5.0.0rc2/src/karox/ellipsis_bridge_server.py +382 -0
- karox_runtime-5.0.0rc2/src/karox/ellipsis_checkpoint.py +367 -0
- karox_runtime-5.0.0rc2/src/karox/ellipsis_cli.py +409 -0
- karox_runtime-5.0.0rc2/src/karox/ellipsis_helpers.py +407 -0
- karox_runtime-5.0.0rc2/src/karox/ellipsis_runtime.py +810 -0
- karox_runtime-5.0.0rc2/src/karox/ellipsis_watchdog.py +115 -0
- karox_runtime-5.0.0rc2/src/karox/entrypoint.py +70 -0
- karox_runtime-5.0.0rc2/src/karox/event_bus.py +343 -0
- karox_runtime-5.0.0rc2/src/karox/evidence_packets.py +443 -0
- karox_runtime-5.0.0rc2/src/karox/extension_browser.py +1586 -0
- karox_runtime-5.0.0rc2/src/karox/file_mentions.py +108 -0
- karox_runtime-5.0.0rc2/src/karox/handoff.py +208 -0
- karox_runtime-5.0.0rc2/src/karox/hosted_bridge.py +1328 -0
- karox_runtime-5.0.0rc2/src/karox/hosted_project_orchestration.py +139 -0
- karox_runtime-5.0.0rc2/src/karox/hosted_tools_runtime.py +3080 -0
- karox_runtime-5.0.0rc2/src/karox/hot_worker.py +341 -0
- karox_runtime-5.0.0rc2/src/karox/image_attachments.py +109 -0
- karox_runtime-5.0.0rc2/src/karox/intelligence_pool.py +508 -0
- karox_runtime-5.0.0rc2/src/karox/launch_support.py +219 -0
- karox_runtime-5.0.0rc2/src/karox/lsp_diagnostics.py +362 -0
- karox_runtime-5.0.0rc2/src/karox/managed_browser.py +661 -0
- karox_runtime-5.0.0rc2/src/karox/managed_process_cleanup.py +63 -0
- karox_runtime-5.0.0rc2/src/karox/map_service.py +798 -0
- karox_runtime-5.0.0rc2/src/karox/mcp_client.py +1171 -0
- karox_runtime-5.0.0rc2/src/karox/mcp_oauth.py +268 -0
- karox_runtime-5.0.0rc2/src/karox/mcp_status.py +302 -0
- karox_runtime-5.0.0rc2/src/karox/memory.py +672 -0
- karox_runtime-5.0.0rc2/src/karox/migration.py +245 -0
- karox_runtime-5.0.0rc2/src/karox/mission_control.py +462 -0
- karox_runtime-5.0.0rc2/src/karox/mission_control_server.py +320 -0
- karox_runtime-5.0.0rc2/src/karox/mission_control_worker.py +112 -0
- karox_runtime-5.0.0rc2/src/karox/mobile_mission.py +309 -0
- karox_runtime-5.0.0rc2/src/karox/mode_artifacts.py +141 -0
- karox_runtime-5.0.0rc2/src/karox/model_auto.py +124 -0
- karox_runtime-5.0.0rc2/src/karox/model_delegation_broker.py +213 -0
- karox_runtime-5.0.0rc2/src/karox/model_grant_requests.py +496 -0
- karox_runtime-5.0.0rc2/src/karox/model_grants.py +1084 -0
- karox_runtime-5.0.0rc2/src/karox/model_hot_actions.py +467 -0
- karox_runtime-5.0.0rc2/src/karox/model_micro_benchmark.py +157 -0
- karox_runtime-5.0.0rc2/src/karox/model_quality_benchmark.py +316 -0
- karox_runtime-5.0.0rc2/src/karox/models.py +251 -0
- karox_runtime-5.0.0rc2/src/karox/notion_mcp.py +60 -0
- karox_runtime-5.0.0rc2/src/karox/oauth_bridge.py +1465 -0
- karox_runtime-5.0.0rc2/src/karox/openapi_bridge.py +392 -0
- karox_runtime-5.0.0rc2/src/karox/openrouter_delegation.py +472 -0
- karox_runtime-5.0.0rc2/src/karox/orchestration_cli.py +861 -0
- karox_runtime-5.0.0rc2/src/karox/orchestration_native.py +319 -0
- karox_runtime-5.0.0rc2/src/karox/orchestration_planning.py +170 -0
- karox_runtime-5.0.0rc2/src/karox/orchestration_presenter.py +372 -0
- karox_runtime-5.0.0rc2/src/karox/orchestration_recipes.py +162 -0
- karox_runtime-5.0.0rc2/src/karox/orchestration_recovery.py +287 -0
- karox_runtime-5.0.0rc2/src/karox/orchestration_routing.py +481 -0
- karox_runtime-5.0.0rc2/src/karox/orchestrator.py +1715 -0
- karox_runtime-5.0.0rc2/src/karox/orchestrator_advisor.py +252 -0
- karox_runtime-5.0.0rc2/src/karox/orchestrator_delegation.py +329 -0
- karox_runtime-5.0.0rc2/src/karox/output_policy.py +151 -0
- karox_runtime-5.0.0rc2/src/karox/packs.py +951 -0
- karox_runtime-5.0.0rc2/src/karox/paths.py +160 -0
- karox_runtime-5.0.0rc2/src/karox/plan_act.py +97 -0
- karox_runtime-5.0.0rc2/src/karox/plan_executor.py +1605 -0
- karox_runtime-5.0.0rc2/src/karox/policy.py +212 -0
- karox_runtime-5.0.0rc2/src/karox/port_allocation.py +144 -0
- karox_runtime-5.0.0rc2/src/karox/port_ownership.py +593 -0
- karox_runtime-5.0.0rc2/src/karox/process_identity.py +430 -0
- karox_runtime-5.0.0rc2/src/karox/process_launcher.py +150 -0
- karox_runtime-5.0.0rc2/src/karox/project_context.py +506 -0
- karox_runtime-5.0.0rc2/src/karox/project_map.py +363 -0
- karox_runtime-5.0.0rc2/src/karox/project_registry.py +250 -0
- karox_runtime-5.0.0rc2/src/karox/prompt_benchmark.py +239 -0
- karox_runtime-5.0.0rc2/src/karox/prompt_cache_plan.py +64 -0
- karox_runtime-5.0.0rc2/src/karox/promptql_outbound.py +276 -0
- karox_runtime-5.0.0rc2/src/karox/provider_adapters.py +1321 -0
- karox_runtime-5.0.0rc2/src/karox/provider_controller.py +661 -0
- karox_runtime-5.0.0rc2/src/karox/provider_credential_capture.py +200 -0
- karox_runtime-5.0.0rc2/src/karox/provider_factory.py +50 -0
- karox_runtime-5.0.0rc2/src/karox/provider_presets.py +378 -0
- karox_runtime-5.0.0rc2/src/karox/provider_pricing.py +209 -0
- karox_runtime-5.0.0rc2/src/karox/providers.py +1123 -0
- karox_runtime-5.0.0rc2/src/karox/proxy.py +252 -0
- karox_runtime-5.0.0rc2/src/karox/proxy_server.py +2049 -0
- karox_runtime-5.0.0rc2/src/karox/quickstart.py +387 -0
- karox_runtime-5.0.0rc2/src/karox/quota_brain.py +136 -0
- karox_runtime-5.0.0rc2/src/karox/recipe_registry.py +187 -0
- karox_runtime-5.0.0rc2/src/karox/registry.py +659 -0
- karox_runtime-5.0.0rc2/src/karox/release_hot_actions.py +577 -0
- karox_runtime-5.0.0rc2/src/karox/remote_lease.py +280 -0
- karox_runtime-5.0.0rc2/src/karox/remote_tools.py +806 -0
- karox_runtime-5.0.0rc2/src/karox/repo_context.py +1950 -0
- karox_runtime-5.0.0rc2/src/karox/repository_lease.py +492 -0
- karox_runtime-5.0.0rc2/src/karox/research_subagent.py +613 -0
- karox_runtime-5.0.0rc2/src/karox/result_envelope.py +197 -0
- karox_runtime-5.0.0rc2/src/karox/risk_engine.py +648 -0
- karox_runtime-5.0.0rc2/src/karox/risk_mapping.py +583 -0
- karox_runtime-5.0.0rc2/src/karox/route_health.py +170 -0
- karox_runtime-5.0.0rc2/src/karox/routing.py +686 -0
- karox_runtime-5.0.0rc2/src/karox/runtime_restart.py +510 -0
- karox_runtime-5.0.0rc2/src/karox/saved_bridge_autostart.py +889 -0
- karox_runtime-5.0.0rc2/src/karox/saved_bridge_supervisor.py +1134 -0
- karox_runtime-5.0.0rc2/src/karox/security.py +157 -0
- karox_runtime-5.0.0rc2/src/karox/service_supervisor.py +758 -0
- karox_runtime-5.0.0rc2/src/karox/session_view.py +1129 -0
- karox_runtime-5.0.0rc2/src/karox/sessions.py +825 -0
- karox_runtime-5.0.0rc2/src/karox/shadow_economy.py +229 -0
- karox_runtime-5.0.0rc2/src/karox/skills.py +873 -0
- karox_runtime-5.0.0rc2/src/karox/smart_stop.py +173 -0
- karox_runtime-5.0.0rc2/src/karox/static_server.py +45 -0
- karox_runtime-5.0.0rc2/src/karox/subscription_cli.py +640 -0
- karox_runtime-5.0.0rc2/src/karox/system_chrome.py +321 -0
- karox_runtime-5.0.0rc2/src/karox/tailscale.py +938 -0
- karox_runtime-5.0.0rc2/src/karox/tailscale_routes.py +389 -0
- karox_runtime-5.0.0rc2/src/karox/task_state.py +469 -0
- karox_runtime-5.0.0rc2/src/karox/tool_catalog.py +66 -0
- karox_runtime-5.0.0rc2/src/karox/tool_telemetry.py +425 -0
- karox_runtime-5.0.0rc2/src/karox/tool_universe.py +187 -0
- karox_runtime-5.0.0rc2/src/karox/transcript.py +407 -0
- karox_runtime-5.0.0rc2/src/karox/transcript_shadow.py +435 -0
- karox_runtime-5.0.0rc2/src/karox/tui.py +16842 -0
- karox_runtime-5.0.0rc2/src/karox/tui_connections.py +9408 -0
- karox_runtime-5.0.0rc2/src/karox/tui_dashboard.py +1192 -0
- karox_runtime-5.0.0rc2/src/karox/tui_workspace.py +332 -0
- karox_runtime-5.0.0rc2/src/karox/unified_patch.py +295 -0
- karox_runtime-5.0.0rc2/src/karox/usage_analytics.py +467 -0
- karox_runtime-5.0.0rc2/src/karox/usage_report.py +376 -0
- karox_runtime-5.0.0rc2/src/karox/user_commands.py +232 -0
- karox_runtime-5.0.0rc2/src/karox/verification.py +351 -0
- karox_runtime-5.0.0rc2/src/karox/web_bridge_launcher.py +6698 -0
- karox_runtime-5.0.0rc2/src/karox/web_bridge_profiles.py +552 -0
- karox_runtime-5.0.0rc2/src/karox/worker_adapter_registry.py +101 -0
- karox_runtime-5.0.0rc2/src/karox/worker_adapters.py +236 -0
- karox_runtime-5.0.0rc2/src/karox/workspace_change_guard.py +269 -0
- karox_runtime-5.0.0rc2/src/karox/workspace_transaction.py +490 -0
- karox_runtime-5.0.0rc2/src/karox/workspace_worker.py +639 -0
- karox_runtime-5.0.0rc2/src/karox/worktree_pool.py +576 -0
- karox_runtime-5.0.0rc2/src/karox_runtime.egg-info/PKG-INFO +448 -0
- karox_runtime-5.0.0rc2/src/karox_runtime.egg-info/SOURCES.txt +525 -0
- karox_runtime-5.0.0rc2/src/karox_runtime.egg-info/dependency_links.txt +1 -0
- karox_runtime-5.0.0rc2/src/karox_runtime.egg-info/entry_points.txt +4 -0
- karox_runtime-5.0.0rc2/src/karox_runtime.egg-info/requires.txt +22 -0
- karox_runtime-5.0.0rc2/src/karox_runtime.egg-info/top_level.txt +1 -0
- karox_runtime-5.0.0rc2/tests/test_access_mode.py +207 -0
- karox_runtime-5.0.0rc2/tests/test_action_execution.py +87 -0
- karox_runtime-5.0.0rc2/tests/test_action_execution_checkpoint_adapter.py +113 -0
- karox_runtime-5.0.0rc2/tests/test_action_policy.py +305 -0
- karox_runtime-5.0.0rc2/tests/test_activity_stream.py +368 -0
- karox_runtime-5.0.0rc2/tests/test_affected_checks.py +487 -0
- karox_runtime-5.0.0rc2/tests/test_affected_checks_nested_lease.py +93 -0
- karox_runtime-5.0.0rc2/tests/test_agent.py +2223 -0
- karox_runtime-5.0.0rc2/tests/test_agent_events.py +231 -0
- karox_runtime-5.0.0rc2/tests/test_agent_modes.py +97 -0
- karox_runtime-5.0.0rc2/tests/test_agent_quality_economy.py +253 -0
- karox_runtime-5.0.0rc2/tests/test_agent_small_talk.py +31 -0
- karox_runtime-5.0.0rc2/tests/test_autonomy_benchmark.py +26 -0
- karox_runtime-5.0.0rc2/tests/test_autonomy_runtime.py +1165 -0
- karox_runtime-5.0.0rc2/tests/test_background_orchestration.py +199 -0
- karox_runtime-5.0.0rc2/tests/test_benchmark.py +747 -0
- karox_runtime-5.0.0rc2/tests/test_bootstrap_portable.py +101 -0
- karox_runtime-5.0.0rc2/tests/test_bridge.py +887 -0
- karox_runtime-5.0.0rc2/tests/test_bridge_credential_rotation.py +303 -0
- karox_runtime-5.0.0rc2/tests/test_bridge_lifecycle_cli.py +172 -0
- karox_runtime-5.0.0rc2/tests/test_bridge_restart_lifecycle.py +156 -0
- karox_runtime-5.0.0rc2/tests/test_bridge_tool_normalization.py +110 -0
- karox_runtime-5.0.0rc2/tests/test_browser_bootstrap.py +127 -0
- karox_runtime-5.0.0rc2/tests/test_browser_capability_regression.py +286 -0
- karox_runtime-5.0.0rc2/tests/test_browser_command_actions.py +207 -0
- karox_runtime-5.0.0rc2/tests/test_browser_credential_cli.py +105 -0
- karox_runtime-5.0.0rc2/tests/test_browser_credential_injection.py +168 -0
- karox_runtime-5.0.0rc2/tests/test_browser_credential_runtime.py +291 -0
- karox_runtime-5.0.0rc2/tests/test_browser_credentials.py +147 -0
- karox_runtime-5.0.0rc2/tests/test_browser_fixture_suite.py +289 -0
- karox_runtime-5.0.0rc2/tests/test_browser_input_implies_read.py +314 -0
- karox_runtime-5.0.0rc2/tests/test_browser_probe_cleanup.py +57 -0
- karox_runtime-5.0.0rc2/tests/test_browser_restart_profile_contract.py +83 -0
- karox_runtime-5.0.0rc2/tests/test_browser_takeover_persistence.py +274 -0
- karox_runtime-5.0.0rc2/tests/test_build_identity.py +107 -0
- karox_runtime-5.0.0rc2/tests/test_bypass_matrix.py +288 -0
- karox_runtime-5.0.0rc2/tests/test_bypass_wiring.py +206 -0
- karox_runtime-5.0.0rc2/tests/test_cache_scheduler.py +203 -0
- karox_runtime-5.0.0rc2/tests/test_cache_scheduler_wiring.py +203 -0
- karox_runtime-5.0.0rc2/tests/test_capability_runtime.py +306 -0
- karox_runtime-5.0.0rc2/tests/test_catalog_refresh.py +131 -0
- karox_runtime-5.0.0rc2/tests/test_channel_isolation.py +125 -0
- karox_runtime-5.0.0rc2/tests/test_chatgpt_inline_result_budget.py +89 -0
- karox_runtime-5.0.0rc2/tests/test_chatgpt_project_binding.py +128 -0
- karox_runtime-5.0.0rc2/tests/test_chatgpt_project_hosted_integration.py +73 -0
- karox_runtime-5.0.0rc2/tests/test_chatgpt_project_orchestration.py +257 -0
- karox_runtime-5.0.0rc2/tests/test_check_jobs.py +671 -0
- karox_runtime-5.0.0rc2/tests/test_ci_test_command.py +42 -0
- karox_runtime-5.0.0rc2/tests/test_cli_doctor_autonomy.py +116 -0
- karox_runtime-5.0.0rc2/tests/test_cli_effort_mode_preferences.py +46 -0
- karox_runtime-5.0.0rc2/tests/test_cli_human_help.py +56 -0
- karox_runtime-5.0.0rc2/tests/test_cli_jobs.py +174 -0
- karox_runtime-5.0.0rc2/tests/test_cli_provider_e2e.py +294 -0
- karox_runtime-5.0.0rc2/tests/test_cli_root_shortcuts.py +56 -0
- karox_runtime-5.0.0rc2/tests/test_cli_shortcuts.py +88 -0
- karox_runtime-5.0.0rc2/tests/test_cli_status_autonomy.py +100 -0
- karox_runtime-5.0.0rc2/tests/test_clickup_setup.py +1326 -0
- karox_runtime-5.0.0rc2/tests/test_client_capabilities.py +151 -0
- karox_runtime-5.0.0rc2/tests/test_client_evidence.py +104 -0
- karox_runtime-5.0.0rc2/tests/test_cloudflared_installer_pin.py +63 -0
- karox_runtime-5.0.0rc2/tests/test_command_catalog.py +63 -0
- karox_runtime-5.0.0rc2/tests/test_command_guard.py +57 -0
- karox_runtime-5.0.0rc2/tests/test_connection_controller.py +235 -0
- karox_runtime-5.0.0rc2/tests/test_connection_enablement.py +643 -0
- karox_runtime-5.0.0rc2/tests/test_connection_runtime.py +251 -0
- karox_runtime-5.0.0rc2/tests/test_connection_status.py +289 -0
- karox_runtime-5.0.0rc2/tests/test_connection_tests.py +152 -0
- karox_runtime-5.0.0rc2/tests/test_connection_tests_model.py +205 -0
- karox_runtime-5.0.0rc2/tests/test_connections.py +325 -0
- karox_runtime-5.0.0rc2/tests/test_connections_cli.py +520 -0
- karox_runtime-5.0.0rc2/tests/test_constitution.py +139 -0
- karox_runtime-5.0.0rc2/tests/test_constitution_wiring.py +218 -0
- karox_runtime-5.0.0rc2/tests/test_context_ab.py +102 -0
- karox_runtime-5.0.0rc2/tests/test_context_compiler.py +221 -0
- karox_runtime-5.0.0rc2/tests/test_continuity_ledger.py +194 -0
- karox_runtime-5.0.0rc2/tests/test_core.py +727 -0
- karox_runtime-5.0.0rc2/tests/test_core_bridge_repository_lease.py +119 -0
- karox_runtime-5.0.0rc2/tests/test_core_checks.py +467 -0
- karox_runtime-5.0.0rc2/tests/test_core_process_stdio.py +37 -0
- karox_runtime-5.0.0rc2/tests/test_core_search_fast_path.py +176 -0
- karox_runtime-5.0.0rc2/tests/test_core_smart_stop.py +241 -0
- karox_runtime-5.0.0rc2/tests/test_credentials.py +135 -0
- karox_runtime-5.0.0rc2/tests/test_default_dispatch.py +357 -0
- karox_runtime-5.0.0rc2/tests/test_delegated_provider.py +256 -0
- karox_runtime-5.0.0rc2/tests/test_desktop_apps.py +338 -0
- karox_runtime-5.0.0rc2/tests/test_desktop_live_probe.py +29 -0
- karox_runtime-5.0.0rc2/tests/test_desktop_noninvasive_contract.py +46 -0
- karox_runtime-5.0.0rc2/tests/test_detached_process.py +133 -0
- karox_runtime-5.0.0rc2/tests/test_dev_command_jobs.py +216 -0
- karox_runtime-5.0.0rc2/tests/test_dev_server_identity.py +240 -0
- karox_runtime-5.0.0rc2/tests/test_developer_runtime.py +824 -0
- karox_runtime-5.0.0rc2/tests/test_disk_maintenance.py +225 -0
- karox_runtime-5.0.0rc2/tests/test_disk_maintenance_wiring.py +178 -0
- karox_runtime-5.0.0rc2/tests/test_durable_command_compat.py +599 -0
- karox_runtime-5.0.0rc2/tests/test_durable_job_workstream_scope.py +233 -0
- karox_runtime-5.0.0rc2/tests/test_economy_eval.py +206 -0
- karox_runtime-5.0.0rc2/tests/test_economy_truthfulness.py +91 -0
- karox_runtime-5.0.0rc2/tests/test_ecosystem.py +249 -0
- karox_runtime-5.0.0rc2/tests/test_effort.py +186 -0
- karox_runtime-5.0.0rc2/tests/test_effort_signals.py +139 -0
- karox_runtime-5.0.0rc2/tests/test_effort_wiring.py +207 -0
- karox_runtime-5.0.0rc2/tests/test_ellipsis_api.py +159 -0
- karox_runtime-5.0.0rc2/tests/test_ellipsis_checkpoint.py +98 -0
- karox_runtime-5.0.0rc2/tests/test_ellipsis_entrypoint.py +38 -0
- karox_runtime-5.0.0rc2/tests/test_ellipsis_lease.py +89 -0
- karox_runtime-5.0.0rc2/tests/test_ellipsis_local_bridge_e2e.py +189 -0
- karox_runtime-5.0.0rc2/tests/test_ellipsis_remote_tools.py +92 -0
- karox_runtime-5.0.0rc2/tests/test_ellipsis_runtime.py +186 -0
- karox_runtime-5.0.0rc2/tests/test_event_bus.py +251 -0
- karox_runtime-5.0.0rc2/tests/test_evidence_packets.py +255 -0
- karox_runtime-5.0.0rc2/tests/test_extended_core_tools.py +535 -0
- karox_runtime-5.0.0rc2/tests/test_extension_browser.py +1550 -0
- karox_runtime-5.0.0rc2/tests/test_external_browser_access.py +950 -0
- karox_runtime-5.0.0rc2/tests/test_handoff.py +412 -0
- karox_runtime-5.0.0rc2/tests/test_hosted_bridge.py +1380 -0
- karox_runtime-5.0.0rc2/tests/test_hosted_bridge_health.py +114 -0
- karox_runtime-5.0.0rc2/tests/test_hosted_bridge_routing_cache.py +73 -0
- karox_runtime-5.0.0rc2/tests/test_hosted_bridge_smart_stop.py +459 -0
- karox_runtime-5.0.0rc2/tests/test_hosted_desktop_apps.py +130 -0
- karox_runtime-5.0.0rc2/tests/test_hosted_orchestration_autonomy.py +213 -0
- karox_runtime-5.0.0rc2/tests/test_hosted_project_orchestration.py +83 -0
- karox_runtime-5.0.0rc2/tests/test_hosted_tools_runtime.py +655 -0
- karox_runtime-5.0.0rc2/tests/test_human_first_ux.py +475 -0
- karox_runtime-5.0.0rc2/tests/test_hyperagent_bridge.py +899 -0
- karox_runtime-5.0.0rc2/tests/test_install_portability.py +67 -0
- karox_runtime-5.0.0rc2/tests/test_intelligence_pool_endpoint_ids.py +68 -0
- karox_runtime-5.0.0rc2/tests/test_intelligence_pool_human_ux.py +52 -0
- karox_runtime-5.0.0rc2/tests/test_karox_remote_client.py +132 -0
- karox_runtime-5.0.0rc2/tests/test_launch_support.py +170 -0
- karox_runtime-5.0.0rc2/tests/test_line_mode_v5_ux.py +65 -0
- karox_runtime-5.0.0rc2/tests/test_local_health_canary.py +185 -0
- karox_runtime-5.0.0rc2/tests/test_long_context_guard.py +250 -0
- karox_runtime-5.0.0rc2/tests/test_long_job_bridge_acceptance.py +138 -0
- karox_runtime-5.0.0rc2/tests/test_long_reasoning_stream_v5.py +28 -0
- karox_runtime-5.0.0rc2/tests/test_managed_browser.py +732 -0
- karox_runtime-5.0.0rc2/tests/test_managed_server_projects.py +441 -0
- karox_runtime-5.0.0rc2/tests/test_map_service.py +277 -0
- karox_runtime-5.0.0rc2/tests/test_mcp.py +776 -0
- karox_runtime-5.0.0rc2/tests/test_mcp_oauth.py +128 -0
- karox_runtime-5.0.0rc2/tests/test_memory.py +216 -0
- karox_runtime-5.0.0rc2/tests/test_memory_multilingual.py +115 -0
- karox_runtime-5.0.0rc2/tests/test_memory_tools.py +177 -0
- karox_runtime-5.0.0rc2/tests/test_memory_ux.py +211 -0
- karox_runtime-5.0.0rc2/tests/test_migration_cli.py +197 -0
- karox_runtime-5.0.0rc2/tests/test_mission_control_mobile_performance_contract.py +30 -0
- karox_runtime-5.0.0rc2/tests/test_mission_control_mobile_ux.py +35 -0
- karox_runtime-5.0.0rc2/tests/test_mission_control_pairing_security.py +65 -0
- karox_runtime-5.0.0rc2/tests/test_mode_wiring.py +304 -0
- karox_runtime-5.0.0rc2/tests/test_model_auto.py +173 -0
- karox_runtime-5.0.0rc2/tests/test_model_browser.py +213 -0
- karox_runtime-5.0.0rc2/tests/test_model_delegation_broker.py +304 -0
- karox_runtime-5.0.0rc2/tests/test_model_discovery_metadata.py +266 -0
- karox_runtime-5.0.0rc2/tests/test_model_grant_requests.py +176 -0
- karox_runtime-5.0.0rc2/tests/test_model_grants.py +445 -0
- karox_runtime-5.0.0rc2/tests/test_model_quality_benchmark.py +72 -0
- karox_runtime-5.0.0rc2/tests/test_modern_mcp_2026.py +692 -0
- karox_runtime-5.0.0rc2/tests/test_multi_project_bridge.py +218 -0
- karox_runtime-5.0.0rc2/tests/test_oauth_approval_password.py +246 -0
- karox_runtime-5.0.0rc2/tests/test_oauth_bridge.py +1007 -0
- karox_runtime-5.0.0rc2/tests/test_oauth_cimd.py +101 -0
- karox_runtime-5.0.0rc2/tests/test_oauth_clickup_redirect_chain.py +22 -0
- karox_runtime-5.0.0rc2/tests/test_openrouter_delegation.py +262 -0
- karox_runtime-5.0.0rc2/tests/test_openrouter_stream_compat.py +102 -0
- karox_runtime-5.0.0rc2/tests/test_orchestrate_task_default_run.py +50 -0
- karox_runtime-5.0.0rc2/tests/test_orchestration_cli_autoverification.py +85 -0
- karox_runtime-5.0.0rc2/tests/test_orchestration_cli_delegation.py +69 -0
- karox_runtime-5.0.0rc2/tests/test_orchestration_cli_human_output.py +61 -0
- karox_runtime-5.0.0rc2/tests/test_orchestration_cli_mission_human_output.py +181 -0
- karox_runtime-5.0.0rc2/tests/test_orchestration_context_truthfulness.py +244 -0
- karox_runtime-5.0.0rc2/tests/test_orchestration_planning.py +247 -0
- karox_runtime-5.0.0rc2/tests/test_orchestration_presenter.py +92 -0
- karox_runtime-5.0.0rc2/tests/test_orchestrator_advisor.py +200 -0
- karox_runtime-5.0.0rc2/tests/test_orchestrator_delegation.py +164 -0
- karox_runtime-5.0.0rc2/tests/test_output_policy.py +117 -0
- karox_runtime-5.0.0rc2/tests/test_output_policy_wiring.py +118 -0
- karox_runtime-5.0.0rc2/tests/test_packs.py +642 -0
- karox_runtime-5.0.0rc2/tests/test_phase5_8_foundations.py +231 -0
- karox_runtime-5.0.0rc2/tests/test_plan_executor.py +734 -0
- karox_runtime-5.0.0rc2/tests/test_plan_executor_change_guard.py +255 -0
- karox_runtime-5.0.0rc2/tests/test_policy.py +64 -0
- karox_runtime-5.0.0rc2/tests/test_port_allocation.py +89 -0
- karox_runtime-5.0.0rc2/tests/test_port_ownership.py +459 -0
- karox_runtime-5.0.0rc2/tests/test_portable_bundle.py +125 -0
- karox_runtime-5.0.0rc2/tests/test_portable_launchers.py +164 -0
- karox_runtime-5.0.0rc2/tests/test_portable_uv_pins.py +74 -0
- karox_runtime-5.0.0rc2/tests/test_prepare_portable_uv.py +140 -0
- karox_runtime-5.0.0rc2/tests/test_process_identity.py +202 -0
- karox_runtime-5.0.0rc2/tests/test_production_isolation_guard.py +132 -0
- karox_runtime-5.0.0rc2/tests/test_project_command.py +50 -0
- karox_runtime-5.0.0rc2/tests/test_project_context.py +355 -0
- karox_runtime-5.0.0rc2/tests/test_project_map.py +101 -0
- karox_runtime-5.0.0rc2/tests/test_project_registry.py +83 -0
- karox_runtime-5.0.0rc2/tests/test_prompt_benchmark.py +104 -0
- karox_runtime-5.0.0rc2/tests/test_promptql_outbound.py +257 -0
- karox_runtime-5.0.0rc2/tests/test_provider_adapters.py +1027 -0
- karox_runtime-5.0.0rc2/tests/test_provider_cli.py +451 -0
- karox_runtime-5.0.0rc2/tests/test_provider_controller.py +191 -0
- karox_runtime-5.0.0rc2/tests/test_provider_details_discovery.py +145 -0
- karox_runtime-5.0.0rc2/tests/test_provider_key_ux_v5.py +172 -0
- karox_runtime-5.0.0rc2/tests/test_provider_pricing.py +121 -0
- karox_runtime-5.0.0rc2/tests/test_providers.py +818 -0
- karox_runtime-5.0.0rc2/tests/test_proxy_descriptor_cache.py +98 -0
- karox_runtime-5.0.0rc2/tests/test_proxy_transport_telemetry.py +257 -0
- karox_runtime-5.0.0rc2/tests/test_public_mcp_readiness.py +76 -0
- karox_runtime-5.0.0rc2/tests/test_quickstart.py +278 -0
- karox_runtime-5.0.0rc2/tests/test_recursive_research_context.py +205 -0
- karox_runtime-5.0.0rc2/tests/test_registry.py +275 -0
- karox_runtime-5.0.0rc2/tests/test_release_gates.py +302 -0
- karox_runtime-5.0.0rc2/tests/test_release_hot_actions.py +286 -0
- karox_runtime-5.0.0rc2/tests/test_repo_context.py +346 -0
- karox_runtime-5.0.0rc2/tests/test_repository_lease.py +268 -0
- karox_runtime-5.0.0rc2/tests/test_research_subagent.py +280 -0
- karox_runtime-5.0.0rc2/tests/test_resource_lifetime_regressions.py +209 -0
- karox_runtime-5.0.0rc2/tests/test_result_envelope.py +236 -0
- karox_runtime-5.0.0rc2/tests/test_risk_engine.py +349 -0
- karox_runtime-5.0.0rc2/tests/test_risk_mapping.py +278 -0
- karox_runtime-5.0.0rc2/tests/test_route_health.py +99 -0
- karox_runtime-5.0.0rc2/tests/test_route_health_fast_recovery.py +56 -0
- karox_runtime-5.0.0rc2/tests/test_routing.py +995 -0
- karox_runtime-5.0.0rc2/tests/test_routing_advisory_authority.py +187 -0
- karox_runtime-5.0.0rc2/tests/test_runtime_restart.py +381 -0
- karox_runtime-5.0.0rc2/tests/test_runtime_restart_tool.py +237 -0
- karox_runtime-5.0.0rc2/tests/test_safe_child_environment.py +111 -0
- karox_runtime-5.0.0rc2/tests/test_saved_bridge_apply_profile.py +257 -0
- karox_runtime-5.0.0rc2/tests/test_saved_bridge_autostart.py +801 -0
- karox_runtime-5.0.0rc2/tests/test_saved_bridge_credential_durability.py +455 -0
- karox_runtime-5.0.0rc2/tests/test_saved_bridge_delete_service.py +178 -0
- karox_runtime-5.0.0rc2/tests/test_saved_bridge_service.py +1386 -0
- karox_runtime-5.0.0rc2/tests/test_saved_bridge_start_legacy_kwarg.py +25 -0
- karox_runtime-5.0.0rc2/tests/test_saved_bridge_supervisor.py +583 -0
- karox_runtime-5.0.0rc2/tests/test_saved_profile_tool_upgrade.py +241 -0
- karox_runtime-5.0.0rc2/tests/test_service_supervisor.py +303 -0
- karox_runtime-5.0.0rc2/tests/test_session_commands.py +86 -0
- karox_runtime-5.0.0rc2/tests/test_session_view.py +742 -0
- karox_runtime-5.0.0rc2/tests/test_sessions.py +425 -0
- karox_runtime-5.0.0rc2/tests/test_skill_cli.py +258 -0
- karox_runtime-5.0.0rc2/tests/test_skills.py +421 -0
- karox_runtime-5.0.0rc2/tests/test_static_server.py +47 -0
- karox_runtime-5.0.0rc2/tests/test_status_command.py +34 -0
- karox_runtime-5.0.0rc2/tests/test_subscription_cli.py +309 -0
- karox_runtime-5.0.0rc2/tests/test_system_chrome.py +64 -0
- karox_runtime-5.0.0rc2/tests/test_tailscale_background_funnel.py +321 -0
- karox_runtime-5.0.0rc2/tests/test_tailscale_route_supervisor.py +322 -0
- karox_runtime-5.0.0rc2/tests/test_tailscale_routes.py +235 -0
- karox_runtime-5.0.0rc2/tests/test_task_state.py +258 -0
- karox_runtime-5.0.0rc2/tests/test_tool_catalog_groups.py +78 -0
- karox_runtime-5.0.0rc2/tests/test_tool_telemetry.py +176 -0
- karox_runtime-5.0.0rc2/tests/test_tool_universe.py +134 -0
- karox_runtime-5.0.0rc2/tests/test_tool_universe_wiring.py +215 -0
- karox_runtime-5.0.0rc2/tests/test_toolvm_measurement.py +279 -0
- karox_runtime-5.0.0rc2/tests/test_transcript.py +162 -0
- karox_runtime-5.0.0rc2/tests/test_transcript_shadow.py +243 -0
- karox_runtime-5.0.0rc2/tests/test_tui.py +2847 -0
- karox_runtime-5.0.0rc2/tests/test_tui_activity_line.py +455 -0
- karox_runtime-5.0.0rc2/tests/test_tui_advanced_connections.py +711 -0
- karox_runtime-5.0.0rc2/tests/test_tui_api_benchmark_ux.py +134 -0
- karox_runtime-5.0.0rc2/tests/test_tui_bridge_secret_output.py +56 -0
- karox_runtime-5.0.0rc2/tests/test_tui_clickup.py +328 -0
- karox_runtime-5.0.0rc2/tests/test_tui_clickup_connection_screen.py +89 -0
- karox_runtime-5.0.0rc2/tests/test_tui_command_ux_v5.py +432 -0
- karox_runtime-5.0.0rc2/tests/test_tui_connect_polish.py +610 -0
- karox_runtime-5.0.0rc2/tests/test_tui_connect_surface.py +263 -0
- karox_runtime-5.0.0rc2/tests/test_tui_connection_copy_e2e.py +58 -0
- karox_runtime-5.0.0rc2/tests/test_tui_connection_detail_lifecycle.py +740 -0
- karox_runtime-5.0.0rc2/tests/test_tui_connection_hub.py +662 -0
- karox_runtime-5.0.0rc2/tests/test_tui_connection_management.py +1635 -0
- karox_runtime-5.0.0rc2/tests/test_tui_connections.py +444 -0
- karox_runtime-5.0.0rc2/tests/test_tui_conversation_polish.py +236 -0
- karox_runtime-5.0.0rc2/tests/test_tui_copy_auth_action.py +242 -0
- karox_runtime-5.0.0rc2/tests/test_tui_dashboard.py +41 -0
- karox_runtime-5.0.0rc2/tests/test_tui_disk_cleanup.py +84 -0
- karox_runtime-5.0.0rc2/tests/test_tui_jobs_command.py +39 -0
- karox_runtime-5.0.0rc2/tests/test_tui_keyboard_responsiveness.py +326 -0
- karox_runtime-5.0.0rc2/tests/test_tui_large_paste_v5.py +180 -0
- karox_runtime-5.0.0rc2/tests/test_tui_layout.py +160 -0
- karox_runtime-5.0.0rc2/tests/test_tui_minimal_shell.py +157 -0
- karox_runtime-5.0.0rc2/tests/test_tui_model_picker.py +97 -0
- karox_runtime-5.0.0rc2/tests/test_tui_picker_mount_readiness.py +162 -0
- karox_runtime-5.0.0rc2/tests/test_tui_polish_v5.py +237 -0
- karox_runtime-5.0.0rc2/tests/test_tui_progress_cap.py +57 -0
- karox_runtime-5.0.0rc2/tests/test_tui_progress_metrics.py +26 -0
- karox_runtime-5.0.0rc2/tests/test_tui_provider_flow.py +302 -0
- karox_runtime-5.0.0rc2/tests/test_tui_reasoning_progress_v5.py +125 -0
- karox_runtime-5.0.0rc2/tests/test_tui_saved_web_profile_settings.py +587 -0
- karox_runtime-5.0.0rc2/tests/test_tui_selection.py +287 -0
- karox_runtime-5.0.0rc2/tests/test_tui_service_flow.py +1276 -0
- karox_runtime-5.0.0rc2/tests/test_tui_session_browser.py +891 -0
- karox_runtime-5.0.0rc2/tests/test_tui_session_browser_compact.py +1332 -0
- karox_runtime-5.0.0rc2/tests/test_tui_session_detail.py +1024 -0
- karox_runtime-5.0.0rc2/tests/test_tui_session_detail_overview.py +897 -0
- karox_runtime-5.0.0rc2/tests/test_tui_session_view.py +1569 -0
- karox_runtime-5.0.0rc2/tests/test_tui_shared_bridge_project_switch.py +156 -0
- karox_runtime-5.0.0rc2/tests/test_tui_status_progressive_disclosure.py +47 -0
- karox_runtime-5.0.0rc2/tests/test_tui_total_size_acceptance.py +111 -0
- karox_runtime-5.0.0rc2/tests/test_tui_visual_polish_v5.py +67 -0
- karox_runtime-5.0.0rc2/tests/test_tui_windows_raw_paste.py +131 -0
- karox_runtime-5.0.0rc2/tests/test_typed_secret_service.py +317 -0
- karox_runtime-5.0.0rc2/tests/test_typed_status_ui.py +331 -0
- karox_runtime-5.0.0rc2/tests/test_unittest_compat.py +74 -0
- karox_runtime-5.0.0rc2/tests/test_usage_analytics.py +143 -0
- karox_runtime-5.0.0rc2/tests/test_usage_report.py +220 -0
- karox_runtime-5.0.0rc2/tests/test_v5_orchestration.py +1512 -0
- karox_runtime-5.0.0rc2/tests/test_v5_release_contract.py +58 -0
- karox_runtime-5.0.0rc2/tests/test_verification.py +192 -0
- karox_runtime-5.0.0rc2/tests/test_verification_error_code.py +21 -0
- karox_runtime-5.0.0rc2/tests/test_web_bridge_launcher.py +1668 -0
- karox_runtime-5.0.0rc2/tests/test_web_bridge_profiles.py +1114 -0
- karox_runtime-5.0.0rc2/tests/test_wheel_contents.py +168 -0
- karox_runtime-5.0.0rc2/tests/test_windows_background_console.py +119 -0
- karox_runtime-5.0.0rc2/tests/test_windows_execution_runtime.py +523 -0
- karox_runtime-5.0.0rc2/tests/test_worker_usage_provenance.py +119 -0
- karox_runtime-5.0.0rc2/tests/test_workspace_change_guard.py +81 -0
- karox_runtime-5.0.0rc2/tests/test_workspace_picker_v1.py +101 -0
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 Yahor Kanakhovich
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
|
@@ -0,0 +1,448 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: karox-runtime
|
|
3
|
+
Version: 5.0.0rc2
|
|
4
|
+
Summary: Hybrid local runtime for native and hosted AI agents
|
|
5
|
+
License-Expression: MIT
|
|
6
|
+
Requires-Python: >=3.10
|
|
7
|
+
Description-Content-Type: text/markdown
|
|
8
|
+
License-File: LICENSE
|
|
9
|
+
Requires-Dist: fastapi<1.0,>=0.115
|
|
10
|
+
Requires-Dist: uvicorn[standard]<1.0,>=0.30
|
|
11
|
+
Requires-Dist: pydantic<3.0,>=2.7
|
|
12
|
+
Requires-Dist: httpx<1.0,>=0.27
|
|
13
|
+
Requires-Dist: httpx-sse<1.0,>=0.4
|
|
14
|
+
Requires-Dist: keyring<27,>=25
|
|
15
|
+
Requires-Dist: playwright<2.0,>=1.50
|
|
16
|
+
Requires-Dist: mcp<2.0,>=1.27
|
|
17
|
+
Requires-Dist: PyYAML<7.0,>=6.0
|
|
18
|
+
Requires-Dist: textual<7.0,>=0.89
|
|
19
|
+
Requires-Dist: rich<15.0,>=13.7
|
|
20
|
+
Requires-Dist: Pygments<3.0,>=2.17
|
|
21
|
+
Requires-Dist: markdown-it-py<5.0,>=3.0
|
|
22
|
+
Requires-Dist: anyio<4.15,>=4.4
|
|
23
|
+
Requires-Dist: starlette<2.0,>=0.37
|
|
24
|
+
Requires-Dist: psutil<8.0,>=5.9
|
|
25
|
+
Requires-Dist: Pillow<13.0,>=11.2
|
|
26
|
+
Requires-Dist: tomli<3.0,>=2.0; python_version < "3.11"
|
|
27
|
+
Provides-Extra: browser
|
|
28
|
+
Dynamic: license-file
|
|
29
|
+
|
|
30
|
+
# KaroX 5
|
|
31
|
+
|
|
32
|
+
<div align="center">
|
|
33
|
+
|
|
34
|
+
**A local control plane for autonomous AI coding — one runtime, many agents, your repository.**
|
|
35
|
+
|
|
36
|
+

|
|
37
|
+

|
|
38
|
+

|
|
39
|
+

|
|
40
|
+

|
|
41
|
+

|
|
42
|
+

|
|
43
|
+

|
|
44
|
+
[](SUPPORTERS.md)
|
|
45
|
+
|
|
46
|
+
Run AI coding agents on local Git repositories without giving one provider
|
|
47
|
+
control of your permissions, sessions, or evidence.
|
|
48
|
+
|
|
49
|
+
**KaroX 5 beta is now the primary `main` line · `5.0.0rc2`**
|
|
50
|
+
|
|
51
|
+
### 🤝 Supported by
|
|
52
|
+
|
|
53
|
+
<table>
|
|
54
|
+
<tr>
|
|
55
|
+
<td align="center"><a href="https://routing.run"><img src="https://www.google.com/s2/favicons?domain=routing.run&sz=128" width="38" height="38" alt="routing.run"><br><sub><b>routing.run</b></sub></a></td>
|
|
56
|
+
<td align="center"><a href="https://vivgrid.com"><img src="https://www.google.com/s2/favicons?domain=vivgrid.com&sz=128" width="38" height="38" alt="Vivgrid"><br><sub><b>Vivgrid</b></sub></a></td>
|
|
57
|
+
<td align="center"><a href="https://puter.com"><img src="https://www.google.com/s2/favicons?domain=puter.com&sz=128" width="38" height="38" alt="Puter"><br><sub><b>Puter</b></sub></a></td>
|
|
58
|
+
<td align="center"><a href="https://www.verda.com"><img src="https://www.google.com/s2/favicons?domain=verda.com&sz=128" width="38" height="38" alt="Verda"><br><sub><b>Verda</b></sub></a></td>
|
|
59
|
+
<td align="center"><a href="https://tinfoil.sh"><img src="https://www.google.com/s2/favicons?domain=tinfoil.sh&sz=128" width="38" height="38" alt="Tinfoil"><br><sub><b>Tinfoil</b></sub></a></td>
|
|
60
|
+
<td align="center"><a href="https://www.stepfun.com"><img src="https://www.google.com/s2/favicons?domain=stepfun.com&sz=128" width="38" height="38" alt="StepFun"><br><sub><b>StepFun</b></sub></a></td>
|
|
61
|
+
</tr>
|
|
62
|
+
<tr>
|
|
63
|
+
<td align="center"><a href="https://browser-use.com"><img src="https://www.google.com/s2/favicons?domain=browser-use.com&sz=128" width="38" height="38" alt="Browser Use"><br><sub><b>Browser Use</b></sub></a></td>
|
|
64
|
+
<td align="center"><a href="https://tavily.com"><img src="https://www.google.com/s2/favicons?domain=tavily.com&sz=128" width="38" height="38" alt="Tavily"><br><sub><b>Tavily</b></sub></a></td>
|
|
65
|
+
<td align="center"><a href="https://sentry.io"><img src="https://www.google.com/s2/favicons?domain=sentry.io&sz=128" width="38" height="38" alt="Sentry"><br><sub><b>Sentry</b></sub></a></td>
|
|
66
|
+
<td align="center"><a href="https://wandb.ai"><img src="https://www.google.com/s2/favicons?domain=wandb.ai&sz=128" width="38" height="38" alt="W&B"><br><sub><b>W&B</b></sub></a></td>
|
|
67
|
+
<td align="center"><a href="https://openrouter.ai"><img src="https://www.google.com/s2/favicons?domain=openrouter.ai&sz=128" width="38" height="38" alt="OpenRouter"><br><sub><b>OpenRouter</b></sub></a></td>
|
|
68
|
+
<td align="center"><a href="https://www.blockrun.ai"><img src="https://www.google.com/s2/favicons?domain=blockrun.ai&sz=128" width="38" height="38" alt="BlockRun"><br><sub><b>BlockRun</b></sub></a></td>
|
|
69
|
+
</tr>
|
|
70
|
+
</table>
|
|
71
|
+
|
|
72
|
+
**All 33 acknowledged supporters:** [routing.run](https://routing.run) · [Vivgrid](https://vivgrid.com) · [Puter](https://puter.com) · [OmniaKey](https://omniakey.com) · [Browser Use](https://browser-use.com) · [Verda](https://www.verda.com) · [Tinfoil](https://tinfoil.sh) · [fal](https://fal.ai) · [Tavily](https://tavily.com) · [Cohere](https://cohere.com) · [Chutes](https://chutes.ai) · [EmpirioLabs](https://empiriolabs.ai) · [Langfuse](https://langfuse.com) · [AIReiter](https://aireiter.com) · [Scout APM](https://scoutapm.com) · [APIMaster](https://apimaster.ai) · [Merge Gateway](https://gateway.merge.dev) · [OpenRouter](https://openrouter.ai) · [Weights & Biases (W&B)](https://wandb.ai) · [BlockRun](https://www.blockrun.ai) · [UnifyLLM](https://www.unifyllm.com) · [Novita AI](https://novita.ai) · [BazaarLink](https://bazaarlink.ai) · [CostRouter](https://www.costrouter.ai) · [Ellipsis](https://www.ellipsis.dev) · [Advanced Installer](https://www.advancedinstaller.com) · [Bump.sh](https://bump.sh) · [Sentry](https://sentry.io) · [Socket](https://socket.dev) · [RouterPlex](https://routerplex.com) · [LangWatch](https://langwatch.ai) · [LLMTR / Knowhy](https://www.knowhy.ai) · [StepFun](https://www.stepfun.com)
|
|
73
|
+
|
|
74
|
+
**[Meet all 33 supporters — full logo wall & acknowledgements →](SUPPORTERS.md)**
|
|
75
|
+
|
|
76
|
+
</div>
|
|
77
|
+
|
|
78
|
+
KaroX is a local control plane for ChatGPT, Claude, API models, and compatible
|
|
79
|
+
MCP clients. Every local action goes through one repository-scoped runtime with
|
|
80
|
+
explicit permissions, retry-safe mutations, durable sessions, approved checks,
|
|
81
|
+
Git evidence, and secret filtering.
|
|
82
|
+
|
|
83
|
+
KaroX is not a model, an IDE, or an operating-system sandbox. An explicitly
|
|
84
|
+
approved process still runs with the operating-system rights of the KaroX user.
|
|
85
|
+
The runtime reduces authority through repository confinement, capabilities,
|
|
86
|
+
allowlists, leases, idempotency, and hard blocks; it does not virtualize the
|
|
87
|
+
machine.
|
|
88
|
+
|
|
89
|
+
> **Release status:** the packaged runtime is `5.0.0rc2`. Deterministic local
|
|
90
|
+
> contracts are extensively tested, but live ChatGPT Web, Claude Web, and paid
|
|
91
|
+
> provider conformance records are still pending. See the
|
|
92
|
+
> [5.0 release scope](docs/V5_RELEASE_SCOPE.md),
|
|
93
|
+
> [4.x migration contract](docs/MIGRATION_V4_TO_V5.md), and
|
|
94
|
+
> [live conformance records](docs/conformance/README.md).
|
|
95
|
+
|
|
96
|
+
## Why KaroX
|
|
97
|
+
|
|
98
|
+
| What you want | What KaroX does |
|
|
99
|
+
| --- | --- |
|
|
100
|
+
| **Autonomous coding without prompt spam** | Normal reads, edits, tests, checks, dev commands, and local commits run without nuisance approval loops. |
|
|
101
|
+
| **One safety boundary for every agent** | ChatGPT, Claude, API models, MCP clients, and local workers reach the machine through the same repository-scoped Core policy. |
|
|
102
|
+
| **Rare, meaningful approvals** | Protected mode stops destructive source deletion and real external commit points; Bypass can opt into autonomous deletion *inside the repository* without weakening credential/system boundaries. |
|
|
103
|
+
| **Work continues while a gate is pending** | A blocked dangerous action is deferred so the agent can finish independent work and ask only when the gate actually becomes necessary. |
|
|
104
|
+
| **Portable release evidence** | Windows, macOS, and Linux CI exercise the same wheel, tests, release checks, Git contracts, and secret-scan rules. |
|
|
105
|
+
|
|
106
|
+
## The primary flow
|
|
107
|
+
|
|
108
|
+
A stable KaroX 5 release is defined by one complete workflow:
|
|
109
|
+
|
|
110
|
+
1. Install KaroX and run `karox` inside a Git repository.
|
|
111
|
+
2. Choose Russian or English and an access profile.
|
|
112
|
+
3. Connect ChatGPT Web, Claude Web, or a supported API provider.
|
|
113
|
+
4. Ask the agent to make a bounded repository change.
|
|
114
|
+
5. Let KaroX run an explicitly approved verification command.
|
|
115
|
+
6. Inspect check results, Git status, Git diff, and the evidence report.
|
|
116
|
+
7. Restart and resume the durable session without replaying a completed change.
|
|
117
|
+
|
|
118
|
+
Features that do not support this path remain Preview, Experimental, or Legacy
|
|
119
|
+
until their own evidence gates pass.
|
|
120
|
+
|
|
121
|
+
## Install
|
|
122
|
+
|
|
123
|
+
The beta candidate is **`v5.0.0rc2`**. After its PyPI publication completes,
|
|
124
|
+
install this exact version on Windows, macOS, or Linux:
|
|
125
|
+
|
|
126
|
+
```bash
|
|
127
|
+
pipx install "karox-runtime==5.0.0rc2"
|
|
128
|
+
# or
|
|
129
|
+
uv tool install --prerelease=allow karox-runtime
|
|
130
|
+
```
|
|
131
|
+
|
|
132
|
+
On a clean macOS or Linux machine, including one with **no Python installed**,
|
|
133
|
+
the preview bootstrap downloads the checksummed portable bundle, uses its
|
|
134
|
+
bundled `uv` to provision a managed Python runtime, installs KaroX, and starts it:
|
|
135
|
+
|
|
136
|
+
```bash
|
|
137
|
+
curl -fsSL https://raw.githubusercontent.com/kar0777/KaroX/main/bootstrap.sh | bash -s -- --channel preview
|
|
138
|
+
```
|
|
139
|
+
|
|
140
|
+
For source-level testing of the exact release candidate, install the matching
|
|
141
|
+
Git tag instead of a moving branch:
|
|
142
|
+
|
|
143
|
+
```bash
|
|
144
|
+
pipx install --force "git+https://github.com/kar0777/KaroX.git@v5.0.0rc2"
|
|
145
|
+
```
|
|
146
|
+
|
|
147
|
+
Then open a terminal inside the Git repository you want to work with and run:
|
|
148
|
+
|
|
149
|
+
```bash
|
|
150
|
+
karox
|
|
151
|
+
```
|
|
152
|
+
|
|
153
|
+
`karox quickstart` prints what is already connected and the single next command
|
|
154
|
+
to run, so the first minute needs no documentation.
|
|
155
|
+
|
|
156
|
+
The public bootstrap commands on `main` still install the latest stable 4.x
|
|
157
|
+
release. `bootstrap.sh --channel preview` / `bootstrap.ps1 -Channel preview`
|
|
158
|
+
install the 5.x release candidate through pipx instead. To test from a source
|
|
159
|
+
checkout, run `./install.karox.sh` or `.\install.karox.ps1` in the repository.
|
|
160
|
+
|
|
161
|
+
On Windows, a terminal opened before installation keeps its old `PATH`. Open a
|
|
162
|
+
new terminal, use the Desktop shortcut, or refresh the environment before
|
|
163
|
+
reporting that the launcher is missing.
|
|
164
|
+
|
|
165
|
+
## Terminal client
|
|
166
|
+
|
|
167
|
+
`karox` opens the full-screen client. Ordinary text is an agent task; it is not
|
|
168
|
+
parsed as command-line syntax.
|
|
169
|
+
|
|
170
|
+
- The first launch asks for Russian or English.
|
|
171
|
+
- `/connect` configures an API provider, a hosted client, or both.
|
|
172
|
+
- Provider credentials are stored in the OS keyring.
|
|
173
|
+
- `F5` discovers models where the provider exposes discovery.
|
|
174
|
+
- `F10` performs a minimal live connection test before activating a route.
|
|
175
|
+
- `Ctrl+B` opens hosted bridge setup.
|
|
176
|
+
- `/language`, `/help`, and `/quit` provide basic UI control.
|
|
177
|
+
|
|
178
|
+
The header shows repository, model, session, and bridge state. The TUI does not
|
|
179
|
+
bypass Core policy; it is a view over the same services used by the CLI.
|
|
180
|
+
|
|
181
|
+
## Connect hosted clients
|
|
182
|
+
|
|
183
|
+
The bridge command creates a repository-bound session, temporary approval
|
|
184
|
+
credential, local MCP endpoint, and managed HTTPS tunnel:
|
|
185
|
+
|
|
186
|
+
```bash
|
|
187
|
+
karox bridge connect chatgpt-web --repository . --write
|
|
188
|
+
karox bridge connect claude-web --repository . --write
|
|
189
|
+
karox bridge connect hyperagent-web --repository . --write
|
|
190
|
+
```
|
|
191
|
+
|
|
192
|
+
Omit `--write` for the read-only tool set. KaroX prints the MCP URL and connection
|
|
193
|
+
instructions; approval credentials remain in the OS keyring instead of being
|
|
194
|
+
printed into logs or chat. When a client needs an OAuth approval password, copy
|
|
195
|
+
the current value locally with `karox bridge oauth approval-password --saved NAME --copy`.
|
|
196
|
+
For HyperAgent, leave "Bring my own OAuth app" off — KaroX advertises OAuth
|
|
197
|
+
discovery and Dynamic Client Registration, so no Client ID or Client Secret is
|
|
198
|
+
entered by hand. See `docs/CONNECTIVITY.md` for the full HyperAgent steps.
|
|
199
|
+
|
|
200
|
+
A Cloudflare Quick Tunnel URL changes after restart. For repeatable setup, save
|
|
201
|
+
only the non-secret launch policy and reconnect with a short command:
|
|
202
|
+
|
|
203
|
+
```bash
|
|
204
|
+
karox bridge saved create full-dev --target-profile chatgpt-web --repository . --write --tunnel tailscale --deadline-preset full-suite
|
|
205
|
+
karox bridge connect --saved full-dev
|
|
206
|
+
```
|
|
207
|
+
|
|
208
|
+
Add explicit `--tool` and `--verification-command` allowlists before exposing
|
|
209
|
+
checks. Tailscale mode uses a stable `.ts.net` hostname when the tailnet permits
|
|
210
|
+
Funnel, refuses to replace existing routes, and stops only its foreground child.
|
|
211
|
+
Use `karox bridge saved validate full-dev --json` or
|
|
212
|
+
`karox bridge connect --saved full-dev --diagnostics-only` to inspect effective
|
|
213
|
+
tools, disabled-tool reasons, verification commands, deadlines, tunnel type, URL
|
|
214
|
+
stability, and session lifetime before publication. Real Tailscale account
|
|
215
|
+
conformance remains pending under `docs/TAILSCALE_LIVE_RUNBOOK.md`.
|
|
216
|
+
|
|
217
|
+
For legal inspection of public HTTPS services, create a separate
|
|
218
|
+
`browser_control` connection with `--browser-external-https`, a domain allowlist,
|
|
219
|
+
headed takeover, and optional redacted network inspection. Headed takeover uses
|
|
220
|
+
a dedicated persistent Chrome profile plus the local KaroX Manifest V3 extension;
|
|
221
|
+
headless verification retains the isolated Playwright and pinned-proxy backend.
|
|
222
|
+
Neither mode exposes cookies or credentials or grants repository write. See
|
|
223
|
+
[External HTTPS browser](docs/EXTERNAL_BROWSER.md).
|
|
224
|
+
|
|
225
|
+
## Connect an API model
|
|
226
|
+
|
|
227
|
+
KaroX supports adapter contracts for:
|
|
228
|
+
|
|
229
|
+
- OpenAI Responses;
|
|
230
|
+
- Anthropic Messages;
|
|
231
|
+
- Gemini GenerateContent;
|
|
232
|
+
- generic OpenAI-compatible streaming endpoints.
|
|
233
|
+
|
|
234
|
+
Use `/connect` in the TUI or the explicit provider, model, and credential CLI
|
|
235
|
+
commands. Credentials are opaque keyring references and must not appear in
|
|
236
|
+
configuration, session state, logs, support bundles, or MCP descriptors.
|
|
237
|
+
|
|
238
|
+
KaroX never silently changes provider, privacy boundary, or mutation behavior.
|
|
239
|
+
Fallback is restricted to classified failures and explicit configured routes.
|
|
240
|
+
|
|
241
|
+
## Intelligence orchestration and economy
|
|
242
|
+
|
|
243
|
+
KaroX 5 now has an opt-in orchestration layer over the same guarded Core. Add API
|
|
244
|
+
models, already-paid subscription agents, local models, and explicitly attached
|
|
245
|
+
external agents to one **Intelligence Pool**, then assign one orchestrator and
|
|
246
|
+
role-specific workers. Automatic quality routing learns only from local KaroX
|
|
247
|
+
outcomes that were both accepted and verified; it does not rank models from their
|
|
248
|
+
names or unversioned marketing benchmarks.
|
|
249
|
+
|
|
250
|
+
The economy path reduces duplicated work before it reduces model quality:
|
|
251
|
+
content-addressed shared context, role-specific context projections, delta
|
|
252
|
+
transfer, deterministic stable prompt prefixes, already-paid-capacity preference,
|
|
253
|
+
quota reserve, measured pricing, and independent review. A Savings Receipt shows
|
|
254
|
+
dollar/percentage savings only when a measured baseline exists; shadow/replay
|
|
255
|
+
counterfactuals are labelled projections.
|
|
256
|
+
|
|
257
|
+
```bash
|
|
258
|
+
karox intelligence list --json
|
|
259
|
+
karox intelligence discover-agents --apply
|
|
260
|
+
karox orchestrate recipes --json
|
|
261
|
+
karox orchestrate plan --objective "Fix retry semantics" --recipe bug-fix --preset maximum_economy
|
|
262
|
+
karox orchestrate run --objective "Fix retry semantics" --recipe bug-fix --isolate-implementers --verification-command '["python","-m","pytest","-q"]'
|
|
263
|
+
karox orchestrate status RUN_ID
|
|
264
|
+
karox mission-control serve RUN_ID
|
|
265
|
+
```
|
|
266
|
+
|
|
267
|
+
`orchestrate run` executes registered API endpoints through the existing
|
|
268
|
+
`AgentKernel` and Core policy. It also has guarded built-in adapters for already-
|
|
269
|
+
paid Codex and Claude Code subscriptions: Codex implementation is confined to a
|
|
270
|
+
KaroX worktree with its workspace-write sandbox, while the Claude built-in path
|
|
271
|
+
is read/review-only in safe mode with Read/Glob/Grep. Gemini CLI and OpenCode can
|
|
272
|
+
be discovered, but automatic built-in execution stays off until KaroX can prove
|
|
273
|
+
an equivalent write boundary. Other local/external workers still require a
|
|
274
|
+
separately registered guarded adapter; KaroX never falls back to arbitrary shell
|
|
275
|
+
commands, scraped cookies, or raw credentials.
|
|
276
|
+
|
|
277
|
+
The selected orchestrator owns planner work by default and runs the final
|
|
278
|
+
`orchestrator-judge` after independent review/test evidence. High-risk plans add
|
|
279
|
+
an independent security review, interrupted running workers require reconciliation
|
|
280
|
+
before retry, and detached worker worktrees are never auto-merged. In the TUI,
|
|
281
|
+
`/orchestrate`, `/agents`, and `/mission` use the same CLI/runtime services; the
|
|
282
|
+
slash menu stays deliberately compact at eight high-frequency commands.
|
|
283
|
+
|
|
284
|
+
See [Intelligence Orchestration and Economy](docs/KAROX_5_ORCHESTRATION_ECONOMY.md)
|
|
285
|
+
for the exact contracts and commands.
|
|
286
|
+
|
|
287
|
+
## Access profiles
|
|
288
|
+
|
|
289
|
+
Friendly UI labels map to stable policy identifiers:
|
|
290
|
+
|
|
291
|
+
- **Observe** (`read_only`) — repository and Git inspection without mutation.
|
|
292
|
+
- **Browser** (`browser_control`) — repository/Git read plus an explicitly
|
|
293
|
+
configured, session-isolated browser and network policy; no repository writes,
|
|
294
|
+
process execution, or local commit.
|
|
295
|
+
- **Build** (`workspace_write`) — file changes, explicitly approved process and
|
|
296
|
+
check execution, Git status/diff evidence, and selected MCP calls. Build does
|
|
297
|
+
not grant `git.commit`.
|
|
298
|
+
- **Advanced** (`elevated`) — explicitly adds guarded local commit and the
|
|
299
|
+
browser, desktop-input, and network capabilities present in elevated policy.
|
|
300
|
+
|
|
301
|
+
No stable profile grants standing Git push, package publishing, or authentication
|
|
302
|
+
authority. An Advanced durable ChatGPT Web bridge may advertise the dedicated
|
|
303
|
+
`karox.git.push` surface, but every push requires a machine-verifiable one-shot
|
|
304
|
+
user approval bound to the exact remote/branch action; `command.run` cannot
|
|
305
|
+
bypass that gate. Resuming work is an action on an existing durable session, not
|
|
306
|
+
a new permission level. Some legacy UI may still display a Resume profile during
|
|
307
|
+
migration.
|
|
308
|
+
|
|
309
|
+
## Automation CLI
|
|
310
|
+
|
|
311
|
+
Scripts and CI use explicit subcommands:
|
|
312
|
+
|
|
313
|
+
```text
|
|
314
|
+
karox paths | session | credential | provider | model | intelligence | skill | mcp | bridge
|
|
315
|
+
| orchestrate | mission-control | economy | pack | target | tool | integration
|
|
316
|
+
| agent | migrate | doctor
|
|
317
|
+
```
|
|
318
|
+
|
|
319
|
+
Examples:
|
|
320
|
+
|
|
321
|
+
```bash
|
|
322
|
+
karox --version
|
|
323
|
+
karox doctor
|
|
324
|
+
karox provider list
|
|
325
|
+
karox model list
|
|
326
|
+
karox session list
|
|
327
|
+
karox bridge list
|
|
328
|
+
karox migrate --json
|
|
329
|
+
karox migrate --apply --json
|
|
330
|
+
```
|
|
331
|
+
|
|
332
|
+
`karox migrate` is dry-run by default; `--apply` is the only mode that writes the
|
|
333
|
+
sanitized migration destination.
|
|
334
|
+
|
|
335
|
+
`karox-vnext` remains a compatibility alias during the preview. New docs and
|
|
336
|
+
scripts should use `karox`.
|
|
337
|
+
|
|
338
|
+
## What is stable, preview, and pending
|
|
339
|
+
|
|
340
|
+
| Surface | Current evidence | Product status |
|
|
341
|
+
| --- | --- | --- |
|
|
342
|
+
| Core Runtime | deterministic unit, integration, and benchmark coverage | Preview release-critical |
|
|
343
|
+
| Native agent loop | real local HTTP/SSE contract E2E with evidence verification | Contract tested |
|
|
344
|
+
| OpenAI/Anthropic/Gemini adapters | deterministic adapter and transport coverage | Contract tested; live pending |
|
|
345
|
+
| ChatGPT Web bridge | OAuth/DCR/PKCE and real local MCP wire coverage | Experimental; live pending |
|
|
346
|
+
| Claude Web bridge | OAuth/DCR/PKCE and real local MCP wire coverage | Experimental; live pending |
|
|
347
|
+
| Generic Streamable HTTP MCP | authenticated local wire E2E | Protocol compatible |
|
|
348
|
+
| Notion gateway | legacy transport regression | Legacy / Preview |
|
|
349
|
+
| PromptQL | local contract and mocked outbound coverage | Experimental |
|
|
350
|
+
| Skills and Packs | strict validation and lifecycle coverage | Preview |
|
|
351
|
+
|
|
352
|
+
A surface is called **live tested** only when a dated record exists under
|
|
353
|
+
[`docs/conformance/`](docs/conformance/README.md). Local fake servers prove the
|
|
354
|
+
KaroX contract, not the current behavior of a third-party product.
|
|
355
|
+
|
|
356
|
+
## Security model
|
|
357
|
+
|
|
358
|
+
Every shipping local action is evaluated against:
|
|
359
|
+
|
|
360
|
+
- an origin identity;
|
|
361
|
+
- a capability;
|
|
362
|
+
- the selected repository;
|
|
363
|
+
- the active session;
|
|
364
|
+
- a mutation lease and fencing token where required;
|
|
365
|
+
- an idempotency key for mutating operations.
|
|
366
|
+
|
|
367
|
+
KaroX additionally enforces secret redaction, path and link confinement,
|
|
368
|
+
allowlisted hosted tools, dedicated credential namespaces, a hard block on
|
|
369
|
+
arbitrary developer-command Git push/package publication, and an exact-action
|
|
370
|
+
one-shot user gate on the dedicated push surface. A failed check cannot be
|
|
371
|
+
converted into a verified success by model text.
|
|
372
|
+
|
|
373
|
+
Read [SECURITY.md](SECURITY.md). Security reports should use the private process
|
|
374
|
+
described there, not a public issue containing a credential or private
|
|
375
|
+
repository data.
|
|
376
|
+
|
|
377
|
+
## Migration
|
|
378
|
+
|
|
379
|
+
KaroX 5 migration is incremental and reversible. The preview discovers legacy
|
|
380
|
+
state in dry-run mode by default, preserves the old installation, imports only
|
|
381
|
+
validated non-secret metadata, places credentials in the OS keyring, and reports
|
|
382
|
+
unsupported data instead of dropping it.
|
|
383
|
+
|
|
384
|
+
See [Migrating from KaroX 4.x to KaroX 5](docs/MIGRATION_V4_TO_V5.md).
|
|
385
|
+
|
|
386
|
+
## Sponsors & supporters
|
|
387
|
+
|
|
388
|
+
KaroX now publicly thanks **33 unique supporters** for concrete development help across model/API access, compute, browser capacity, search, observability, security tooling, developer infrastructure, licenses and research tooling. The expanded list includes StepFun plus the additional confirmed support restored from the project outreach/Gmail record, with duplicate records collapsed.
|
|
389
|
+
|
|
390
|
+
The same 33 names are carried by the KaroX 5 sponsor registry used by `/sponsors`. See the [full supporter wall](SUPPORTERS.md) for logos, links, support categories, and acknowledgements. A listing is a thank-you, not an endorsement of a provider's security, privacy, pricing, or model claims.
|
|
391
|
+
|
|
392
|
+
## Verification
|
|
393
|
+
|
|
394
|
+
CI runs the complete pytest collection, including standalone and parameterized
|
|
395
|
+
tests. For a parallel local run after installing the test dependency group:
|
|
396
|
+
|
|
397
|
+
```bash
|
|
398
|
+
python -m pip install --group test
|
|
399
|
+
python -m pytest tests -n 6 --dist=loadfile
|
|
400
|
+
```
|
|
401
|
+
|
|
402
|
+
Whole-file scheduling keeps benchmark aggregation and class fixtures together;
|
|
403
|
+
no benchmark assertion is skipped to enable parallelism.
|
|
404
|
+
|
|
405
|
+
For comparison with historical records, the deterministic **unittest-only**
|
|
406
|
+
count is maintained separately. The suite is 3384 tests.
|
|
407
|
+
|
|
408
|
+
```bash
|
|
409
|
+
python -m unittest discover -s tests -p "test_*.py"
|
|
410
|
+
```
|
|
411
|
+
|
|
412
|
+
A clean run reports `Ran 3384 tests`. Class-level environment skips can reduce
|
|
413
|
+
the executed count. The unittest-plus-legacy subtotal is 3389 (the baseline
|
|
414
|
+
plus five KaroX 4 script checks); it is **not** the full pytest collection size.
|
|
415
|
+
|
|
416
|
+
`python scripts/check_test_count.py` verifies the published counts. Other
|
|
417
|
+
release checks include:
|
|
418
|
+
|
|
419
|
+
```bash
|
|
420
|
+
python scripts/check_dependencies.py
|
|
421
|
+
python scripts/check_versions.py
|
|
422
|
+
python scripts/check_test_count.py
|
|
423
|
+
python scripts/check_v5_release.py
|
|
424
|
+
python scripts/check_release_workflow.py
|
|
425
|
+
python -m ruff check src tests scripts
|
|
426
|
+
python -m mypy src/karox
|
|
427
|
+
```
|
|
428
|
+
|
|
429
|
+
Use `python scripts/check_v5_release.py --strict` for release-candidate
|
|
430
|
+
rehearsal. It intentionally fails while required live conformance records and
|
|
431
|
+
external beta gates are not passed.
|
|
432
|
+
|
|
433
|
+
## Documentation
|
|
434
|
+
|
|
435
|
+
- [Quick start](QUICKSTART.md)
|
|
436
|
+
- [KaroX 5 release scope](docs/V5_RELEASE_SCOPE.md)
|
|
437
|
+
- [Release checklist](docs/RELEASE_CHECKLIST.md)
|
|
438
|
+
- [External beta plan](docs/BETA_TEST_PLAN.md)
|
|
439
|
+
- [Live test runbook](docs/LIVE_TEST_RUNBOOK.md)
|
|
440
|
+
- [Migration from 4.x](docs/MIGRATION_V4_TO_V5.md)
|
|
441
|
+
- [Live conformance records](docs/conformance/README.md)
|
|
442
|
+
- [Connectivity](docs/CONNECTIVITY.md)
|
|
443
|
+
- [External HTTPS browser](docs/EXTERNAL_BROWSER.md)
|
|
444
|
+
- [Implementation status](docs/IMPLEMENTATION_STATUS.md)
|
|
445
|
+
- [Troubleshooting](TROUBLESHOOTING.md)
|
|
446
|
+
- [Security](SECURITY.md)
|
|
447
|
+
- [Contributing](CONTRIBUTING.md)
|
|
448
|
+
- [Russian README](README_RU.md)
|