OpenJarvis 1.0.4.dev1002__tar.gz → 1.0.4.dev1004__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.
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/PKG-INFO +1 -1
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/cli/daemon_cmd.py +6 -59
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/cli/init_cmd.py +7 -7
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/cli/mine_cmd.py +3 -18
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/core/__init__.py +8 -1
- openjarvis-1.0.4.dev1004/src/openjarvis/core/utils.py +189 -0
- openjarvis-1.0.4.dev1004/tests/cli/test_init_config.py +88 -0
- openjarvis-1.0.4.dev1004/tests/core/test_utils.py +186 -0
- openjarvis-1.0.4.dev1002/src/openjarvis/core/utils.py +0 -52
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/.github/CODEOWNERS +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/.github/ISSUE_TEMPLATE/bug_report.yml +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/.github/ISSUE_TEMPLATE/config.yml +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/.github/ISSUE_TEMPLATE/feature_request.yml +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/.github/ISSUE_TEMPLATE/new_eval.yml +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/.github/ISSUE_TEMPLATE/pearl_model_validation.yml +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/.github/clone-stats/badge.json +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/.github/clone-stats/clone-data.json +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/.github/dependabot.yml +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/.github/pull_request_template.md +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/.github/workflows/autotag.yml +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/.github/workflows/bash-tests.yml +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/.github/workflows/ci.yml +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/.github/workflows/claude-issues.yml +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/.github/workflows/claude-review.yml +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/.github/workflows/desktop.yml +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/.github/workflows/docs.yml +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/.github/workflows/frontend.yml +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/.github/workflows/installer-integration.yml +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/.github/workflows/pypi-publish.yml +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/.github/workflows/take-assign.yml +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/.github/workflows/track-clones.yml +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/.gitignore +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/.pre-commit-config.yaml +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/CHANGELOG.md +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/CODE_OF_CONDUCT.md +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/CONTRIBUTING.md +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/LICENSE +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/Makefile +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/README.md +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/REVIEW.md +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/assets/OpenJarvis_Circular_Logo.png +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/assets/OpenJarvis_Horizontal_Logo.png +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/assets/openjarvis-slack-icon.jpg +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/assets/openjarvis_demo_reel.webp +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/configs/openjarvis/config.toml +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/configs/openjarvis/examples/chat-simple.toml +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/configs/openjarvis/examples/code-assistant.toml +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/configs/openjarvis/examples/deep-research.toml +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/configs/openjarvis/examples/full-system-access.toml +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/configs/openjarvis/examples/morning-digest-linux.toml +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/configs/openjarvis/examples/morning-digest-mac.toml +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/configs/openjarvis/examples/morning-digest-minimal.toml +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/configs/openjarvis/examples/scheduled-monitor.toml +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/configs/openjarvis/examples/spec-search-quickstart.toml +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/configs/openjarvis/prompts/personas/jarvis.md +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/configs/openjarvis/prompts/personas/neutral.md +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/deploy/docker/.env.example +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/deploy/docker/Dockerfile +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/deploy/docker/Dockerfile.gpu +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/deploy/docker/Dockerfile.gpu.rocm +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/deploy/docker/Dockerfile.sandbox +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/deploy/docker/docker-compose.gpu.nvidia.yml +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/deploy/docker/docker-compose.gpu.rocm.yml +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/deploy/docker/docker-compose.yml +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/deploy/launchd/com.openjarvis.plist +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/deploy/posthog/posthog-hetzner-prep.sh +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/deploy/systemd/openjarvis.service +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/deploy/windows/README.md +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/deploy/windows/install.ps1 +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/deploy/windows/jarvis-service.ps1 +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/desktop/src-tauri/binaries/ollama-aarch64-apple-darwin +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/desktop/src-tauri/src/overlay.html +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/docs/architecture/agents.md +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/docs/architecture/channels.md +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/docs/architecture/design-principles.md +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/docs/architecture/engine.md +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/docs/architecture/intelligence.md +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/docs/architecture/learning.md +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/docs/architecture/memory.md +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/docs/architecture/overview.md +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/docs/architecture/query-flow.md +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/docs/architecture/security.md +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/docs/architecture/skills.md +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/docs/assets/OpenJarvis_Architecture.png +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/docs/assets/showcase/README.md +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/docs/assets/showcase/coding-assistant.png +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/docs/assets/showcase/cost-savings.png +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/docs/assets/showcase/discord-companion.png +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/docs/assets/showcase/morning-brief.png +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/docs/assets/showcase/persistent-memory.png +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/docs/deployment/api-server.md +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/docs/deployment/docker.md +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/docs/deployment/index.md +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/docs/deployment/launchd.md +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/docs/deployment/systemd.md +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/docs/design/2026-05-05-apple-silicon-pearl-mining-design.md +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/docs/design/2026-05-05-apple-silicon-pearl-mining-plan-v1.md +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/docs/design/2026-05-05-pearl-coordination-discussion-draft.md +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/docs/design/2026-05-05-vllm-pearl-mining-integration-design.md +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/docs/design/2026-05-05-vllm-pearl-mining-integration-plan.md +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/docs/desktop-auto-update.md +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/docs/development/contributing.md +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/docs/development/mining-nvidia-validation.md +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/docs/development/mining.md +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/docs/development/pearl-model-enablement.md +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/docs/development/release-checklist.md +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/docs/development/roadmap.md +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/docs/downloads.md +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/docs/gen_install_script.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/docs/gen_ref_pages.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/docs/getting-started/configuration.md +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/docs/getting-started/install.md +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/docs/getting-started/installation.md +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/docs/getting-started/linux.md +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/docs/getting-started/macos.md +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/docs/getting-started/quickstart.md +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/docs/getting-started/snippets.md +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/docs/getting-started/windows-native.md +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/docs/getting-started/wsl2.md +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/docs/includes/abbreviations.md +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/docs/index.md +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/docs/javascripts/docsearch-init.js +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/docs/javascripts/leaderboard-config.js +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/docs/javascripts/leaderboard.js +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/docs/leaderboard.md +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/docs/learning/ace.md +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/docs/overrides/main.html +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/docs/showcase/CONTRIBUTING.md +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/docs/showcase/coding-assistant.md +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/docs/showcase/cost-savings.md +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/docs/showcase/discord-companion.md +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/docs/showcase/index.md +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/docs/showcase/morning-brief.md +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/docs/showcase/persistent-memory.md +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/docs/stylesheets/extra.css +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/docs/telemetry.md +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/docs/testing/agent-qa-runbook.md +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/docs/tutorials/code-companion.md +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/docs/tutorials/deep-research.md +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/docs/tutorials/index.md +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/docs/tutorials/messaging-hub.md +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/docs/tutorials/scheduled-ops.md +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/docs/tutorials/skills-workflow.md +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/docs/user-guide/agents.md +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/docs/user-guide/benchmarks.md +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/docs/user-guide/channels-and-connectors.md +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/docs/user-guide/channels.md +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/docs/user-guide/chat-simple.md +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/docs/user-guide/cli.md +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/docs/user-guide/code-assistant.md +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/docs/user-guide/data-boundary-scan.md +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/docs/user-guide/deep-research.md +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/docs/user-guide/evaluations.md +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/docs/user-guide/llm-guided-spec-search.md +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/docs/user-guide/mcp-external-servers.md +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/docs/user-guide/memory.md +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/docs/user-guide/mining-apple-silicon.md +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/docs/user-guide/mining.md +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/docs/user-guide/morning-digest.md +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/docs/user-guide/pearl.md +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/docs/user-guide/python-sdk.md +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/docs/user-guide/scheduled-monitor.md +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/docs/user-guide/scheduler.md +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/docs/user-guide/security.md +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/docs/user-guide/skills.md +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/docs/user-guide/system-access.md +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/docs/user-guide/telemetry.md +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/docs/user-guide/tools.md +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/examples/browser_assistant/README.md +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/examples/browser_assistant/browser_assistant.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/examples/code_companion/README.md +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/examples/code_companion/debugger.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/examples/code_companion/reviewer.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/examples/code_companion/test_gen.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/examples/daily_digest/README.md +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/examples/daily_digest/daily_digest.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/examples/deep_research/README.md +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/examples/deep_research/research.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/examples/deep_research/research.toml +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/examples/doc_qa/README.md +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/examples/doc_qa/doc_qa.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/examples/messaging_hub/README.md +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/examples/messaging_hub/messaging.toml +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/examples/messaging_hub/smart_inbox.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/examples/multi_model_router/README.md +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/examples/multi_model_router/multi_model_router.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/examples/openjarvis/spec_search_quickstart.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/examples/scheduled_ops/README.md +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/examples/scheduled_ops/code_review.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/examples/scheduled_ops/daily_digest.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/examples/scheduled_ops/gym_scheduler.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/examples/scheduled_ops/schedules.toml +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/examples/security_scanner/README.md +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/examples/security_scanner/security_scanner.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/examples/twitter_bot/slack_preview.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/examples/twitter_bot/test_grounding.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/examples/twitter_bot/test_real_world.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/examples/twitter_bot/twitter_bot.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/frontend/components.json +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/frontend/index.html +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/frontend/package-lock.json +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/frontend/package.json +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/frontend/public/apple-touch-icon.png +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/frontend/public/favicon.ico +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/frontend/public/pwa-192x192.png +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/frontend/public/pwa-512x512.png +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/frontend/src/App.tsx +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/frontend/src/components/ApprovalBell.tsx +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/frontend/src/components/Chat/AudioPlayer.tsx +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/frontend/src/components/Chat/ChatArea.tsx +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/frontend/src/components/Chat/InputArea.tsx +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/frontend/src/components/Chat/MessageBubble.tsx +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/frontend/src/components/Chat/MicButton.tsx +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/frontend/src/components/Chat/ResearchTimeline.tsx +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/frontend/src/components/Chat/StreamingDots.tsx +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/frontend/src/components/Chat/SystemPanel.tsx +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/frontend/src/components/Chat/ToolCallCard.tsx +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/frontend/src/components/Chat/XRayFooter.tsx +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/frontend/src/components/CommandPalette.tsx +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/frontend/src/components/Dashboard/CostComparison.tsx +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/frontend/src/components/Dashboard/EnergyDashboard.tsx +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/frontend/src/components/Dashboard/TraceDebugger.tsx +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/frontend/src/components/Desktop/AdminPanel.tsx +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/frontend/src/components/Desktop/AgentsPanel.tsx +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/frontend/src/components/Desktop/EnergyDashboard.tsx +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/frontend/src/components/Desktop/LearningCurve.tsx +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/frontend/src/components/Desktop/MemoryBrowser.tsx +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/frontend/src/components/Desktop/SavingsDashboard.tsx +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/frontend/src/components/Desktop/SettingsPanel.tsx +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/frontend/src/components/Desktop/TraceDebugger.tsx +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/frontend/src/components/Desktop/UpdateChecker.tsx +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/frontend/src/components/Desktop/hooks/useTauriApi.ts +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/frontend/src/components/Desktop/lib/api.ts +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/frontend/src/components/ErrorBoundary.tsx +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/frontend/src/components/Layout.tsx +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/frontend/src/components/OptInModal.tsx +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/frontend/src/components/SetupScreen.tsx +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/frontend/src/components/Sidebar/ConversationList.tsx +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/frontend/src/components/Sidebar/Sidebar.tsx +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/frontend/src/components/SystemPulse.tsx +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/frontend/src/components/setup/IngestDashboard.tsx +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/frontend/src/components/setup/ReadyScreen.tsx +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/frontend/src/components/setup/SetupWizard.tsx +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/frontend/src/components/setup/SourceConnectFlow.tsx +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/frontend/src/components/setup/SourcePicker.tsx +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/frontend/src/components/ui/button.tsx +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/frontend/src/components/ui/dialog.tsx +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/frontend/src/components/ui/input.tsx +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/frontend/src/components/ui/select.tsx +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/frontend/src/components/ui/sonner.tsx +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/frontend/src/components/ui/tooltip.tsx +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/frontend/src/hooks/useSpeech.ts +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/frontend/src/index.css +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/frontend/src/lib/analytics.ts +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/frontend/src/lib/api.auth.test.ts +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/frontend/src/lib/api.ts +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/frontend/src/lib/connectors-api.ts +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/frontend/src/lib/deep-link.ts +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/frontend/src/lib/model-capabilities.test.ts +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/frontend/src/lib/model-capabilities.ts +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/frontend/src/lib/profanity.ts +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/frontend/src/lib/rehype-citations.ts +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/frontend/src/lib/sse.ts +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/frontend/src/lib/store.models.test.ts +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/frontend/src/lib/store.stream-ownership.test.ts +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/frontend/src/lib/store.tool-call-repair.test.ts +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/frontend/src/lib/store.ts +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/frontend/src/lib/supabase.ts +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/frontend/src/lib/tool-call.test.ts +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/frontend/src/lib/tool-call.ts +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/frontend/src/lib/useAgentEvents.test.ts +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/frontend/src/lib/useAgentEvents.ts +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/frontend/src/lib/utils.ts +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/frontend/src/main.tsx +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/frontend/src/pages/AgentsPage.tsx +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/frontend/src/pages/ChatPage.tsx +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/frontend/src/pages/DashboardPage.tsx +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/frontend/src/pages/DataSourcesPage.tsx +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/frontend/src/pages/GetStartedPage.tsx +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/frontend/src/pages/LogsPage.tsx +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/frontend/src/pages/SettingsPage.tsx +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/frontend/src/types/connectors.ts +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/frontend/src/types/index.ts +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/frontend/src/vite-env.d.ts +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/frontend/src-tauri/Cargo.lock +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/frontend/src-tauri/Cargo.toml +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/frontend/src-tauri/Entitlements.plist +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/frontend/src-tauri/Info.plist +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/frontend/src-tauri/binaries/.gitignore +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/frontend/src-tauri/build.rs +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/frontend/src-tauri/capabilities/default.json +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/frontend/src-tauri/icons/128x128.png +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/frontend/src-tauri/icons/128x128@2x.png +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/frontend/src-tauri/icons/256x256.png +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/frontend/src-tauri/icons/32x32.png +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/frontend/src-tauri/icons/icon.icns +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/frontend/src-tauri/icons/icon.ico +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/frontend/src-tauri/icons/icon.png +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/frontend/src-tauri/scripts/download-ollama.sh +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/frontend/src-tauri/src/lib.rs +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/frontend/src-tauri/src/main.rs +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/frontend/src-tauri/src/overlay.html +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/frontend/src-tauri/tauri.conf.json +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/frontend/tsconfig.json +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/frontend/tsconfig.tsbuildinfo +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/frontend/vite.config.ts +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/mkdocs.yml +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/pyproject.toml +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/rust/Cargo.lock +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/rust/Cargo.toml +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/rust/crates/openjarvis-a2a/Cargo.toml +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/rust/crates/openjarvis-a2a/src/lib.rs +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/rust/crates/openjarvis-agents/Cargo.toml +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/rust/crates/openjarvis-agents/src/helpers.rs +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/rust/crates/openjarvis-agents/src/lib.rs +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/rust/crates/openjarvis-agents/src/loop_guard.rs +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/rust/crates/openjarvis-agents/src/monitor_operative.rs +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/rust/crates/openjarvis-agents/src/native_openhands.rs +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/rust/crates/openjarvis-agents/src/native_react.rs +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/rust/crates/openjarvis-agents/src/orchestrator.rs +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/rust/crates/openjarvis-agents/src/simple.rs +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/rust/crates/openjarvis-agents/src/traits.rs +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/rust/crates/openjarvis-agents/src/utils.rs +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/rust/crates/openjarvis-core/Cargo.toml +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/rust/crates/openjarvis-core/src/config.rs +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/rust/crates/openjarvis-core/src/error.rs +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/rust/crates/openjarvis-core/src/events.rs +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/rust/crates/openjarvis-core/src/hardware.rs +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/rust/crates/openjarvis-core/src/lib.rs +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/rust/crates/openjarvis-core/src/model_catalog.rs +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/rust/crates/openjarvis-core/src/registry.rs +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/rust/crates/openjarvis-core/src/types.rs +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/rust/crates/openjarvis-engine/Cargo.toml +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/rust/crates/openjarvis-engine/src/discovery.rs +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/rust/crates/openjarvis-engine/src/engine_enum.rs +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/rust/crates/openjarvis-engine/src/lib.rs +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/rust/crates/openjarvis-engine/src/llamacpp.rs +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/rust/crates/openjarvis-engine/src/ollama.rs +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/rust/crates/openjarvis-engine/src/openai_compat.rs +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/rust/crates/openjarvis-engine/src/rig_adapter.rs +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/rust/crates/openjarvis-engine/src/sglang.rs +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/rust/crates/openjarvis-engine/src/traits.rs +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/rust/crates/openjarvis-engine/src/vllm.rs +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/rust/crates/openjarvis-learning/Cargo.toml +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/rust/crates/openjarvis-learning/src/agent_advisor.rs +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/rust/crates/openjarvis-learning/src/agent_evolver.rs +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/rust/crates/openjarvis-learning/src/bandit.rs +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/rust/crates/openjarvis-learning/src/grpo.rs +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/rust/crates/openjarvis-learning/src/heuristic.rs +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/rust/crates/openjarvis-learning/src/heuristic_reward.rs +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/rust/crates/openjarvis-learning/src/icl_updater.rs +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/rust/crates/openjarvis-learning/src/learning_orchestrator.rs +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/rust/crates/openjarvis-learning/src/lib.rs +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/rust/crates/openjarvis-learning/src/optimize/engine.rs +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/rust/crates/openjarvis-learning/src/optimize/llm_optimizer.rs +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/rust/crates/openjarvis-learning/src/optimize/mod.rs +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/rust/crates/openjarvis-learning/src/optimize/search_space.rs +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/rust/crates/openjarvis-learning/src/optimize/store.rs +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/rust/crates/openjarvis-learning/src/optimize/types.rs +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/rust/crates/openjarvis-learning/src/orchestrator_types.rs +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/rust/crates/openjarvis-learning/src/reward.rs +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/rust/crates/openjarvis-learning/src/router_enum.rs +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/rust/crates/openjarvis-learning/src/sft_policy.rs +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/rust/crates/openjarvis-learning/src/skill_discovery.rs +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/rust/crates/openjarvis-learning/src/trace_policy.rs +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/rust/crates/openjarvis-learning/src/training_data.rs +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/rust/crates/openjarvis-learning/src/traits.rs +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/rust/crates/openjarvis-mcp/Cargo.toml +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/rust/crates/openjarvis-mcp/src/lib.rs +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/rust/crates/openjarvis-mcp/src/protocol.rs +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/rust/crates/openjarvis-mcp/src/server.rs +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/rust/crates/openjarvis-python/Cargo.toml +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/rust/crates/openjarvis-python/pyproject.toml +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/rust/crates/openjarvis-python/src/a2a.rs +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/rust/crates/openjarvis-python/src/agents.rs +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/rust/crates/openjarvis-python/src/core.rs +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/rust/crates/openjarvis-python/src/engine.rs +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/rust/crates/openjarvis-python/src/learning.rs +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/rust/crates/openjarvis-python/src/lib.rs +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/rust/crates/openjarvis-python/src/mcp.rs +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/rust/crates/openjarvis-python/src/recipes.rs +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/rust/crates/openjarvis-python/src/scheduler.rs +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/rust/crates/openjarvis-python/src/security.rs +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/rust/crates/openjarvis-python/src/sessions.rs +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/rust/crates/openjarvis-python/src/skills.rs +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/rust/crates/openjarvis-python/src/storage.rs +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/rust/crates/openjarvis-python/src/telemetry.rs +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/rust/crates/openjarvis-python/src/templates.rs +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/rust/crates/openjarvis-python/src/tools.rs +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/rust/crates/openjarvis-python/src/traces.rs +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/rust/crates/openjarvis-python/src/workflow.rs +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/rust/crates/openjarvis-python/uv.lock +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/rust/crates/openjarvis-recipes/Cargo.toml +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/rust/crates/openjarvis-recipes/src/lib.rs +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/rust/crates/openjarvis-scheduler/Cargo.toml +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/rust/crates/openjarvis-scheduler/src/lib.rs +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/rust/crates/openjarvis-security/Cargo.toml +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/rust/crates/openjarvis-security/src/audit.rs +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/rust/crates/openjarvis-security/src/capabilities.rs +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/rust/crates/openjarvis-security/src/file_policy.rs +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/rust/crates/openjarvis-security/src/guardrails.rs +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/rust/crates/openjarvis-security/src/injection.rs +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/rust/crates/openjarvis-security/src/lib.rs +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/rust/crates/openjarvis-security/src/rate_limiter.rs +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/rust/crates/openjarvis-security/src/scanner.rs +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/rust/crates/openjarvis-security/src/ssrf.rs +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/rust/crates/openjarvis-security/src/taint.rs +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/rust/crates/openjarvis-security/src/types.rs +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/rust/crates/openjarvis-sessions/Cargo.toml +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/rust/crates/openjarvis-sessions/src/lib.rs +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/rust/crates/openjarvis-skills/Cargo.toml +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/rust/crates/openjarvis-skills/src/lib.rs +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/rust/crates/openjarvis-telemetry/Cargo.toml +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/rust/crates/openjarvis-telemetry/src/aggregator.rs +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/rust/crates/openjarvis-telemetry/src/energy.rs +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/rust/crates/openjarvis-telemetry/src/flops.rs +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/rust/crates/openjarvis-telemetry/src/instrumented.rs +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/rust/crates/openjarvis-telemetry/src/itl.rs +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/rust/crates/openjarvis-telemetry/src/lib.rs +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/rust/crates/openjarvis-telemetry/src/phase.rs +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/rust/crates/openjarvis-telemetry/src/session.rs +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/rust/crates/openjarvis-telemetry/src/store.rs +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/rust/crates/openjarvis-templates/Cargo.toml +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/rust/crates/openjarvis-templates/src/lib.rs +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/rust/crates/openjarvis-tools/Cargo.toml +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/rust/crates/openjarvis-tools/src/builtin/calculator.rs +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/rust/crates/openjarvis-tools/src/builtin/file_tools.rs +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/rust/crates/openjarvis-tools/src/builtin/git_tools.rs +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/rust/crates/openjarvis-tools/src/builtin/http_tools.rs +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/rust/crates/openjarvis-tools/src/builtin/mod.rs +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/rust/crates/openjarvis-tools/src/builtin/shell.rs +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/rust/crates/openjarvis-tools/src/builtin/think.rs +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/rust/crates/openjarvis-tools/src/executor.rs +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/rust/crates/openjarvis-tools/src/lib.rs +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/rust/crates/openjarvis-tools/src/rig_tools.rs +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/rust/crates/openjarvis-tools/src/storage/backend_enum.rs +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/rust/crates/openjarvis-tools/src/storage/bm25.rs +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/rust/crates/openjarvis-tools/src/storage/colbert.rs +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/rust/crates/openjarvis-tools/src/storage/faiss.rs +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/rust/crates/openjarvis-tools/src/storage/hybrid.rs +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/rust/crates/openjarvis-tools/src/storage/knowledge_graph.rs +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/rust/crates/openjarvis-tools/src/storage/mod.rs +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/rust/crates/openjarvis-tools/src/storage/sqlite.rs +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/rust/crates/openjarvis-tools/src/storage/traits.rs +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/rust/crates/openjarvis-tools/src/storage/utils.rs +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/rust/crates/openjarvis-tools/src/traits.rs +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/rust/crates/openjarvis-traces/Cargo.toml +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/rust/crates/openjarvis-traces/src/analyzer.rs +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/rust/crates/openjarvis-traces/src/collector.rs +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/rust/crates/openjarvis-traces/src/lib.rs +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/rust/crates/openjarvis-traces/src/store.rs +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/rust/crates/openjarvis-workflow/Cargo.toml +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/rust/crates/openjarvis-workflow/src/lib.rs +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/rust/rust-toolchain.toml +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/scripts/bump-desktop-version.sh +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/scripts/index_docs.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/scripts/install/bg-orchestrator.sh +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/scripts/install/build-extension.sh +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/scripts/install/install-rust.sh +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/scripts/install/install.sh +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/scripts/install/jarvis-uninstall.sh +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/scripts/install/jarvis-wrapper.sh +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/scripts/install/pull-model.sh +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/scripts/mining/pearl_model_converter.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/scripts/oauth_all.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/scripts/pearl/README.md +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/scripts/pearl/model_converter.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/scripts/quickstart.sh +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/scripts/smoke_framework_comparison.sh +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/__init__.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/_rust_bridge.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/a2a/__init__.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/a2a/client.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/a2a/protocol.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/a2a/server.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/a2a/tool.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/agents/__init__.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/agents/_stubs.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/agents/channel_agent.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/agents/claude_code.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/agents/claude_code_runner/package.json +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/agents/claude_code_runner/src/index.ts +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/agents/deep_research.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/agents/digest_store.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/agents/errors.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/agents/executor.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/agents/hybrid/README.md +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/agents/hybrid/__init__.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/agents/hybrid/_base.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/agents/hybrid/_energy.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/agents/hybrid/_openai_retry.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/agents/hybrid/_prices.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/agents/hybrid/_prompts.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/agents/hybrid/advisors.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/agents/hybrid/archon.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/agents/hybrid/baseline_cloud.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/agents/hybrid/baseline_local.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/agents/hybrid/conductor.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/agents/hybrid/mini_swe_agent.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/agents/hybrid/minions.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/agents/hybrid/registry/advisors.toml +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/agents/hybrid/registry/archon.toml +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/agents/hybrid/registry/baseline_local.toml +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/agents/hybrid/registry/conductor.toml +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/agents/hybrid/registry/mini_swe_agent.toml +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/agents/hybrid/registry/minions.toml +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/agents/hybrid/registry/skillorchestra.toml +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/agents/hybrid/registry/swe_agent_loop.toml +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/agents/hybrid/registry/toolorchestra.toml +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/agents/hybrid/runner.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/agents/hybrid/scripts/new_experiment.sh +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/agents/hybrid/skillorchestra/README.md +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/agents/hybrid/skillorchestra/__init__.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/agents/hybrid/skillorchestra/agent.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/agents/hybrid/skillorchestra/handbook_seed.json +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/agents/hybrid/skillorchestra/orchestrator.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/agents/hybrid/skillorchestra/pool.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/agents/hybrid/skillorchestra/prompts/__init__.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/agents/hybrid/skillorchestra/prompts/eval_orchestrator.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/agents/hybrid/skillorchestra/prompts/learning.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/agents/hybrid/skillorchestra/prompts/model_routing.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/agents/hybrid/skillorchestra/stage_router.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/agents/hybrid/skillorchestra/tools.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/agents/hybrid/skillorchestra/types.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/agents/hybrid/skillorchestra.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/agents/hybrid/toolorchestra.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/agents/loop_guard.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/agents/manager.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/agents/monitor_operative.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/agents/morning_digest.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/agents/native_openhands.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/agents/native_react.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/agents/opencode.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/agents/openhands.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/agents/operative.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/agents/orchestrator.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/agents/proactive_agent.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/agents/prompt_loader.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/agents/research_loop.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/agents/rlm.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/agents/rlm_repl.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/agents/scheduler.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/agents/simple.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/agents/templates/__init__.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/agents/templates/code_reviewer.toml +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/agents/templates/inbox_triager.toml +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/agents/templates/personal_deep_research.toml +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/agents/templates/research_monitor.toml +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/agents/tool_resolver.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/analytics/__init__.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/analytics/aggregator.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/analytics/bridge.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/analytics/client.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/analytics/events.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/analytics/identity.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/analytics/redaction.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/bench/__init__.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/bench/_stats.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/bench/_stubs.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/bench/energy.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/bench/latency.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/bench/throughput.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/channels/__init__.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/channels/_stubs.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/channels/bluebubbles.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/channels/discord_channel.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/channels/email_channel.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/channels/feishu.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/channels/gmail.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/channels/google_chat.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/channels/imessage_daemon.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/channels/irc_channel.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/channels/line_channel.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/channels/mastodon_channel.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/channels/matrix_channel.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/channels/mattermost.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/channels/messenger_channel.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/channels/nostr_channel.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/channels/reddit_channel.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/channels/rocketchat_channel.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/channels/sendblue.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/channels/signal_channel.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/channels/slack.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/channels/slack_daemon.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/channels/teams.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/channels/telegram.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/channels/twilio_sms.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/channels/twitch_channel.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/channels/twitter_channel.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/channels/viber_channel.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/channels/webchat.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/channels/webhook.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/channels/whatsapp.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/channels/whatsapp_baileys.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/channels/whatsapp_baileys_bridge/package-lock.json +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/channels/whatsapp_baileys_bridge/package.json +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/channels/whatsapp_baileys_bridge/src/bridge.ts +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/channels/whatsapp_baileys_bridge/tsconfig.json +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/channels/xmpp_channel.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/channels/zulip_channel.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/cli/__init__.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/cli/__main__.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/cli/_banner.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/cli/_bg_state.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/cli/_bootstrap.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/cli/_chat_banner.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/cli/_chat_notifications.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/cli/_first_run.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/cli/_install_detect.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/cli/_screen.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/cli/_tool_names.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/cli/_version_check.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/cli/add_cmd.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/cli/agent_cmd.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/cli/ask.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/cli/auth_cmd.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/cli/bench_cmd.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/cli/channel_cmd.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/cli/channels_cmd.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/cli/chat_cmd.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/cli/compose_cmd.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/cli/config_cmd.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/cli/connect_cmd.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/cli/dashboard.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/cli/deep_research_setup_cmd.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/cli/digest_cmd.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/cli/doctor_cmd.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/cli/eval_cmd.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/cli/feedback_cmd.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/cli/gateway_cmd.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/cli/hints.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/cli/host_cmd.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/cli/log_config.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/cli/memory_cmd.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/cli/model.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/cli/operators_cmd.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/cli/optimize_cmd.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/cli/pearl_cmd.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/cli/quickstart_cmd.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/cli/registry_cmd.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/cli/scan_cmd.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/cli/scheduler_cmd.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/cli/self_update_cmd.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/cli/serve.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/cli/skill_cmd.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/cli/telemetry_cmd.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/cli/tool_cmd.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/cli/tunnel_cmd.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/cli/vault_cmd.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/cli/workflow_cmd.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/connectors/__init__.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/connectors/_stubs.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/connectors/apple_contacts.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/connectors/apple_health.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/connectors/apple_music.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/connectors/apple_notes.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/connectors/attachment_store.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/connectors/chunker.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/connectors/dropbox.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/connectors/embedding_store.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/connectors/embeddings.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/connectors/gcalendar.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/connectors/gcontacts.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/connectors/gdrive.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/connectors/github_notifications.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/connectors/gmail.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/connectors/gmail_imap.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/connectors/google_auth.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/connectors/google_tasks.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/connectors/granola.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/connectors/hackernews.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/connectors/hybrid_search.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/connectors/imessage.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/connectors/news_rss.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/connectors/notion.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/connectors/oauth.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/connectors/obsidian.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/connectors/oura.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/connectors/outlook.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/connectors/pipeline.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/connectors/retriever.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/connectors/scheduler.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/connectors/slack_connector.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/connectors/spotify.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/connectors/store.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/connectors/strava.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/connectors/sync_engine.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/connectors/weather.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/connectors/whatsapp.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/core/config.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/core/credentials.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/core/events.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/core/paths.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/core/registry.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/core/types.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/daemon/__init__.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/daemon/gateway.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/daemon/service.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/daemon/session_expiry.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/engine/__init__.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/engine/_base.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/engine/_discovery.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/engine/_http_async.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/engine/_openai_compat.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/engine/_stubs.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/engine/apple_fm_shim.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/engine/cloud.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/engine/gemma_cpp.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/engine/litellm.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/engine/multi.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/engine/nexa_shim.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/engine/nim.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/engine/ollama.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/engine/openai_compat_engines.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/evals/__init__.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/evals/__main__.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/evals/backends/__init__.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/evals/backends/_commit_util.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/evals/backends/_endpoint_util.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/evals/backends/external/__init__.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/evals/backends/external/_runners/__init__.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/evals/backends/external/_runners/hermes_runner.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/evals/backends/external/_runners/openclaw_runner.mjs +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/evals/backends/external/_subprocess_runner.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/evals/backends/external/hermes_agent.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/evals/backends/external/openclaw.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/evals/backends/jarvis_agent.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/evals/backends/jarvis_direct.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/evals/backends/tb_agent.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/evals/backends/terminalbench_native.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/evals/cli.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/evals/comparison/__init__.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/evals/comparison/make_configs.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/evals/comparison/table_gen.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/evals/comparison/third_party.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/evals/configs/deepplanning-monitor-operative.toml +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/evals/configs/framework_comparison/_template.toml +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/evals/configs/framework_comparison/_third_party.toml +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/evals/configs/full-suite.toml +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/evals/configs/gaia-gemini-31-pro.toml +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/evals/configs/gaia-gemma4-26b.toml +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/evals/configs/gaia-gpt54.toml +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/evals/configs/gaia-nemotron-nano.toml +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/evals/configs/gaia-nemotron-super.toml +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/evals/configs/gaia-nemotron3-super.toml +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/evals/configs/gaia-qwen-122b.toml +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/evals/configs/gaia-qwen-27b.toml +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/evals/configs/gaia-qwen-2b.toml +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/evals/configs/gaia-qwen-35b.toml +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/evals/configs/gaia-qwen-9b.toml +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/evals/configs/gaia-qwen122b.toml +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/evals/configs/gaia-qwen35b.toml +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/evals/configs/gaia-rerun-claude-opus.toml +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/evals/configs/gaia-rerun-claude-sonnet.toml +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/evals/configs/gaia-rerun-glm47flash.toml +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/evals/configs/gaia-rerun-gpt5mini.toml +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/evals/configs/gaia-rerun-minimax-m25.toml +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/evals/configs/gaia-rerun-qwen122b.toml +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/evals/configs/gaia-rerun-qwen35b.toml +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/evals/configs/gaia-rerun-qwen397b.toml +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/evals/configs/gaia-trinity-large.toml +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/evals/configs/glm-4.7-flash-openhands-remaining.toml +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/evals/configs/glm-4.7-flash-openhands.toml +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/evals/configs/glm-4.7-fp8-openhands-gaia.toml +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/evals/configs/glm5-fp8-monitor-operative.toml +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/evals/configs/kimi-k2.5-monitor-operative.toml +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/evals/configs/livecodebench-claude-opus.toml +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/evals/configs/livecodebench-gemma4-26b.toml +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/evals/configs/livecodebench-gemma4-e4b.toml +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/evals/configs/livecodebench-kimi-k25.toml +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/evals/configs/livecodebench-minimax-m25.toml +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/evals/configs/livecodebench-nemotron-nano.toml +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/evals/configs/livecodebench-nemotron-super.toml +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/evals/configs/livecodebench-qwen-122b.toml +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/evals/configs/livecodebench-qwen-27b.toml +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/evals/configs/livecodebench-qwen-2b.toml +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/evals/configs/livecodebench-qwen-35b.toml +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/evals/configs/livecodebench-qwen-9b.toml +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/evals/configs/liveresearch-claude-opus.toml +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/evals/configs/liveresearch-gemini-31-pro.toml +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/evals/configs/liveresearch-gemma4-26b.toml +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/evals/configs/liveresearch-gemma4-31b.toml +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/evals/configs/liveresearch-gpt54.toml +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/evals/configs/liveresearch-granite-3.3-8b-lora.toml +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/evals/configs/liveresearch-granite-3.3-8b.toml +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/evals/configs/liveresearch-granite-4.0-h-small.toml +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/evals/configs/liveresearch-granite-4.0-micro.toml +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/evals/configs/liveresearch-nemotron-nano.toml +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/evals/configs/liveresearch-nemotron-super.toml +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/evals/configs/liveresearch-qwen-122b.toml +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/evals/configs/liveresearch-qwen-27b-lora-r32.toml +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/evals/configs/liveresearch-qwen-27b.toml +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/evals/configs/liveresearch-qwen-2b-lora-r16.toml +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/evals/configs/liveresearch-qwen-2b-lora-r32.toml +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/evals/configs/liveresearch-qwen-2b-mixed.toml +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/evals/configs/liveresearch-qwen-2b-trackb.toml +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/evals/configs/liveresearch-qwen-2b.toml +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/evals/configs/liveresearch-qwen-35b.toml +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/evals/configs/liveresearch-qwen-9b-lora-r32.toml +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/evals/configs/liveresearch-qwen-9b-mixed.toml +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/evals/configs/liveresearch-qwen-9b-trackb.toml +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/evals/configs/liveresearch-qwen-9b.toml +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/evals/configs/liveresearch-trinity-large.toml +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/evals/configs/liveresearchbench-qwen-27b.toml +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/evals/configs/liveresearchbench-qwen-2b.toml +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/evals/configs/liveresearchbench-qwen-9b.toml +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/evals/configs/long-horizon-claude-opus.toml +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/evals/configs/long-horizon-claude-sonnet.toml +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/evals/configs/long-horizon-glm47flash.toml +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/evals/configs/long-horizon-gpt5mini.toml +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/evals/configs/long-horizon-kimik25.toml +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/evals/configs/long-horizon-minimax-m25.toml +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/evals/configs/long-horizon-qwen122b.toml +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/evals/configs/long-horizon-qwen35b.toml +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/evals/configs/long-horizon-qwen397b.toml +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/evals/configs/minimal.toml +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/evals/configs/paperarena-monitor-operative.toml +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/evals/configs/pinchbench-claude-opus.toml +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/evals/configs/pinchbench-gemini-31-pro.toml +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/evals/configs/pinchbench-gemma4-26b.toml +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/evals/configs/pinchbench-gemma4-e4b.toml +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/evals/configs/pinchbench-gpt54.toml +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/evals/configs/pinchbench-kimi-k25.toml +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/evals/configs/pinchbench-minimax-m25.toml +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/evals/configs/pinchbench-nemotron-nano.toml +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/evals/configs/pinchbench-nemotron-super.toml +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/evals/configs/pinchbench-nemotron3-super.toml +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/evals/configs/pinchbench-qwen-122b.toml +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/evals/configs/pinchbench-qwen-27b.toml +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/evals/configs/pinchbench-qwen-2b.toml +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/evals/configs/pinchbench-qwen-35b.toml +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/evals/configs/pinchbench-qwen-9b.toml +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/evals/configs/pinchbench-qwen122b.toml +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/evals/configs/pinchbench-qwen35b.toml +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/evals/configs/pinchbench-qwen397b.toml +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/evals/configs/pinchbench.toml +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/evals/configs/qwen3.5-122b-kg-agentic.toml +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/evals/configs/qwen3.5-122b-kg-hightoken.toml +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/evals/configs/qwen3.5-122b-reasoning-suite.toml +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/evals/configs/qwen3.5-35b-kg.toml +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/evals/configs/qwen3.5-35b-monitor-operative.toml +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/evals/configs/qwen3.5-397b-monitor-operative.toml +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/evals/configs/single-run.toml +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/evals/configs/smoke_amd.toml +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/evals/configs/smoke_apple.toml +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/evals/configs/smoke_nvidia.toml +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/evals/configs/taubench-claude-opus.toml +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/evals/configs/taubench-gemini-31-pro.toml +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/evals/configs/taubench-gemma4-26b.toml +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/evals/configs/taubench-gemma4-e4b.toml +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/evals/configs/taubench-gpt54.toml +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/evals/configs/taubench-kimi-k25.toml +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/evals/configs/taubench-minimax-m25.toml +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/evals/configs/taubench-nemotron-nano.toml +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/evals/configs/taubench-nemotron-super.toml +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/evals/configs/taubench-nemotron3-super.toml +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/evals/configs/taubench-qwen-122b.toml +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/evals/configs/taubench-qwen-27b.toml +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/evals/configs/taubench-qwen-2b.toml +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/evals/configs/taubench-qwen-35b.toml +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/evals/configs/taubench-qwen-9b.toml +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/evals/configs/taubench-qwen122b.toml +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/evals/configs/taubench-qwen35b.toml +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/evals/configs/taubench-qwen397b.toml +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/evals/configs/taubench-telecom-claude.toml +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/evals/configs/taubench-telecom-gemma4-26b.toml +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/evals/configs/taubench-telecom-gpt54.toml +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/evals/configs/taubench-telecom-nemotron-nano.toml +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/evals/configs/taubench-telecom-nemotron-super.toml +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/evals/configs/taubench-telecom-nemotron.toml +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/evals/configs/taubench-telecom-qwen-122b.toml +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/evals/configs/taubench-telecom-qwen-27b.toml +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/evals/configs/taubench-telecom-qwen-35b.toml +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/evals/configs/taubench-telecom-qwen27b.toml +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/evals/configs/taubench-telecom-qwen2b.toml +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/evals/configs/taubench-telecom-qwen9b.toml +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/evals/configs/taubench-telecom-trinity-large.toml +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/evals/configs/terminalbench-native-qwen122b.toml +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/evals/configs/terminalbench-qwen122b.toml +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/evals/configs/toolcall15-claude-opus.toml +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/evals/configs/toolcall15-gemma4-26b.toml +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/evals/configs/toolcall15-gemma4-e4b.toml +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/evals/configs/toolcall15-kimi-k25.toml +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/evals/configs/toolcall15-minimax-m25.toml +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/evals/configs/toolcall15-nemotron-nano.toml +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/evals/configs/toolcall15-nemotron-super.toml +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/evals/configs/toolcall15-qwen-122b.toml +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/evals/configs/toolcall15-qwen-27b.toml +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/evals/configs/toolcall15-qwen-2b.toml +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/evals/configs/toolcall15-qwen-35b.toml +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/evals/configs/toolcall15-qwen-9b.toml +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/evals/configs/use_case_cloud_comparison.toml +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/evals/configs/use_case_cloud_openhands.toml +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/evals/configs/use_case_cloud_orchestrator.toml +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/evals/configs/use_case_direct.toml +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/evals/configs/use_case_ibm_granite.toml +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/evals/configs/use_case_openhands.toml +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/evals/configs/use_case_opensource_openhands.toml +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/evals/configs/use_case_opensource_orchestrator.toml +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/evals/configs/use_case_orchestrator.toml +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/evals/configs/use_case_react.toml +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/evals/configs/use_case_suite.toml +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/evals/configs/use_case_v2_cloud.toml +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/evals/configs/use_case_v2_granite.toml +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/evals/configs/use_case_v2_local.toml +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/evals/configs/use_case_v2_suite.toml +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/evals/core/__init__.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/evals/core/agentic_runner.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/evals/core/backend.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/evals/core/config.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/evals/core/dataset.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/evals/core/display.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/evals/core/environment.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/evals/core/event_recorder.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/evals/core/export.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/evals/core/pricing.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/evals/core/runner.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/evals/core/scorer.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/evals/core/splits.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/evals/core/trace.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/evals/core/tracker.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/evals/core/types.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/evals/datasets/__init__.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/evals/datasets/adp.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/evals/datasets/ama_bench.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/evals/datasets/browser_assistant.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/evals/datasets/coding_assistant.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/evals/datasets/coding_task.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/evals/datasets/daily_digest.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/evals/datasets/deepplanning.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/evals/datasets/doc_qa.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/evals/datasets/email_triage.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/evals/datasets/frames.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/evals/datasets/gaia.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/evals/datasets/generalthoughts.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/evals/datasets/gpqa.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/evals/datasets/hle.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/evals/datasets/ipw_mixed.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/evals/datasets/knowledge_base.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/evals/datasets/lifelong_agent.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/evals/datasets/livecodebench.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/evals/datasets/liveresearch.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/evals/datasets/liveresearchbench.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/evals/datasets/loghub.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/evals/datasets/math500.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/evals/datasets/mmlu_pro.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/evals/datasets/morning_brief.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/evals/datasets/natural_reasoning.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/evals/datasets/paperarena.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/evals/datasets/pinchbench.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/evals/datasets/research_mining.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/evals/datasets/security_scanner.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/evals/datasets/simpleqa.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/evals/datasets/supergpqa.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/evals/datasets/swebench.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/evals/datasets/swefficiency.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/evals/datasets/taubench.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/evals/datasets/terminalbench.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/evals/datasets/terminalbench_native.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/evals/datasets/terminalbench_v2_1.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/evals/datasets/toolcall15.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/evals/datasets/toolorchestra.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/evals/datasets/webchorearena.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/evals/datasets/wildchat.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/evals/datasets/workarena.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/evals/environments/__init__.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/evals/environments/base.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/evals/environments/lifelong_agent_env.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/evals/execution/__init__.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/evals/execution/pinchbench_env.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/evals/execution/taubench_env.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/evals/execution/terminalbench_env.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/evals/execution/terminalbench_v2_1_env.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/evals/execution/webchorearena_env.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/evals/execution/workarena_env.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/evals/scorers/__init__.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/evals/scorers/_checklist.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/evals/scorers/ama_bench_judge.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/evals/scorers/browser_assistant.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/evals/scorers/coding_assistant.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/evals/scorers/coding_task.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/evals/scorers/daily_digest.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/evals/scorers/deepplanning_scorer.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/evals/scorers/doc_qa.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/evals/scorers/email_triage.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/evals/scorers/frames_judge.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/evals/scorers/gaia_exact.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/evals/scorers/gpqa_mcq.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/evals/scorers/hle_judge.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/evals/scorers/ipw_mixed.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/evals/scorers/knowledge_base.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/evals/scorers/lifelong_agent_scorer.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/evals/scorers/livecodebench.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/evals/scorers/liveresearch.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/evals/scorers/liveresearchbench.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/evals/scorers/loghub_scorer.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/evals/scorers/mmlu_pro_mcq.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/evals/scorers/morning_brief.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/evals/scorers/paperarena_judge.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/evals/scorers/pinchbench.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/evals/scorers/reasoning_judge.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/evals/scorers/research_mining.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/evals/scorers/security_scanner.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/evals/scorers/simpleqa_judge.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/evals/scorers/supergpqa_mcq.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/evals/scorers/swebench_harness.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/evals/scorers/swebench_structural.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/evals/scorers/swefficiency_structural.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/evals/scorers/taubench.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/evals/scorers/terminalbench_judge.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/evals/scorers/terminalbench_native_structural.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/evals/scorers/terminalbench_v2_1.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/evals/scorers/toolcall15.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/evals/scorers/webchorearena_scorer.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/evals/scorers/wildchat_judge.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/evals/scorers/workarena_scorer.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/evals/skill_benchmark.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/evals/tests/__init__.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/evals/tests/conftest.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/evals/tests/test_backends.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/evals/tests/test_cli_endpoint.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/evals/tests/test_cli_flags.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/evals/tests/test_config.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/evals/tests/test_display.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/evals/tests/test_frames.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/evals/tests/test_gaia.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/evals/tests/test_runner.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/evals/tests/test_supergpqa.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/evals/tests/test_types.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/evals/tests/test_wildchat.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/evals/trackers/__init__.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/evals/trackers/sheets_tracker.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/evals/trackers/wandb_tracker.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/intelligence/__init__.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/intelligence/model_catalog.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/learning/__init__.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/learning/_stubs.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/learning/agents/__init__.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/learning/agents/ace_optimizer.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/learning/agents/agent_evolver.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/learning/agents/dspy_optimizer.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/learning/agents/gepa_optimizer.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/learning/agents/skill_discovery.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/learning/agents/skill_optimizer.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/learning/intelligence/__init__.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/learning/intelligence/grpo_trainer.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/learning/intelligence/orchestrator/__init__.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/learning/intelligence/orchestrator/environment.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/learning/intelligence/orchestrator/grpo_trainer.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/learning/intelligence/orchestrator/policy_model.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/learning/intelligence/orchestrator/prompt_registry.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/learning/intelligence/orchestrator/reward.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/learning/intelligence/orchestrator/sft_trainer.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/learning/intelligence/orchestrator/types.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/learning/intelligence/sft_trainer.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/learning/learning_orchestrator.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/learning/optimize/__init__.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/learning/optimize/config.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/learning/optimize/configs/qwen3-235b-dry-run.toml +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/learning/optimize/configs/qwen3.5-joint-agentic.toml +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/learning/optimize/feedback/__init__.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/learning/optimize/feedback/collector.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/learning/optimize/feedback/judge.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/learning/optimize/llm_optimizer.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/learning/optimize/optimizer.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/learning/optimize/personal/__init__.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/learning/optimize/personal/dataset.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/learning/optimize/personal/scorer.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/learning/optimize/personal/synthesizer.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/learning/optimize/search_space.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/learning/optimize/store.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/learning/optimize/trial_runner.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/learning/optimize/types.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/learning/routing/__init__.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/learning/routing/_utils.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/learning/routing/complexity.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/learning/routing/heuristic_policy.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/learning/routing/heuristic_reward.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/learning/routing/learned_router.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/learning/routing/router.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/learning/spec_search/__init__.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/learning/spec_search/checkpoint/__init__.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/learning/spec_search/checkpoint/store.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/learning/spec_search/composite_reward.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/learning/spec_search/diagnose/__init__.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/learning/spec_search/diagnose/runner.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/learning/spec_search/diagnose/teacher_agent.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/learning/spec_search/diagnose/tools.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/learning/spec_search/diagnose/types.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/learning/spec_search/execute/__init__.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/learning/spec_search/execute/appliers/__init__.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/learning/spec_search/execute/appliers/agent.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/learning/spec_search/execute/appliers/intelligence.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/learning/spec_search/execute/appliers/lora_stub.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/learning/spec_search/execute/appliers/tools.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/learning/spec_search/execute/base.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/learning/spec_search/execute/loop.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/learning/spec_search/external_adapter.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/learning/spec_search/gate/__init__.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/learning/spec_search/gate/benchmark_gate.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/learning/spec_search/gate/cold_start.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/learning/spec_search/gate/regression.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/learning/spec_search/models.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/learning/spec_search/multi_session.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/learning/spec_search/orchestrator.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/learning/spec_search/pending_queue.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/learning/spec_search/plan/__init__.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/learning/spec_search/plan/planner.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/learning/spec_search/plan/prompt_diff.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/learning/spec_search/plan/risk_tier.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/learning/spec_search/storage/__init__.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/learning/spec_search/storage/paths.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/learning/spec_search/storage/session_store.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/learning/spec_search/student_runner.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/learning/spec_search/triggers.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/learning/training/__init__.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/learning/training/data.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/learning/training/lora.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/mcp/__init__.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/mcp/client.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/mcp/loader.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/mcp/protocol.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/mcp/server.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/mcp/transport.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/memory/__init__.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/memory/extractor.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/memory/service.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/memory/store.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/mining/__init__.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/mining/_collector.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/mining/_constants.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/mining/_discovery.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/mining/_docker.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/mining/_install.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/mining/_metrics.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/mining/_miner_loop_main.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/mining/_models.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/mining/_mps_miner_loop_main.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/mining/_pearl_subprocess.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/mining/_stubs.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/mining/apple_mps_pearl.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/mining/cpu_pearl.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/mining/pools/__init__.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/mining/vllm_pearl.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/operators/__init__.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/operators/data/knowledge_curator.toml +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/operators/data/news_digest.toml +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/operators/data/researcher.toml +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/operators/data/system_monitor.toml +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/operators/loader.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/operators/manager.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/operators/types.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/prompt/__init__.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/prompt/builder.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/recipes/__init__.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/recipes/composer.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/recipes/data/coding_assistant.toml +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/recipes/data/coding_benchmark.toml +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/recipes/data/gaia_orchestrator.toml +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/recipes/data/general_assistant.toml +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/recipes/data/monitor_assistant.toml +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/recipes/data/operators/correspondent.toml +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/recipes/data/operators/correspondent_prompt.md +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/recipes/data/operators/inbox_triage.toml +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/recipes/data/operators/news_briefing.toml +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/recipes/data/operators/openjarvis_twitter_bot.toml +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/recipes/data/operators/openjarvis_twitter_bot_prompt.md +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/recipes/data/operators/repo_watcher.toml +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/recipes/data/operators/researcher.toml +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/recipes/data/operators/researcher_prompt.md +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/recipes/data/operators/sentinel.toml +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/recipes/data/operators/sentinel_prompt.md +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/recipes/data/operators/twitter_sentinel.toml +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/recipes/data/research_assistant.toml +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/recipes/data/swebench_openhands.toml +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/recipes/data/terminalbench_react.toml +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/recipes/loader.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/sandbox/__init__.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/sandbox/mount_security.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/sandbox/runner.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/sandbox/wasm_runner.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/scheduler/__init__.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/scheduler/scheduler.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/scheduler/store.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/scheduler/tools.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/sdk.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/security/__init__.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/security/_stubs.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/security/audit.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/security/boundary.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/security/capabilities.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/security/credential_stripper.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/security/data_boundary_audit.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/security/file_policy.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/security/file_utils.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/security/guardrails.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/security/injection_scanner.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/security/rate_limiter.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/security/scanner.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/security/severity_policy.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/security/signing.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/security/ssrf.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/security/subprocess_sandbox.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/security/taint.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/security/types.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/server/__init__.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/server/agent_manager_routes.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/server/analytics_routes.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/server/api_routes.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/server/app.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/server/approval_routes.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/server/auth_middleware.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/server/channel_bridge.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/server/cloud_router.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/server/comparison.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/server/connectors_router.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/server/cost_calculator.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/server/dashboard.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/server/digest_routes.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/server/middleware.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/server/model_capabilities.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/server/models.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/server/research_router.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/server/routes.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/server/savings.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/server/session_store.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/server/stream_bridge.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/server/upload_router.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/server/webhook_routes.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/server/ws_bridge.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/sessions/__init__.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/sessions/compression.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/sessions/session.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/skills/__init__.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/skills/data/backup-files.toml +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/skills/data/calendar-prep.toml +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/skills/data/code-lint.toml +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/skills/data/code-test-gen.toml +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/skills/data/compare-docs.toml +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/skills/data/daily-digest.toml +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/skills/data/data-analyze.toml +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/skills/data/dependency-audit.toml +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/skills/data/email-draft.toml +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/skills/data/file-deduplicator.toml +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/skills/data/file-organizer.toml +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/skills/data/knowledge-extract.toml +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/skills/data/meeting-notes.toml +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/skills/data/pdf-summarize.toml +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/skills/data/search-and-index.toml +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/skills/data/security-scan.toml +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/skills/data/todo-from-notes.toml +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/skills/data/topic-research.toml +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/skills/data/translate-doc.toml +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/skills/data/web-summarize.toml +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/skills/dependency.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/skills/executor.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/skills/importer.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/skills/index.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/skills/loader.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/skills/manager.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/skills/overlay.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/skills/parser.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/skills/security.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/skills/sources/__init__.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/skills/sources/base.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/skills/sources/github.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/skills/sources/hermes.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/skills/sources/openclaw.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/skills/tool_adapter.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/skills/tool_translator.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/skills/types.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/speech/__init__.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/speech/_discovery.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/speech/_stubs.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/speech/cartesia_tts.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/speech/deepgram.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/speech/faster_whisper.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/speech/kokoro_tts.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/speech/openai_tts.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/speech/openai_whisper.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/speech/tts.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/system/__init__.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/system/_channel_kwargs.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/system/builder.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/system/bundles.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/system/core.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/system/orchestrator.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/system/protocols.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/telemetry/__init__.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/telemetry/aggregator.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/telemetry/batch.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/telemetry/efficiency.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/telemetry/energy_amd.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/telemetry/energy_apple.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/telemetry/energy_monitor.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/telemetry/energy_nvidia.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/telemetry/energy_rapl.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/telemetry/flops.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/telemetry/gpu_monitor.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/telemetry/instrumented_engine.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/telemetry/itl.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/telemetry/phase_metrics.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/telemetry/session.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/telemetry/steady_state.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/telemetry/store.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/telemetry/vllm_metrics.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/telemetry/wrapper.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/templates/__init__.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/templates/agent_templates.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/templates/data/architect.toml +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/templates/data/assistant.toml +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/templates/data/code-reviewer.toml +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/templates/data/data-analyst.toml +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/templates/data/debugger.toml +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/templates/data/deep-researcher.toml +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/templates/data/fact-checker.toml +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/templates/data/inbox-triager.toml +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/templates/data/meeting-prep.toml +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/templates/data/monitor.toml +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/templates/data/note-taker.toml +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/templates/data/security-auditor.toml +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/templates/data/summarizer.toml +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/templates/data/translator.toml +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/templates/data/tutor.toml +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/templates/data/writer.toml +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/tools/__init__.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/tools/_stubs.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/tools/agent_tools.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/tools/apply_patch.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/tools/approval_store.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/tools/audio_tool.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/tools/browser.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/tools/browser_axtree.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/tools/calculator.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/tools/channel_tools.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/tools/code_interpreter.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/tools/code_interpreter_docker.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/tools/db_query.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/tools/description_loader.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/tools/digest_collect.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/tools/docker_shell_exec.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/tools/file_read.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/tools/file_write.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/tools/git_tool.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/tools/http_request.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/tools/image_tool.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/tools/knowledge_search.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/tools/knowledge_sql.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/tools/knowledge_tools.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/tools/llm_tool.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/tools/mcp_adapter.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/tools/memory_manage.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/tools/pdf_tool.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/tools/proactive_tools.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/tools/repl.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/tools/retrieval.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/tools/scan_chunks.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/tools/shell_exec.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/tools/skill_manage.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/tools/storage/__init__.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/tools/storage/_stubs.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/tools/storage/bm25.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/tools/storage/chunking.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/tools/storage/colbert_backend.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/tools/storage/context.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/tools/storage/dense.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/tools/storage/embeddings.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/tools/storage/faiss_backend.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/tools/storage/hybrid.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/tools/storage/ingest.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/tools/storage/knowledge_graph.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/tools/storage/sqlite.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/tools/storage_tools.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/tools/templates/__init__.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/tools/templates/builtin/base64_encode.toml +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/tools/templates/builtin/date_info.toml +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/tools/templates/builtin/hash_compute.toml +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/tools/templates/builtin/json_transform.toml +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/tools/templates/builtin/regex_extract.toml +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/tools/templates/builtin/text_length.toml +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/tools/templates/builtin/text_lower.toml +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/tools/templates/builtin/text_reverse.toml +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/tools/templates/builtin/text_upper.toml +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/tools/templates/builtin/unit_convert.toml +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/tools/templates/loader.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/tools/text_to_speech.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/tools/think.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/tools/user_profile_manage.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/tools/web_search.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/traces/__init__.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/traces/analyzer.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/traces/collector.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/traces/store.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/workflow/__init__.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/workflow/builder.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/workflow/engine.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/workflow/graph.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/workflow/loader.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/src/openjarvis/workflow/types.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/__init__.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/a2a/test_a2a.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/a2a/test_a2a_auth.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/agents/__init__.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/agents/conftest.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/agents/fake_engine.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/agents/scenario_harness.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/agents/test_agent_lifecycle_scenarios.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/agents/test_agent_routing_matrix.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/agents/test_base_agent.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/agents/test_budget.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/agents/test_channel_agent.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/agents/test_channel_agent_integration.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/agents/test_claude_code.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/agents/test_config_defaults.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/agents/test_continuation.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/agents/test_deep_research.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/agents/test_deep_research_integration.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/agents/test_deep_research_prompt.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/agents/test_digest_store.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/agents/test_errors.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/agents/test_executor.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/agents/test_executor_ephemeral.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/agents/test_executor_error_detail.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/agents/test_executor_tool_persistence.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/agents/test_executor_tools.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/agents/test_fake_engine.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/agents/test_learning_integration.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/agents/test_loop_guard.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/agents/test_loop_guard_warn.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/agents/test_manager.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/agents/test_manager_recover.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/agents/test_monitor_operative.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/agents/test_morning_digest.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/agents/test_native_openhands.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/agents/test_native_react.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/agents/test_opencode_agent.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/agents/test_openhands.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/agents/test_orchestrator.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/agents/test_persona_persistent.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/agents/test_proactive_agent.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/agents/test_research_loop.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/agents/test_rlm.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/agents/test_rlm_repl.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/agents/test_scenario_harness_smoke.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/agents/test_scheduler.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/agents/test_simple.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/agents/test_stall.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/agents/test_suggest_action.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/agents/test_system_prompt_builder_integration.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/agents/test_template_prompts.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/agents/test_tool_resolver.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/agents/test_trace_recording.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/analytics/__init__.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/analytics/test_redaction.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/bench/__init__.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/bench/test_bench_stats.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/bench/test_energy.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/bench/test_latency.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/bench/test_stubs.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/bench/test_throughput.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/channels/__init__.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/channels/channel_test_helpers.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/channels/conftest.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/channels/test_agent_channel_e2e.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/channels/test_bluebubbles.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/channels/test_channel_config.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/channels/test_channel_contract.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/channels/test_channel_registry.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/channels/test_channels_phase21.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/channels/test_config.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/channels/test_discord_channel.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/channels/test_email_channel.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/channels/test_feishu.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/channels/test_google_chat.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/channels/test_imessage_daemon.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/channels/test_irc_channel.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/channels/test_matrix_channel.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/channels/test_mattermost.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/channels/test_sendblue.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/channels/test_signal_channel.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/channels/test_slack.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/channels/test_slack_messaging.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/channels/test_stubs.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/channels/test_teams.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/channels/test_telegram.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/channels/test_tier1_gmail.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/channels/test_twilio_sms.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/channels/test_twitter_bot_e2e.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/channels/test_twitter_channel.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/channels/test_webchat.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/channels/test_webhook.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/channels/test_whatsapp.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/channels/test_whatsapp_baileys.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/cli/__init__.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/cli/test_add_cmd.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/cli/test_agent_cmd.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/cli/test_ask_agent.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/cli/test_ask_context.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/cli/test_ask_e2e.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/cli/test_ask_router.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/cli/test_ask_vision.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/cli/test_bench_cmd.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/cli/test_bench_skills_command.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/cli/test_channel_cmd.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/cli/test_chat_cmd.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/cli/test_cli.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/cli/test_config_cmd.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/cli/test_config_set.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/cli/test_connect.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/cli/test_daemon_cmd.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/cli/test_dashboard.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/cli/test_deep_research_setup.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/cli/test_digest_cmd.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/cli/test_doctor_cmd.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/cli/test_doctor_labels.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/cli/test_eval_cmd.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/cli/test_eval_cmd_external_flags.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/cli/test_hints.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/cli/test_init_guidance.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/cli/test_init_host.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/cli/test_install_detect.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/cli/test_log_config.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/cli/test_memory_cmd.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/cli/test_mine_cmd.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/cli/test_model_cmd.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/cli/test_model_pull.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/cli/test_optimize_skills_command.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/cli/test_pearl_cmd.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/cli/test_quickstart.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/cli/test_registry_cmd.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/cli/test_scan.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/cli/test_scan_data_boundaries.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/cli/test_self_update.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/cli/test_serve_channel_wiring.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/cli/test_serve_model_resolution.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/cli/test_serve_persona.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/cli/test_serve_single_build.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/cli/test_serve_tools.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/cli/test_skill_cmd.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/cli/test_telemetry_cmd.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/cli/test_tool_cmd.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/cli/test_vault_cmd.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/cli/test_version_check.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/cli/test_workflow_cmd.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/conftest.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/connectors/__init__.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/connectors/test_apple_contacts.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/connectors/test_apple_health.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/connectors/test_apple_music.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/connectors/test_apple_notes.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/connectors/test_attachment_store.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/connectors/test_chunker.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/connectors/test_connector_health.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/connectors/test_connectors_router_oauth.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/connectors/test_dropbox.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/connectors/test_embedding_store.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/connectors/test_gcalendar.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/connectors/test_gcontacts.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/connectors/test_gdrive.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/connectors/test_github_notifications.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/connectors/test_gmail.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/connectors/test_google_tasks.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/connectors/test_granola.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/connectors/test_hackernews.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/connectors/test_hybrid_search.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/connectors/test_imessage.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/connectors/test_incremental_sync.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/connectors/test_integration.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/connectors/test_live_smoke.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/connectors/test_new_connectors_live.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/connectors/test_news_rss.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/connectors/test_notion.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/connectors/test_oauth_flow.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/connectors/test_obsidian.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/connectors/test_oura.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/connectors/test_outlook.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/connectors/test_pipeline.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/connectors/test_pipeline_attachments.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/connectors/test_retriever.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/connectors/test_scheduler.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/connectors/test_slack_connector.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/connectors/test_spotify.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/connectors/test_store.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/connectors/test_strava.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/connectors/test_stubs.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/connectors/test_sync_engine.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/connectors/test_weather.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/connectors/test_whatsapp.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/core/__init__.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/core/test_config.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/core/test_config_key_validation.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/core/test_config_paths.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/core/test_config_phase3.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/core/test_config_phase4.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/core/test_config_phase5.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/core/test_config_skills_sources.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/core/test_credentials.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/core/test_deep_research_config.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/core/test_events.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/core/test_intent_routing.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/core/test_preset_configs.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/core/test_recommend_model.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/core/test_registry.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/core/test_resolve_json_or_file.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/core/test_rust_bridge.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/core/test_skills_learning_config.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/core/test_types.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/daemon/__init__.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/daemon/test_gateway.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/daemon/test_session_expiry.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/deploy/__init__.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/deploy/test_deploy_auth.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/deployment/test_desktop_network_policy.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/deployment/test_docker.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/deployment/test_docs_leaderboard.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/deployment/test_packaging.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/engine/__init__.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/engine/test_apple_fm_shim.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/engine/test_base.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/engine/test_cache_breakpoint.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/engine/test_cloud.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/engine/test_cloud_extended.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/engine/test_cloud_minimax.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/engine/test_cloud_stream_full.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/engine/test_discovery.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/engine/test_engine_model_matrix.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/engine/test_engine_wrappers.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/engine/test_gemma_cpp.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/engine/test_lemonade.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/engine/test_litellm.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/engine/test_llamacpp_models.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/engine/test_lmstudio.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/engine/test_mlx.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/engine/test_nim.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/engine/test_ollama.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/engine/test_ollama_models.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/engine/test_openai_compat.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/engine/test_openai_compat_api_key.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/engine/test_openai_compat_tools.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/engine/test_stream_full.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/engine/test_structured_output.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/engine/test_vllm_models.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/evals/__init__.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/evals/comparison/__init__.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/evals/comparison/test_cli_backend_dispatch.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/evals/comparison/test_export_to_table_gen_roundtrip.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/evals/comparison/test_hermes_backend.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/evals/comparison/test_live_external.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/evals/comparison/test_make_configs.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/evals/comparison/test_openclaw_backend.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/evals/comparison/test_openclaw_runner_contract.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/evals/comparison/test_runner_error_path_framework.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/evals/comparison/test_subprocess_runner.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/evals/comparison/test_table_gen.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/evals/comparison/test_third_party.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/evals/core/__init__.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/evals/core/test_config_split_parsing.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/evals/core/test_config_timeouts.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/evals/core/test_splits.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/evals/datasets/__init__.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/evals/datasets/test_browser_assistant.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/evals/datasets/test_coding_assistant.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/evals/datasets/test_daily_digest.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/evals/datasets/test_doc_qa.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/evals/datasets/test_external_agent_datasets.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/evals/datasets/test_security_scanner.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/evals/datasets/test_taubench.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/evals/scorers/__init__.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/evals/scorers/test_browser_assistant.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/evals/scorers/test_checklist.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/evals/scorers/test_coding_assistant.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/evals/scorers/test_daily_digest.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/evals/scorers/test_doc_qa.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/evals/scorers/test_liveresearch_continuous.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/evals/scorers/test_security_scanner.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/evals/test_agentic_runner.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/evals/test_ama_bench.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/evals/test_benchmark_datasets.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/evals/test_dataset_splits_integration.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/evals/test_deepplanning.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/evals/test_display.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/evals/test_environment_provider.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/evals/test_episode_mode.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/evals/test_eval_telemetry_wiring.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/evals/test_eval_trace.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/evals/test_event_recorder.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/evals/test_export.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/evals/test_jarvis_agent_backend_fields.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/evals/test_jarvis_agent_backend_skills.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/evals/test_jarvis_direct_backend_fields.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/evals/test_lifelong_agent.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/evals/test_loghub.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/evals/test_paperarena.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/evals/test_pinchbench_dataset.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/evals/test_pinchbench_grading.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/evals/test_pinchbench_integration.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/evals/test_pinchbench_transcript.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/evals/test_pricing.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/evals/test_skill_benchmark.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/evals/test_terminalbench_env.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/evals/test_terminalbench_native_backend.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/evals/test_trackers.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/evals/test_use_case_benchmarks.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/fixtures/docs/channels.md +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/fixtures/docs/engines.md +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/fixtures/docs/hardware.md +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/fixtures/docs/memory.md +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/hardware/__init__.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/hardware/test_amd.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/hardware/test_apple.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/hardware/test_hardware_profiles.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/hardware/test_nvidia.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/install/__init__.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/install/bash/stubs/cargo +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/install/bash/stubs/curl +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/install/bash/stubs/git +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/install/bash/stubs/ollama +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/install/bash/stubs/ollama-mock +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/install/bash/stubs/rustup +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/install/bash/stubs/uv +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/install/bash/test_bg_orchestrator.bats +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/install/bash/test_build_extension.bats +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/install/bash/test_install.bats +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/install/bash/test_install_rust.bats +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/install/bash/test_pull_model.bats +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/install/cases/README.md +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/install/cases/missing-git.md +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/install/cases/run-as-root.md +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/install/conftest.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/install/test_bg_state.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/install/test_bootstrap_cli.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/install/test_bootstrap_config.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/install/test_bootstrap_keys.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/install/test_chat_banner.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/install/test_chat_notifications.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/install/test_doctor_bg.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/install/test_first_run.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/install/test_fixture_smoke.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/install/test_init_cloud_detect.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/integration/test_agent_manager_e2e.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/integration/test_integration.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/integration/test_integration_extended.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/integration/test_minimax_cloud.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/intelligence/__init__.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/intelligence/test_model_catalog.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/intelligence/test_model_catalog_extended.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/intelligence/test_router.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/intelligence/test_routing_models.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/learning/__init__.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/learning/agents/__init__.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/learning/agents/test_ace_optimizer.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/learning/agents/test_dspy_optimizer.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/learning/agents/test_gepa_optimizer.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/learning/intelligence/__init__.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/learning/intelligence/test_grpo_trainer.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/learning/intelligence/test_sft_trainer.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/learning/routing/__init__.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/learning/routing/test_complexity.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/learning/routing/test_learned_router.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/learning/routing/test_utils.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/learning/spec_search/__init__.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/learning/spec_search/test_applier_base.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/learning/spec_search/test_applier_lora_stub.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/learning/spec_search/test_appliers_agent.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/learning/spec_search/test_appliers_intelligence.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/learning/spec_search/test_appliers_tools.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/learning/spec_search/test_benchmark_gate.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/learning/spec_search/test_checkpoint_store.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/learning/spec_search/test_cold_start.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/learning/spec_search/test_composite_reward.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/learning/spec_search/test_diagnose_tools.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/learning/spec_search/test_diagnose_types.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/learning/spec_search/test_diagnosis_runner.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/learning/spec_search/test_execution_loop.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/learning/spec_search/test_external_adapter.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/learning/spec_search/test_live_integration.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/learning/spec_search/test_models.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/learning/spec_search/test_multi_session.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/learning/spec_search/test_orchestrator.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/learning/spec_search/test_paths.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/learning/spec_search/test_pending_queue.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/learning/spec_search/test_planner.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/learning/spec_search/test_prompt_diff.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/learning/spec_search/test_regression.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/learning/spec_search/test_risk_tier.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/learning/spec_search/test_rollback.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/learning/spec_search/test_session_store.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/learning/spec_search/test_teacher_agent.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/learning/spec_search/test_triggers.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/learning/test_agent_evolver.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/learning/test_device_selection.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/learning/test_feedback_collector.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/learning/test_heuristic_policy.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/learning/test_heuristic_reward.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/learning/test_learning_api.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/learning/test_learning_orchestrator.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/learning/test_learning_taxonomy.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/learning/test_llm_optimizer.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/learning/test_multi_bench_runner.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/learning/test_optimize_cmd.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/learning/test_optimize_store.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/learning/test_optimize_types.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/learning/test_optimizer_engine.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/learning/test_orchestrator_skill_optimization.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/learning/test_pareto.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/learning/test_personal_synthesizer.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/learning/test_router.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/learning/test_router_stubs.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/learning/test_routing_models.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/learning/test_search_space.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/learning/test_skill_discovery.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/learning/test_skill_optimizer.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/learning/test_stubs.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/learning/test_system_learning.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/learning/test_trace_judge.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/learning/test_trial_runner.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/learning/training/__init__.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/learning/training/test_data.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/learning/training/test_lora.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/mcp/__init__.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/mcp/test_client.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/mcp/test_client_extended.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/mcp/test_discovery.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/mcp/test_loader.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/mcp/test_mcp_tools_matrix.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/mcp/test_protocol.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/mcp/test_resolve_mcp_servers.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/mcp/test_server.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/mcp/test_server_upgrade.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/mcp/test_streamable_http_transport.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/mcp/test_transport.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/memory/__init__.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/memory/test_bm25.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/memory/test_chunking.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/memory/test_colbert.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/memory/test_context.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/memory/test_embeddings.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/memory/test_fact_extractor.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/memory/test_fact_store.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/memory/test_faiss.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/memory/test_hybrid.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/memory/test_ingest.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/memory/test_memory_service.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/memory/test_retrieval_quality.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/memory/test_sqlite.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/memory/test_storage_suite.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/mining/__init__.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/mining/conftest.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/mining/fixtures/README.md +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/mining/fixtures/config_minimal.toml +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/mining/fixtures/config_pool_v2.toml +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/mining/fixtures/gateway_metrics_sample.txt +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/mining/test_apple_mps_pearl.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/mining/test_cli.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/mining/test_collector.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/mining/test_cpu_pearl.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/mining/test_discovery.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/mining/test_docker.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/mining/test_install.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/mining/test_metrics.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/mining/test_miner_loop.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/mining/test_pearl_subprocess.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/mining/test_stubs.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/mining/test_vllm_pearl.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/operators/__init__.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/operators/test_operator_recipes.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/operators/test_operators.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/pearl/test_model_converter.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/prompt/__init__.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/prompt/test_builder.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/prompt/test_persona_scope.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/prompt/test_system_prompt_builder_few_shot.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/recipes/__init__.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/recipes/test_compose.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/recipes/test_loader.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/sandbox/__init__.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/sandbox/test_mount_security.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/sandbox/test_runner.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/sandbox/test_wasm_runner.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/scheduler/__init__.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/scheduler/test_digest_schedule.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/scheduler/test_scheduler.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/scheduler/test_store.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/scheduler/test_tools.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/sdk/__init__.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/sdk/test_sdk.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/sdk/test_system.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/security/__init__.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/security/test_audit.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/security/test_boundary_guard.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/security/test_capabilities.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/security/test_credential_stripper.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/security/test_data_boundary_audit.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/security/test_file_permissions.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/security/test_file_policy.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/security/test_guardrails.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/security/test_injection_scanner.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/security/test_log_sanitization.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/security/test_merkle_audit.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/security/test_network_defaults.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/security/test_rate_limiter.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/security/test_scanner.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/security/test_security_profiles.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/security/test_security_wiring.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/security/test_setup_security.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/security/test_severity_policy.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/security/test_signing.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/security/test_ssrf.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/security/test_subprocess_sandbox.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/security/test_taint.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/security/test_tool_confirmation.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/security/test_webhook_validation.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/server/__init__.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/server/conftest.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/server/test_agent_manager_routes.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/server/test_api_routes.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/server/test_approval_routes.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/server/test_auth_middleware.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/server/test_channel_bridge.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/server/test_channel_bridge_deep_research.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/server/test_channel_routes.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/server/test_cloud_router.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/server/test_connectors_router.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/server/test_deep_research_tools_wiring.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/server/test_digest_routes.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/server/test_managed_agent_resolved_tools.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/server/test_managed_agent_streaming.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/server/test_mcp_tools_cache.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/server/test_middleware.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/server/test_model_management.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/server/test_models_pydantic.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/server/test_pwa_serving.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/server/test_recommended_model.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/server/test_research_planner.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/server/test_routes.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/server/test_savings.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/server/test_sendblue_webhook.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/server/test_session_store.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/server/test_speech_routes.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/server/test_stream_bridge.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/server/test_tools_endpoint.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/server/test_webhook_routes.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/server/test_websocket.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/server/test_websocket_auth.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/server/test_ws_bridge.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/sessions/test_compression.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/sessions/test_session.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/sessions/test_wire_channel_history.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/skills/__init__.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/skills/test_bundled_skills.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/skills/test_cli_install.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/skills/test_dependency.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/skills/test_importer.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/skills/test_index.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/skills/test_integration_live.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/skills/test_loader_markdown.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/skills/test_manager.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/skills/test_manager_discover_from_traces.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/skills/test_native_react_few_shot.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/skills/test_overlay.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/skills/test_parser.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/skills/test_security.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/skills/test_skill_tool_metadata_tagging.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/skills/test_skill_trace_tagging_integration.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/skills/test_skills.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/skills/test_sources.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/skills/test_tool_adapter_v2.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/skills/test_tool_translator.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/speech/__init__.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/speech/test_config.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/speech/test_deepgram.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/speech/test_discovery.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/speech/test_faster_whisper.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/speech/test_openai_whisper.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/speech/test_stubs.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/speech/test_tts_backends.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/telemetry/__init__.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/telemetry/energy_test_helpers.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/telemetry/test_aggregator.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/telemetry/test_batch.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/telemetry/test_derived_metrics.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/telemetry/test_efficiency.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/telemetry/test_energy_amd.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/telemetry/test_energy_apple.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/telemetry/test_energy_monitor.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/telemetry/test_energy_nvidia.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/telemetry/test_energy_rapl.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/telemetry/test_energy_wiring.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/telemetry/test_flops_new.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/telemetry/test_gpu_monitor.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/telemetry/test_instrumented_engine.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/telemetry/test_itl_metrics.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/telemetry/test_itl_new.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/telemetry/test_phase_energy.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/telemetry/test_phase_metrics_new.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/telemetry/test_session.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/telemetry/test_steady_state.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/telemetry/test_store.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/telemetry/test_store_tokens_per_joule.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/telemetry/test_vllm_metrics.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/telemetry/test_wrapper.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/templates/__init__.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/templates/test_agent_templates.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/test_digest_integration.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/test_orchestrator_learning/__init__.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/test_orchestrator_learning/test_environment.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/test_orchestrator_learning/test_grpo_trainer.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/test_orchestrator_learning/test_orchestrator_structured.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/test_orchestrator_learning/test_policy_model.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/test_orchestrator_learning/test_prompt_registry.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/test_orchestrator_learning/test_reward.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/test_orchestrator_learning/test_sft_trainer.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/test_orchestrator_learning/test_types.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/test_query_orchestrator.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/test_vision.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/tools/__init__.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/tools/storage/__init__.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/tools/storage/test_dense.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/tools/test_agent_tools.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/tools/test_apply_patch.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/tools/test_audio_tool.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/tools/test_browser.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/tools/test_browser_axtree.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/tools/test_calculator.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/tools/test_channel_tools.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/tools/test_code_interpreter.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/tools/test_code_interpreter_docker.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/tools/test_db_query.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/tools/test_digest_collect.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/tools/test_file_read.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/tools/test_file_write.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/tools/test_git_tool.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/tools/test_http_request.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/tools/test_image_tool.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/tools/test_knowledge_graph.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/tools/test_knowledge_search.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/tools/test_knowledge_sql.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/tools/test_llm_tool.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/tools/test_mcp_adapter.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/tools/test_memory_manage.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/tools/test_pdf_tool.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/tools/test_repl.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/tools/test_retrieval.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/tools/test_scan_chunks.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/tools/test_shell_exec.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/tools/test_skill_manage.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/tools/test_storage_stubs.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/tools/test_storage_tools.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/tools/test_stubs.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/tools/test_template_loader_security.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/tools/test_templates.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/tools/test_text_to_speech.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/tools/test_think.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/tools/test_tool_descriptions.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/tools/test_tool_registration.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/tools/test_tool_timeout.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/tools/test_user_profile_manage.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/tools/test_web_search.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/traces/__init__.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/traces/test_analyzer.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/traces/test_analyzer_energy.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/traces/test_collector.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/traces/test_store.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/traces/test_store_fts.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/traces/test_types.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/tests/workflow/test_workflow.py +0 -0
- {openjarvis-1.0.4.dev1002 → openjarvis-1.0.4.dev1004}/uv.lock +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.5
|
|
2
2
|
Name: OpenJarvis
|
|
3
|
-
Version: 1.0.4.
|
|
3
|
+
Version: 1.0.4.dev1004
|
|
4
4
|
Summary: OpenJarvis — modular AI assistant backend with composable intelligence primitives
|
|
5
5
|
Project-URL: Homepage, https://github.com/open-jarvis/OpenJarvis
|
|
6
6
|
Project-URL: Documentation, https://open-jarvis.github.io/OpenJarvis/
|
|
@@ -2,8 +2,6 @@
|
|
|
2
2
|
|
|
3
3
|
from __future__ import annotations
|
|
4
4
|
|
|
5
|
-
import os
|
|
6
|
-
import signal
|
|
7
5
|
import subprocess
|
|
8
6
|
import sys
|
|
9
7
|
import time
|
|
@@ -12,6 +10,7 @@ import click
|
|
|
12
10
|
from rich.console import Console
|
|
13
11
|
|
|
14
12
|
from openjarvis.core.config import DEFAULT_CONFIG_DIR, load_config
|
|
13
|
+
from openjarvis.core.utils import process_alive, terminate_process
|
|
15
14
|
|
|
16
15
|
_PID_FILE = DEFAULT_CONFIG_DIR / "server.pid"
|
|
17
16
|
_LOG_FILE = DEFAULT_CONFIG_DIR / "server.log"
|
|
@@ -19,47 +18,7 @@ _LOG_FILE = DEFAULT_CONFIG_DIR / "server.log"
|
|
|
19
18
|
|
|
20
19
|
def _pid_alive(pid: int) -> bool:
|
|
21
20
|
"""Return whether *pid* identifies a running process without signaling it."""
|
|
22
|
-
|
|
23
|
-
return False
|
|
24
|
-
|
|
25
|
-
if os.name == "nt":
|
|
26
|
-
import ctypes
|
|
27
|
-
from ctypes import wintypes
|
|
28
|
-
|
|
29
|
-
error_invalid_parameter = 87
|
|
30
|
-
synchronize = 0x00100000
|
|
31
|
-
wait_object_0 = 0x00000000
|
|
32
|
-
|
|
33
|
-
kernel32 = ctypes.WinDLL("kernel32", use_last_error=True)
|
|
34
|
-
kernel32.OpenProcess.argtypes = [wintypes.DWORD, wintypes.BOOL, wintypes.DWORD]
|
|
35
|
-
kernel32.OpenProcess.restype = wintypes.HANDLE
|
|
36
|
-
kernel32.WaitForSingleObject.argtypes = [wintypes.HANDLE, wintypes.DWORD]
|
|
37
|
-
kernel32.WaitForSingleObject.restype = wintypes.DWORD
|
|
38
|
-
kernel32.CloseHandle.argtypes = [wintypes.HANDLE]
|
|
39
|
-
kernel32.CloseHandle.restype = wintypes.BOOL
|
|
40
|
-
|
|
41
|
-
handle = kernel32.OpenProcess(synchronize, False, pid)
|
|
42
|
-
if not handle:
|
|
43
|
-
# OpenProcess reports ERROR_INVALID_PARAMETER when the PID does not
|
|
44
|
-
# exist. For access-denied and other inconclusive failures, retain
|
|
45
|
-
# the PID file rather than declaring a potentially live daemon dead.
|
|
46
|
-
return ctypes.get_last_error() != error_invalid_parameter
|
|
47
|
-
|
|
48
|
-
try:
|
|
49
|
-
wait_result = kernel32.WaitForSingleObject(handle, 0)
|
|
50
|
-
# WAIT_OBJECT_0 proves the process exited. WAIT_TIMEOUT proves it
|
|
51
|
-
# is live; unexpected failures are inconclusive, so retain the PID.
|
|
52
|
-
return wait_result != wait_object_0
|
|
53
|
-
finally:
|
|
54
|
-
kernel32.CloseHandle(handle)
|
|
55
|
-
|
|
56
|
-
try:
|
|
57
|
-
os.kill(pid, 0)
|
|
58
|
-
except ProcessLookupError:
|
|
59
|
-
return False
|
|
60
|
-
except PermissionError:
|
|
61
|
-
return True
|
|
62
|
-
return True
|
|
21
|
+
return process_alive(pid)
|
|
63
22
|
|
|
64
23
|
|
|
65
24
|
def _read_pid() -> int | None:
|
|
@@ -71,6 +30,7 @@ def _read_pid() -> int | None:
|
|
|
71
30
|
except (OSError, ValueError):
|
|
72
31
|
_PID_FILE.unlink(missing_ok=True)
|
|
73
32
|
return None
|
|
33
|
+
# Check if process is still running (non-destructive, cross-platform).
|
|
74
34
|
if not _pid_alive(pid):
|
|
75
35
|
_PID_FILE.unlink(missing_ok=True)
|
|
76
36
|
return None
|
|
@@ -168,22 +128,9 @@ def stop() -> None:
|
|
|
168
128
|
console.print("[yellow]No running server found.[/yellow]")
|
|
169
129
|
sys.exit(1)
|
|
170
130
|
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
for _ in range(20):
|
|
175
|
-
time.sleep(0.5)
|
|
176
|
-
if not _pid_alive(pid):
|
|
177
|
-
break
|
|
178
|
-
else:
|
|
179
|
-
# SIGKILL is POSIX-only. On Windows SIGTERM already maps to
|
|
180
|
-
# TerminateProcess, so repeating it is the available escalation.
|
|
181
|
-
try:
|
|
182
|
-
os.kill(pid, getattr(signal, "SIGKILL", signal.SIGTERM))
|
|
183
|
-
except OSError:
|
|
184
|
-
pass
|
|
185
|
-
except OSError:
|
|
186
|
-
pass
|
|
131
|
+
# Graceful shutdown (SIGTERM / taskkill), escalating to a forced kill after
|
|
132
|
+
# 10s if still running. Cross-platform — no POSIX-only os.kill/SIGKILL.
|
|
133
|
+
terminate_process(pid, grace_seconds=10.0)
|
|
187
134
|
|
|
188
135
|
_PID_FILE.unlink(missing_ok=True)
|
|
189
136
|
console.print(f"[green]Server stopped[/green] (PID {pid}).")
|
|
@@ -230,7 +230,7 @@ def _do_download(engine: str, model: str, spec, console: Console) -> None:
|
|
|
230
230
|
)
|
|
231
231
|
@click.option(
|
|
232
232
|
"--config",
|
|
233
|
-
type=click.Path(exists=True),
|
|
233
|
+
type=click.Path(exists=True, dir_okay=False, path_type=Path),
|
|
234
234
|
help="Path to config file to use.",
|
|
235
235
|
)
|
|
236
236
|
@click.option(
|
|
@@ -445,7 +445,7 @@ def init(
|
|
|
445
445
|
)
|
|
446
446
|
|
|
447
447
|
if config:
|
|
448
|
-
toml_content = config.read_text()
|
|
448
|
+
toml_content = config.read_text(encoding="utf-8")
|
|
449
449
|
else:
|
|
450
450
|
if full_config:
|
|
451
451
|
toml_content = generate_default_toml(hw, engine=engine, host=host)
|
|
@@ -453,10 +453,10 @@ def init(
|
|
|
453
453
|
toml_content = generate_minimal_toml(hw, engine=engine, host=host)
|
|
454
454
|
|
|
455
455
|
DEFAULT_CONFIG_DIR.mkdir(parents=True, exist_ok=True)
|
|
456
|
-
|
|
457
|
-
|
|
458
|
-
|
|
459
|
-
|
|
456
|
+
# ``--config`` selects an existing file to install; it is not an alternate
|
|
457
|
+
# output path. Always activate the selected/generated configuration at
|
|
458
|
+
# the canonical location that subsequent ``jarvis`` commands load.
|
|
459
|
+
DEFAULT_CONFIG_PATH.write_text(toml_content, encoding="utf-8")
|
|
460
460
|
|
|
461
461
|
console.print()
|
|
462
462
|
console.print(
|
|
@@ -493,7 +493,7 @@ sources = ["gcalendar"]
|
|
|
493
493
|
[digest.world]
|
|
494
494
|
sources = ["hackernews", "news_rss"]
|
|
495
495
|
"""
|
|
496
|
-
target =
|
|
496
|
+
target = DEFAULT_CONFIG_PATH
|
|
497
497
|
existing = target.read_text()
|
|
498
498
|
target.write_text(existing + digest_section)
|
|
499
499
|
toml_content = target.read_text()
|
|
@@ -5,7 +5,6 @@ from __future__ import annotations
|
|
|
5
5
|
import asyncio
|
|
6
6
|
import json
|
|
7
7
|
import os
|
|
8
|
-
import signal
|
|
9
8
|
import time
|
|
10
9
|
import urllib.error
|
|
11
10
|
import urllib.parse
|
|
@@ -17,6 +16,7 @@ import click
|
|
|
17
16
|
|
|
18
17
|
from openjarvis.core.config import HardwareInfo, detect_hardware, load_config
|
|
19
18
|
from openjarvis.core.registry import MinerRegistry
|
|
19
|
+
from openjarvis.core.utils import process_alive, terminate_process
|
|
20
20
|
from openjarvis.mining._constants import (
|
|
21
21
|
DEFAULT_GATEWAY_METRICS_PORT,
|
|
22
22
|
DEFAULT_GATEWAY_RPC_PORT,
|
|
@@ -201,26 +201,11 @@ def _local_artifact_payload_and_paths(path: Path) -> tuple[dict[str, Any], set[s
|
|
|
201
201
|
|
|
202
202
|
|
|
203
203
|
def _pid_alive(pid: int | None) -> bool:
|
|
204
|
-
|
|
205
|
-
return False
|
|
206
|
-
try:
|
|
207
|
-
os.kill(pid, 0)
|
|
208
|
-
except OSError:
|
|
209
|
-
return False
|
|
210
|
-
return True
|
|
204
|
+
return process_alive(pid)
|
|
211
205
|
|
|
212
206
|
|
|
213
207
|
def _terminate_pid(pid: int | None, *, grace_seconds: float = 3.0) -> None:
|
|
214
|
-
|
|
215
|
-
return
|
|
216
|
-
os.kill(pid, signal.SIGTERM)
|
|
217
|
-
deadline = time.monotonic() + grace_seconds
|
|
218
|
-
while time.monotonic() < deadline:
|
|
219
|
-
if not _pid_alive(pid):
|
|
220
|
-
return
|
|
221
|
-
time.sleep(0.05)
|
|
222
|
-
if _pid_alive(pid):
|
|
223
|
-
os.kill(pid, signal.SIGKILL)
|
|
208
|
+
terminate_process(pid, grace_seconds=grace_seconds)
|
|
224
209
|
|
|
225
210
|
|
|
226
211
|
def _row(name: str, ok: bool, info: str) -> None:
|
|
@@ -19,7 +19,12 @@ from openjarvis.core.types import (
|
|
|
19
19
|
ToolCall,
|
|
20
20
|
ToolResult,
|
|
21
21
|
)
|
|
22
|
-
from openjarvis.core.utils import
|
|
22
|
+
from openjarvis.core.utils import (
|
|
23
|
+
get_python_executable,
|
|
24
|
+
open_browser,
|
|
25
|
+
process_alive,
|
|
26
|
+
terminate_process,
|
|
27
|
+
)
|
|
23
28
|
|
|
24
29
|
__all__ = [
|
|
25
30
|
"AgentRegistry",
|
|
@@ -37,4 +42,6 @@ __all__ = [
|
|
|
37
42
|
"ToolResult",
|
|
38
43
|
"get_python_executable",
|
|
39
44
|
"open_browser",
|
|
45
|
+
"process_alive",
|
|
46
|
+
"terminate_process",
|
|
40
47
|
]
|
|
@@ -0,0 +1,189 @@
|
|
|
1
|
+
"""Small cross-platform utilities used by the CLI, OAuth flow, and evals.
|
|
2
|
+
|
|
3
|
+
Kept dependency-free so importing this module is cheap (the public re-export
|
|
4
|
+
from ``openjarvis.core`` must not pull in heavy modules at package init).
|
|
5
|
+
"""
|
|
6
|
+
|
|
7
|
+
from __future__ import annotations
|
|
8
|
+
|
|
9
|
+
import os
|
|
10
|
+
import platform
|
|
11
|
+
import shutil
|
|
12
|
+
import signal
|
|
13
|
+
import subprocess
|
|
14
|
+
import time
|
|
15
|
+
import webbrowser
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
def _windows_process_alive(pid: int) -> bool:
|
|
19
|
+
"""Query a Windows process handle without sending it a signal."""
|
|
20
|
+
import ctypes
|
|
21
|
+
from ctypes import wintypes
|
|
22
|
+
|
|
23
|
+
error_invalid_parameter = 87
|
|
24
|
+
synchronize = 0x00100000
|
|
25
|
+
wait_object_0 = 0x00000000
|
|
26
|
+
|
|
27
|
+
kernel32 = ctypes.WinDLL("kernel32", use_last_error=True)
|
|
28
|
+
kernel32.OpenProcess.argtypes = [wintypes.DWORD, wintypes.BOOL, wintypes.DWORD]
|
|
29
|
+
kernel32.OpenProcess.restype = wintypes.HANDLE
|
|
30
|
+
kernel32.WaitForSingleObject.argtypes = [wintypes.HANDLE, wintypes.DWORD]
|
|
31
|
+
kernel32.WaitForSingleObject.restype = wintypes.DWORD
|
|
32
|
+
kernel32.CloseHandle.argtypes = [wintypes.HANDLE]
|
|
33
|
+
kernel32.CloseHandle.restype = wintypes.BOOL
|
|
34
|
+
|
|
35
|
+
handle = kernel32.OpenProcess(synchronize, False, pid)
|
|
36
|
+
if not handle:
|
|
37
|
+
# ERROR_INVALID_PARAMETER proves that the PID does not exist. Access
|
|
38
|
+
# denied is inconclusive, so do not treat a potentially live process as
|
|
39
|
+
# dead and risk starting a duplicate daemon.
|
|
40
|
+
return ctypes.get_last_error() != error_invalid_parameter
|
|
41
|
+
|
|
42
|
+
try:
|
|
43
|
+
# WAIT_OBJECT_0 means the process handle is signaled (the process has
|
|
44
|
+
# exited). WAIT_TIMEOUT and unexpected failures are conservatively live.
|
|
45
|
+
return kernel32.WaitForSingleObject(handle, 0) != wait_object_0
|
|
46
|
+
finally:
|
|
47
|
+
kernel32.CloseHandle(handle)
|
|
48
|
+
|
|
49
|
+
|
|
50
|
+
def _posix_process_state(pid: int) -> str | None:
|
|
51
|
+
"""Return a POSIX process state letter, or ``None`` when unavailable."""
|
|
52
|
+
proc_root = "/proc"
|
|
53
|
+
try:
|
|
54
|
+
with open(f"{proc_root}/{pid}/stat", encoding="utf-8") as stat_file:
|
|
55
|
+
# The command name is parenthesized and may itself contain ``)``.
|
|
56
|
+
return stat_file.read().rsplit(") ", 1)[1][:1]
|
|
57
|
+
except FileNotFoundError:
|
|
58
|
+
if os.path.isdir(proc_root):
|
|
59
|
+
return "X"
|
|
60
|
+
except (IndexError, OSError):
|
|
61
|
+
pass
|
|
62
|
+
|
|
63
|
+
# macOS and other POSIX hosts do not expose /proc. ``ps`` lets us
|
|
64
|
+
# distinguish a zombie (which still responds to kill(pid, 0)) from a live
|
|
65
|
+
# process without adding a runtime dependency.
|
|
66
|
+
try:
|
|
67
|
+
result = subprocess.run(
|
|
68
|
+
["ps", "-o", "stat=", "-p", str(pid)],
|
|
69
|
+
capture_output=True,
|
|
70
|
+
text=True,
|
|
71
|
+
check=False,
|
|
72
|
+
)
|
|
73
|
+
except OSError:
|
|
74
|
+
return None
|
|
75
|
+
state = result.stdout.strip()
|
|
76
|
+
if result.returncode != 0 or not state:
|
|
77
|
+
return "X"
|
|
78
|
+
return state[:1]
|
|
79
|
+
|
|
80
|
+
|
|
81
|
+
def get_python_executable() -> str:
|
|
82
|
+
"""Return the best ``python`` interpreter name on PATH.
|
|
83
|
+
|
|
84
|
+
Prefers ``python3`` (Linux/macOS convention); falls back to ``python``
|
|
85
|
+
(Windows / some minimal Linux distros that ship only ``python``). Returns
|
|
86
|
+
the literal string ``"python3"`` when neither is found, so callers still
|
|
87
|
+
get a usable command that will fail with a clear "command not found"
|
|
88
|
+
rather than an empty string.
|
|
89
|
+
|
|
90
|
+
The result is a *command name or absolute path* that callers can hand to
|
|
91
|
+
:mod:`subprocess` directly when ``shell=False``, and must be shell-quoted
|
|
92
|
+
(:func:`shlex.quote`) before being interpolated into a ``shell=True``
|
|
93
|
+
command string — paths on Windows often contain spaces.
|
|
94
|
+
"""
|
|
95
|
+
return shutil.which("python3") or shutil.which("python") or "python3"
|
|
96
|
+
|
|
97
|
+
|
|
98
|
+
def open_browser(url: str) -> None:
|
|
99
|
+
"""Open *url* in the user's default browser, with a Windows fast-path.
|
|
100
|
+
|
|
101
|
+
:func:`webbrowser.open` is the cross-platform default, but on Windows it
|
|
102
|
+
sometimes blocks or fails inside a console host. ``cmd /c start "" "URL"``
|
|
103
|
+
is the canonical Windows incantation that hands the URL to the OS shell
|
|
104
|
+
and returns immediately. We try that first on Windows and fall back to
|
|
105
|
+
:func:`webbrowser.open` if the subprocess spawn fails.
|
|
106
|
+
"""
|
|
107
|
+
if platform.system() == "Windows":
|
|
108
|
+
try:
|
|
109
|
+
# The empty title argument after ``start`` is required: ``start``
|
|
110
|
+
# treats a single quoted argument as a window title, not a URL.
|
|
111
|
+
subprocess.run(["cmd", "/c", "start", "", url], check=False)
|
|
112
|
+
return
|
|
113
|
+
except Exception: # noqa: BLE001 - any spawn failure -> fall back
|
|
114
|
+
pass
|
|
115
|
+
webbrowser.open(url)
|
|
116
|
+
|
|
117
|
+
|
|
118
|
+
def process_alive(pid: int | None) -> bool:
|
|
119
|
+
"""Return ``True`` if a process with *pid* is currently running.
|
|
120
|
+
|
|
121
|
+
Cross-platform and *non-destructive*. The common POSIX idiom
|
|
122
|
+
``os.kill(pid, 0)`` must NOT be used on Windows: there ``os.kill`` maps any
|
|
123
|
+
signal to ``TerminateProcess``, so a "liveness probe" would actually kill
|
|
124
|
+
the process. On Windows we inspect a process handle instead.
|
|
125
|
+
"""
|
|
126
|
+
if not pid or pid <= 0:
|
|
127
|
+
return False
|
|
128
|
+
if platform.system() == "Windows":
|
|
129
|
+
return _windows_process_alive(pid)
|
|
130
|
+
try:
|
|
131
|
+
os.kill(pid, 0)
|
|
132
|
+
except ProcessLookupError:
|
|
133
|
+
return False
|
|
134
|
+
except PermissionError:
|
|
135
|
+
pass
|
|
136
|
+
except OSError:
|
|
137
|
+
return False
|
|
138
|
+
|
|
139
|
+
# A terminated child remains in the process table as a zombie until its
|
|
140
|
+
# parent reaps it. ``kill(pid, 0)`` reports that entry as present, but it can
|
|
141
|
+
# no longer execute and must not trigger force-kill waits or stale-PID reuse.
|
|
142
|
+
return _posix_process_state(pid) not in {"X", "Z"}
|
|
143
|
+
|
|
144
|
+
|
|
145
|
+
def terminate_process(pid: int | None, *, grace_seconds: float = 3.0) -> None:
|
|
146
|
+
"""Terminate *pid* gracefully, escalating to a forced kill (cross-platform).
|
|
147
|
+
|
|
148
|
+
POSIX sends ``SIGTERM`` then, after *grace_seconds*, ``SIGKILL``. Windows
|
|
149
|
+
has neither; it uses ``taskkill`` (graceful) then ``taskkill /F /T`` (force,
|
|
150
|
+
whole tree). ``signal.SIGKILL`` does not exist on Windows, so it is only
|
|
151
|
+
referenced inside the POSIX branch.
|
|
152
|
+
"""
|
|
153
|
+
if not process_alive(pid):
|
|
154
|
+
return
|
|
155
|
+
is_windows = platform.system() == "Windows"
|
|
156
|
+
|
|
157
|
+
if is_windows:
|
|
158
|
+
subprocess.run(["taskkill", "/PID", str(pid)], capture_output=True, check=False)
|
|
159
|
+
else:
|
|
160
|
+
try:
|
|
161
|
+
os.kill(pid, signal.SIGTERM)
|
|
162
|
+
except OSError:
|
|
163
|
+
return
|
|
164
|
+
|
|
165
|
+
deadline = time.monotonic() + max(0.0, grace_seconds)
|
|
166
|
+
while time.monotonic() < deadline:
|
|
167
|
+
if not process_alive(pid):
|
|
168
|
+
return
|
|
169
|
+
time.sleep(0.05)
|
|
170
|
+
|
|
171
|
+
if is_windows:
|
|
172
|
+
subprocess.run(
|
|
173
|
+
["taskkill", "/F", "/T", "/PID", str(pid)],
|
|
174
|
+
capture_output=True,
|
|
175
|
+
check=False,
|
|
176
|
+
)
|
|
177
|
+
else:
|
|
178
|
+
try:
|
|
179
|
+
os.kill(pid, signal.SIGKILL)
|
|
180
|
+
except OSError:
|
|
181
|
+
pass
|
|
182
|
+
|
|
183
|
+
|
|
184
|
+
__all__ = [
|
|
185
|
+
"get_python_executable",
|
|
186
|
+
"open_browser",
|
|
187
|
+
"process_alive",
|
|
188
|
+
"terminate_process",
|
|
189
|
+
]
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
"""Tests for ``jarvis init --config`` option (regression for #768).
|
|
2
|
+
|
|
3
|
+
The ``--config`` option is declared with ``click.Path`` and the command body
|
|
4
|
+
uses the value as a :class:`pathlib.Path` (``config.read_text()`` /
|
|
5
|
+
``config.write_text()``). Without ``path_type=Path`` Click hands the callback a
|
|
6
|
+
plain ``str``, so every invocation of ``--config`` crashed with
|
|
7
|
+
``AttributeError: 'str' object has no attribute 'read_text'``.
|
|
8
|
+
"""
|
|
9
|
+
|
|
10
|
+
from __future__ import annotations
|
|
11
|
+
|
|
12
|
+
from pathlib import Path
|
|
13
|
+
from unittest import mock
|
|
14
|
+
|
|
15
|
+
from click.testing import CliRunner
|
|
16
|
+
|
|
17
|
+
from openjarvis.cli import cli
|
|
18
|
+
|
|
19
|
+
_NO_DL = "--no-download"
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
class TestInitConfig:
|
|
23
|
+
def test_init_config_installs_provided_file(self, tmp_path: Path) -> None:
|
|
24
|
+
"""jarvis init --config <file> activates it at the canonical path.
|
|
25
|
+
|
|
26
|
+
Regression for #768: the callback receives a Path and can call
|
|
27
|
+
``read_text()`` / ``write_text()`` on it.
|
|
28
|
+
"""
|
|
29
|
+
provided = tmp_path / "some-config.toml"
|
|
30
|
+
supplied_content = '[engine]\nname = "ollama"\n'
|
|
31
|
+
provided.write_text(supplied_content, encoding="utf-8")
|
|
32
|
+
|
|
33
|
+
config_dir = tmp_path / ".openjarvis"
|
|
34
|
+
config_path = config_dir / "config.toml" # absent -> passes the exists() guard
|
|
35
|
+
with (
|
|
36
|
+
mock.patch("openjarvis.cli.init_cmd.DEFAULT_CONFIG_DIR", config_dir),
|
|
37
|
+
mock.patch("openjarvis.cli.init_cmd.DEFAULT_CONFIG_PATH", config_path),
|
|
38
|
+
mock.patch("openjarvis.cli.init_cmd.PrivacyScanner"),
|
|
39
|
+
):
|
|
40
|
+
result = CliRunner().invoke(
|
|
41
|
+
cli, ["init", "--config", str(provided), _NO_DL]
|
|
42
|
+
)
|
|
43
|
+
|
|
44
|
+
assert result.exception is None, result.output
|
|
45
|
+
assert result.exit_code == 0
|
|
46
|
+
assert config_path.read_text(encoding="utf-8") == supplied_content
|
|
47
|
+
# Treat the supplied file as input: init must not rewrite it.
|
|
48
|
+
assert provided.read_text(encoding="utf-8") == supplied_content
|
|
49
|
+
|
|
50
|
+
def test_init_config_digest_updates_installed_copy(self, tmp_path: Path) -> None:
|
|
51
|
+
"""Post-processing applies to the active copy, not the input file."""
|
|
52
|
+
provided = tmp_path / "some-config.toml"
|
|
53
|
+
supplied_content = '[engine]\nname = "ollama"\n'
|
|
54
|
+
provided.write_text(supplied_content, encoding="utf-8")
|
|
55
|
+
config_dir = tmp_path / ".openjarvis"
|
|
56
|
+
config_path = config_dir / "config.toml"
|
|
57
|
+
|
|
58
|
+
with (
|
|
59
|
+
mock.patch("openjarvis.cli.init_cmd.DEFAULT_CONFIG_DIR", config_dir),
|
|
60
|
+
mock.patch("openjarvis.cli.init_cmd.DEFAULT_CONFIG_PATH", config_path),
|
|
61
|
+
mock.patch("openjarvis.cli.init_cmd.PrivacyScanner"),
|
|
62
|
+
):
|
|
63
|
+
result = CliRunner().invoke(
|
|
64
|
+
cli,
|
|
65
|
+
[
|
|
66
|
+
"init",
|
|
67
|
+
"--config",
|
|
68
|
+
str(provided),
|
|
69
|
+
"--digest",
|
|
70
|
+
_NO_DL,
|
|
71
|
+
],
|
|
72
|
+
)
|
|
73
|
+
|
|
74
|
+
assert result.exception is None, result.output
|
|
75
|
+
assert result.exit_code == 0
|
|
76
|
+
assert "[digest]" in config_path.read_text(encoding="utf-8")
|
|
77
|
+
assert provided.read_text(encoding="utf-8") == supplied_content
|
|
78
|
+
|
|
79
|
+
def test_init_config_rejects_directory(self, tmp_path: Path) -> None:
|
|
80
|
+
"""A directory is rejected by Click (dir_okay=False), not by a later crash."""
|
|
81
|
+
a_dir = tmp_path / "not-a-file"
|
|
82
|
+
a_dir.mkdir()
|
|
83
|
+
|
|
84
|
+
result = CliRunner().invoke(cli, ["init", "--config", str(a_dir), _NO_DL])
|
|
85
|
+
|
|
86
|
+
# Click usage error (exit 2), and specifically NOT the AttributeError crash.
|
|
87
|
+
assert result.exit_code == 2
|
|
88
|
+
assert not isinstance(result.exception, AttributeError)
|
|
@@ -0,0 +1,186 @@
|
|
|
1
|
+
"""Tests for cross-platform process helpers in ``openjarvis.core.utils``."""
|
|
2
|
+
|
|
3
|
+
from __future__ import annotations
|
|
4
|
+
|
|
5
|
+
import os
|
|
6
|
+
import platform
|
|
7
|
+
import signal
|
|
8
|
+
import subprocess
|
|
9
|
+
import sys
|
|
10
|
+
import time
|
|
11
|
+
from unittest.mock import MagicMock, call, patch
|
|
12
|
+
|
|
13
|
+
import pytest
|
|
14
|
+
|
|
15
|
+
from openjarvis.core.utils import (
|
|
16
|
+
_windows_process_alive,
|
|
17
|
+
process_alive,
|
|
18
|
+
terminate_process,
|
|
19
|
+
)
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
class TestProcessAlive:
|
|
23
|
+
def test_current_process_is_alive(self) -> None:
|
|
24
|
+
assert process_alive(os.getpid()) is True
|
|
25
|
+
|
|
26
|
+
def test_bogus_pid_not_alive(self) -> None:
|
|
27
|
+
assert process_alive(999_999_999) is False
|
|
28
|
+
|
|
29
|
+
def test_none_pid_not_alive(self) -> None:
|
|
30
|
+
assert process_alive(None) is False
|
|
31
|
+
|
|
32
|
+
def test_nonpositive_pid_not_alive(self) -> None:
|
|
33
|
+
assert process_alive(0) is False
|
|
34
|
+
assert process_alive(-1) is False
|
|
35
|
+
|
|
36
|
+
@pytest.mark.skipif(platform.system() == "Windows", reason="POSIX-only")
|
|
37
|
+
def test_unreaped_zombie_is_not_alive(self) -> None:
|
|
38
|
+
proc = subprocess.Popen([sys.executable, "-c", "pass"])
|
|
39
|
+
try:
|
|
40
|
+
for _ in range(100):
|
|
41
|
+
if not process_alive(proc.pid):
|
|
42
|
+
break
|
|
43
|
+
time.sleep(0.01)
|
|
44
|
+
assert process_alive(proc.pid) is False
|
|
45
|
+
finally:
|
|
46
|
+
proc.wait(timeout=5)
|
|
47
|
+
|
|
48
|
+
def test_permission_error_is_conservatively_alive(self) -> None:
|
|
49
|
+
with (
|
|
50
|
+
patch("openjarvis.core.utils.platform.system", return_value="Linux"),
|
|
51
|
+
patch("openjarvis.core.utils.os.kill", side_effect=PermissionError),
|
|
52
|
+
patch("openjarvis.core.utils._posix_process_state", return_value=None),
|
|
53
|
+
):
|
|
54
|
+
assert process_alive(1234) is True
|
|
55
|
+
|
|
56
|
+
def test_windows_path_never_calls_os_kill(self) -> None:
|
|
57
|
+
with (
|
|
58
|
+
patch("openjarvis.core.utils.platform.system", return_value="Windows"),
|
|
59
|
+
patch(
|
|
60
|
+
"openjarvis.core.utils._windows_process_alive", return_value=True
|
|
61
|
+
) as win_alive,
|
|
62
|
+
patch("openjarvis.core.utils.os.kill") as os_kill,
|
|
63
|
+
):
|
|
64
|
+
assert process_alive(4321) is True
|
|
65
|
+
win_alive.assert_called_once_with(4321)
|
|
66
|
+
os_kill.assert_not_called()
|
|
67
|
+
|
|
68
|
+
|
|
69
|
+
class TestWindowsProcessAlive:
|
|
70
|
+
@staticmethod
|
|
71
|
+
def _kernel(open_result: int, wait_result: int = 0) -> MagicMock:
|
|
72
|
+
kernel32 = MagicMock()
|
|
73
|
+
kernel32.OpenProcess.return_value = open_result
|
|
74
|
+
kernel32.WaitForSingleObject.return_value = wait_result
|
|
75
|
+
return kernel32
|
|
76
|
+
|
|
77
|
+
def test_missing_pid(self) -> None:
|
|
78
|
+
import ctypes
|
|
79
|
+
|
|
80
|
+
kernel32 = self._kernel(0)
|
|
81
|
+
with (
|
|
82
|
+
patch.object(ctypes, "WinDLL", return_value=kernel32, create=True),
|
|
83
|
+
patch.object(ctypes, "get_last_error", return_value=87, create=True),
|
|
84
|
+
):
|
|
85
|
+
assert _windows_process_alive(1234) is False
|
|
86
|
+
|
|
87
|
+
def test_access_denied_is_conservatively_alive(self) -> None:
|
|
88
|
+
import ctypes
|
|
89
|
+
|
|
90
|
+
kernel32 = self._kernel(0)
|
|
91
|
+
with (
|
|
92
|
+
patch.object(ctypes, "WinDLL", return_value=kernel32, create=True),
|
|
93
|
+
patch.object(ctypes, "get_last_error", return_value=5, create=True),
|
|
94
|
+
):
|
|
95
|
+
assert _windows_process_alive(1234) is True
|
|
96
|
+
|
|
97
|
+
@pytest.mark.parametrize(
|
|
98
|
+
("wait_result", "expected"), [(0x00000000, False), (0x00000102, True)]
|
|
99
|
+
)
|
|
100
|
+
def test_process_handle_state(self, wait_result: int, expected: bool) -> None:
|
|
101
|
+
import ctypes
|
|
102
|
+
|
|
103
|
+
kernel32 = self._kernel(99, wait_result)
|
|
104
|
+
with patch.object(ctypes, "WinDLL", return_value=kernel32, create=True):
|
|
105
|
+
assert _windows_process_alive(1234) is expected
|
|
106
|
+
kernel32.CloseHandle.assert_called_once_with(99)
|
|
107
|
+
|
|
108
|
+
|
|
109
|
+
class TestTerminateProcess:
|
|
110
|
+
def _spawn_sleeper(self) -> subprocess.Popen:
|
|
111
|
+
# Portable long-running child: sleeps well beyond the test's lifetime.
|
|
112
|
+
return subprocess.Popen([sys.executable, "-c", "import time; time.sleep(60)"])
|
|
113
|
+
|
|
114
|
+
def test_terminates_running_process(self) -> None:
|
|
115
|
+
proc = self._spawn_sleeper()
|
|
116
|
+
try:
|
|
117
|
+
# Give the interpreter a moment to come up.
|
|
118
|
+
for _ in range(20):
|
|
119
|
+
if process_alive(proc.pid):
|
|
120
|
+
break
|
|
121
|
+
time.sleep(0.05)
|
|
122
|
+
assert process_alive(proc.pid) is True
|
|
123
|
+
|
|
124
|
+
terminate_process(proc.pid, grace_seconds=5.0)
|
|
125
|
+
|
|
126
|
+
# Should be gone shortly after terminate returns.
|
|
127
|
+
for _ in range(20):
|
|
128
|
+
if not process_alive(proc.pid):
|
|
129
|
+
break
|
|
130
|
+
time.sleep(0.05)
|
|
131
|
+
assert process_alive(proc.pid) is False
|
|
132
|
+
finally:
|
|
133
|
+
try:
|
|
134
|
+
proc.wait(timeout=5)
|
|
135
|
+
except Exception:
|
|
136
|
+
proc.kill()
|
|
137
|
+
|
|
138
|
+
def test_terminate_bogus_pid_no_crash(self) -> None:
|
|
139
|
+
# Must be a no-op, never raise, on any platform.
|
|
140
|
+
terminate_process(999_999_999)
|
|
141
|
+
|
|
142
|
+
def test_terminate_none_no_crash(self) -> None:
|
|
143
|
+
terminate_process(None)
|
|
144
|
+
|
|
145
|
+
def test_posix_escalates_to_sigkill(self) -> None:
|
|
146
|
+
with (
|
|
147
|
+
patch("openjarvis.core.utils.platform.system", return_value="Linux"),
|
|
148
|
+
patch("openjarvis.core.utils.process_alive", return_value=True),
|
|
149
|
+
patch("openjarvis.core.utils.os.kill") as os_kill,
|
|
150
|
+
):
|
|
151
|
+
terminate_process(1234, grace_seconds=0)
|
|
152
|
+
assert os_kill.call_args_list == [
|
|
153
|
+
call(1234, signal.SIGTERM),
|
|
154
|
+
call(1234, signal.SIGKILL),
|
|
155
|
+
]
|
|
156
|
+
|
|
157
|
+
def test_windows_graceful_taskkill(self) -> None:
|
|
158
|
+
with (
|
|
159
|
+
patch("openjarvis.core.utils.platform.system", return_value="Windows"),
|
|
160
|
+
patch("openjarvis.core.utils.process_alive", side_effect=[True, False]),
|
|
161
|
+
patch("openjarvis.core.utils.subprocess.run") as run,
|
|
162
|
+
):
|
|
163
|
+
terminate_process(1234, grace_seconds=1)
|
|
164
|
+
run.assert_called_once_with(
|
|
165
|
+
["taskkill", "/PID", "1234"], capture_output=True, check=False
|
|
166
|
+
)
|
|
167
|
+
|
|
168
|
+
def test_windows_escalates_to_forced_tree_kill(self) -> None:
|
|
169
|
+
with (
|
|
170
|
+
patch("openjarvis.core.utils.platform.system", return_value="Windows"),
|
|
171
|
+
patch("openjarvis.core.utils.process_alive", return_value=True),
|
|
172
|
+
patch("openjarvis.core.utils.subprocess.run") as run,
|
|
173
|
+
):
|
|
174
|
+
terminate_process(1234, grace_seconds=0)
|
|
175
|
+
assert run.call_args_list == [
|
|
176
|
+
call(
|
|
177
|
+
["taskkill", "/PID", "1234"],
|
|
178
|
+
capture_output=True,
|
|
179
|
+
check=False,
|
|
180
|
+
),
|
|
181
|
+
call(
|
|
182
|
+
["taskkill", "/F", "/T", "/PID", "1234"],
|
|
183
|
+
capture_output=True,
|
|
184
|
+
check=False,
|
|
185
|
+
),
|
|
186
|
+
]
|