nova-ai-pro 1.2.5.dev91__tar.gz → 1.2.5.dev92__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.
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/PKG-INFO +1 -1
- nova_ai_pro-1.2.5.dev92/frontend/public/quick-capture.html +423 -0
- nova_ai_pro-1.2.5.dev92/frontend/src/components/Dashboard/DevWatchFeed.tsx +146 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/frontend/src/pages/DashboardPage.tsx +5 -0
- nova_ai_pro-1.2.5.dev92/frontend/src-tauri/.cargo/config.toml +18 -0
- nova_ai_pro-1.2.5.dev92/frontend/src-tauri/build-tools/cppwrap.bat +2 -0
- nova_ai_pro-1.2.5.dev92/frontend/src-tauri/build.rs +16 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/frontend/src-tauri/capabilities/default.json +1 -1
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/frontend/src-tauri/src/lib.rs +173 -46
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/agents/morning_digest.py +27 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/cli/__init__.py +2 -0
- nova_ai_pro-1.2.5.dev92/src/nova_ai/cli/dev_watch_cmd.py +340 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/cli/digest_cmd.py +26 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/server/app.py +2 -0
- nova_ai_pro-1.2.5.dev92/src/nova_ai/server/devwatch_router.py +53 -0
- nova_ai_pro-1.2.5.dev92/tests/agents/test_morning_digest.py +149 -0
- nova_ai_pro-1.2.5.dev92/tests/cli/test_dev_watch_cmd.py +193 -0
- nova_ai_pro-1.2.5.dev92/tests/server/test_devwatch_router.py +108 -0
- nova_ai_pro-1.2.5.dev91/frontend/src-tauri/build.rs +0 -3
- nova_ai_pro-1.2.5.dev91/tests/agents/test_morning_digest.py +0 -71
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/.github/CODEOWNERS +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/.github/ISSUE_TEMPLATE/bug_report.yml +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/.github/ISSUE_TEMPLATE/config.yml +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/.github/ISSUE_TEMPLATE/feature_request.yml +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/.github/ISSUE_TEMPLATE/new_eval.yml +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/.github/ISSUE_TEMPLATE/pearl_model_validation.yml +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/.github/clone-stats/badge.json +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/.github/clone-stats/clone-data.json +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/.github/pull_request_template.md +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/.github/workflows/autotag.yml +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/.github/workflows/bash-tests.yml +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/.github/workflows/ci.yml +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/.github/workflows/claude-issues.yml +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/.github/workflows/claude-review.yml +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/.github/workflows/desktop.yml +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/.github/workflows/docs.yml +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/.github/workflows/frontend.yml +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/.github/workflows/installer-integration.yml +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/.github/workflows/jekyll-gh-pages.yml +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/.github/workflows/pypi-publish.yml +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/.github/workflows/release.yml +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/.github/workflows/take-assign.yml +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/.github/workflows/track-clones.yml +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/.gitignore +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/.pre-commit-config.yaml +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/CHANGELOG.md +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/CODE_OF_CONDUCT.md +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/CONTRIBUTING.md +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/LICENSE +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/README.md +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/REVIEW.md +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/SETUP_AND_USAGE_GUIDE.md +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/assets/Chats.png +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/assets/Close.png +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/assets/Home.png +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/assets/Maximize.png +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/assets/Mic_off.png +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/assets/Mic_on.png +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/assets/Minimize.png +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/assets/Minimize2.png +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/assets/Nova.gif +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/assets/NovaAI_Horizontal_Logo.jpg +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/assets/NovaAI_Icon.jpg +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/assets/Settings.png +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/assets/nova_ai_demo_reel.jpg +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/assets/nova_ai_demo_reel.webp +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/browser-extension/README.md +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/browser-extension/background.js +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/browser-extension/content.css +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/browser-extension/content.js +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/browser-extension/icons/README.md +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/browser-extension/icons/icon128.png +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/browser-extension/icons/icon16.png +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/browser-extension/icons/icon48.png +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/browser-extension/manifest.json +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/browser-extension/package.json +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/browser-extension/popup.html +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/browser-extension/popup.js +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/configs/nova_ai/config.toml +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/configs/nova_ai/examples/chat-simple.toml +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/configs/nova_ai/examples/code-assistant.toml +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/configs/nova_ai/examples/deep-research.toml +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/configs/nova_ai/examples/morning-digest-linux.toml +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/configs/nova_ai/examples/morning-digest-mac.toml +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/configs/nova_ai/examples/morning-digest-minimal.toml +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/configs/nova_ai/examples/scheduled-monitor.toml +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/configs/nova_ai/examples/spec-search-quickstart.toml +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/configs/nova_ai/prompts/personas/neutral.md +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/configs/nova_ai/prompts/personas/nova.md +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/deploy/docker/.env.example +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/deploy/docker/Dockerfile +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/deploy/docker/Dockerfile.gpu +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/deploy/docker/Dockerfile.gpu.rocm +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/deploy/docker/Dockerfile.sandbox +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/deploy/docker/docker-compose.gpu.nvidia.yml +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/deploy/docker/docker-compose.gpu.rocm.yml +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/deploy/docker/docker-compose.yml +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/deploy/launchd/com.nova-ai.plist +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/deploy/posthog/posthog-hetzner-prep.sh +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/deploy/systemd/nova_ai.service +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/deploy/windows/README.md +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/deploy/windows/install.ps1 +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/deploy/windows/nova-ai-setup.iss +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/deploy/windows/nova-service.ps1 +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/desktop/src-tauri/src/overlay.html +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/docs/architecture/agents.md +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/docs/architecture/channels.md +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/docs/architecture/design-principles.md +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/docs/architecture/engine.md +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/docs/architecture/intelligence.md +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/docs/architecture/learning.md +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/docs/architecture/memory.md +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/docs/architecture/overview.md +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/docs/architecture/query-flow.md +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/docs/architecture/security.md +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/docs/architecture/skills.md +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/docs/assets/NovaAI_Architecture.png +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/docs/assets/showcase/README.md +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/docs/assets/showcase/coding-assistant.png +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/docs/assets/showcase/cost-savings.png +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/docs/assets/showcase/discord-companion.png +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/docs/assets/showcase/morning-brief.png +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/docs/assets/showcase/persistent-memory.png +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/docs/deployment/api-server.md +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/docs/deployment/docker.md +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/docs/deployment/index.md +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/docs/deployment/launchd.md +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/docs/deployment/systemd.md +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/docs/design/2026-05-05-apple-silicon-pearl-mining-design.md +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/docs/design/2026-05-05-apple-silicon-pearl-mining-plan-v1.md +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/docs/design/2026-05-05-pearl-coordination-discussion-draft.md +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/docs/design/2026-05-05-vllm-pearl-mining-integration-design.md +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/docs/design/2026-05-05-vllm-pearl-mining-integration-plan.md +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/docs/desktop-auto-update.md +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/docs/development/contributing.md +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/docs/development/mining-nvidia-validation.md +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/docs/development/mining.md +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/docs/development/pearl-model-enablement.md +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/docs/development/release-checklist.md +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/docs/development/roadmap.md +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/docs/downloads.md +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/docs/gen_install_script.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/docs/gen_ref_pages.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/docs/getting-started/configuration.md +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/docs/getting-started/install.md +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/docs/getting-started/installation.md +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/docs/getting-started/linux.md +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/docs/getting-started/macos.md +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/docs/getting-started/quickstart.md +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/docs/getting-started/snippets.md +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/docs/getting-started/windows-native.md +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/docs/getting-started/wsl2.md +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/docs/includes/abbreviations.md +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/docs/index.md +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/docs/javascripts/docsearch-init.js +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/docs/javascripts/leaderboard.js +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/docs/leaderboard.md +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/docs/learning/ace.md +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/docs/learning/conversation-forking.md +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/docs/learning/fleet-oracle.md +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/docs/learning/memory-consolidation.md +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/docs/learning/proving-ground.md +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/docs/learning/self-training.md +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/docs/learning/skill-foundry.md +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/docs/overrides/main.html +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/docs/proposal/NOVA_AI_Presentation.md +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/docs/proposal/NOVA_AI_Project_Proposal.md +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/docs/proposal/NOVA_AI_Technical_Presentation.pptx +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/docs/proposal/NOVA_AI_Technical_Proposal.pdf +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/docs/proposal/generate_pdf.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/docs/proposal/generate_pptx.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/docs/showcase/CONTRIBUTING.md +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/docs/showcase/coding-assistant.md +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/docs/showcase/cost-savings.md +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/docs/showcase/discord-companion.md +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/docs/showcase/index.md +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/docs/showcase/morning-brief.md +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/docs/showcase/persistent-memory.md +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/docs/stylesheets/extra.css +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/docs/telemetry.md +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/docs/testing/agent-qa-runbook.md +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/docs/tutorials/code-companion.md +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/docs/tutorials/deep-research.md +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/docs/tutorials/index.md +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/docs/tutorials/messaging-hub.md +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/docs/tutorials/scheduled-ops.md +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/docs/tutorials/skills-workflow.md +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/docs/user-guide/agents.md +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/docs/user-guide/benchmarks.md +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/docs/user-guide/channels-and-connectors.md +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/docs/user-guide/channels.md +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/docs/user-guide/chat-simple.md +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/docs/user-guide/cli.md +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/docs/user-guide/code-assistant.md +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/docs/user-guide/deep-research.md +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/docs/user-guide/evaluations.md +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/docs/user-guide/llm-guided-spec-search.md +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/docs/user-guide/mcp-external-servers.md +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/docs/user-guide/memory.md +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/docs/user-guide/mining-apple-silicon.md +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/docs/user-guide/mining.md +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/docs/user-guide/morning-digest.md +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/docs/user-guide/pearl.md +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/docs/user-guide/python-sdk.md +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/docs/user-guide/scheduled-monitor.md +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/docs/user-guide/scheduler.md +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/docs/user-guide/security.md +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/docs/user-guide/skills.md +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/docs/user-guide/telemetry.md +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/docs/user-guide/tools.md +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/examples/browser_assistant/README.md +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/examples/browser_assistant/browser_assistant.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/examples/code_companion/README.md +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/examples/code_companion/debugger.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/examples/code_companion/reviewer.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/examples/code_companion/test_gen.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/examples/daily_digest/README.md +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/examples/daily_digest/daily_digest.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/examples/deep_research/README.md +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/examples/deep_research/research.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/examples/deep_research/research.toml +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/examples/doc_qa/README.md +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/examples/doc_qa/doc_qa.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/examples/messaging_hub/README.md +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/examples/messaging_hub/messaging.toml +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/examples/messaging_hub/smart_inbox.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/examples/multi_model_router/README.md +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/examples/multi_model_router/multi_model_router.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/examples/nova_ai/spec_search_quickstart.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/examples/scheduled_ops/README.md +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/examples/scheduled_ops/code_review.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/examples/scheduled_ops/daily_digest.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/examples/scheduled_ops/gym_scheduler.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/examples/scheduled_ops/schedules.toml +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/examples/security_scanner/README.md +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/examples/security_scanner/security_scanner.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/examples/twitter_bot/slack_preview.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/examples/twitter_bot/test_grounding.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/examples/twitter_bot/test_real_world.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/examples/twitter_bot/twitter_bot.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/frontend/components.json +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/frontend/index.html +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/frontend/package-lock.json +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/frontend/package.json +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/frontend/public/apple-touch-icon.png +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/frontend/public/favicon.ico +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/frontend/public/pwa-192x192.png +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/frontend/public/pwa-512x512.png +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/frontend/src/App.tsx +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/frontend/src/components/ApprovalBell.tsx +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/frontend/src/components/Chat/AudioPlayer.tsx +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/frontend/src/components/Chat/CanvasPanel.tsx +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/frontend/src/components/Chat/ChatArea.tsx +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/frontend/src/components/Chat/InputArea.tsx +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/frontend/src/components/Chat/MessageBubble.tsx +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/frontend/src/components/Chat/MicButton.tsx +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/frontend/src/components/Chat/ReasoningGraph.tsx +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/frontend/src/components/Chat/ResearchTimeline.tsx +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/frontend/src/components/Chat/StreamingDots.tsx +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/frontend/src/components/Chat/SystemPanel.tsx +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/frontend/src/components/Chat/ToolCallCard.tsx +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/frontend/src/components/Chat/XRayFooter.tsx +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/frontend/src/components/CommandPalette.tsx +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/frontend/src/components/Dashboard/CostComparison.tsx +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/frontend/src/components/Dashboard/EnergyDashboard.tsx +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/frontend/src/components/Dashboard/HardwareGauges.tsx +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/frontend/src/components/Dashboard/TraceDebugger.tsx +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/frontend/src/components/Desktop/AdminPanel.tsx +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/frontend/src/components/Desktop/AgentsPanel.tsx +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/frontend/src/components/Desktop/EnergyDashboard.tsx +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/frontend/src/components/Desktop/LearningCurve.tsx +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/frontend/src/components/Desktop/MemoryBrowser.tsx +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/frontend/src/components/Desktop/SavingsDashboard.tsx +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/frontend/src/components/Desktop/SettingsPanel.tsx +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/frontend/src/components/Desktop/TaskPlannerPanel.tsx +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/frontend/src/components/Desktop/TraceDebugger.tsx +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/frontend/src/components/Desktop/UpdateChecker.tsx +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/frontend/src/components/Desktop/hooks/useTauriApi.ts +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/frontend/src/components/Desktop/lib/api.ts +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/frontend/src/components/Docs/DocChatPanel.tsx +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/frontend/src/components/Docs/DocLibrary.tsx +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/frontend/src/components/ErrorBoundary.tsx +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/frontend/src/components/Layout.tsx +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/frontend/src/components/NotificationBell.tsx +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/frontend/src/components/OptInModal.tsx +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/frontend/src/components/SetupScreen.tsx +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/frontend/src/components/Sidebar/ConversationList.tsx +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/frontend/src/components/Sidebar/Sidebar.tsx +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/frontend/src/components/SystemPulse.tsx +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/frontend/src/components/setup/IngestDashboard.tsx +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/frontend/src/components/setup/ReadyScreen.tsx +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/frontend/src/components/setup/SetupWizard.tsx +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/frontend/src/components/setup/SourceConnectFlow.tsx +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/frontend/src/components/setup/SourcePicker.tsx +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/frontend/src/components/ui/button.tsx +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/frontend/src/components/ui/dialog.tsx +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/frontend/src/components/ui/input.tsx +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/frontend/src/components/ui/select.tsx +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/frontend/src/components/ui/sonner.tsx +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/frontend/src/components/ui/tooltip.tsx +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/frontend/src/hooks/useSpeech.ts +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/frontend/src/hooks/useSystemTelemetry.ts +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/frontend/src/index.css +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/frontend/src/lib/analytics.ts +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/frontend/src/lib/api.auth.test.ts +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/frontend/src/lib/api.ts +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/frontend/src/lib/connectors-api.ts +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/frontend/src/lib/deep-link.ts +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/frontend/src/lib/profanity.ts +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/frontend/src/lib/rehype-citations.ts +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/frontend/src/lib/sse.ts +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/frontend/src/lib/store.ts +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/frontend/src/lib/useAgentEvents.ts +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/frontend/src/lib/utils.ts +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/frontend/src/main.tsx +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/frontend/src/pages/AgentsPage.tsx +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/frontend/src/pages/CalendarPage.tsx +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/frontend/src/pages/ChatPage.tsx +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/frontend/src/pages/DataSourcesPage.tsx +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/frontend/src/pages/DocsPage.tsx +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/frontend/src/pages/EmailPage.tsx +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/frontend/src/pages/GGUFHubPage.tsx +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/frontend/src/pages/GetStartedPage.tsx +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/frontend/src/pages/IntegrationsPage.tsx +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/frontend/src/pages/LogsPage.tsx +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/frontend/src/pages/MobilePairPage.tsx +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/frontend/src/pages/ModelComparePage.tsx +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/frontend/src/pages/ModelHubPage.tsx +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/frontend/src/pages/PersonasPage.tsx +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/frontend/src/pages/SettingsPage.tsx +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/frontend/src/types/connectors.ts +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/frontend/src/types/index.ts +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/frontend/src/vite-env.d.ts +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/frontend/src-tauri/Cargo.lock +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/frontend/src-tauri/Cargo.toml +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/frontend/src-tauri/Entitlements.plist +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/frontend/src-tauri/binaries/.gitignore +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/frontend/src-tauri/icons/128x128.png +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/frontend/src-tauri/icons/128x128@2x.png +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/frontend/src-tauri/icons/256x256.png +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/frontend/src-tauri/icons/32x32.png +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/frontend/src-tauri/icons/icon.icns +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/frontend/src-tauri/icons/icon.ico +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/frontend/src-tauri/icons/icon.png +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/frontend/src-tauri/scripts/download-ollama.sh +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/frontend/src-tauri/src/main.rs +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/frontend/src-tauri/src/overlay.html +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/frontend/src-tauri/tauri.conf.json +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/frontend/tsconfig.json +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/frontend/vite.config.ts +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/install.bat +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/mkdocs.yml +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/pyproject.toml +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/rust/Cargo.lock +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/rust/Cargo.toml +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/rust/crates/nova_ai-a2a/Cargo.toml +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/rust/crates/nova_ai-a2a/src/lib.rs +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/rust/crates/nova_ai-agents/Cargo.toml +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/rust/crates/nova_ai-agents/src/helpers.rs +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/rust/crates/nova_ai-agents/src/lib.rs +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/rust/crates/nova_ai-agents/src/loop_guard.rs +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/rust/crates/nova_ai-agents/src/monitor_operative.rs +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/rust/crates/nova_ai-agents/src/native_openhands.rs +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/rust/crates/nova_ai-agents/src/native_react.rs +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/rust/crates/nova_ai-agents/src/orchestrator.rs +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/rust/crates/nova_ai-agents/src/simple.rs +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/rust/crates/nova_ai-agents/src/traits.rs +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/rust/crates/nova_ai-agents/src/utils.rs +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/rust/crates/nova_ai-core/Cargo.toml +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/rust/crates/nova_ai-core/src/config.rs +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/rust/crates/nova_ai-core/src/error.rs +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/rust/crates/nova_ai-core/src/events.rs +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/rust/crates/nova_ai-core/src/hardware.rs +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/rust/crates/nova_ai-core/src/lib.rs +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/rust/crates/nova_ai-core/src/model_catalog.rs +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/rust/crates/nova_ai-core/src/registry.rs +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/rust/crates/nova_ai-core/src/types.rs +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/rust/crates/nova_ai-engine/Cargo.toml +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/rust/crates/nova_ai-engine/src/discovery.rs +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/rust/crates/nova_ai-engine/src/engine_enum.rs +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/rust/crates/nova_ai-engine/src/lib.rs +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/rust/crates/nova_ai-engine/src/llamacpp.rs +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/rust/crates/nova_ai-engine/src/ollama.rs +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/rust/crates/nova_ai-engine/src/openai_compat.rs +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/rust/crates/nova_ai-engine/src/rig_adapter.rs +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/rust/crates/nova_ai-engine/src/sglang.rs +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/rust/crates/nova_ai-engine/src/traits.rs +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/rust/crates/nova_ai-engine/src/vllm.rs +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/rust/crates/nova_ai-learning/Cargo.toml +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/rust/crates/nova_ai-learning/src/agent_advisor.rs +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/rust/crates/nova_ai-learning/src/agent_evolver.rs +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/rust/crates/nova_ai-learning/src/bandit.rs +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/rust/crates/nova_ai-learning/src/grpo.rs +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/rust/crates/nova_ai-learning/src/heuristic.rs +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/rust/crates/nova_ai-learning/src/heuristic_reward.rs +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/rust/crates/nova_ai-learning/src/icl_updater.rs +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/rust/crates/nova_ai-learning/src/learning_orchestrator.rs +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/rust/crates/nova_ai-learning/src/lib.rs +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/rust/crates/nova_ai-learning/src/optimize/engine.rs +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/rust/crates/nova_ai-learning/src/optimize/llm_optimizer.rs +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/rust/crates/nova_ai-learning/src/optimize/mod.rs +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/rust/crates/nova_ai-learning/src/optimize/search_space.rs +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/rust/crates/nova_ai-learning/src/optimize/store.rs +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/rust/crates/nova_ai-learning/src/optimize/types.rs +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/rust/crates/nova_ai-learning/src/orchestrator_types.rs +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/rust/crates/nova_ai-learning/src/reward.rs +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/rust/crates/nova_ai-learning/src/router_enum.rs +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/rust/crates/nova_ai-learning/src/sft_policy.rs +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/rust/crates/nova_ai-learning/src/skill_discovery.rs +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/rust/crates/nova_ai-learning/src/trace_policy.rs +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/rust/crates/nova_ai-learning/src/training_data.rs +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/rust/crates/nova_ai-learning/src/traits.rs +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/rust/crates/nova_ai-mcp/Cargo.toml +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/rust/crates/nova_ai-mcp/src/lib.rs +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/rust/crates/nova_ai-mcp/src/protocol.rs +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/rust/crates/nova_ai-mcp/src/server.rs +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/rust/crates/nova_ai-python/Cargo.toml +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/rust/crates/nova_ai-python/pyproject.toml +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/rust/crates/nova_ai-python/src/a2a.rs +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/rust/crates/nova_ai-python/src/agents.rs +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/rust/crates/nova_ai-python/src/core.rs +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/rust/crates/nova_ai-python/src/engine.rs +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/rust/crates/nova_ai-python/src/learning.rs +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/rust/crates/nova_ai-python/src/lib.rs +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/rust/crates/nova_ai-python/src/mcp.rs +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/rust/crates/nova_ai-python/src/recipes.rs +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/rust/crates/nova_ai-python/src/scheduler.rs +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/rust/crates/nova_ai-python/src/security.rs +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/rust/crates/nova_ai-python/src/sessions.rs +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/rust/crates/nova_ai-python/src/skills.rs +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/rust/crates/nova_ai-python/src/storage.rs +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/rust/crates/nova_ai-python/src/telemetry.rs +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/rust/crates/nova_ai-python/src/templates.rs +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/rust/crates/nova_ai-python/src/tools.rs +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/rust/crates/nova_ai-python/src/traces.rs +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/rust/crates/nova_ai-python/src/workflow.rs +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/rust/crates/nova_ai-python/uv.lock +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/rust/crates/nova_ai-recipes/Cargo.toml +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/rust/crates/nova_ai-recipes/src/lib.rs +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/rust/crates/nova_ai-scheduler/Cargo.toml +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/rust/crates/nova_ai-scheduler/src/lib.rs +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/rust/crates/nova_ai-security/Cargo.toml +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/rust/crates/nova_ai-security/src/audit.rs +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/rust/crates/nova_ai-security/src/capabilities.rs +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/rust/crates/nova_ai-security/src/file_policy.rs +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/rust/crates/nova_ai-security/src/guardrails.rs +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/rust/crates/nova_ai-security/src/injection.rs +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/rust/crates/nova_ai-security/src/lib.rs +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/rust/crates/nova_ai-security/src/rate_limiter.rs +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/rust/crates/nova_ai-security/src/scanner.rs +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/rust/crates/nova_ai-security/src/ssrf.rs +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/rust/crates/nova_ai-security/src/taint.rs +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/rust/crates/nova_ai-security/src/types.rs +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/rust/crates/nova_ai-sessions/Cargo.toml +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/rust/crates/nova_ai-sessions/src/lib.rs +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/rust/crates/nova_ai-skills/Cargo.toml +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/rust/crates/nova_ai-skills/src/lib.rs +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/rust/crates/nova_ai-telemetry/Cargo.toml +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/rust/crates/nova_ai-telemetry/src/aggregator.rs +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/rust/crates/nova_ai-telemetry/src/energy.rs +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/rust/crates/nova_ai-telemetry/src/flops.rs +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/rust/crates/nova_ai-telemetry/src/instrumented.rs +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/rust/crates/nova_ai-telemetry/src/itl.rs +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/rust/crates/nova_ai-telemetry/src/lib.rs +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/rust/crates/nova_ai-telemetry/src/phase.rs +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/rust/crates/nova_ai-telemetry/src/session.rs +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/rust/crates/nova_ai-telemetry/src/store.rs +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/rust/crates/nova_ai-templates/Cargo.toml +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/rust/crates/nova_ai-templates/src/lib.rs +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/rust/crates/nova_ai-tools/Cargo.toml +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/rust/crates/nova_ai-tools/src/builtin/calculator.rs +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/rust/crates/nova_ai-tools/src/builtin/file_tools.rs +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/rust/crates/nova_ai-tools/src/builtin/git_tools.rs +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/rust/crates/nova_ai-tools/src/builtin/http_tools.rs +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/rust/crates/nova_ai-tools/src/builtin/mod.rs +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/rust/crates/nova_ai-tools/src/builtin/shell.rs +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/rust/crates/nova_ai-tools/src/builtin/think.rs +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/rust/crates/nova_ai-tools/src/executor.rs +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/rust/crates/nova_ai-tools/src/lib.rs +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/rust/crates/nova_ai-tools/src/rig_tools.rs +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/rust/crates/nova_ai-tools/src/storage/backend_enum.rs +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/rust/crates/nova_ai-tools/src/storage/bm25.rs +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/rust/crates/nova_ai-tools/src/storage/colbert.rs +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/rust/crates/nova_ai-tools/src/storage/faiss.rs +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/rust/crates/nova_ai-tools/src/storage/hybrid.rs +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/rust/crates/nova_ai-tools/src/storage/knowledge_graph.rs +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/rust/crates/nova_ai-tools/src/storage/mod.rs +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/rust/crates/nova_ai-tools/src/storage/sqlite.rs +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/rust/crates/nova_ai-tools/src/storage/traits.rs +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/rust/crates/nova_ai-tools/src/storage/utils.rs +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/rust/crates/nova_ai-tools/src/traits.rs +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/rust/crates/nova_ai-traces/Cargo.toml +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/rust/crates/nova_ai-traces/src/analyzer.rs +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/rust/crates/nova_ai-traces/src/collector.rs +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/rust/crates/nova_ai-traces/src/lib.rs +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/rust/crates/nova_ai-traces/src/store.rs +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/rust/crates/nova_ai-workflow/Cargo.toml +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/rust/crates/nova_ai-workflow/src/lib.rs +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/rust/rust-toolchain.toml +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/scripts/bump-desktop-version.sh +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/scripts/index_docs.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/scripts/install/bg-orchestrator.sh +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/scripts/install/build-extension.sh +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/scripts/install/install-rust.sh +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/scripts/install/install.sh +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/scripts/install/nova-uninstall.sh +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/scripts/install/nova-wrapper.sh +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/scripts/install/pull-model.sh +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/scripts/mining/pearl_model_converter.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/scripts/oauth_all.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/scripts/pearl/README.md +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/scripts/pearl/model_converter.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/scripts/quickstart.sh +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/scripts/smoke_framework_comparison.sh +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/__init__.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/_rust_bridge.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/a2a/__init__.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/a2a/client.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/a2a/protocol.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/a2a/server.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/a2a/tool.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/agents/__init__.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/agents/_stubs.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/agents/channel_agent.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/agents/claude_code.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/agents/claude_code_runner/package.json +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/agents/claude_code_runner/src/index.ts +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/agents/deep_research.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/agents/digest_evaluator.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/agents/digest_store.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/agents/errors.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/agents/executor.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/agents/hybrid/README.md +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/agents/hybrid/__init__.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/agents/hybrid/_base.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/agents/hybrid/_energy.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/agents/hybrid/_openai_retry.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/agents/hybrid/_prices.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/agents/hybrid/_prompts.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/agents/hybrid/advisors.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/agents/hybrid/archon.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/agents/hybrid/baseline_cloud.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/agents/hybrid/baseline_local.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/agents/hybrid/conductor.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/agents/hybrid/mini_swe_agent.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/agents/hybrid/minions.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/agents/hybrid/registry/advisors.toml +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/agents/hybrid/registry/archon.toml +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/agents/hybrid/registry/baseline_local.toml +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/agents/hybrid/registry/conductor.toml +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/agents/hybrid/registry/mini_swe_agent.toml +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/agents/hybrid/registry/minions.toml +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/agents/hybrid/registry/skillorchestra.toml +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/agents/hybrid/registry/swe_agent_loop.toml +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/agents/hybrid/registry/toolorchestra.toml +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/agents/hybrid/runner.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/agents/hybrid/scripts/new_experiment.sh +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/agents/hybrid/skillorchestra/README.md +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/agents/hybrid/skillorchestra/__init__.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/agents/hybrid/skillorchestra/agent.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/agents/hybrid/skillorchestra/handbook_seed.json +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/agents/hybrid/skillorchestra/orchestrator.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/agents/hybrid/skillorchestra/pool.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/agents/hybrid/skillorchestra/prompts/__init__.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/agents/hybrid/skillorchestra/prompts/eval_orchestrator.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/agents/hybrid/skillorchestra/prompts/learning.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/agents/hybrid/skillorchestra/prompts/model_routing.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/agents/hybrid/skillorchestra/stage_router.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/agents/hybrid/skillorchestra/tools.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/agents/hybrid/skillorchestra/types.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/agents/hybrid/skillorchestra.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/agents/hybrid/toolorchestra.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/agents/loop_guard.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/agents/manager.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/agents/monitor_operative.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/agents/native_openhands.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/agents/native_react.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/agents/opencode.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/agents/openhands.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/agents/operative.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/agents/orchestrator.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/agents/proactive_agent.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/agents/prompt_loader.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/agents/research_loop.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/agents/rlm.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/agents/rlm_repl.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/agents/scheduler.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/agents/self_healing.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/agents/simple.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/agents/templates/__init__.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/agents/templates/code_reviewer.toml +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/agents/templates/inbox_triager.toml +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/agents/templates/personal_deep_research.toml +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/agents/templates/research_monitor.toml +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/analytics/__init__.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/analytics/aggregator.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/analytics/bridge.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/analytics/client.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/analytics/events.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/analytics/identity.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/analytics/redaction.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/bench/__init__.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/bench/_stats.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/bench/_stubs.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/bench/energy.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/bench/latency.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/bench/throughput.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/channels/__init__.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/channels/_stubs.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/channels/bluebubbles.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/channels/discord_channel.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/channels/email_channel.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/channels/feishu.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/channels/gmail.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/channels/google_chat.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/channels/imessage_daemon.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/channels/irc_channel.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/channels/line_channel.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/channels/mastodon_channel.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/channels/matrix_channel.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/channels/mattermost.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/channels/messenger_channel.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/channels/nostr_channel.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/channels/reddit_channel.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/channels/rocketchat_channel.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/channels/sendblue.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/channels/signal_channel.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/channels/slack.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/channels/slack_blocks.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/channels/slack_daemon.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/channels/teams.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/channels/telegram.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/channels/twilio_sms.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/channels/twitch_channel.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/channels/twitter_channel.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/channels/viber_channel.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/channels/webchat.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/channels/webhook.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/channels/whatsapp.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/channels/whatsapp_baileys.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/channels/whatsapp_baileys_bridge/package-lock.json +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/channels/whatsapp_baileys_bridge/package.json +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/channels/whatsapp_baileys_bridge/src/bridge.ts +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/channels/whatsapp_baileys_bridge/tsconfig.json +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/channels/xmpp_channel.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/channels/zulip_channel.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/cli/__main__.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/cli/_banner.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/cli/_bg_state.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/cli/_bootstrap.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/cli/_chat_banner.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/cli/_chat_notifications.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/cli/_first_run.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/cli/_install_detect.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/cli/_screen.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/cli/_tool_names.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/cli/_version_check.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/cli/add_cmd.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/cli/agent_cmd.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/cli/ask.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/cli/auth_cmd.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/cli/bench_cmd.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/cli/canvas_cmd.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/cli/channel_cmd.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/cli/channels_cmd.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/cli/chat_cmd.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/cli/clip_cmd.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/cli/compose_cmd.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/cli/config_cmd.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/cli/connect_cmd.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/cli/conversation_cmd.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/cli/daemon_cmd.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/cli/dashboard.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/cli/deep_research_setup_cmd.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/cli/doctor_cmd.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/cli/eval_cmd.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/cli/feedback_cmd.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/cli/forge_cmd.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/cli/gateway_cmd.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/cli/hints.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/cli/host_cmd.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/cli/init_cmd.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/cli/integrations_cmd.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/cli/log_config.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/cli/memory_cmd.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/cli/memory_wiki_cmd.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/cli/mine_cmd.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/cli/model.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/cli/operators_cmd.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/cli/optimize_cmd.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/cli/oracle_cmd.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/cli/pearl_cmd.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/cli/prove_cmd.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/cli/quickstart_cmd.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/cli/registry_cmd.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/cli/router_cmd.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/cli/scan_cmd.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/cli/scheduler_cmd.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/cli/screen_cmd.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/cli/self_update_cmd.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/cli/serve.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/cli/skill_cmd.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/cli/telemetry_cmd.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/cli/tool_cmd.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/cli/train_cmd.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/cli/tunnel_cmd.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/cli/vault_cmd.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/cli/voice_cmd.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/cli/workflow_cmd.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/connectors/__init__.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/connectors/_stubs.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/connectors/apple_contacts.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/connectors/apple_health.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/connectors/apple_music.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/connectors/apple_notes.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/connectors/attachment_store.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/connectors/caldav_connector.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/connectors/chunker.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/connectors/dropbox.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/connectors/embedding_store.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/connectors/embeddings.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/connectors/gcalendar.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/connectors/gcontacts.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/connectors/gdrive.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/connectors/github_notifications.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/connectors/gmail.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/connectors/gmail_imap.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/connectors/google_auth.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/connectors/google_tasks.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/connectors/granola.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/connectors/hackernews.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/connectors/hybrid_search.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/connectors/imessage.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/connectors/news_rss.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/connectors/notion.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/connectors/oauth.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/connectors/obsidian.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/connectors/oura.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/connectors/outlook.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/connectors/pipeline.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/connectors/retriever.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/connectors/scheduler.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/connectors/slack_connector.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/connectors/smtp_sender.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/connectors/spotify.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/connectors/store.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/connectors/strava.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/connectors/sync_engine.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/connectors/weather.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/connectors/whatsapp.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/conversations/__init__.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/conversations/racer.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/conversations/store.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/core/__init__.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/core/config/__init__.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/core/config/hardware.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/core/config/loader.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/core/config/models.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/core/config/sections.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/core/config/tomlgen.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/core/config/validation.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/core/credentials.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/core/events.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/core/paths.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/core/registry.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/core/types.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/core/utils.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/daemon/__init__.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/daemon/gateway.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/daemon/service.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/daemon/session_expiry.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/engine/__init__.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/engine/_base.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/engine/_discovery.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/engine/_openai_compat.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/engine/_stubs.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/engine/apple_fm_shim.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/engine/cloud.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/engine/gemma_cpp.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/engine/gguf.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/engine/litellm.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/engine/model_downloader.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/engine/multi.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/engine/nexa_shim.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/engine/offload.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/engine/ollama.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/engine/openai_compat_engines.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/engine/router.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/engine/router_config.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/engine/router_learning.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/engine/self_optimizer.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/engine/task_planner.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/evals/__init__.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/evals/__main__.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/evals/backends/__init__.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/evals/backends/_commit_util.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/evals/backends/_endpoint_util.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/evals/backends/external/__init__.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/evals/backends/external/_runners/__init__.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/evals/backends/external/_runners/hermes_runner.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/evals/backends/external/_runners/openclaw_runner.mjs +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/evals/backends/external/_subprocess_runner.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/evals/backends/external/hermes_agent.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/evals/backends/external/openclaw.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/evals/backends/nova_agent.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/evals/backends/nova_direct.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/evals/backends/tb_agent.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/evals/backends/terminalbench_native.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/evals/cli.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/evals/comparison/__init__.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/evals/comparison/make_configs.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/evals/comparison/table_gen.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/evals/comparison/third_party.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/evals/configs/deepplanning-monitor-operative.toml +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/evals/configs/framework_comparison/_template.toml +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/evals/configs/framework_comparison/_third_party.toml +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/evals/configs/full-suite.toml +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/evals/configs/gaia-gemini-31-pro.toml +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/evals/configs/gaia-gemma4-26b.toml +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/evals/configs/gaia-gpt54.toml +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/evals/configs/gaia-nemotron-nano.toml +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/evals/configs/gaia-nemotron-super.toml +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/evals/configs/gaia-nemotron3-super.toml +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/evals/configs/gaia-qwen-122b.toml +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/evals/configs/gaia-qwen-27b.toml +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/evals/configs/gaia-qwen-2b.toml +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/evals/configs/gaia-qwen-35b.toml +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/evals/configs/gaia-qwen-9b.toml +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/evals/configs/gaia-qwen122b.toml +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/evals/configs/gaia-qwen35b.toml +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/evals/configs/gaia-rerun-claude-opus.toml +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/evals/configs/gaia-rerun-claude-sonnet.toml +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/evals/configs/gaia-rerun-glm47flash.toml +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/evals/configs/gaia-rerun-gpt5mini.toml +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/evals/configs/gaia-rerun-minimax-m25.toml +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/evals/configs/gaia-rerun-qwen122b.toml +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/evals/configs/gaia-rerun-qwen35b.toml +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/evals/configs/gaia-rerun-qwen397b.toml +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/evals/configs/gaia-trinity-large.toml +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/evals/configs/glm-4.7-flash-openhands-remaining.toml +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/evals/configs/glm-4.7-flash-openhands.toml +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/evals/configs/glm-4.7-fp8-openhands-gaia.toml +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/evals/configs/glm5-fp8-monitor-operative.toml +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/evals/configs/kimi-k2.5-monitor-operative.toml +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/evals/configs/livecodebench-claude-opus.toml +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/evals/configs/livecodebench-gemma4-26b.toml +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/evals/configs/livecodebench-gemma4-e4b.toml +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/evals/configs/livecodebench-kimi-k25.toml +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/evals/configs/livecodebench-minimax-m25.toml +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/evals/configs/livecodebench-nemotron-nano.toml +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/evals/configs/livecodebench-nemotron-super.toml +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/evals/configs/livecodebench-qwen-122b.toml +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/evals/configs/livecodebench-qwen-27b.toml +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/evals/configs/livecodebench-qwen-2b.toml +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/evals/configs/livecodebench-qwen-35b.toml +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/evals/configs/livecodebench-qwen-9b.toml +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/evals/configs/liveresearch-claude-opus.toml +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/evals/configs/liveresearch-gemini-31-pro.toml +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/evals/configs/liveresearch-gemma4-26b.toml +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/evals/configs/liveresearch-gemma4-31b.toml +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/evals/configs/liveresearch-gpt54.toml +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/evals/configs/liveresearch-granite-3.3-8b-lora.toml +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/evals/configs/liveresearch-granite-3.3-8b.toml +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/evals/configs/liveresearch-granite-4.0-h-small.toml +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/evals/configs/liveresearch-granite-4.0-micro.toml +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/evals/configs/liveresearch-nemotron-nano.toml +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/evals/configs/liveresearch-nemotron-super.toml +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/evals/configs/liveresearch-qwen-122b.toml +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/evals/configs/liveresearch-qwen-27b-lora-r32.toml +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/evals/configs/liveresearch-qwen-27b.toml +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/evals/configs/liveresearch-qwen-2b-lora-r16.toml +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/evals/configs/liveresearch-qwen-2b-lora-r32.toml +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/evals/configs/liveresearch-qwen-2b-mixed.toml +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/evals/configs/liveresearch-qwen-2b-trackb.toml +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/evals/configs/liveresearch-qwen-2b.toml +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/evals/configs/liveresearch-qwen-35b.toml +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/evals/configs/liveresearch-qwen-9b-lora-r32.toml +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/evals/configs/liveresearch-qwen-9b-mixed.toml +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/evals/configs/liveresearch-qwen-9b-trackb.toml +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/evals/configs/liveresearch-qwen-9b.toml +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/evals/configs/liveresearch-trinity-large.toml +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/evals/configs/liveresearchbench-qwen-27b.toml +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/evals/configs/liveresearchbench-qwen-2b.toml +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/evals/configs/liveresearchbench-qwen-9b.toml +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/evals/configs/long-horizon-claude-opus.toml +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/evals/configs/long-horizon-claude-sonnet.toml +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/evals/configs/long-horizon-glm47flash.toml +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/evals/configs/long-horizon-gpt5mini.toml +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/evals/configs/long-horizon-kimik25.toml +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/evals/configs/long-horizon-minimax-m25.toml +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/evals/configs/long-horizon-qwen122b.toml +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/evals/configs/long-horizon-qwen35b.toml +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/evals/configs/long-horizon-qwen397b.toml +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/evals/configs/minimal.toml +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/evals/configs/paperarena-monitor-operative.toml +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/evals/configs/pinchbench-claude-opus.toml +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/evals/configs/pinchbench-gemini-31-pro.toml +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/evals/configs/pinchbench-gemma4-26b.toml +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/evals/configs/pinchbench-gemma4-e4b.toml +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/evals/configs/pinchbench-gpt54.toml +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/evals/configs/pinchbench-kimi-k25.toml +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/evals/configs/pinchbench-minimax-m25.toml +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/evals/configs/pinchbench-nemotron-nano.toml +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/evals/configs/pinchbench-nemotron-super.toml +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/evals/configs/pinchbench-nemotron3-super.toml +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/evals/configs/pinchbench-qwen-122b.toml +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/evals/configs/pinchbench-qwen-27b.toml +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/evals/configs/pinchbench-qwen-2b.toml +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/evals/configs/pinchbench-qwen-35b.toml +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/evals/configs/pinchbench-qwen-9b.toml +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/evals/configs/pinchbench-qwen122b.toml +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/evals/configs/pinchbench-qwen35b.toml +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/evals/configs/pinchbench-qwen397b.toml +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/evals/configs/pinchbench.toml +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/evals/configs/qwen3.5-122b-kg-agentic.toml +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/evals/configs/qwen3.5-122b-kg-hightoken.toml +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/evals/configs/qwen3.5-122b-reasoning-suite.toml +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/evals/configs/qwen3.5-35b-kg.toml +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/evals/configs/qwen3.5-35b-monitor-operative.toml +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/evals/configs/qwen3.5-397b-monitor-operative.toml +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/evals/configs/single-run.toml +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/evals/configs/smoke_amd.toml +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/evals/configs/smoke_apple.toml +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/evals/configs/smoke_nvidia.toml +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/evals/configs/taubench-claude-opus.toml +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/evals/configs/taubench-gemini-31-pro.toml +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/evals/configs/taubench-gemma4-26b.toml +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/evals/configs/taubench-gemma4-e4b.toml +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/evals/configs/taubench-gpt54.toml +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/evals/configs/taubench-kimi-k25.toml +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/evals/configs/taubench-minimax-m25.toml +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/evals/configs/taubench-nemotron-nano.toml +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/evals/configs/taubench-nemotron-super.toml +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/evals/configs/taubench-nemotron3-super.toml +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/evals/configs/taubench-qwen-122b.toml +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/evals/configs/taubench-qwen-27b.toml +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/evals/configs/taubench-qwen-2b.toml +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/evals/configs/taubench-qwen-35b.toml +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/evals/configs/taubench-qwen-9b.toml +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/evals/configs/taubench-qwen122b.toml +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/evals/configs/taubench-qwen35b.toml +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/evals/configs/taubench-qwen397b.toml +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/evals/configs/taubench-telecom-claude.toml +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/evals/configs/taubench-telecom-gemma4-26b.toml +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/evals/configs/taubench-telecom-gpt54.toml +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/evals/configs/taubench-telecom-nemotron-nano.toml +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/evals/configs/taubench-telecom-nemotron-super.toml +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/evals/configs/taubench-telecom-nemotron.toml +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/evals/configs/taubench-telecom-qwen-122b.toml +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/evals/configs/taubench-telecom-qwen-27b.toml +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/evals/configs/taubench-telecom-qwen-35b.toml +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/evals/configs/taubench-telecom-qwen27b.toml +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/evals/configs/taubench-telecom-qwen2b.toml +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/evals/configs/taubench-telecom-qwen9b.toml +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/evals/configs/taubench-telecom-trinity-large.toml +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/evals/configs/terminalbench-native-qwen122b.toml +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/evals/configs/terminalbench-qwen122b.toml +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/evals/configs/toolcall15-claude-opus.toml +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/evals/configs/toolcall15-gemma4-26b.toml +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/evals/configs/toolcall15-gemma4-e4b.toml +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/evals/configs/toolcall15-kimi-k25.toml +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/evals/configs/toolcall15-minimax-m25.toml +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/evals/configs/toolcall15-nemotron-nano.toml +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/evals/configs/toolcall15-nemotron-super.toml +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/evals/configs/toolcall15-qwen-122b.toml +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/evals/configs/toolcall15-qwen-27b.toml +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/evals/configs/toolcall15-qwen-2b.toml +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/evals/configs/toolcall15-qwen-35b.toml +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/evals/configs/toolcall15-qwen-9b.toml +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/evals/configs/use_case_cloud_comparison.toml +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/evals/configs/use_case_cloud_openhands.toml +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/evals/configs/use_case_cloud_orchestrator.toml +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/evals/configs/use_case_direct.toml +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/evals/configs/use_case_ibm_granite.toml +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/evals/configs/use_case_openhands.toml +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/evals/configs/use_case_opensource_openhands.toml +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/evals/configs/use_case_opensource_orchestrator.toml +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/evals/configs/use_case_orchestrator.toml +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/evals/configs/use_case_react.toml +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/evals/configs/use_case_suite.toml +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/evals/configs/use_case_v2_cloud.toml +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/evals/configs/use_case_v2_granite.toml +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/evals/configs/use_case_v2_local.toml +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/evals/configs/use_case_v2_suite.toml +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/evals/core/__init__.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/evals/core/agentic_runner.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/evals/core/backend.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/evals/core/config.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/evals/core/dataset.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/evals/core/display.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/evals/core/environment.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/evals/core/event_recorder.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/evals/core/export.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/evals/core/pricing.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/evals/core/runner.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/evals/core/scorer.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/evals/core/splits.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/evals/core/trace.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/evals/core/tracker.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/evals/core/types.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/evals/datasets/__init__.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/evals/datasets/adp.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/evals/datasets/ama_bench.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/evals/datasets/browser_assistant.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/evals/datasets/coding_assistant.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/evals/datasets/coding_task.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/evals/datasets/daily_digest.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/evals/datasets/deepplanning.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/evals/datasets/doc_qa.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/evals/datasets/email_triage.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/evals/datasets/frames.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/evals/datasets/gaia.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/evals/datasets/generalthoughts.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/evals/datasets/gpqa.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/evals/datasets/hle.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/evals/datasets/ipw_mixed.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/evals/datasets/knowledge_base.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/evals/datasets/lifelong_agent.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/evals/datasets/livecodebench.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/evals/datasets/liveresearch.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/evals/datasets/liveresearchbench.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/evals/datasets/loghub.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/evals/datasets/math500.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/evals/datasets/mmlu_pro.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/evals/datasets/morning_brief.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/evals/datasets/natural_reasoning.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/evals/datasets/paperarena.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/evals/datasets/pinchbench.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/evals/datasets/research_mining.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/evals/datasets/security_scanner.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/evals/datasets/simpleqa.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/evals/datasets/supergpqa.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/evals/datasets/swebench.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/evals/datasets/swefficiency.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/evals/datasets/taubench.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/evals/datasets/terminalbench.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/evals/datasets/terminalbench_native.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/evals/datasets/terminalbench_v2_1.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/evals/datasets/toolcall15.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/evals/datasets/toolorchestra.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/evals/datasets/webchorearena.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/evals/datasets/wildchat.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/evals/datasets/workarena.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/evals/environments/__init__.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/evals/environments/base.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/evals/environments/lifelong_agent_env.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/evals/execution/__init__.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/evals/execution/pinchbench_env.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/evals/execution/taubench_env.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/evals/execution/terminalbench_env.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/evals/execution/terminalbench_v2_1_env.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/evals/execution/webchorearena_env.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/evals/execution/workarena_env.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/evals/scorers/__init__.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/evals/scorers/_checklist.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/evals/scorers/ama_bench_judge.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/evals/scorers/browser_assistant.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/evals/scorers/coding_assistant.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/evals/scorers/coding_task.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/evals/scorers/daily_digest.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/evals/scorers/deepplanning_scorer.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/evals/scorers/doc_qa.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/evals/scorers/email_triage.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/evals/scorers/frames_judge.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/evals/scorers/gaia_exact.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/evals/scorers/gpqa_mcq.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/evals/scorers/hle_judge.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/evals/scorers/ipw_mixed.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/evals/scorers/knowledge_base.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/evals/scorers/lifelong_agent_scorer.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/evals/scorers/livecodebench.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/evals/scorers/liveresearch.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/evals/scorers/liveresearchbench.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/evals/scorers/loghub_scorer.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/evals/scorers/mmlu_pro_mcq.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/evals/scorers/morning_brief.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/evals/scorers/paperarena_judge.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/evals/scorers/pinchbench.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/evals/scorers/reasoning_judge.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/evals/scorers/research_mining.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/evals/scorers/security_scanner.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/evals/scorers/simpleqa_judge.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/evals/scorers/supergpqa_mcq.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/evals/scorers/swebench_harness.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/evals/scorers/swebench_structural.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/evals/scorers/swefficiency_structural.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/evals/scorers/taubench.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/evals/scorers/terminalbench_judge.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/evals/scorers/terminalbench_native_structural.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/evals/scorers/terminalbench_v2_1.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/evals/scorers/toolcall15.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/evals/scorers/webchorearena_scorer.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/evals/scorers/wildchat_judge.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/evals/scorers/workarena_scorer.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/evals/skill_benchmark.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/evals/tests/__init__.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/evals/tests/conftest.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/evals/tests/test_backends.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/evals/tests/test_cli_endpoint.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/evals/tests/test_cli_flags.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/evals/tests/test_config.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/evals/tests/test_display.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/evals/tests/test_frames.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/evals/tests/test_gaia.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/evals/tests/test_runner.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/evals/tests/test_supergpqa.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/evals/tests/test_types.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/evals/tests/test_wildchat.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/evals/trackers/__init__.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/evals/trackers/sheets_tracker.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/evals/trackers/wandb_tracker.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/intelligence/__init__.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/intelligence/model_catalog.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/learning/__init__.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/learning/_stubs.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/learning/agents/__init__.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/learning/agents/ace_optimizer.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/learning/agents/agent_evolver.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/learning/agents/dspy_optimizer.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/learning/agents/gepa_optimizer.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/learning/agents/skill_discovery.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/learning/agents/skill_optimizer.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/learning/fleet/__init__.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/learning/fleet/oracle.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/learning/fleet/push.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/learning/fleet/report.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/learning/intelligence/__init__.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/learning/intelligence/grpo_trainer.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/learning/intelligence/orchestrator/__init__.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/learning/intelligence/orchestrator/environment.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/learning/intelligence/orchestrator/grpo_trainer.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/learning/intelligence/orchestrator/policy_model.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/learning/intelligence/orchestrator/prompt_registry.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/learning/intelligence/orchestrator/reward.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/learning/intelligence/orchestrator/sft_trainer.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/learning/intelligence/orchestrator/types.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/learning/intelligence/sft_trainer.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/learning/learning_orchestrator.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/learning/optimize/__init__.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/learning/optimize/config.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/learning/optimize/configs/qwen3-235b-dry-run.toml +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/learning/optimize/configs/qwen3.5-joint-agentic.toml +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/learning/optimize/feedback/__init__.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/learning/optimize/feedback/collector.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/learning/optimize/feedback/judge.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/learning/optimize/llm_optimizer.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/learning/optimize/optimizer.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/learning/optimize/personal/__init__.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/learning/optimize/personal/dataset.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/learning/optimize/personal/scorer.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/learning/optimize/personal/synthesizer.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/learning/optimize/search_space.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/learning/optimize/store.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/learning/optimize/trial_runner.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/learning/optimize/types.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/learning/proving/__init__.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/learning/proving/adoption.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/learning/proving/pipeline.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/learning/proving/store.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/learning/proving/watcher.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/learning/routing/__init__.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/learning/routing/_utils.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/learning/routing/complexity.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/learning/routing/heuristic_policy.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/learning/routing/heuristic_reward.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/learning/routing/learned_router.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/learning/routing/router.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/learning/skillforge/__init__.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/learning/skillforge/adoption.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/learning/skillforge/gauntlet.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/learning/skillforge/miner.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/learning/skillforge/pipeline.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/learning/skillforge/store.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/learning/skillforge/synthesizer.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/learning/spec_search/__init__.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/learning/spec_search/checkpoint/__init__.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/learning/spec_search/checkpoint/store.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/learning/spec_search/composite_reward.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/learning/spec_search/diagnose/__init__.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/learning/spec_search/diagnose/runner.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/learning/spec_search/diagnose/teacher_agent.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/learning/spec_search/diagnose/tools.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/learning/spec_search/diagnose/types.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/learning/spec_search/execute/__init__.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/learning/spec_search/execute/appliers/__init__.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/learning/spec_search/execute/appliers/agent.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/learning/spec_search/execute/appliers/intelligence.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/learning/spec_search/execute/appliers/lora.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/learning/spec_search/execute/appliers/lora_stub.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/learning/spec_search/execute/appliers/tools.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/learning/spec_search/execute/base.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/learning/spec_search/execute/loop.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/learning/spec_search/external_adapter.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/learning/spec_search/gate/__init__.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/learning/spec_search/gate/benchmark_gate.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/learning/spec_search/gate/cold_start.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/learning/spec_search/gate/regression.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/learning/spec_search/models.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/learning/spec_search/multi_session.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/learning/spec_search/orchestrator.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/learning/spec_search/pending_queue.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/learning/spec_search/plan/__init__.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/learning/spec_search/plan/planner.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/learning/spec_search/plan/prompt_diff.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/learning/spec_search/plan/risk_tier.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/learning/spec_search/storage/__init__.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/learning/spec_search/storage/paths.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/learning/spec_search/storage/session_store.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/learning/spec_search/student_runner.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/learning/spec_search/triggers.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/learning/training/__init__.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/learning/training/data.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/learning/training/deploy.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/learning/training/dpo.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/learning/training/lora.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/learning/training/pipeline.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/learning/training/store.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/learning/training/triggers.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/mcp/__init__.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/mcp/client.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/mcp/loader.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/mcp/protocol.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/mcp/server.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/mcp/transport.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/memory/__init__.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/memory/consolidation/__init__.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/memory/consolidation/cluster.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/memory/consolidation/inject.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/memory/consolidation/pipeline.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/memory/consolidation/store.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/memory/wiki.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/mining/__init__.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/mining/_collector.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/mining/_constants.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/mining/_discovery.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/mining/_docker.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/mining/_install.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/mining/_metrics.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/mining/_miner_loop_main.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/mining/_models.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/mining/_mps_miner_loop_main.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/mining/_pearl_subprocess.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/mining/_stubs.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/mining/apple_mps_pearl.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/mining/cpu_pearl.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/mining/pools/__init__.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/mining/vllm_pearl.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/notifications/__init__.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/notifications/notifier.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/operators/__init__.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/operators/data/knowledge_curator.toml +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/operators/data/news_digest.toml +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/operators/data/researcher.toml +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/operators/data/system_monitor.toml +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/operators/loader.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/operators/manager.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/operators/types.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/prompt/__init__.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/prompt/builder.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/recipes/__init__.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/recipes/composer.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/recipes/data/coding_assistant.toml +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/recipes/data/coding_benchmark.toml +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/recipes/data/gaia_orchestrator.toml +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/recipes/data/general_assistant.toml +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/recipes/data/monitor_assistant.toml +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/recipes/data/operators/correspondent.toml +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/recipes/data/operators/correspondent_prompt.md +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/recipes/data/operators/inbox_triage.toml +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/recipes/data/operators/news_briefing.toml +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/recipes/data/operators/nova_ai_twitter_bot.toml +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/recipes/data/operators/nova_ai_twitter_bot_prompt.md +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/recipes/data/operators/repo_watcher.toml +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/recipes/data/operators/researcher.toml +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/recipes/data/operators/researcher_prompt.md +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/recipes/data/operators/sentinel.toml +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/recipes/data/operators/sentinel_prompt.md +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/recipes/data/operators/twitter_sentinel.toml +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/recipes/data/research_assistant.toml +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/recipes/data/swebench_openhands.toml +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/recipes/data/terminalbench_react.toml +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/recipes/loader.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/sandbox/__init__.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/sandbox/mount_security.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/sandbox/runner.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/sandbox/wasm_runner.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/scheduler/__init__.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/scheduler/scheduler.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/scheduler/store.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/scheduler/tools.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/sdk.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/security/__init__.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/security/_stubs.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/security/audit.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/security/boundary.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/security/capabilities.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/security/credential_stripper.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/security/file_policy.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/security/file_utils.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/security/guardrails.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/security/injection_scanner.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/security/rate_limiter.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/security/scanner.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/security/severity_policy.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/security/signing.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/security/ssrf.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/security/subprocess_sandbox.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/security/taint.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/security/types.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/server/__init__.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/server/agent_manager_routes.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/server/analytics_routes.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/server/api_routes.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/server/approval_routes.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/server/auth_middleware.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/server/calendar_router.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/server/channel_bridge.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/server/chat_history_store.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/server/clipboard_router.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/server/cloud_router.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/server/comparison.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/server/connectors_router.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/server/conversation_routes.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/server/cost_calculator.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/server/dashboard.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/server/digest_routes.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/server/email_router.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/server/extension_router.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/server/gguf_hub_router.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/server/history_router.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/server/integrations_router.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/server/middleware.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/server/mobile_pair_router.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/server/model_compare_router.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/server/model_hub_router.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/server/models.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/server/notification_router.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/server/persona_router.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/server/research_router.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/server/routes.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/server/savings.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/server/search_router.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/server/session_store.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/server/stream_bridge.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/server/system_telemetry_router.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/server/tasks_api.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/server/upload_router.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/server/webhook_routes.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/server/ws_bridge.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/sessions/__init__.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/sessions/compression.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/sessions/session.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/skills/__init__.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/skills/data/backup-files.toml +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/skills/data/calendar-prep.toml +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/skills/data/code-lint.toml +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/skills/data/code-test-gen.toml +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/skills/data/compare-docs.toml +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/skills/data/daily-digest.toml +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/skills/data/data-analyze.toml +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/skills/data/dependency-audit.toml +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/skills/data/email-draft.toml +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/skills/data/file-deduplicator.toml +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/skills/data/file-organizer.toml +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/skills/data/knowledge-extract.toml +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/skills/data/meeting-notes.toml +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/skills/data/pdf-summarize.toml +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/skills/data/search-and-index.toml +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/skills/data/security-scan.toml +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/skills/data/todo-from-notes.toml +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/skills/data/topic-research.toml +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/skills/data/translate-doc.toml +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/skills/data/web-summarize.toml +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/skills/dependency.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/skills/executor.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/skills/importer.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/skills/index.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/skills/loader.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/skills/manager.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/skills/overlay.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/skills/parser.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/skills/security.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/skills/sources/__init__.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/skills/sources/base.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/skills/sources/github.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/skills/sources/hermes.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/skills/sources/openclaw.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/skills/tool_adapter.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/skills/tool_translator.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/skills/types.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/speech/__init__.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/speech/_discovery.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/speech/_stubs.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/speech/cartesia_tts.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/speech/deepgram.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/speech/faster_whisper.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/speech/kokoro_tts.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/speech/openai_tts.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/speech/openai_whisper.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/speech/tts.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/system/__init__.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/system/_channel_kwargs.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/system/builder.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/system/bundles.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/system/core.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/system/orchestrator.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/system/protocols.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/telemetry/__init__.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/telemetry/aggregator.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/telemetry/batch.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/telemetry/efficiency.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/telemetry/energy_amd.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/telemetry/energy_apple.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/telemetry/energy_monitor.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/telemetry/energy_nvidia.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/telemetry/energy_rapl.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/telemetry/flops.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/telemetry/gpu_monitor.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/telemetry/instrumented_engine.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/telemetry/itl.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/telemetry/phase_metrics.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/telemetry/session.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/telemetry/steady_state.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/telemetry/store.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/telemetry/vllm_metrics.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/telemetry/wrapper.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/templates/__init__.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/templates/agent_templates.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/templates/data/architect.toml +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/templates/data/assistant.toml +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/templates/data/code-reviewer.toml +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/templates/data/data-analyst.toml +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/templates/data/debugger.toml +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/templates/data/deep-researcher.toml +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/templates/data/fact-checker.toml +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/templates/data/inbox-triager.toml +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/templates/data/meeting-prep.toml +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/templates/data/monitor.toml +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/templates/data/note-taker.toml +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/templates/data/security-auditor.toml +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/templates/data/summarizer.toml +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/templates/data/translator.toml +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/templates/data/tutor.toml +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/templates/data/writer.toml +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/tools/__init__.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/tools/_stubs.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/tools/agent_tools.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/tools/api_tester.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/tools/apply_patch.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/tools/approval_store.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/tools/audio_tool.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/tools/browser.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/tools/browser_axtree.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/tools/calculator.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/tools/canvas_tool.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/tools/channel_tools.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/tools/cisco_packet_tracer.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/tools/cli_bridge.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/tools/clipboard_ai.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/tools/code_interpreter.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/tools/code_interpreter_docker.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/tools/code_scaffolder.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/tools/data_analyzer.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/tools/db_query.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/tools/description_loader.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/tools/digest_collect.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/tools/doc_generator.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/tools/docker_shell_exec.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/tools/file_converter.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/tools/file_read.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/tools/file_write.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/tools/git_manager.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/tools/git_tool.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/tools/http_request.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/tools/image_tool.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/tools/knowledge_search.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/tools/knowledge_sql.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/tools/knowledge_tools.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/tools/llm_tool.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/tools/mcp_adapter.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/tools/memory_manage.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/tools/memory_wiki_tools.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/tools/pdf_tool.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/tools/proactive_tools.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/tools/repl.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/tools/retrieval.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/tools/scan_chunks.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/tools/scheduler_tool.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/tools/screen_capture.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/tools/screen_monitor.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/tools/shell_exec.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/tools/skill_manage.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/tools/storage/__init__.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/tools/storage/_stubs.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/tools/storage/bm25.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/tools/storage/chunking.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/tools/storage/colbert_backend.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/tools/storage/context.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/tools/storage/dense.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/tools/storage/embeddings.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/tools/storage/faiss_backend.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/tools/storage/hybrid.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/tools/storage/ingest.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/tools/storage/knowledge_graph.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/tools/storage/sqlite.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/tools/storage_tools.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/tools/system_monitor.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/tools/templates/__init__.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/tools/templates/builtin/base64_encode.toml +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/tools/templates/builtin/date_info.toml +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/tools/templates/builtin/hash_compute.toml +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/tools/templates/builtin/json_transform.toml +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/tools/templates/builtin/regex_extract.toml +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/tools/templates/builtin/text_length.toml +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/tools/templates/builtin/text_lower.toml +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/tools/templates/builtin/text_reverse.toml +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/tools/templates/builtin/text_upper.toml +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/tools/templates/builtin/unit_convert.toml +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/tools/templates/loader.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/tools/text_to_speech.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/tools/think.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/tools/user_profile_manage.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/tools/web_readability.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/tools/web_search.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/traces/__init__.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/traces/analyzer.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/traces/collector.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/traces/store.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/voice/__init__.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/voice/audio_io.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/voice/session.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/workflow/__init__.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/workflow/builder.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/workflow/engine.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/workflow/graph.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/workflow/loader.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/src/nova_ai/workflow/types.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/start.bat +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/start.sh +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/__init__.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/a2a/test_a2a.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/a2a/test_a2a_auth.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/agents/__init__.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/agents/conftest.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/agents/fake_engine.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/agents/scenario_harness.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/agents/test_agent_lifecycle_scenarios.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/agents/test_agent_routing_matrix.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/agents/test_base_agent.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/agents/test_budget.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/agents/test_channel_agent.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/agents/test_channel_agent_integration.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/agents/test_claude_code.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/agents/test_config_defaults.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/agents/test_continuation.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/agents/test_deep_research.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/agents/test_deep_research_integration.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/agents/test_deep_research_prompt.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/agents/test_digest_store.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/agents/test_errors.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/agents/test_executor.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/agents/test_executor_ephemeral.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/agents/test_executor_error_detail.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/agents/test_executor_tools.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/agents/test_fake_engine.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/agents/test_learning_integration.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/agents/test_loop_guard.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/agents/test_loop_guard_warn.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/agents/test_manager.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/agents/test_manager_recover.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/agents/test_monitor_operative.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/agents/test_native_openhands.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/agents/test_native_react.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/agents/test_opencode_agent.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/agents/test_openhands.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/agents/test_orchestrator.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/agents/test_persona_persistent.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/agents/test_research_loop.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/agents/test_rlm.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/agents/test_rlm_repl.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/agents/test_scenario_harness_smoke.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/agents/test_scheduler.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/agents/test_self_healing.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/agents/test_simple.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/agents/test_stall.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/agents/test_suggest_action.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/agents/test_system_prompt_builder_integration.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/agents/test_template_prompts.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/agents/test_trace_recording.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/analytics/__init__.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/analytics/test_redaction.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/bench/__init__.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/bench/test_bench_stats.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/bench/test_energy.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/bench/test_latency.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/bench/test_stubs.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/bench/test_throughput.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/channels/__init__.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/channels/channel_test_helpers.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/channels/conftest.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/channels/test_agent_channel_e2e.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/channels/test_bluebubbles.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/channels/test_channel_config.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/channels/test_channel_contract.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/channels/test_channel_registry.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/channels/test_channels_phase21.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/channels/test_config.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/channels/test_discord_channel.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/channels/test_email_channel.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/channels/test_feishu.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/channels/test_google_chat.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/channels/test_imessage_daemon.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/channels/test_irc_channel.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/channels/test_matrix_channel.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/channels/test_mattermost.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/channels/test_sendblue.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/channels/test_signal_channel.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/channels/test_slack.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/channels/test_slack_blocks.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/channels/test_slack_messaging.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/channels/test_stubs.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/channels/test_teams.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/channels/test_telegram.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/channels/test_tier1_gmail.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/channels/test_twilio_sms.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/channels/test_twitter_bot_e2e.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/channels/test_twitter_channel.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/channels/test_webchat.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/channels/test_webhook.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/channels/test_whatsapp.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/channels/test_whatsapp_baileys.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/cli/__init__.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/cli/test_add_cmd.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/cli/test_agent_cmd.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/cli/test_ask_agent.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/cli/test_ask_context.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/cli/test_ask_e2e.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/cli/test_ask_router.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/cli/test_ask_vision.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/cli/test_bench_cmd.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/cli/test_bench_skills_command.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/cli/test_channel_cmd.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/cli/test_chat_cmd.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/cli/test_cli.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/cli/test_config_cmd.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/cli/test_config_set.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/cli/test_connect.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/cli/test_conversation_cmd.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/cli/test_daemon_cmd.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/cli/test_dashboard.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/cli/test_deep_research_setup.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/cli/test_digest_cmd.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/cli/test_doctor_cmd.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/cli/test_doctor_labels.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/cli/test_eval_cmd.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/cli/test_eval_cmd_external_flags.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/cli/test_hints.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/cli/test_init_guidance.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/cli/test_init_host.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/cli/test_install_detect.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/cli/test_integrations_cmd.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/cli/test_log_config.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/cli/test_memory_cmd.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/cli/test_memory_consolidate.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/cli/test_mine_cmd.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/cli/test_model_cmd.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/cli/test_model_pull.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/cli/test_operators_cmd.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/cli/test_optimize_skills_command.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/cli/test_pearl_cmd.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/cli/test_prove_cmd.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/cli/test_quickstart.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/cli/test_registry_cmd.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/cli/test_scan.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/cli/test_scheduler_create_meta.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/cli/test_self_update.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/cli/test_serve_channel_wiring.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/cli/test_serve_model_resolution.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/cli/test_serve_single_build.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/cli/test_skill_cmd.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/cli/test_telemetry_cmd.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/cli/test_tool_cmd.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/cli/test_train_cmd.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/cli/test_vault_cmd.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/cli/test_version_check.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/cli/test_workflow_cmd.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/conftest.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/connectors/__init__.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/connectors/test_apple_contacts.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/connectors/test_apple_health.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/connectors/test_apple_music.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/connectors/test_apple_notes.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/connectors/test_attachment_store.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/connectors/test_chunker.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/connectors/test_connector_health.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/connectors/test_connectors_router_oauth.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/connectors/test_dropbox.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/connectors/test_embedding_store.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/connectors/test_gcalendar.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/connectors/test_gcontacts.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/connectors/test_gdrive.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/connectors/test_github_notifications.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/connectors/test_gmail.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/connectors/test_google_tasks.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/connectors/test_granola.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/connectors/test_hackernews.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/connectors/test_imessage.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/connectors/test_incremental_sync.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/connectors/test_integration.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/connectors/test_live_smoke.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/connectors/test_new_connectors_live.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/connectors/test_news_rss.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/connectors/test_notion.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/connectors/test_oauth_flow.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/connectors/test_obsidian.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/connectors/test_oura.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/connectors/test_outlook.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/connectors/test_pipeline.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/connectors/test_pipeline_attachments.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/connectors/test_retriever.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/connectors/test_scheduler.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/connectors/test_slack_connector.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/connectors/test_spotify.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/connectors/test_store.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/connectors/test_strava.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/connectors/test_stubs.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/connectors/test_sync_engine.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/connectors/test_weather.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/connectors/test_whatsapp.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/conversations/__init__.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/conversations/test_racer.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/conversations/test_store.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/core/__init__.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/core/test_config.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/core/test_config_key_validation.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/core/test_config_paths.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/core/test_config_phase3.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/core/test_config_phase4.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/core/test_config_phase5.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/core/test_config_skills_sources.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/core/test_credentials.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/core/test_events.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/core/test_intent_routing.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/core/test_preset_configs.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/core/test_recommend_model.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/core/test_registry.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/core/test_rust_bridge.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/core/test_skills_learning_config.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/core/test_types.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/core/test_utils_soft_fail.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/daemon/__init__.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/daemon/test_gateway.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/daemon/test_session_expiry.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/deploy/__init__.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/deploy/test_deploy_auth.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/deployment/test_docker.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/engine/__init__.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/engine/test_apple_fm_shim.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/engine/test_auto_routing.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/engine/test_cache_breakpoint.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/engine/test_cloud.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/engine/test_cloud_extended.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/engine/test_cloud_minimax.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/engine/test_cloud_stream_full.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/engine/test_discovery.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/engine/test_engine_model_matrix.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/engine/test_engine_wrappers.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/engine/test_gemma_cpp.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/engine/test_lemonade.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/engine/test_litellm.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/engine/test_llamacpp_models.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/engine/test_lmstudio.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/engine/test_mlx.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/engine/test_model_downloader.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/engine/test_offload.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/engine/test_ollama.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/engine/test_ollama_models.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/engine/test_openai_compat.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/engine/test_openai_compat_api_key.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/engine/test_openai_compat_tools.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/engine/test_router.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/engine/test_router_learning.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/engine/test_stream_full.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/engine/test_structured_output.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/engine/test_vllm_models.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/evals/__init__.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/evals/comparison/__init__.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/evals/comparison/test_cli_backend_dispatch.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/evals/comparison/test_export_to_table_gen_roundtrip.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/evals/comparison/test_hermes_backend.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/evals/comparison/test_live_external.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/evals/comparison/test_make_configs.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/evals/comparison/test_openclaw_backend.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/evals/comparison/test_openclaw_runner_contract.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/evals/comparison/test_runner_error_path_framework.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/evals/comparison/test_subprocess_runner.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/evals/comparison/test_table_gen.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/evals/comparison/test_third_party.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/evals/core/__init__.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/evals/core/test_config_split_parsing.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/evals/core/test_config_timeouts.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/evals/core/test_splits.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/evals/datasets/__init__.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/evals/datasets/test_browser_assistant.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/evals/datasets/test_coding_assistant.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/evals/datasets/test_daily_digest.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/evals/datasets/test_doc_qa.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/evals/datasets/test_external_agent_datasets.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/evals/datasets/test_security_scanner.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/evals/scorers/__init__.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/evals/scorers/test_browser_assistant.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/evals/scorers/test_checklist.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/evals/scorers/test_coding_assistant.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/evals/scorers/test_daily_digest.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/evals/scorers/test_doc_qa.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/evals/scorers/test_liveresearch_continuous.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/evals/scorers/test_security_scanner.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/evals/test_agentic_runner.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/evals/test_ama_bench.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/evals/test_benchmark_datasets.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/evals/test_dataset_splits_integration.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/evals/test_deepplanning.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/evals/test_display.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/evals/test_environment_provider.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/evals/test_episode_mode.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/evals/test_eval_telemetry_wiring.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/evals/test_eval_trace.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/evals/test_event_recorder.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/evals/test_export.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/evals/test_lifelong_agent.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/evals/test_loghub.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/evals/test_nova_agent_backend_fields.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/evals/test_nova_agent_backend_skills.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/evals/test_nova_direct_backend_fields.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/evals/test_paperarena.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/evals/test_pinchbench_dataset.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/evals/test_pinchbench_grading.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/evals/test_pinchbench_integration.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/evals/test_pinchbench_transcript.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/evals/test_pricing.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/evals/test_skill_benchmark.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/evals/test_terminalbench_env.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/evals/test_terminalbench_native_backend.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/evals/test_trackers.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/evals/test_use_case_benchmarks.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/fixtures/docs/channels.md +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/fixtures/docs/engines.md +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/fixtures/docs/hardware.md +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/fixtures/docs/memory.md +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/fixtures/docs/pipeline_review_oct2025.md +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/hardware/__init__.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/hardware/test_amd.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/hardware/test_apple.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/hardware/test_hardware_profiles.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/hardware/test_nvidia.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/install/__init__.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/install/bash/stubs/cargo +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/install/bash/stubs/curl +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/install/bash/stubs/git +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/install/bash/stubs/ollama +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/install/bash/stubs/ollama-mock +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/install/bash/stubs/rustup +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/install/bash/stubs/uv +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/install/bash/test_bg_orchestrator.bats +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/install/bash/test_build_extension.bats +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/install/bash/test_install.bats +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/install/bash/test_install_rust.bats +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/install/bash/test_pull_model.bats +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/install/cases/README.md +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/install/cases/missing-git.md +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/install/cases/run-as-root.md +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/install/conftest.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/install/test_bg_state.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/install/test_bootstrap_cli.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/install/test_bootstrap_config.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/install/test_bootstrap_keys.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/install/test_chat_banner.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/install/test_chat_notifications.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/install/test_doctor_bg.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/install/test_first_run.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/install/test_fixture_smoke.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/install/test_init_cloud_detect.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/integration/test_agent_manager_e2e.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/integration/test_integration.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/integration/test_integration_extended.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/integration/test_minimax_cloud.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/intelligence/__init__.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/intelligence/test_model_catalog.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/intelligence/test_model_catalog_extended.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/intelligence/test_router.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/intelligence/test_routing_models.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/learning/__init__.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/learning/agents/__init__.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/learning/agents/test_ace_optimizer.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/learning/agents/test_dspy_optimizer.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/learning/agents/test_gepa_optimizer.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/learning/intelligence/__init__.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/learning/intelligence/test_grpo_trainer.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/learning/intelligence/test_sft_trainer.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/learning/proving/__init__.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/learning/proving/test_adoption.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/learning/proving/test_pipeline.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/learning/proving/test_router_adoption.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/learning/proving/test_store.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/learning/proving/test_watcher.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/learning/routing/__init__.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/learning/routing/test_complexity.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/learning/routing/test_learned_router.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/learning/routing/test_utils.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/learning/spec_search/__init__.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/learning/spec_search/test_applier_base.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/learning/spec_search/test_applier_lora.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/learning/spec_search/test_applier_lora_stub.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/learning/spec_search/test_appliers_agent.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/learning/spec_search/test_appliers_intelligence.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/learning/spec_search/test_appliers_tools.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/learning/spec_search/test_benchmark_gate.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/learning/spec_search/test_checkpoint_store.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/learning/spec_search/test_cold_start.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/learning/spec_search/test_composite_reward.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/learning/spec_search/test_diagnose_tools.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/learning/spec_search/test_diagnose_types.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/learning/spec_search/test_diagnosis_runner.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/learning/spec_search/test_execution_loop.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/learning/spec_search/test_external_adapter.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/learning/spec_search/test_live_integration.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/learning/spec_search/test_models.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/learning/spec_search/test_multi_session.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/learning/spec_search/test_orchestrator.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/learning/spec_search/test_paths.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/learning/spec_search/test_pending_queue.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/learning/spec_search/test_planner.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/learning/spec_search/test_prompt_diff.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/learning/spec_search/test_regression.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/learning/spec_search/test_risk_tier.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/learning/spec_search/test_rollback.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/learning/spec_search/test_session_store.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/learning/spec_search/test_teacher_agent.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/learning/spec_search/test_triggers.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/learning/test_agent_evolver.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/learning/test_device_selection.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/learning/test_feedback_collector.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/learning/test_fleet.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/learning/test_heuristic_policy.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/learning/test_heuristic_reward.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/learning/test_learning_api.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/learning/test_learning_orchestrator.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/learning/test_learning_taxonomy.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/learning/test_llm_optimizer.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/learning/test_multi_bench_runner.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/learning/test_optimize_cmd.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/learning/test_optimize_store.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/learning/test_optimize_types.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/learning/test_optimizer_engine.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/learning/test_orchestrator_skill_optimization.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/learning/test_pareto.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/learning/test_personal_synthesizer.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/learning/test_router.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/learning/test_router_stubs.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/learning/test_routing_models.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/learning/test_search_space.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/learning/test_skill_discovery.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/learning/test_skill_optimizer.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/learning/test_skillforge.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/learning/test_stubs.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/learning/test_system_learning.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/learning/test_trace_judge.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/learning/test_trial_runner.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/learning/training/__init__.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/learning/training/test_data.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/learning/training/test_deploy.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/learning/training/test_dpo.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/learning/training/test_lora.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/learning/training/test_preference_pairs.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/learning/training/test_store.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/learning/training/test_triggers.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/mcp/__init__.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/mcp/test_client.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/mcp/test_client_extended.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/mcp/test_discovery.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/mcp/test_loader.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/mcp/test_mcp_tools_matrix.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/mcp/test_protocol.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/mcp/test_server.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/mcp/test_server_upgrade.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/mcp/test_streamable_http_transport.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/mcp/test_transport.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/memory/__init__.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/memory/test_bm25.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/memory/test_chunking.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/memory/test_colbert.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/memory/test_consolidation_inject.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/memory/test_consolidation_pipeline.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/memory/test_consolidation_store.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/memory/test_context.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/memory/test_embeddings.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/memory/test_faiss.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/memory/test_hybrid.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/memory/test_ingest.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/memory/test_retrieval_quality.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/memory/test_sqlite.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/memory/test_storage_suite.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/memory/test_wiki.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/mining/__init__.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/mining/conftest.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/mining/fixtures/README.md +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/mining/fixtures/config_minimal.toml +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/mining/fixtures/config_pool_v2.toml +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/mining/fixtures/gateway_metrics_sample.txt +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/mining/test_apple_mps_pearl.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/mining/test_cli.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/mining/test_collector.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/mining/test_cpu_pearl.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/mining/test_discovery.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/mining/test_docker.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/mining/test_install.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/mining/test_metrics.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/mining/test_miner_loop.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/mining/test_pearl_subprocess.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/mining/test_stubs.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/mining/test_vllm_pearl.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/operators/__init__.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/operators/test_operator_recipes.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/operators/test_operators.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/pearl/test_model_converter.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/prompt/__init__.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/prompt/test_builder.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/prompt/test_persona_scope.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/prompt/test_system_prompt_builder_few_shot.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/recipes/__init__.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/recipes/test_compose.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/recipes/test_loader.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/sandbox/__init__.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/sandbox/test_mount_security.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/sandbox/test_runner.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/sandbox/test_wasm_runner.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/scheduler/__init__.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/scheduler/test_consolidate_dispatch.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/scheduler/test_digest_schedule.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/scheduler/test_prove_dispatch.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/scheduler/test_scheduler.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/scheduler/test_store.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/scheduler/test_tools.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/scheduler/test_train_dpo_dispatch.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/sdk/__init__.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/sdk/test_sdk.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/sdk/test_system.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/security/__init__.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/security/test_audit.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/security/test_boundary_guard.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/security/test_capabilities.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/security/test_credential_stripper.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/security/test_file_permissions.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/security/test_file_policy.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/security/test_guardrails.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/security/test_injection_scanner.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/security/test_log_sanitization.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/security/test_merkle_audit.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/security/test_network_defaults.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/security/test_rate_limiter.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/security/test_redact_before_cloud.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/security/test_scanner.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/security/test_security_profiles.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/security/test_security_wiring.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/security/test_setup_security.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/security/test_severity_policy.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/security/test_signing.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/security/test_ssrf.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/security/test_subprocess_sandbox.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/security/test_taint.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/security/test_tool_confirmation.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/security/test_webhook_validation.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/server/__init__.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/server/conftest.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/server/test_agent_manager_routes.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/server/test_api_routes.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/server/test_approval_routes.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/server/test_auth_middleware.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/server/test_calendar_router.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/server/test_channel_bridge.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/server/test_channel_bridge_deep_research.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/server/test_channel_routes.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/server/test_clipboard_router.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/server/test_connectors_router.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/server/test_conversation_routes.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/server/test_deep_research_tools_wiring.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/server/test_digest_routes.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/server/test_email_router.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/server/test_history_router.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/server/test_integrations_router.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/server/test_managed_agent_streaming.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/server/test_mcp_tools_cache.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/server/test_middleware.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/server/test_mobile_pair_router.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/server/test_model_compare_router.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/server/test_model_hub_router.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/server/test_model_management.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/server/test_models_pydantic.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/server/test_notification_router.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/server/test_persona_router.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/server/test_pwa_serving.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/server/test_rag_api.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/server/test_recommended_model.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/server/test_routes.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/server/test_savings.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/server/test_sendblue_webhook.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/server/test_session_store.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/server/test_speech_routes.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/server/test_system_telemetry_router.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/server/test_tasks_api.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/server/test_tools_endpoint.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/server/test_webhook_routes.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/server/test_websocket.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/server/test_websocket_auth.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/server/test_ws_bridge.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/sessions/test_compression.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/sessions/test_session.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/sessions/test_wire_channel_history.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/skills/__init__.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/skills/test_bundled_skills.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/skills/test_cli_install.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/skills/test_dependency.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/skills/test_importer.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/skills/test_index.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/skills/test_integration_live.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/skills/test_loader_markdown.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/skills/test_local_importer.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/skills/test_manager.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/skills/test_manager_discover_from_traces.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/skills/test_native_react_few_shot.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/skills/test_overlay.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/skills/test_parser.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/skills/test_security.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/skills/test_skill_tool_metadata_tagging.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/skills/test_skill_trace_tagging_integration.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/skills/test_skills.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/skills/test_sources.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/skills/test_tool_adapter_v2.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/skills/test_tool_translator.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/speech/__init__.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/speech/test_config.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/speech/test_deepgram.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/speech/test_discovery.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/speech/test_faster_whisper.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/speech/test_openai_whisper.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/speech/test_stubs.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/speech/test_tts_backends.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/telemetry/__init__.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/telemetry/energy_test_helpers.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/telemetry/test_aggregator.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/telemetry/test_batch.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/telemetry/test_derived_metrics.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/telemetry/test_efficiency.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/telemetry/test_energy_amd.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/telemetry/test_energy_apple.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/telemetry/test_energy_monitor.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/telemetry/test_energy_nvidia.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/telemetry/test_energy_rapl.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/telemetry/test_energy_wiring.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/telemetry/test_flops_new.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/telemetry/test_gpu_monitor.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/telemetry/test_instrumented_engine.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/telemetry/test_itl_metrics.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/telemetry/test_itl_new.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/telemetry/test_phase_energy.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/telemetry/test_phase_metrics_new.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/telemetry/test_session.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/telemetry/test_steady_state.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/telemetry/test_store.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/telemetry/test_store_tokens_per_joule.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/telemetry/test_vllm_metrics.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/telemetry/test_wrapper.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/templates/__init__.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/templates/test_agent_templates.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/test_digest_integration.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/test_new_tools.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/test_orchestrator_learning/__init__.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/test_orchestrator_learning/test_environment.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/test_orchestrator_learning/test_grpo_trainer.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/test_orchestrator_learning/test_orchestrator_structured.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/test_orchestrator_learning/test_policy_model.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/test_orchestrator_learning/test_prompt_registry.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/test_orchestrator_learning/test_reward.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/test_orchestrator_learning/test_sft_trainer.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/test_orchestrator_learning/test_types.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/test_query_orchestrator.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/test_vision.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/tools/__init__.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/tools/storage/__init__.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/tools/storage/test_dense.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/tools/test_agent_tools.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/tools/test_apply_patch.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/tools/test_audio_tool.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/tools/test_browser.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/tools/test_browser_axtree.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/tools/test_calculator.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/tools/test_canvas_tool.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/tools/test_channel_tools.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/tools/test_cisco_packet_tracer.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/tools/test_cli_bridge.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/tools/test_clipboard_ai.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/tools/test_code_interpreter.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/tools/test_code_interpreter_docker.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/tools/test_db_query.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/tools/test_digest_collect.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/tools/test_doc_generator.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/tools/test_file_read.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/tools/test_file_write.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/tools/test_git_tool.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/tools/test_http_request.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/tools/test_image_tool.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/tools/test_knowledge_graph.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/tools/test_knowledge_search.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/tools/test_knowledge_sql.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/tools/test_llm_tool.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/tools/test_mcp_adapter.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/tools/test_memory_manage.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/tools/test_pdf_tool.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/tools/test_repl.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/tools/test_retrieval.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/tools/test_scan_chunks.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/tools/test_screen_capture.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/tools/test_shell_exec.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/tools/test_skill_manage.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/tools/test_storage_stubs.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/tools/test_storage_tools.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/tools/test_stubs.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/tools/test_template_loader_security.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/tools/test_templates.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/tools/test_text_to_speech.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/tools/test_think.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/tools/test_tool_descriptions.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/tools/test_tool_registration.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/tools/test_tool_timeout.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/tools/test_user_profile_manage.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/tools/test_web_readability.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/tools/test_web_search.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/tools/test_web_search_providers.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/traces/__init__.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/traces/test_analyzer.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/traces/test_analyzer_energy.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/traces/test_collector.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/traces/test_store.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/traces/test_store_fts.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/traces/test_types.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/voice/test_session.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tests/workflow/test_workflow.py +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tools/pearl-reference-oracle/README.md +0 -0
- {nova_ai_pro-1.2.5.dev91 → nova_ai_pro-1.2.5.dev92}/tools/pearl-reference-oracle/smoke_test.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.5
|
|
2
2
|
Name: nova-ai-pro
|
|
3
|
-
Version: 1.2.5.
|
|
3
|
+
Version: 1.2.5.dev92
|
|
4
4
|
Summary: NOVA AI — modular AI assistant backend with composable intelligence primitives
|
|
5
5
|
Project-URL: Homepage, https://github.com/Hamza35779/NOVA-AI
|
|
6
6
|
Project-URL: Documentation, https://hamza35779.github.io/NOVA-AI/
|
|
@@ -0,0 +1,423 @@
|
|
|
1
|
+
<!DOCTYPE html>
|
|
2
|
+
<html>
|
|
3
|
+
<head>
|
|
4
|
+
<meta charset="utf-8">
|
|
5
|
+
<title>NOVA AI Quick Capture</title>
|
|
6
|
+
<style>
|
|
7
|
+
*{margin:0;padding:0;box-sizing:border-box}
|
|
8
|
+
html,body,:root{
|
|
9
|
+
background:rgba(18,18,22,0.98);
|
|
10
|
+
font-family:"Segoe UI Variable Text","Segoe UI",system-ui,sans-serif;
|
|
11
|
+
color:#fff;height:100%;overflow:hidden;
|
|
12
|
+
border-radius:14px;
|
|
13
|
+
}
|
|
14
|
+
#container{
|
|
15
|
+
display:flex;flex-direction:column;
|
|
16
|
+
height:100%;padding:8px 12px;
|
|
17
|
+
}
|
|
18
|
+
#messages{
|
|
19
|
+
flex:1;overflow-y:auto;
|
|
20
|
+
display:flex;flex-direction:column;gap:6px;
|
|
21
|
+
margin-bottom:8px;padding:12px;
|
|
22
|
+
border-radius:14px;
|
|
23
|
+
background:rgba(30,30,34,0.92);
|
|
24
|
+
border:1px solid rgba(255,255,255,0.14);
|
|
25
|
+
}
|
|
26
|
+
#messages:empty{display:none}
|
|
27
|
+
#messages::-webkit-scrollbar{width:6px}
|
|
28
|
+
#messages::-webkit-scrollbar-thumb{background:rgba(255,255,255,0.15);border-radius:3px}
|
|
29
|
+
#messages::-webkit-scrollbar-track{background:transparent}
|
|
30
|
+
.msg{
|
|
31
|
+
padding:8px 12px;border-radius:12px;
|
|
32
|
+
font-size:13px;line-height:1.55;max-width:90%;
|
|
33
|
+
white-space:pre-wrap;word-wrap:break-word;
|
|
34
|
+
-webkit-user-select:text;user-select:text;
|
|
35
|
+
}
|
|
36
|
+
.msg.user{
|
|
37
|
+
align-self:flex-end;
|
|
38
|
+
background:rgba(59,130,246,0.35);
|
|
39
|
+
color:rgba(255,255,255,0.95);
|
|
40
|
+
}
|
|
41
|
+
.msg.assistant{
|
|
42
|
+
align-self:flex-start;
|
|
43
|
+
background:rgba(255,255,255,0.14);
|
|
44
|
+
color:rgba(255,255,255,0.88);
|
|
45
|
+
white-space:normal;
|
|
46
|
+
}
|
|
47
|
+
.msg.assistant > p{margin:0 0 6px 0;white-space:pre-wrap}
|
|
48
|
+
.msg.assistant > p:last-child{margin-bottom:0}
|
|
49
|
+
.msg.assistant h1,.msg.assistant h2,.msg.assistant h3{
|
|
50
|
+
font-size:14px;font-weight:600;margin:6px 0 4px 0;
|
|
51
|
+
}
|
|
52
|
+
.msg.assistant ul,.msg.assistant ol{margin:2px 0 6px 18px;padding:0}
|
|
53
|
+
.msg.assistant li{margin:1px 0}
|
|
54
|
+
.msg.assistant a{color:#93c5fd;text-decoration:underline}
|
|
55
|
+
.msg.assistant code{
|
|
56
|
+
background:rgba(0,0,0,0.35);
|
|
57
|
+
padding:1px 5px;border-radius:4px;
|
|
58
|
+
font-family:Consolas,"Cascadia Mono",monospace;
|
|
59
|
+
font-size:12px;
|
|
60
|
+
}
|
|
61
|
+
.msg.assistant pre{
|
|
62
|
+
background:rgba(0,0,0,0.40);
|
|
63
|
+
padding:8px 10px;border-radius:8px;
|
|
64
|
+
margin:4px 0;overflow-x:auto;
|
|
65
|
+
border:1px solid rgba(255,255,255,0.08);
|
|
66
|
+
}
|
|
67
|
+
.msg.assistant pre code{
|
|
68
|
+
background:transparent;padding:0;border-radius:0;
|
|
69
|
+
font-size:11.5px;line-height:1.4;white-space:pre;
|
|
70
|
+
}
|
|
71
|
+
.msg.assistant strong{font-weight:600;color:#fff}
|
|
72
|
+
.msg.assistant em{font-style:italic}
|
|
73
|
+
.msg.assistant del{opacity:0.6;text-decoration:line-through}
|
|
74
|
+
|
|
75
|
+
/* Streaming caret — pulses at the end of the in-progress bubble */
|
|
76
|
+
.caret{
|
|
77
|
+
display:inline-block;width:6px;height:13px;
|
|
78
|
+
vertical-align:text-bottom;margin-left:2px;
|
|
79
|
+
background:rgba(255,255,255,0.85);
|
|
80
|
+
animation:caret-blink 1s steps(1) infinite;
|
|
81
|
+
}
|
|
82
|
+
@keyframes caret-blink{50%{opacity:0}}
|
|
83
|
+
|
|
84
|
+
/* Thinking dots — shown while waiting for the first token */
|
|
85
|
+
.thinking{
|
|
86
|
+
display:inline-flex;gap:4px;align-items:center;padding:2px 0;
|
|
87
|
+
}
|
|
88
|
+
.thinking span{
|
|
89
|
+
width:6px;height:6px;border-radius:50%;
|
|
90
|
+
background:rgba(255,255,255,0.65);
|
|
91
|
+
animation:thinking-bounce 1.2s ease-in-out infinite;
|
|
92
|
+
}
|
|
93
|
+
.thinking span:nth-child(2){animation-delay:0.15s}
|
|
94
|
+
.thinking span:nth-child(3){animation-delay:0.30s}
|
|
95
|
+
@keyframes thinking-bounce{
|
|
96
|
+
0%,60%,100%{transform:translateY(0);opacity:0.4}
|
|
97
|
+
30%{transform:translateY(-4px);opacity:1}
|
|
98
|
+
}
|
|
99
|
+
#input-bar{
|
|
100
|
+
display:flex;align-items:center;gap:6px;
|
|
101
|
+
border-radius:14px;padding:6px 8px;
|
|
102
|
+
background:rgba(30,30,34,0.92);
|
|
103
|
+
border:1px solid rgba(255,255,255,0.14);
|
|
104
|
+
flex-shrink:0;
|
|
105
|
+
}
|
|
106
|
+
#model-wrap{
|
|
107
|
+
position:relative;flex-shrink:0;
|
|
108
|
+
}
|
|
109
|
+
#model-select{
|
|
110
|
+
background:rgba(255,255,255,0.08);color:rgba(255,255,255,0.6);
|
|
111
|
+
border:none;border-radius:8px;padding:4px 22px 4px 8px;
|
|
112
|
+
font-size:11px;outline:none;cursor:pointer;
|
|
113
|
+
max-width:140px;
|
|
114
|
+
-webkit-appearance:none;appearance:none;
|
|
115
|
+
}
|
|
116
|
+
#model-select:hover{background:rgba(255,255,255,0.14);color:#fff}
|
|
117
|
+
#model-wrap .arrow{
|
|
118
|
+
position:absolute;right:7px;top:50%;transform:translateY(-50%);
|
|
119
|
+
pointer-events:none;color:rgba(255,255,255,0.35);
|
|
120
|
+
}
|
|
121
|
+
#model-select option,#model-select optgroup{
|
|
122
|
+
background:#1e1e1e;color:#eee;
|
|
123
|
+
}
|
|
124
|
+
#input{
|
|
125
|
+
flex:1;background:transparent;border:none;outline:none;
|
|
126
|
+
color:#fff;font-size:14px;padding:6px 10px;
|
|
127
|
+
}
|
|
128
|
+
#input::placeholder{color:rgba(255,255,255,0.35)}
|
|
129
|
+
.btn{
|
|
130
|
+
display:flex;align-items:center;justify-content:center;
|
|
131
|
+
width:30px;height:30px;border-radius:50%;border:none;
|
|
132
|
+
background:rgba(255,255,255,0.10);
|
|
133
|
+
color:rgba(255,255,255,0.6);cursor:pointer;
|
|
134
|
+
transition:background .15s,color .15s;flex-shrink:0;
|
|
135
|
+
}
|
|
136
|
+
.btn:hover{background:rgba(255,255,255,0.20);color:#fff}
|
|
137
|
+
.btn:disabled{opacity:0.25;cursor:default}
|
|
138
|
+
.btn:disabled:hover{background:rgba(255,255,255,0.10)}
|
|
139
|
+
</style>
|
|
140
|
+
</head>
|
|
141
|
+
<body>
|
|
142
|
+
<div id="container">
|
|
143
|
+
<div id="messages"></div>
|
|
144
|
+
<div id="input-bar">
|
|
145
|
+
<button id="new-btn" class="btn" title="New conversation">
|
|
146
|
+
<svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><line x1="12" y1="5" x2="12" y2="19"/><line x1="5" y1="12" x2="19" y2="12"/></svg>
|
|
147
|
+
</button>
|
|
148
|
+
<div id="model-wrap">
|
|
149
|
+
<select id="model-select"><option>loading...</option></select>
|
|
150
|
+
<svg class="arrow" width="10" height="10" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="6 9 12 15 18 9"/></svg>
|
|
151
|
+
</div>
|
|
152
|
+
<input id="input" type="text" placeholder="Ask Nova anything..." autofocus>
|
|
153
|
+
<button id="send-btn" class="btn" disabled title="Send">
|
|
154
|
+
<svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><line x1="12" y1="19" x2="12" y2="5"/><polyline points="5 12 12 5 19 12"/></svg>
|
|
155
|
+
</button>
|
|
156
|
+
</div>
|
|
157
|
+
</div>
|
|
158
|
+
<script>
|
|
159
|
+
// Talk to the Tauri host through the invoke bridge. The window is created
|
|
160
|
+
// with capabilities/default.json's "quick-capture" entry, so these are
|
|
161
|
+
// permitted.
|
|
162
|
+
async function tauriInvoke(cmd, args) {
|
|
163
|
+
try {
|
|
164
|
+
const { invoke } = window.__TAURI_INTERNALS__
|
|
165
|
+
? await import('@tauri-apps/api/core')
|
|
166
|
+
: { invoke: () => Promise.reject(new Error('not-tauri')) };
|
|
167
|
+
return await invoke(cmd, args || {});
|
|
168
|
+
} catch (e) {
|
|
169
|
+
return null;
|
|
170
|
+
}
|
|
171
|
+
}
|
|
172
|
+
|
|
173
|
+
const API_BASE = 'http://127.0.0.1:8000';
|
|
174
|
+
const input = document.getElementById('input');
|
|
175
|
+
const sendBtn = document.getElementById('send-btn');
|
|
176
|
+
const messagesEl = document.getElementById('messages');
|
|
177
|
+
let streaming = false, abort = null, model = 'qwen3.5:4b';
|
|
178
|
+
let convId = '', convTitle = 'Overlay chat', convCreated = Date.now();
|
|
179
|
+
let messages = [];
|
|
180
|
+
|
|
181
|
+
function genId() { return Date.now().toString(36) + Math.random().toString(36).slice(2, 8) }
|
|
182
|
+
|
|
183
|
+
// Restore previous conversation from ~/.nova_ai/overlay-conversation.json
|
|
184
|
+
// (the same file the macOS panel and the main window's 5s import poll use).
|
|
185
|
+
(async () => {
|
|
186
|
+
const raw = await tauriInvoke('get_overlay_conversation');
|
|
187
|
+
try {
|
|
188
|
+
if (raw) {
|
|
189
|
+
const saved = JSON.parse(raw);
|
|
190
|
+
if (saved.id) {
|
|
191
|
+
convId = saved.id; convTitle = saved.title || convTitle;
|
|
192
|
+
convCreated = saved.createdAt || convCreated; messages = saved.messages || [];
|
|
193
|
+
} else if (Array.isArray(saved)) { messages = saved }
|
|
194
|
+
}
|
|
195
|
+
} catch {}
|
|
196
|
+
if (!convId) convId = genId();
|
|
197
|
+
if (messages.length) renderAll();
|
|
198
|
+
})();
|
|
199
|
+
|
|
200
|
+
// Build model dropdown: local (installed) + cloud (keyed)
|
|
201
|
+
const modelSelect = document.getElementById('model-select');
|
|
202
|
+
let cloudModels = [];
|
|
203
|
+
tauriInvoke('get_cloud_models').then((cd) => {
|
|
204
|
+
try { if (cd) cloudModels = JSON.parse(cd) } catch {}
|
|
205
|
+
});
|
|
206
|
+
fetch(API_BASE + '/v1/models').then(r => r.json()).then(d => {
|
|
207
|
+
const local = (Array.isArray(d) ? d : (d.data || d.models || [])).map(m => m.id || m.name).filter(Boolean);
|
|
208
|
+
while (modelSelect.firstChild) modelSelect.removeChild(modelSelect.firstChild);
|
|
209
|
+
if (local.length) {
|
|
210
|
+
const g = document.createElement('optgroup'); g.label = 'Local';
|
|
211
|
+
local.forEach(id => { const o = document.createElement('option'); o.value = id; o.textContent = id; g.appendChild(o) });
|
|
212
|
+
modelSelect.appendChild(g);
|
|
213
|
+
}
|
|
214
|
+
if (cloudModels.length) {
|
|
215
|
+
const g = document.createElement('optgroup'); g.label = 'Cloud';
|
|
216
|
+
cloudModels.forEach(id => { const o = document.createElement('option'); o.value = id; o.textContent = id; g.appendChild(o) });
|
|
217
|
+
modelSelect.appendChild(g);
|
|
218
|
+
}
|
|
219
|
+
// Restore saved model or pick first available
|
|
220
|
+
const saved = messages.length && messages[0].model;
|
|
221
|
+
if (saved && modelSelect.querySelector('option[value="' + CSS.escape(saved) + '"]')) { modelSelect.value = saved }
|
|
222
|
+
model = modelSelect.value || model;
|
|
223
|
+
}).catch(() => {});
|
|
224
|
+
modelSelect.addEventListener('change', () => { model = modelSelect.value });
|
|
225
|
+
|
|
226
|
+
const SEND = '<svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><line x1="12" y1="19" x2="12" y2="5"/><polyline points="5 12 12 5 19 12"/></svg>';
|
|
227
|
+
const STOP = '<svg width="16" height="16" viewBox="0 0 24 24" fill="currentColor"><rect x="6" y="6" width="12" height="12" rx="2"/></svg>';
|
|
228
|
+
|
|
229
|
+
function renderAll() {
|
|
230
|
+
while (messagesEl.firstChild) messagesEl.removeChild(messagesEl.firstChild);
|
|
231
|
+
for (const m of messages) bubble(m.role, m.content);
|
|
232
|
+
scroll();
|
|
233
|
+
}
|
|
234
|
+
function bubble(role, text) {
|
|
235
|
+
const d = document.createElement('div');
|
|
236
|
+
d.className = 'msg ' + (role === 'user' ? 'user' : 'assistant');
|
|
237
|
+
if (role === 'assistant') setHtml(d, md(text || ''));
|
|
238
|
+
else d.textContent = text;
|
|
239
|
+
messagesEl.appendChild(d);
|
|
240
|
+
return d;
|
|
241
|
+
}
|
|
242
|
+
function scroll() { messagesEl.scrollTop = messagesEl.scrollHeight }
|
|
243
|
+
|
|
244
|
+
// Safe HTML injection helper. All incoming LLM/user text is escaped
|
|
245
|
+
// via escHtml() before any markdown transformations, so the string
|
|
246
|
+
// reaching this function only contains tags from our controlled
|
|
247
|
+
// regex replacements.
|
|
248
|
+
function setHtml(el, html) {
|
|
249
|
+
while (el.firstChild) el.removeChild(el.firstChild);
|
|
250
|
+
const range = document.createRange();
|
|
251
|
+
range.selectNodeContents(el);
|
|
252
|
+
el.appendChild(range.createContextualFragment(html));
|
|
253
|
+
}
|
|
254
|
+
|
|
255
|
+
// --- Minimal markdown renderer (inline, no deps) ---
|
|
256
|
+
function escHtml(s) {
|
|
257
|
+
return s.replace(/&/g, '&').replace(/</g, '<').replace(/>/g, '>')
|
|
258
|
+
.replace(/"/g, '"').replace(/'/g, ''');
|
|
259
|
+
}
|
|
260
|
+
function md(src) {
|
|
261
|
+
if (!src) return '';
|
|
262
|
+
const blocks = [], inlines = [];
|
|
263
|
+
src = src.replace(/```(\w*)\n?([\s\S]*?)```/g, (_, lang, code) => {
|
|
264
|
+
blocks.push({ lang, code });
|
|
265
|
+
return '\x00CB' + (blocks.length - 1) + '\x00';
|
|
266
|
+
});
|
|
267
|
+
src = src.replace(/`([^`\n]+)`/g, (_, c) => {
|
|
268
|
+
inlines.push(c);
|
|
269
|
+
return '\x00IC' + (inlines.length - 1) + '\x00';
|
|
270
|
+
});
|
|
271
|
+
src = escHtml(src);
|
|
272
|
+
src = src.replace(/^###\s+(.+)$/gm, '<h3>$1</h3>')
|
|
273
|
+
.replace(/^##\s+(.+)$/gm, '<h2>$1</h2>')
|
|
274
|
+
.replace(/^#\s+(.+)$/gm, '<h1>$1</h1>');
|
|
275
|
+
src = src.replace(/\*\*([^*\n]+)\*\*/g, '<strong>$1</strong>')
|
|
276
|
+
.replace(/__([^_\n]+)__/g, '<strong>$1</strong>')
|
|
277
|
+
.replace(/(^|[^*\w])\*([^*\n]+)\*(?!\*)/g, '$1<em>$2</em>')
|
|
278
|
+
.replace(/(^|[^_\w])_([^_\n]+)_(?!_)/g, '$1<em>$2</em>')
|
|
279
|
+
.replace(/~~([^~\n]+)~~/g, '<del>$1</del>');
|
|
280
|
+
src = src.replace(/\[([^\]\n]+)\]\(([^)\s]+)\)/g, '<a href="$2" target="_blank" rel="noopener">$1</a>');
|
|
281
|
+
src = src.replace(/(?:^[-*]\s+.+(?:\n|$))+/gm, block => {
|
|
282
|
+
const items = block.trim().split('\n')
|
|
283
|
+
.map(l => '<li>' + l.replace(/^[-*]\s+/, '') + '</li>').join('');
|
|
284
|
+
return '<ul>' + items + '</ul>';
|
|
285
|
+
});
|
|
286
|
+
src = src.replace(/(?:^\d+\.\s+.+(?:\n|$))+/gm, block => {
|
|
287
|
+
const items = block.trim().split('\n')
|
|
288
|
+
.map(l => '<li>' + l.replace(/^\d+\.\s+/, '') + '</li>').join('');
|
|
289
|
+
return '<ol>' + items + '</ol>';
|
|
290
|
+
});
|
|
291
|
+
src = src.split(/\n{2,}/).map(chunk => {
|
|
292
|
+
const t = chunk.trim();
|
|
293
|
+
if (!t) return '';
|
|
294
|
+
if (/^<(h\d|ul|ol|pre|blockquote)/.test(t)) return t;
|
|
295
|
+
if (t.startsWith('\x00CB')) return t;
|
|
296
|
+
return '<p>' + t.replace(/\n/g, '<br>') + '</p>';
|
|
297
|
+
}).join('');
|
|
298
|
+
src = src.replace(/\x00IC(\d+)\x00/g, (_, i) => '<code>' + escHtml(inlines[+i]) + '</code>');
|
|
299
|
+
src = src.replace(/\x00CB(\d+)\x00/g, (_, i) => {
|
|
300
|
+
const b = blocks[+i];
|
|
301
|
+
const cls = b.lang ? ' class="lang-' + escHtml(b.lang) + '"' : '';
|
|
302
|
+
return '<pre><code' + cls + '>' + escHtml(b.code) + '</code></pre>';
|
|
303
|
+
});
|
|
304
|
+
return src;
|
|
305
|
+
}
|
|
306
|
+
const THINKING = '<span class="thinking"><span></span><span></span><span></span></span>';
|
|
307
|
+
const CARET = '<span class="caret"></span>';
|
|
308
|
+
const CLOUD_PFX = ['gpt-', 'o1-', 'o3-', 'o4-', 'claude-', 'gemini-', 'openrouter/', 'chatgpt-'];
|
|
309
|
+
function save() {
|
|
310
|
+
const conv = {
|
|
311
|
+
id: convId, title: convTitle, createdAt: convCreated, updatedAt: Date.now(), model,
|
|
312
|
+
messages: messages.map((m, i) => {
|
|
313
|
+
const o = { id: convId + '_' + i, role: m.role, content: m.content, timestamp: m.timestamp || Date.now() };
|
|
314
|
+
if (m.usage) o.usage = m.usage;
|
|
315
|
+
if (m.telemetry) o.telemetry = m.telemetry;
|
|
316
|
+
return o;
|
|
317
|
+
})
|
|
318
|
+
};
|
|
319
|
+
tauriInvoke('save_overlay_conversation', { json: JSON.stringify(conv) });
|
|
320
|
+
}
|
|
321
|
+
|
|
322
|
+
input.addEventListener('input', () => { sendBtn.disabled = !input.value.trim() || streaming });
|
|
323
|
+
input.addEventListener('keydown', e => {
|
|
324
|
+
if (e.key === 'Enter' && !e.shiftKey) { e.preventDefault(); send() }
|
|
325
|
+
});
|
|
326
|
+
document.addEventListener('keydown', e => {
|
|
327
|
+
if (e.key === 'Escape') {
|
|
328
|
+
if (streaming) { abort && abort.abort() }
|
|
329
|
+
else { tauriInvoke('hide_overlay') }
|
|
330
|
+
}
|
|
331
|
+
});
|
|
332
|
+
sendBtn.addEventListener('click', () => { if (streaming) { abort && abort.abort() } else send() });
|
|
333
|
+
document.getElementById('new-btn').addEventListener('click', () => {
|
|
334
|
+
convId = genId(); convTitle = 'Overlay chat'; convCreated = Date.now();
|
|
335
|
+
messages = [];
|
|
336
|
+
while (messagesEl.firstChild) messagesEl.removeChild(messagesEl.firstChild);
|
|
337
|
+
save(); input.focus();
|
|
338
|
+
});
|
|
339
|
+
|
|
340
|
+
async function send() {
|
|
341
|
+
const text = input.value.trim();
|
|
342
|
+
if (!text || streaming) return;
|
|
343
|
+
input.value = ''; sendBtn.disabled = true;
|
|
344
|
+
|
|
345
|
+
messages.push({ role: 'user', content: text, timestamp: Date.now() });
|
|
346
|
+
if (messages.length === 1) convTitle = text.slice(0, 50) + (text.length > 50 ? '...' : '');
|
|
347
|
+
bubble('user', text); scroll(); save();
|
|
348
|
+
|
|
349
|
+
streaming = true; abort = new AbortController();
|
|
350
|
+
setHtml(sendBtn, STOP); sendBtn.disabled = false;
|
|
351
|
+
const b = bubble('assistant', '');
|
|
352
|
+
setHtml(b, THINKING);
|
|
353
|
+
scroll();
|
|
354
|
+
|
|
355
|
+
let acc = '', usage = null, complexity = null, ttft = 0;
|
|
356
|
+
const t0 = Date.now();
|
|
357
|
+
let pending = false;
|
|
358
|
+
const render = () => {
|
|
359
|
+
if (pending) return;
|
|
360
|
+
pending = true;
|
|
361
|
+
requestAnimationFrame(() => {
|
|
362
|
+
pending = false;
|
|
363
|
+
setHtml(b, md(acc) + CARET);
|
|
364
|
+
scroll();
|
|
365
|
+
});
|
|
366
|
+
};
|
|
367
|
+
try {
|
|
368
|
+
const r = await fetch(API_BASE + '/v1/chat/completions', {
|
|
369
|
+
method: 'POST', headers: { 'Content-Type': 'application/json' },
|
|
370
|
+
body: JSON.stringify({ model, messages, stream: true }),
|
|
371
|
+
signal: abort.signal
|
|
372
|
+
});
|
|
373
|
+
if (!r.ok) throw new Error(r.status);
|
|
374
|
+
const reader = r.body.getReader(), dec = new TextDecoder();
|
|
375
|
+
let buf = '';
|
|
376
|
+
for (; ;) {
|
|
377
|
+
const { done, value } = await reader.read();
|
|
378
|
+
if (done) break;
|
|
379
|
+
buf += dec.decode(value, { stream: true });
|
|
380
|
+
const lines = buf.split('\n'); buf = lines.pop() || '';
|
|
381
|
+
for (const ln of lines) {
|
|
382
|
+
if (!ln.startsWith('data: ')) continue;
|
|
383
|
+
const d = ln.slice(6); if (d === '[DONE]') break;
|
|
384
|
+
try {
|
|
385
|
+
const p = JSON.parse(d);
|
|
386
|
+
if (p.usage) usage = p.usage;
|
|
387
|
+
if (p.complexity) complexity = p.complexity;
|
|
388
|
+
const c = p.choices && p.choices[0] && p.choices[0].delta && p.choices[0].delta.content;
|
|
389
|
+
if (c) { if (!ttft) ttft = Date.now() - t0; acc += c; render() }
|
|
390
|
+
} catch {}
|
|
391
|
+
}
|
|
392
|
+
}
|
|
393
|
+
} catch (e) {
|
|
394
|
+
if (e.name !== 'AbortError') {
|
|
395
|
+
acc = 'Could not get a response. Is the backend running?';
|
|
396
|
+
b.textContent = acc;
|
|
397
|
+
}
|
|
398
|
+
} finally {
|
|
399
|
+
streaming = false; abort = null;
|
|
400
|
+
setHtml(sendBtn, SEND); sendBtn.disabled = !input.value.trim();
|
|
401
|
+
input.focus();
|
|
402
|
+
if (acc) setHtml(b, md(acc));
|
|
403
|
+
else if (b.querySelector('.thinking')) b.textContent = '';
|
|
404
|
+
}
|
|
405
|
+
if (acc) {
|
|
406
|
+
const totalMs = Date.now() - t0;
|
|
407
|
+
const engine = CLOUD_PFX.some(p => model.startsWith(p)) ? 'cloud' : 'ollama';
|
|
408
|
+
const telem = {
|
|
409
|
+
engine, model_id: model, total_ms: totalMs, ttft_ms: ttft || undefined,
|
|
410
|
+
tokens_per_sec: usage && usage.completion_tokens ? usage.completion_tokens / (totalMs / 1000) : undefined,
|
|
411
|
+
complexity_score: complexity && complexity.score, complexity_tier: complexity && complexity.tier,
|
|
412
|
+
suggested_max_tokens: complexity && complexity.suggested_max_tokens
|
|
413
|
+
};
|
|
414
|
+
messages.push({ role: 'assistant', content: acc, timestamp: Date.now(), usage: usage || undefined, telemetry: telem });
|
|
415
|
+
save();
|
|
416
|
+
}
|
|
417
|
+
}
|
|
418
|
+
|
|
419
|
+
window.addEventListener('focus', () => input.focus());
|
|
420
|
+
input.focus();
|
|
421
|
+
</script>
|
|
422
|
+
</body>
|
|
423
|
+
</html>
|
|
@@ -0,0 +1,146 @@
|
|
|
1
|
+
import { useState, useEffect, useCallback } from 'react';
|
|
2
|
+
import { Hammer, CheckCircle2, XCircle, ChevronDown, ChevronRight } from 'lucide-react';
|
|
3
|
+
|
|
4
|
+
interface DevWatchRun {
|
|
5
|
+
command: string;
|
|
6
|
+
status: 'pass' | 'fail';
|
|
7
|
+
returncode?: number;
|
|
8
|
+
failure_type?: string | null;
|
|
9
|
+
output?: string;
|
|
10
|
+
suggestion?: string;
|
|
11
|
+
at?: string;
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
function timeAgo(iso?: string): string {
|
|
15
|
+
if (!iso) return '';
|
|
16
|
+
const secs = Math.max(0, Math.floor((Date.now() - new Date(iso).getTime()) / 1000));
|
|
17
|
+
if (secs < 60) return `${secs}s ago`;
|
|
18
|
+
if (secs < 3600) return `${Math.floor(secs / 60)}m ago`;
|
|
19
|
+
if (secs < 86400) return `${Math.floor(secs / 3600)}h ago`;
|
|
20
|
+
return `${Math.floor(secs / 86400)}d ago`;
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
function RunRow({ run }: { run: DevWatchRun }) {
|
|
24
|
+
const [expanded, setExpanded] = useState(false);
|
|
25
|
+
const pass = run.status === 'pass';
|
|
26
|
+
|
|
27
|
+
return (
|
|
28
|
+
<div className="rounded-lg overflow-hidden" style={{ border: '1px solid var(--color-border)' }}>
|
|
29
|
+
<button
|
|
30
|
+
onClick={() => setExpanded(!expanded)}
|
|
31
|
+
className="flex items-center gap-2 w-full px-3 py-2 text-sm transition-colors cursor-pointer"
|
|
32
|
+
style={{ background: 'var(--color-bg-secondary)' }}
|
|
33
|
+
>
|
|
34
|
+
{expanded ? <ChevronDown size={14} /> : <ChevronRight size={14} />}
|
|
35
|
+
{pass ? (
|
|
36
|
+
<CheckCircle2 size={14} style={{ color: 'var(--color-success)' }} />
|
|
37
|
+
) : (
|
|
38
|
+
<XCircle size={14} style={{ color: 'var(--color-danger, var(--color-error, #ef4444))' }} />
|
|
39
|
+
)}
|
|
40
|
+
<span className="font-mono text-xs truncate flex-1 text-left" style={{ color: 'var(--color-text)' }}>
|
|
41
|
+
{run.command}
|
|
42
|
+
</span>
|
|
43
|
+
{run.failure_type && (
|
|
44
|
+
<span
|
|
45
|
+
className="px-1.5 py-0.5 rounded text-[10px] font-medium"
|
|
46
|
+
style={{ background: 'color-mix(in srgb, var(--color-warning) 15%, transparent)', color: 'var(--color-warning)' }}
|
|
47
|
+
>
|
|
48
|
+
{run.failure_type}
|
|
49
|
+
</span>
|
|
50
|
+
)}
|
|
51
|
+
{typeof run.returncode === 'number' && run.returncode !== 0 && (
|
|
52
|
+
<span className="text-[10px] font-mono" style={{ color: 'var(--color-text-tertiary)' }}>
|
|
53
|
+
exit {run.returncode}
|
|
54
|
+
</span>
|
|
55
|
+
)}
|
|
56
|
+
<span className="text-[11px] shrink-0" style={{ color: 'var(--color-text-tertiary)' }}>
|
|
57
|
+
{timeAgo(run.at)}
|
|
58
|
+
</span>
|
|
59
|
+
</button>
|
|
60
|
+
{expanded && (
|
|
61
|
+
<div className="px-3 py-2 text-xs space-y-2" style={{ borderTop: '1px solid var(--color-border)' }}>
|
|
62
|
+
{run.suggestion && (
|
|
63
|
+
<div>
|
|
64
|
+
<div className="hud-label mb-1" style={{ fontSize: 10 }}>Self-healing suggestion</div>
|
|
65
|
+
<pre className="whitespace-pre-wrap font-mono text-[11px] p-2 rounded" style={{ background: 'var(--color-bg-tertiary)', color: 'var(--color-text-secondary)' }}>
|
|
66
|
+
{run.suggestion}
|
|
67
|
+
</pre>
|
|
68
|
+
</div>
|
|
69
|
+
)}
|
|
70
|
+
{run.output && (
|
|
71
|
+
<div>
|
|
72
|
+
<div className="hud-label mb-1" style={{ fontSize: 10 }}>Output (tail)</div>
|
|
73
|
+
<pre className="whitespace-pre-wrap font-mono text-[11px] p-2 rounded max-h-40 overflow-y-auto" style={{ background: 'var(--color-bg-tertiary)', color: 'var(--color-text-secondary)' }}>
|
|
74
|
+
{run.output.slice(-1500)}
|
|
75
|
+
</pre>
|
|
76
|
+
</div>
|
|
77
|
+
)}
|
|
78
|
+
</div>
|
|
79
|
+
)}
|
|
80
|
+
</div>
|
|
81
|
+
);
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
export function DevWatchFeed() {
|
|
85
|
+
const [runs, setRuns] = useState<DevWatchRun[]>([]);
|
|
86
|
+
const [error, setError] = useState<string | null>(null);
|
|
87
|
+
|
|
88
|
+
const fetchRuns = useCallback(async () => {
|
|
89
|
+
try {
|
|
90
|
+
const base = import.meta.env.VITE_API_URL || '';
|
|
91
|
+
const res = await fetch(`${base}/api/devwatch/runs?limit=20`);
|
|
92
|
+
if (!res.ok) throw new Error();
|
|
93
|
+
const data = await res.json();
|
|
94
|
+
setRuns(data.runs || []);
|
|
95
|
+
setError(null);
|
|
96
|
+
} catch {
|
|
97
|
+
setError('Cannot reach dev-watch API — is the server running?');
|
|
98
|
+
}
|
|
99
|
+
}, []);
|
|
100
|
+
|
|
101
|
+
useEffect(() => {
|
|
102
|
+
fetchRuns();
|
|
103
|
+
const timer = setInterval(fetchRuns, 15000);
|
|
104
|
+
return () => clearInterval(timer);
|
|
105
|
+
}, [fetchRuns]);
|
|
106
|
+
|
|
107
|
+
const failCount = runs.filter((r) => r.status === 'fail').length;
|
|
108
|
+
|
|
109
|
+
return (
|
|
110
|
+
<div className="hud-panel p-6">
|
|
111
|
+
<div className="flex items-center justify-between mb-4">
|
|
112
|
+
<h3 className="hud-label flex items-center gap-2">
|
|
113
|
+
<Hammer size={12} style={{ color: 'var(--color-accent)' }} />
|
|
114
|
+
Build Diagnostics (dev-watch)
|
|
115
|
+
</h3>
|
|
116
|
+
{runs.length > 0 && (
|
|
117
|
+
<span className="text-[11px]" style={{ color: 'var(--color-text-tertiary)' }}>
|
|
118
|
+
{runs.length} run{runs.length === 1 ? '' : 's'}
|
|
119
|
+
{failCount > 0 && (
|
|
120
|
+
<span style={{ color: 'var(--color-danger, var(--color-error, #ef4444))' }}>
|
|
121
|
+
{' '}· {failCount} failed
|
|
122
|
+
</span>
|
|
123
|
+
)}
|
|
124
|
+
</span>
|
|
125
|
+
)}
|
|
126
|
+
</div>
|
|
127
|
+
|
|
128
|
+
{error ? (
|
|
129
|
+
<div className="h-32 flex items-center justify-center text-sm" style={{ color: 'var(--color-text-tertiary)' }}>
|
|
130
|
+
<span className="hud-mono">{error}</span>
|
|
131
|
+
</div>
|
|
132
|
+
) : runs.length === 0 ? (
|
|
133
|
+
<div className="h-32 flex flex-col items-center justify-center gap-1 text-sm" style={{ color: 'var(--color-text-tertiary)' }}>
|
|
134
|
+
<span>No dev-watch runs recorded yet.</span>
|
|
135
|
+
<span className="text-xs hud-mono">nova dev-watch -c "pytest -q"</span>
|
|
136
|
+
</div>
|
|
137
|
+
) : (
|
|
138
|
+
<div className="flex flex-col gap-1.5 max-h-80 overflow-y-auto">
|
|
139
|
+
{runs.map((run, i) => (
|
|
140
|
+
<RunRow key={`${run.at}-${i}`} run={run} />
|
|
141
|
+
))}
|
|
142
|
+
</div>
|
|
143
|
+
)}
|
|
144
|
+
</div>
|
|
145
|
+
);
|
|
146
|
+
}
|
|
@@ -2,6 +2,7 @@ import { EnergyDashboard } from '../components/Dashboard/EnergyDashboard';
|
|
|
2
2
|
import { CostComparison } from '../components/Dashboard/CostComparison';
|
|
3
3
|
import { TraceDebugger } from '../components/Dashboard/TraceDebugger';
|
|
4
4
|
import { HardwareGauges } from '../components/Dashboard/HardwareGauges';
|
|
5
|
+
import { DevWatchFeed } from '../components/Dashboard/DevWatchFeed';
|
|
5
6
|
|
|
6
7
|
export function DashboardPage() {
|
|
7
8
|
const now = new Date();
|
|
@@ -37,6 +38,10 @@ export function DashboardPage() {
|
|
|
37
38
|
</div>
|
|
38
39
|
|
|
39
40
|
<TraceDebugger />
|
|
41
|
+
|
|
42
|
+
<div className="mt-4">
|
|
43
|
+
<DevWatchFeed />
|
|
44
|
+
</div>
|
|
40
45
|
</div>
|
|
41
46
|
</div>
|
|
42
47
|
);
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
|
|
2
|
+
|
|
3
|
+
# NOVA AI Desktop builds with the GNU toolchain on this machine — the
|
|
4
|
+
# installed VS BuildTools has no MSVC linker, so the msvc target fails
|
|
5
|
+
# with "link: extra operand" (cargo picks up Git Bash's /usr/bin/link).
|
|
6
|
+
# See rust/crates README / memory note: always build with
|
|
7
|
+
# cargo +1.90-x86_64-pc-windows-gnu or this pinned default target.
|
|
8
|
+
#
|
|
9
|
+
# windres (via embed-resource → tauri-winres) shells its default
|
|
10
|
+
# preprocessor through cmd's popen, which breaks on paths containing
|
|
11
|
+
# spaces ("D:\My Softwares\..."). The wrapper batch uses the 8.3 short
|
|
12
|
+
# path and quoted quoting so preprocessing succeeds. The windres
|
|
13
|
+
# override itself is applied by the build.rs wrapper in this crate.
|
|
14
|
+
[build]
|
|
15
|
+
target = "x86_64-pc-windows-gnu"
|
|
16
|
+
|
|
17
|
+
[target.x86_64-pc-windows-gnu]
|
|
18
|
+
linker = "C:/Users/D E L L/AppData/Local/Microsoft/WinGet/Packages/BrechtSanders.WinLibs.POSIX.UCRT_Microsoft.Winget.Source_8wekyb3d8bbwe/mingw64/bin/gcc.exe"
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
fn main() {
|
|
2
|
+
// windres (via embed-resource → tauri-build) shells its default C
|
|
3
|
+
// preprocessor through cmd's popen, which mangles the project path
|
|
4
|
+
// ("D:\My Softwares\...") at the first space. Point it at a batch
|
|
5
|
+
// wrapper that hardcodes the 8.3 short path of the WinLibs cpp.exe.
|
|
6
|
+
// See .cargo/config.toml and build-tools/cppwrap.bat.
|
|
7
|
+
if std::env::var("CARGO_CFG_TARGET_ENV").as_deref() == Ok("gnu") {
|
|
8
|
+
if let Ok(manifest_dir) = std::env::var("CARGO_MANIFEST_DIR") {
|
|
9
|
+
let wrapper = std::path::Path::new(&manifest_dir).join("build-tools/cppwrap.bat");
|
|
10
|
+
if wrapper.exists() {
|
|
11
|
+
std::env::set_var("RC", wrapper.to_string_lossy().as_ref());
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
tauri_build::build();
|
|
16
|
+
}
|