novacode-cli 1.2.0__tar.gz → 1.2.1__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.
- novacode_cli-1.2.1/PKG-INFO +271 -0
- novacode_cli-1.2.1/README.md +167 -0
- novacode_cli-1.2.1/novacode_cli/_version.py +3 -0
- novacode_cli-1.2.1/novacode_cli/agents/async_agents/general_purpose.py +42 -0
- novacode_cli-1.2.1/novacode_cli/agents/async_context.py +303 -0
- novacode_cli-1.2.1/novacode_cli/agents/caveman.py +352 -0
- novacode_cli-1.2.1/novacode_cli/agents/code_mode.py +774 -0
- novacode_cli-1.2.1/novacode_cli/agents/core_agent.py +2710 -0
- novacode_cli-1.2.1/novacode_cli/agents/handoff.py +166 -0
- novacode_cli-1.2.1/novacode_cli/agents/invocation.py +152 -0
- novacode_cli-1.2.1/novacode_cli/agents/model_budget.py +42 -0
- novacode_cli-1.2.1/novacode_cli/agents/model_retry.py +113 -0
- novacode_cli-1.2.1/novacode_cli/agents/plan_agent/plan_mode_middleware.py +64 -0
- novacode_cli-1.2.1/novacode_cli/agents/ponytail.py +66 -0
- novacode_cli-1.2.1/novacode_cli/agents/prime.py +274 -0
- novacode_cli-1.2.1/novacode_cli/agents/tool_search.py +806 -0
- novacode_cli-1.2.1/novacode_cli/audio/__init__.py +301 -0
- novacode_cli-1.2.1/novacode_cli/audio/downloads.py +273 -0
- novacode_cli-1.2.1/novacode_cli/audio/pipeline.py +391 -0
- novacode_cli-1.2.1/novacode_cli/audio/playback.py +87 -0
- novacode_cli-1.2.1/novacode_cli/audio/providers.py +208 -0
- novacode_cli-1.2.1/novacode_cli/audio/stt_elevenlabs.py +89 -0
- novacode_cli-1.2.1/novacode_cli/audio/stt_parakeet.py +94 -0
- novacode_cli-1.2.1/novacode_cli/audio/summarize.py +92 -0
- novacode_cli-1.2.1/novacode_cli/audio/tts.py +85 -0
- novacode_cli-1.2.1/novacode_cli/cli_args.py +718 -0
- novacode_cli-1.2.1/novacode_cli/commands/browser_use_handler.py +75 -0
- novacode_cli-1.2.1/novacode_cli/commands/chat_handler.py +1357 -0
- novacode_cli-1.2.1/novacode_cli/commands/ci_fix.py +171 -0
- novacode_cli-1.2.1/novacode_cli/commands/handoff_handler.py +68 -0
- novacode_cli-1.2.1/novacode_cli/commands/onboard_handler.py +121 -0
- novacode_cli-1.2.1/novacode_cli/commands/plugin_install_handler.py +38 -0
- novacode_cli-1.2.1/novacode_cli/commands/prime_handler.py +455 -0
- novacode_cli-1.2.1/novacode_cli/commands/session_commands.py +203 -0
- novacode_cli-1.2.1/novacode_cli/commands/voice_handler.py +447 -0
- novacode_cli-1.2.1/novacode_cli/computer/runtime.py +474 -0
- novacode_cli-1.2.1/novacode_cli/computer/windows_qemu.py +211 -0
- novacode_cli-1.2.1/novacode_cli/config/nova_config.py +1283 -0
- novacode_cli-1.2.1/novacode_cli/config/provider_catalog.json +5127 -0
- novacode_cli-1.2.1/novacode_cli/context/snapshot.py +493 -0
- novacode_cli-1.2.1/novacode_cli/core/agent_loop.py +1821 -0
- novacode_cli-1.2.1/novacode_cli/core/subagent_tasks.py +696 -0
- novacode_cli-1.2.1/novacode_cli/council.py +595 -0
- novacode_cli-1.2.1/novacode_cli/council_consensus.py +115 -0
- novacode_cli-1.2.1/novacode_cli/council_decision.py +157 -0
- novacode_cli-1.2.1/novacode_cli/council_web_settings.py +41 -0
- novacode_cli-1.2.1/novacode_cli/council_workspace.py +56 -0
- novacode_cli-1.2.1/novacode_cli/cowork/ui.py +826 -0
- novacode_cli-1.2.1/novacode_cli/entrypoint.py +56 -0
- novacode_cli-1.2.1/novacode_cli/handoff.py +383 -0
- novacode_cli-1.2.1/novacode_cli/headless/runner.py +461 -0
- novacode_cli-1.2.1/novacode_cli/hooks.py +359 -0
- novacode_cli-1.2.1/novacode_cli/main.py +2078 -0
- novacode_cli-1.2.1/novacode_cli/mcp/config.py +406 -0
- novacode_cli-1.2.1/novacode_cli/memory/semantic.py +116 -0
- novacode_cli-1.2.1/novacode_cli/plugins/claude_plugins.py +538 -0
- novacode_cli-1.2.1/novacode_cli/plugins/cli.py +168 -0
- novacode_cli-1.2.1/novacode_cli/plugins/components.py +413 -0
- novacode_cli-1.2.1/novacode_cli/plugins/hooks.py +356 -0
- novacode_cli-1.2.1/novacode_cli/plugins/marketplaces.py +199 -0
- novacode_cli-1.2.1/novacode_cli/plugins/storage.py +70 -0
- novacode_cli-1.2.1/novacode_cli/project_onboard.py +537 -0
- novacode_cli-1.2.1/novacode_cli/prompts/System_Prompt_Nova.jinja +23 -0
- novacode_cli-1.2.1/novacode_cli/prompts/claude_plan_mode.jinja +12 -0
- novacode_cli-1.2.1/novacode_cli/prompts/core_agent_system.jinja +81 -0
- novacode_cli-1.2.1/novacode_cli/prompts/nova_standing_instructions.jinja +26 -0
- novacode_cli-1.2.1/novacode_cli/prompts/onboard_dashboard.jinja +378 -0
- novacode_cli-1.2.1/novacode_cli/prompts/plan_agent.jinja +87 -0
- novacode_cli-1.2.1/novacode_cli/prompts/ponytail/UPSTREAM.json +15 -0
- novacode_cli-1.2.1/novacode_cli/prompts/research_swarm.jinja +130 -0
- novacode_cli-1.2.1/novacode_cli/prompts/subagents/fact_checker.jinja +48 -0
- novacode_cli-1.2.1/novacode_cli/prompts/subagents/financial_analyst.jinja +50 -0
- novacode_cli-1.2.1/novacode_cli/prompts/subagents/literature_reviewer.jinja +52 -0
- novacode_cli-1.2.1/novacode_cli/prompts/subagents/market_analyst.jinja +48 -0
- novacode_cli-1.2.1/novacode_cli/prompts/subagents/research_synthesizer.jinja +57 -0
- novacode_cli-1.2.1/novacode_cli/prompts/subagents/technical_researcher.jinja +56 -0
- novacode_cli-1.2.1/novacode_cli/prompts/subagents/web_researcher.jinja +46 -0
- novacode_cli-1.2.1/novacode_cli/remote/async_task_watcher.py +240 -0
- novacode_cli-1.2.1/novacode_cli/remote/status.py +411 -0
- novacode_cli-1.2.1/novacode_cli/remote/telegram_bridge.py +1118 -0
- novacode_cli-1.2.1/novacode_cli/rooms/bridge.py +86 -0
- novacode_cli-1.2.1/novacode_cli/rooms/cli.py +231 -0
- novacode_cli-1.2.1/novacode_cli/rooms/nova.py +227 -0
- novacode_cli-1.2.1/novacode_cli/rooms/runtime.py +299 -0
- novacode_cli-1.2.1/novacode_cli/rooms/store.py +538 -0
- novacode_cli-1.2.1/novacode_cli/shell/jobs.py +475 -0
- novacode_cli-1.2.1/novacode_cli/shell/middleware.py +1568 -0
- novacode_cli-1.2.1/novacode_cli/skills/builtin/handoff/SKILL.md +15 -0
- novacode_cli-1.2.1/novacode_cli/skills/load.py +248 -0
- novacode_cli-1.2.1/novacode_cli/skills/refreshing_middleware.py +896 -0
- novacode_cli-1.2.1/novacode_cli/skills/retrieval.py +248 -0
- novacode_cli-1.2.1/novacode_cli/skills/runtime.py +118 -0
- novacode_cli-1.2.1/novacode_cli/states/Session.py +847 -0
- novacode_cli-1.2.1/novacode_cli/teams/adapters/inprocess.py +206 -0
- novacode_cli-1.2.1/novacode_cli/teams/bootstrap.py +246 -0
- novacode_cli-1.2.1/novacode_cli/teams/coordinator.py +815 -0
- novacode_cli-1.2.1/novacode_cli/teams/worker.py +251 -0
- novacode_cli-1.2.1/novacode_cli/tools/job_tools.py +143 -0
- novacode_cli-1.2.1/novacode_cli/tools/scraper_tools.py +377 -0
- novacode_cli-1.2.1/novacode_cli/tools/waiter_tools.py +408 -0
- novacode_cli-1.2.1/novacode_cli/tracking/usage_tree.py +677 -0
- novacode_cli-1.2.1/novacode_cli/tui/app.py +19315 -0
- novacode_cli-1.2.1/novacode_cli/tui/caveman_screen.py +185 -0
- novacode_cli-1.2.1/novacode_cli/tui/handoff_screen.py +206 -0
- novacode_cli-1.2.1/novacode_cli/tui/history_tree_screen.py +179 -0
- novacode_cli-1.2.1/novacode_cli/tui/home.py +328 -0
- novacode_cli-1.2.1/novacode_cli/tui/interface_styles.tcss +327 -0
- novacode_cli-1.2.1/novacode_cli/tui/pickers.py +237 -0
- novacode_cli-1.2.1/novacode_cli/tui/reference_screens.py +444 -0
- novacode_cli-1.2.1/novacode_cli/tui/rooms.py +597 -0
- novacode_cli-1.2.1/novacode_cli/tui/screens.py +7088 -0
- novacode_cli-1.2.1/novacode_cli/tui/session_pane.py +242 -0
- novacode_cli-1.2.1/novacode_cli/tui/teammates.py +548 -0
- novacode_cli-1.2.1/novacode_cli/tui/voice_downloads.py +113 -0
- novacode_cli-1.2.1/novacode_cli/tui/widgets.py +2038 -0
- novacode_cli-1.2.1/novacode_cli/ui/council_web.py +113 -0
- novacode_cli-1.2.1/novacode_cli/ui/council_workspace.py +72 -0
- novacode_cli-1.2.1/novacode_cli/ui/cowork_web.py +41 -0
- novacode_cli-1.2.1/novacode_cli/ui/hitl_approval.py +196 -0
- novacode_cli-1.2.1/novacode_cli/ui/web_workspace.py +244 -0
- novacode_cli-1.2.1/novacode_cli/ui_events.py +299 -0
- novacode_cli-1.2.1/novacode_cli.egg-info/PKG-INFO +271 -0
- novacode_cli-1.2.1/pyproject.toml +320 -0
- novacode_cli-1.2.1/setup.cfg +4 -0
- novacode_cli-1.2.1/tests/test_async_model_context.py +559 -0
- novacode_cli-1.2.1/tests/test_async_task_watcher.py +191 -0
- novacode_cli-1.2.1/tests/test_caveman.py +346 -0
- novacode_cli-1.2.1/tests/test_caveman_features.py +450 -0
- novacode_cli-1.2.1/tests/test_chat_handler.py +757 -0
- novacode_cli-1.2.1/tests/test_ci_fix.py +124 -0
- novacode_cli-1.2.1/tests/test_compression_modes.py +238 -0
- novacode_cli-1.2.1/tests/test_computer.py +602 -0
- novacode_cli-1.2.1/tests/test_council_settings.py +306 -0
- novacode_cli-1.2.1/tests/test_council_workspace.py +40 -0
- novacode_cli-1.2.1/tests/test_discord_session_threads.py +460 -0
- novacode_cli-1.2.1/tests/test_file_tracker.py +113 -0
- novacode_cli-1.2.1/tests/test_handoff.py +419 -0
- novacode_cli-1.2.1/tests/test_handoff_skill_and_delete.py +251 -0
- novacode_cli-1.2.1/tests/test_handoff_ui.py +197 -0
- novacode_cli-1.2.1/tests/test_interface_styles.py +95 -0
- novacode_cli-1.2.1/tests/test_knowledge_cache.py +462 -0
- novacode_cli-1.2.1/tests/test_lite_mode.py +148 -0
- novacode_cli-1.2.1/tests/test_memory_prompt_cache_order.py +303 -0
- novacode_cli-1.2.1/tests/test_model_retry_progress.py +151 -0
- novacode_cli-1.2.1/tests/test_passing_fixes.py +259 -0
- novacode_cli-1.2.1/tests/test_plugin_compatibility.py +1030 -0
- novacode_cli-1.2.1/tests/test_prime.py +393 -0
- novacode_cli-1.2.1/tests/test_prime_ui.py +286 -0
- novacode_cli-1.2.1/tests/test_project_onboard.py +330 -0
- novacode_cli-1.2.1/tests/test_project_rooms.py +868 -0
- novacode_cli-1.2.1/tests/test_provider_caching.py +299 -0
- novacode_cli-1.2.1/tests/test_release_version.py +50 -0
- novacode_cli-1.2.1/tests/test_remote_approval_transport.py +377 -0
- novacode_cli-1.2.1/tests/test_remote_approval_tui.py +382 -0
- novacode_cli-1.2.1/tests/test_remote_status.py +298 -0
- novacode_cli-1.2.1/tests/test_semantic_cache.py +116 -0
- novacode_cli-1.2.1/tests/test_session_edges.py +228 -0
- novacode_cli-1.2.1/tests/test_shared_embeddings.py +264 -0
- novacode_cli-1.2.1/tests/test_skill_retrieval.py +235 -0
- novacode_cli-1.2.1/tests/test_skill_selection.py +311 -0
- novacode_cli-1.2.1/tests/test_skills_runtime.py +429 -0
- novacode_cli-1.2.1/tests/test_subagent_resilience.py +282 -0
- novacode_cli-1.2.1/tests/test_team_inprocess.py +422 -0
- novacode_cli-1.2.1/tests/test_team_process.py +217 -0
- novacode_cli-1.2.1/tests/test_teammate_updates.py +199 -0
- novacode_cli-1.2.1/tests/test_teammates.py +717 -0
- novacode_cli-1.2.1/tests/test_teammates_ui.py +396 -0
- novacode_cli-1.2.1/tests/test_telegram_session_topics.py +497 -0
- novacode_cli-1.2.1/tests/test_tool_search.py +460 -0
- novacode_cli-1.2.1/tests/test_tool_search_safety.py +359 -0
- novacode_cli-1.2.1/tests/test_tool_search_variants.py +117 -0
- novacode_cli-1.2.1/tests/test_tool_verdicts.py +829 -0
- novacode_cli-1.2.1/tests/test_tui_app.py +5731 -0
- novacode_cli-1.2.1/tests/test_tui_classic_design.py +206 -0
- novacode_cli-1.2.1/tests/test_tui_home_preferences.py +506 -0
- novacode_cli-1.2.1/tests/test_tui_subagent_panel.py +333 -0
- novacode_cli-1.2.1/tests/test_tui_terminal_title.py +93 -0
- novacode_cli-1.2.1/tests/test_tui_voice_downloads.py +192 -0
- novacode_cli-1.2.1/tests/test_tui_voice_output.py +82 -0
- novacode_cli-1.2.1/tests/test_voice_catalog.py +106 -0
- novacode_cli-1.2.1/tests/test_web_workspace_browser.py +435 -0
- novacode_cli-1.2.1/tests/test_windows_qemu.py +373 -0
- novacode_cli-1.2.0/PKG-INFO +0 -271
- novacode_cli-1.2.0/README.md +0 -167
- novacode_cli-1.2.0/novacode_cli/_version.py +0 -3
- novacode_cli-1.2.0/novacode_cli/agents/async_agents/general_purpose.py +0 -42
- novacode_cli-1.2.0/novacode_cli/agents/async_context.py +0 -303
- novacode_cli-1.2.0/novacode_cli/agents/caveman.py +0 -352
- novacode_cli-1.2.0/novacode_cli/agents/code_mode.py +0 -774
- novacode_cli-1.2.0/novacode_cli/agents/core_agent.py +0 -2710
- novacode_cli-1.2.0/novacode_cli/agents/handoff.py +0 -166
- novacode_cli-1.2.0/novacode_cli/agents/invocation.py +0 -152
- novacode_cli-1.2.0/novacode_cli/agents/model_budget.py +0 -42
- novacode_cli-1.2.0/novacode_cli/agents/model_retry.py +0 -113
- novacode_cli-1.2.0/novacode_cli/agents/plan_agent/plan_mode_middleware.py +0 -64
- novacode_cli-1.2.0/novacode_cli/agents/ponytail.py +0 -66
- novacode_cli-1.2.0/novacode_cli/agents/prime.py +0 -274
- novacode_cli-1.2.0/novacode_cli/agents/tool_search.py +0 -806
- novacode_cli-1.2.0/novacode_cli/audio/__init__.py +0 -301
- novacode_cli-1.2.0/novacode_cli/audio/downloads.py +0 -273
- novacode_cli-1.2.0/novacode_cli/audio/pipeline.py +0 -391
- novacode_cli-1.2.0/novacode_cli/audio/playback.py +0 -87
- novacode_cli-1.2.0/novacode_cli/audio/providers.py +0 -208
- novacode_cli-1.2.0/novacode_cli/audio/stt_elevenlabs.py +0 -89
- novacode_cli-1.2.0/novacode_cli/audio/stt_parakeet.py +0 -94
- novacode_cli-1.2.0/novacode_cli/audio/summarize.py +0 -92
- novacode_cli-1.2.0/novacode_cli/audio/tts.py +0 -85
- novacode_cli-1.2.0/novacode_cli/cli_args.py +0 -718
- novacode_cli-1.2.0/novacode_cli/commands/browser_use_handler.py +0 -75
- novacode_cli-1.2.0/novacode_cli/commands/chat_handler.py +0 -1357
- novacode_cli-1.2.0/novacode_cli/commands/ci_fix.py +0 -171
- novacode_cli-1.2.0/novacode_cli/commands/handoff_handler.py +0 -68
- novacode_cli-1.2.0/novacode_cli/commands/onboard_handler.py +0 -121
- novacode_cli-1.2.0/novacode_cli/commands/plugin_install_handler.py +0 -38
- novacode_cli-1.2.0/novacode_cli/commands/prime_handler.py +0 -455
- novacode_cli-1.2.0/novacode_cli/commands/session_commands.py +0 -203
- novacode_cli-1.2.0/novacode_cli/commands/voice_handler.py +0 -447
- novacode_cli-1.2.0/novacode_cli/computer/runtime.py +0 -474
- novacode_cli-1.2.0/novacode_cli/computer/windows_qemu.py +0 -211
- novacode_cli-1.2.0/novacode_cli/config/nova_config.py +0 -1283
- novacode_cli-1.2.0/novacode_cli/config/provider_catalog.json +0 -5127
- novacode_cli-1.2.0/novacode_cli/context/snapshot.py +0 -493
- novacode_cli-1.2.0/novacode_cli/core/agent_loop.py +0 -1821
- novacode_cli-1.2.0/novacode_cli/core/subagent_tasks.py +0 -696
- novacode_cli-1.2.0/novacode_cli/council.py +0 -595
- novacode_cli-1.2.0/novacode_cli/council_consensus.py +0 -115
- novacode_cli-1.2.0/novacode_cli/council_decision.py +0 -157
- novacode_cli-1.2.0/novacode_cli/council_web_settings.py +0 -41
- novacode_cli-1.2.0/novacode_cli/council_workspace.py +0 -56
- novacode_cli-1.2.0/novacode_cli/cowork/ui.py +0 -826
- novacode_cli-1.2.0/novacode_cli/entrypoint.py +0 -56
- novacode_cli-1.2.0/novacode_cli/handoff.py +0 -383
- novacode_cli-1.2.0/novacode_cli/headless/runner.py +0 -461
- novacode_cli-1.2.0/novacode_cli/hooks.py +0 -359
- novacode_cli-1.2.0/novacode_cli/main.py +0 -2078
- novacode_cli-1.2.0/novacode_cli/mcp/config.py +0 -406
- novacode_cli-1.2.0/novacode_cli/memory/semantic.py +0 -116
- novacode_cli-1.2.0/novacode_cli/plugins/claude_plugins.py +0 -538
- novacode_cli-1.2.0/novacode_cli/plugins/cli.py +0 -168
- novacode_cli-1.2.0/novacode_cli/plugins/components.py +0 -413
- novacode_cli-1.2.0/novacode_cli/plugins/hooks.py +0 -356
- novacode_cli-1.2.0/novacode_cli/plugins/marketplaces.py +0 -199
- novacode_cli-1.2.0/novacode_cli/plugins/storage.py +0 -70
- novacode_cli-1.2.0/novacode_cli/project_onboard.py +0 -537
- novacode_cli-1.2.0/novacode_cli/prompts/System_Prompt_Nova.jinja +0 -23
- novacode_cli-1.2.0/novacode_cli/prompts/claude_plan_mode.jinja +0 -12
- novacode_cli-1.2.0/novacode_cli/prompts/core_agent_system.jinja +0 -81
- novacode_cli-1.2.0/novacode_cli/prompts/nova_standing_instructions.jinja +0 -26
- novacode_cli-1.2.0/novacode_cli/prompts/onboard_dashboard.jinja +0 -378
- novacode_cli-1.2.0/novacode_cli/prompts/plan_agent.jinja +0 -87
- novacode_cli-1.2.0/novacode_cli/prompts/ponytail/UPSTREAM.json +0 -15
- novacode_cli-1.2.0/novacode_cli/prompts/research_swarm.jinja +0 -130
- novacode_cli-1.2.0/novacode_cli/prompts/subagents/fact_checker.jinja +0 -48
- novacode_cli-1.2.0/novacode_cli/prompts/subagents/financial_analyst.jinja +0 -50
- novacode_cli-1.2.0/novacode_cli/prompts/subagents/literature_reviewer.jinja +0 -52
- novacode_cli-1.2.0/novacode_cli/prompts/subagents/market_analyst.jinja +0 -48
- novacode_cli-1.2.0/novacode_cli/prompts/subagents/research_synthesizer.jinja +0 -57
- novacode_cli-1.2.0/novacode_cli/prompts/subagents/technical_researcher.jinja +0 -56
- novacode_cli-1.2.0/novacode_cli/prompts/subagents/web_researcher.jinja +0 -46
- novacode_cli-1.2.0/novacode_cli/remote/async_task_watcher.py +0 -240
- novacode_cli-1.2.0/novacode_cli/remote/status.py +0 -411
- novacode_cli-1.2.0/novacode_cli/remote/telegram_bridge.py +0 -1118
- novacode_cli-1.2.0/novacode_cli/rooms/bridge.py +0 -86
- novacode_cli-1.2.0/novacode_cli/rooms/cli.py +0 -231
- novacode_cli-1.2.0/novacode_cli/rooms/nova.py +0 -227
- novacode_cli-1.2.0/novacode_cli/rooms/runtime.py +0 -299
- novacode_cli-1.2.0/novacode_cli/rooms/store.py +0 -538
- novacode_cli-1.2.0/novacode_cli/shell/jobs.py +0 -475
- novacode_cli-1.2.0/novacode_cli/shell/middleware.py +0 -1568
- novacode_cli-1.2.0/novacode_cli/skills/builtin/handoff/SKILL.md +0 -15
- novacode_cli-1.2.0/novacode_cli/skills/load.py +0 -248
- novacode_cli-1.2.0/novacode_cli/skills/refreshing_middleware.py +0 -896
- novacode_cli-1.2.0/novacode_cli/skills/retrieval.py +0 -248
- novacode_cli-1.2.0/novacode_cli/skills/runtime.py +0 -118
- novacode_cli-1.2.0/novacode_cli/states/Session.py +0 -847
- novacode_cli-1.2.0/novacode_cli/teams/adapters/inprocess.py +0 -206
- novacode_cli-1.2.0/novacode_cli/teams/bootstrap.py +0 -246
- novacode_cli-1.2.0/novacode_cli/teams/coordinator.py +0 -815
- novacode_cli-1.2.0/novacode_cli/teams/worker.py +0 -251
- novacode_cli-1.2.0/novacode_cli/tools/job_tools.py +0 -143
- novacode_cli-1.2.0/novacode_cli/tools/scraper_tools.py +0 -377
- novacode_cli-1.2.0/novacode_cli/tools/waiter_tools.py +0 -408
- novacode_cli-1.2.0/novacode_cli/tracking/usage_tree.py +0 -677
- novacode_cli-1.2.0/novacode_cli/tui/app.py +0 -19315
- novacode_cli-1.2.0/novacode_cli/tui/caveman_screen.py +0 -185
- novacode_cli-1.2.0/novacode_cli/tui/handoff_screen.py +0 -206
- novacode_cli-1.2.0/novacode_cli/tui/history_tree_screen.py +0 -179
- novacode_cli-1.2.0/novacode_cli/tui/home.py +0 -328
- novacode_cli-1.2.0/novacode_cli/tui/interface_styles.tcss +0 -327
- novacode_cli-1.2.0/novacode_cli/tui/pickers.py +0 -237
- novacode_cli-1.2.0/novacode_cli/tui/reference_screens.py +0 -444
- novacode_cli-1.2.0/novacode_cli/tui/rooms.py +0 -597
- novacode_cli-1.2.0/novacode_cli/tui/screens.py +0 -7088
- novacode_cli-1.2.0/novacode_cli/tui/session_pane.py +0 -242
- novacode_cli-1.2.0/novacode_cli/tui/teammates.py +0 -548
- novacode_cli-1.2.0/novacode_cli/tui/voice_downloads.py +0 -113
- novacode_cli-1.2.0/novacode_cli/tui/widgets.py +0 -2038
- novacode_cli-1.2.0/novacode_cli/ui/council_web.py +0 -113
- novacode_cli-1.2.0/novacode_cli/ui/council_workspace.py +0 -72
- novacode_cli-1.2.0/novacode_cli/ui/cowork_web.py +0 -41
- novacode_cli-1.2.0/novacode_cli/ui/hitl_approval.py +0 -196
- novacode_cli-1.2.0/novacode_cli/ui/web_workspace.py +0 -244
- novacode_cli-1.2.0/novacode_cli/ui_events.py +0 -299
- novacode_cli-1.2.0/novacode_cli.egg-info/PKG-INFO +0 -271
- novacode_cli-1.2.0/pyproject.toml +0 -320
- novacode_cli-1.2.0/setup.cfg +0 -4
- novacode_cli-1.2.0/tests/test_async_model_context.py +0 -559
- novacode_cli-1.2.0/tests/test_async_task_watcher.py +0 -191
- novacode_cli-1.2.0/tests/test_caveman.py +0 -346
- novacode_cli-1.2.0/tests/test_caveman_features.py +0 -450
- novacode_cli-1.2.0/tests/test_chat_handler.py +0 -757
- novacode_cli-1.2.0/tests/test_ci_fix.py +0 -124
- novacode_cli-1.2.0/tests/test_compression_modes.py +0 -238
- novacode_cli-1.2.0/tests/test_computer.py +0 -602
- novacode_cli-1.2.0/tests/test_council_settings.py +0 -306
- novacode_cli-1.2.0/tests/test_council_workspace.py +0 -40
- novacode_cli-1.2.0/tests/test_discord_session_threads.py +0 -460
- novacode_cli-1.2.0/tests/test_file_tracker.py +0 -113
- novacode_cli-1.2.0/tests/test_handoff.py +0 -419
- novacode_cli-1.2.0/tests/test_handoff_skill_and_delete.py +0 -251
- novacode_cli-1.2.0/tests/test_handoff_ui.py +0 -197
- novacode_cli-1.2.0/tests/test_interface_styles.py +0 -95
- novacode_cli-1.2.0/tests/test_knowledge_cache.py +0 -462
- novacode_cli-1.2.0/tests/test_lite_mode.py +0 -148
- novacode_cli-1.2.0/tests/test_memory_prompt_cache_order.py +0 -303
- novacode_cli-1.2.0/tests/test_model_retry_progress.py +0 -151
- novacode_cli-1.2.0/tests/test_passing_fixes.py +0 -259
- novacode_cli-1.2.0/tests/test_plugin_compatibility.py +0 -1030
- novacode_cli-1.2.0/tests/test_prime.py +0 -393
- novacode_cli-1.2.0/tests/test_prime_ui.py +0 -286
- novacode_cli-1.2.0/tests/test_project_onboard.py +0 -330
- novacode_cli-1.2.0/tests/test_project_rooms.py +0 -868
- novacode_cli-1.2.0/tests/test_provider_caching.py +0 -299
- novacode_cli-1.2.0/tests/test_release_version.py +0 -50
- novacode_cli-1.2.0/tests/test_remote_approval_transport.py +0 -377
- novacode_cli-1.2.0/tests/test_remote_approval_tui.py +0 -382
- novacode_cli-1.2.0/tests/test_remote_status.py +0 -298
- novacode_cli-1.2.0/tests/test_semantic_cache.py +0 -116
- novacode_cli-1.2.0/tests/test_session_edges.py +0 -228
- novacode_cli-1.2.0/tests/test_shared_embeddings.py +0 -264
- novacode_cli-1.2.0/tests/test_skill_retrieval.py +0 -235
- novacode_cli-1.2.0/tests/test_skill_selection.py +0 -311
- novacode_cli-1.2.0/tests/test_skills_runtime.py +0 -429
- novacode_cli-1.2.0/tests/test_subagent_resilience.py +0 -282
- novacode_cli-1.2.0/tests/test_team_inprocess.py +0 -422
- novacode_cli-1.2.0/tests/test_team_process.py +0 -217
- novacode_cli-1.2.0/tests/test_teammate_updates.py +0 -199
- novacode_cli-1.2.0/tests/test_teammates.py +0 -717
- novacode_cli-1.2.0/tests/test_teammates_ui.py +0 -396
- novacode_cli-1.2.0/tests/test_telegram_session_topics.py +0 -497
- novacode_cli-1.2.0/tests/test_tool_search.py +0 -460
- novacode_cli-1.2.0/tests/test_tool_search_safety.py +0 -359
- novacode_cli-1.2.0/tests/test_tool_search_variants.py +0 -117
- novacode_cli-1.2.0/tests/test_tool_verdicts.py +0 -829
- novacode_cli-1.2.0/tests/test_tui_app.py +0 -5731
- novacode_cli-1.2.0/tests/test_tui_classic_design.py +0 -206
- novacode_cli-1.2.0/tests/test_tui_home_preferences.py +0 -506
- novacode_cli-1.2.0/tests/test_tui_subagent_panel.py +0 -333
- novacode_cli-1.2.0/tests/test_tui_terminal_title.py +0 -93
- novacode_cli-1.2.0/tests/test_tui_voice_downloads.py +0 -192
- novacode_cli-1.2.0/tests/test_tui_voice_output.py +0 -82
- novacode_cli-1.2.0/tests/test_voice_catalog.py +0 -106
- novacode_cli-1.2.0/tests/test_web_workspace_browser.py +0 -435
- novacode_cli-1.2.0/tests/test_windows_qemu.py +0 -373
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/LICENSE +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/__init__.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/__main__.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/_lazy_heavy.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/agent_stream.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/agents/agent_file.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/agents/agent_mailbox.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/agents/approval_decisions.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/agents/arg_repair.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/agents/async_agents/__init__.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/agents/async_agents/_config.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/agents/async_agents/_mcp_tools.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/agents/async_agents/_specialist.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/agents/async_agents/_test_commands.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/agents/async_agents/_tools.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/agents/async_agents/langgraph.json +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/agents/async_agents/research.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/agents/async_on_demand.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/agents/async_task_errors.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/agents/async_workspace.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/agents/attribution.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/agents/browser_mode.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/agents/btw_agent.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/agents/caveman_support.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/agents/code_runtime.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/agents/context_compaction.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/agents/default_subagents/__init__.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/agents/default_subagents/async_subagents.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/agents/default_subagents/builtin/browser-automation-agent.md +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/agents/default_subagents/builtin/bug-fix-agent.md +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/agents/default_subagents/builtin/bug-investigation-agent.md +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/agents/default_subagents/builtin/code-explorer.md +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/agents/default_subagents/builtin/code-review-agent.md +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/agents/default_subagents/builtin/dependency-audit-agent.md +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/agents/default_subagents/builtin/documentation-update-agent.md +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/agents/default_subagents/builtin/performance-audit-agent.md +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/agents/default_subagents/builtin/plan-scout-agent.md +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/agents/default_subagents/builtin/refactoring-agent.md +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/agents/default_subagents/builtin/refactoring-specialist-agent.md +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/agents/default_subagents/builtin/security-audit-agent.md +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/agents/default_subagents/builtin/test-generation-agent.md +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/agents/default_subagents/builtin/test-runner-agent.md +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/agents/default_subagents/prompt.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/agents/default_subagents/subagents.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/agents/dream_agent.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/agents/edit_diagnostics.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/agents/edit_fallback.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/agents/model_router.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/agents/openai_decisions.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/agents/plan_agent/__init__.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/agents/plan_agent/plan_agent.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/agents/plan_execution.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/agents/provider_caching.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/agents/server_launcher.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/agents/strict_tools.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/agents/task_discipline.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/agents/tool_call_repair.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/agents/tool_offload.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/agents/tool_search_variants.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/agents/tool_verdicts.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/agents/user_async_agents.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/artifacts/__init__.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/artifacts/registry.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/artifacts/server.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/assets/Nova.png +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/assets/nova-avatar.png +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/audio/capture.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/audio/speakable.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/audio/stt.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/audio/stt_deepgram.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/audio/stt_whistle.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/audio/tts_kokoro.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/audio/tts_orpheus.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/audio/tts_pocket.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/audio/tts_sano.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/audio/vad.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/backends/__init__.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/backends/filesystem.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/backends/native_search.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/bootstrap/__init__.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/bootstrap/env_snapshot.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/bootstrap/steering.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/bootstrap/vision_router.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/brand.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/commands/__init__.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/commands/agents_commands.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/commands/auth_handler.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/commands/cache_handler.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/commands/claude_plan.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/commands/codex_plan.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/commands/commands.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/commands/create_handler.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/commands/create_server.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/commands/cron_handler.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/commands/dream_handler.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/commands/effort_handler.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/commands/evolution_handler.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/commands/file_commands.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/commands/hooks_handler.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/commands/init_handler.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/commands/learning_handler.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/commands/lite_mode_handler.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/commands/log_commands.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/commands/mcp_handler.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/commands/model_handler.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/commands/notifications_handler.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/commands/plan_handler.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/commands/planner_usage.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/commands/plugins_handler.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/commands/prompt_handler.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/commands/provider_usage.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/commands/ralph_events.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/commands/ralph_handler.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/commands/refine_handler.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/commands/research_handler.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/commands/rootapp_remote.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/commands/router_handler.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/commands/server_commands.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/commands/share_handler.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/commands/side_commands.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/commands/skill_invoke.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/commands/skills_commands.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/commands/trace_handler.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/commands/trello_handler.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/commands/trello_remote.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/commands/trello_server.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/commands/vision_handler.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/commands/webhook_handler.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/commands/wiki_commands.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/compaction.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/computation_cache.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/computer/__init__.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/computer/persistent.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/computer/preview.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/computer/windows_console.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/config/browser_mode.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/config/catalog_models.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/config/config.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/config/credentials.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/config/google_oauth_auth.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/config/model_capabilities.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/config/model_catalog.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/config/model_create.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/config/model_manager.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/config/openai_chatgpt_auth.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/config/opencode_gateway.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/config/plan_mode.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/config/provider_auth.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/config/provider_registry.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/config/provider_transports.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/config/role_models.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/context/__init__.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/context/_analysis.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/context/_budget.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/context/_conversation.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/context/_dynamic.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/context/_model_config.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/context/_models_dev.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/context/archives.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/context/estimates.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/context/history.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/context/knowledge_cache.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/context/manager.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/context/observations.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/context/pressure.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/context/provider_accounting.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/context/strategies.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/context/task_progress.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/core/__init__.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/core/autonomous_loop.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/core/code_approvals.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/core/input_preparation.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/core/reasoning.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/core/streaming.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/core/subagent_tracking.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/core/tool_results.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/core/verification_loop.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/council_planner.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/council_settings.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/cowork/__init__.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/cowork/broker_middleware.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/cowork/launcher.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/cowork/policy.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/daemons/__init__.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/daemons/registry.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/desktop_notifications.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/doctor.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/embeddings.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/errors/__init__.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/errors/handlers.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/errors/provider_errors.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/errors/taxonomy.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/events.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/file_ops.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/git_safety.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/headless/__init__.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/headless/input.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/headless/output.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/headless/pipe.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/hermes/__init__.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/hermes/activation.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/hermes/config.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/hermes/curator.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/hermes/evolution.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/hermes/ledger.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/hermes/memory_tiers.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/hermes/middleware.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/hermes/overview.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/hermes/prompt_evolution.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/hermes/refine_loop.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/hermes/refinement_log.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/hermes/review.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/hermes/skill_debate.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/hermes/skill_discovery.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/hermes/skill_manager.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/hermes/skill_proposals.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/hermes/test_gaming.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/hermes/tracker.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/hermes/tuner.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/hermes/verification_memory.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/hermes/verifier.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/hitl/__init__.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/hitl/interrupts.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/image_utils.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/init/__init__.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/init/events.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/input_utils.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/install_commands.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/integrations/__init__.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/integrations/daytona.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/integrations/docker.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/integrations/host_path.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/integrations/langsmith.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/integrations/modal.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/integrations/runloop.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/integrations/sandbox_factory.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/integrations/sandbox_registry.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/integrations/workdir_backend.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/mcp/__init__.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/mcp/auth.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/mcp/client.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/mcp/code_mode.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/mcp/code_runtime.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/mcp/commands.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/mcp/generic.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/mcp/middleware.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/mcp/presets.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/memory/__init__.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/memory/agent_memory.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/memory/builtin_lessons.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/memory/dream_gates.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/memory/limits.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/memory/parsed_cache.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/memory/recall_stats.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/memory/store.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/memory/wiki.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/migrate.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/onboarding.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/onboarding_check.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/path_approval.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/plan_archive.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/plugins/__init__.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/plugins/loader.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/prime.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/prime_factory/__init__.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/prime_factory/container.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/prime_factory/controller.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/prime_factory/knowledge.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/prime_factory/publication.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/prime_factory/recovery.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/prime_factory/research.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/prime_factory/runner.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/prime_factory/runtime.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/prime_factory/state.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/prime_factory/store.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/prime_factory/worker.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/prime_factory/workflow.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/prime_factory/workspace.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/prime_memory.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/process_manager.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/prompts/__init__.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/prompts/agent_definitions.jinja +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/prompts/agent_generation.jinja +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/prompts/async_agents/general_purpose.jinja +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/prompts/coding_workflow.jinja +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/prompts/computer_use.jinja +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/prompts/delegation.jinja +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/prompts/desktop_power.jinja +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/prompts/file_paths.jinja +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/prompts/file_tracker.jinja +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/prompts/init_agents_md.jinja +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/prompts/init_exploration.jinja +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/prompts/init_semantic_orchestrate.jinja +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/prompts/instruction_scope.jinja +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/prompts/learnings_extraction.jinja +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/prompts/longterm_memory.jinja +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/prompts/mcp.jinja +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/prompts/memory_consolidation.jinja +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/prompts/nova_evolution.jinja +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/prompts/nova_review.jinja +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/prompts/nova_skill_debate.jinja +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/prompts/nova_verify.jinja +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/prompts/plan_scouts.jinja +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/prompts/plan_storage.jinja +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/prompts/planning.jinja +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/prompts/ponytail/LICENSE +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/prompts/ponytail/hooks/ponytail-config.js +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/prompts/ponytail/hooks/ponytail-instructions.js +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/prompts/ponytail/skills/ponytail/SKILL.md +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/prompts/ponytail/skills/ponytail-audit/SKILL.md +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/prompts/ponytail/skills/ponytail-debt/SKILL.md +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/prompts/ponytail/skills/ponytail-gain/SKILL.md +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/prompts/ponytail/skills/ponytail-help/SKILL.md +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/prompts/ponytail/skills/ponytail-review/SKILL.md +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/prompts/prompt_evolution.jinja +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/prompts/ralph_iteration.jinja +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/prompts/refine_gate.jinja +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/prompts/refine_plan.jinja +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/prompts/refine_review.jinja +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/prompts/research_delivery.jinja +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/prompts/response_style.jinja +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/prompts/session_summarization.jinja +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/prompts/skill_creation.jinja +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/prompts/summarization.jinja +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/prompts/summarization_answers.jinja +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/prompts/summarization_questions.jinja +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/prompts/vision_caption.jinja +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/prompts/voice_summary.jinja +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/prompts/wiki_file.jinja +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/prompts/wiki_ingest.jinja +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/recovery.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/remote/__init__.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/remote/approvals.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/remote/async_task_clients.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/remote/bridge.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/remote/command_menu.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/remote/command_ui.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/remote/config.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/remote/discord_bridge.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/remote/discord_format.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/remote/discord_threads.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/remote/images.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/remote/processor.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/remote/rootapp_bot/bot.cjs +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/remote/rootapp_bot/package-lock.json +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/remote/rootapp_bot/package.json +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/remote/rootapp_bot/transport.cjs +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/remote/rootapp_bridge.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/remote/rootapp_setup.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/remote/routing.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/remote/scheduler.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/remote/session.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/remote/streaming.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/remote/telegram_format.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/remote/telegram_hub.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/remote/voice_notes.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/remote/webhook_adapters.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/remote/webhook_server.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/rewind.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/rooms/__init__.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/rooms/workspace.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/security/__init__.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/security/approval_context.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/security/delegated_approval.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/security/local_http.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/security/middleware.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/security/paths.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/security/policy.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/security/policy_writer.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/security/prompt_injection.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/security/remember.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/security/rule_synthesis.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/security/secret_files.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/security/session_allow.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/security/unicode_security.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/security/validator.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/server/__init__.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/server/app.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/server/event_adapter.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/server/session_manager.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/server_main.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/server_runner/dev_server.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/server_runner/test_runner.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/session/__init__.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/session/adapters/__init__.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/session/adapters/claude_code.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/session/adapters/codex.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/session/adapters/harness_native.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/session/checkpoint_coordinator.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/session/context_restore.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/session/history_export.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/session/history_tree.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/session/imported_context.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/session/runtime_identity.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/session/session_persistence.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/session/session_prompt_builder.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/session/session_restore.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/session/session_summarization.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/session/transcript_journal.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/sessions/__init__.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/sessions/gateway.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/sessions/launch.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/sessions/lease.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/sessions/messaging.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/sessions/protocol.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/sessions/resume.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/sessions/supervisor.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/sessions/tasks.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/sessions/tui_messaging.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/sessions/worker.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/sessions/worktree.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/shell/__init__.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/shell/os_sandbox.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/shell/output.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/shell/patterns.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/shell/processes.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/shell/utils.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/skills/__init__.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/skills/curation_middleware.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/skills/executable.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/skills/libraries.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/skills/prune.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/skills/schema.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/skills/skill_creation.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/skills/skill_lock.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/skills/skill_system_prompt.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/skills/skills_prefs.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/skills/tool_resolver.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/skills/upstream.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/skills/versioning.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/states/__init__.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/states/slices/__init__.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/states/slices/agent_runtime.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/states/slices/background_tasks.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/states/slices/notifications.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/states/slices/remote_bridge.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/states/slices/ui_settings.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/states/slices/wiki.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/teammates/__init__.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/teammates/controller.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/teammates/graph.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/teammates/registry.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/teammates/service.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/teammates/worker.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/teams/__init__.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/teams/adapters/__init__.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/teams/adapters/container.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/teams/adapters/process.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/teams/container_git.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/teams/context.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/teams/gateway.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/teams/host.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/teams/legacy.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/teams/middleware.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/teams/models.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/teams/output.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/teams/protocol.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/teams/recovery.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/teams/scheduler.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/teams/store.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/teams/workspace.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/token_utils.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/tools/__init__.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/tools/_shared.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/tools/_types.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/tools/artifact_tools.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/tools/code_search_tools.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/tools/computer_tools.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/tools/cron_tools.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/tools/daemon_tool.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/tools/desktop_tools.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/tools/fetch_tools.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/tools/http_tools.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/tools/inspection_tools.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/tools/knowledge_tools.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/tools/memory_tools.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/tools/memory_wiki_tools.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/tools/notebook_tools.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/tools/oracle_tool.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/tools/plan_archive_tools.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/tools/plan_mode_tools.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/tools/python_kernel_loop.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/tools/python_kernel_tool.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/tools/reflection_tools.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/tools/skill_tools.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/tools/speak_tool.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/tools/store_memory_tools.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/tools/ui_tools.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/tools/web_tools.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/tools/wiki_tools.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/tools/worktree_tools.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/tracking/__init__.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/tracking/file_tracker.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/tracking/local_metrics.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/tracking/loop_guard.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/tracking/request_metrics.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/tracking/tracing.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/tracking/workspace_anchoring.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/tui/__init__.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/tui/animation_rate.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/tui/animations.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/tui/auth_display.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/tui/auth_screens.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/tui/avatar.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/tui/avatar_frames.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/tui/background_tasks.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/tui/browser_settings_screen.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/tui/council_settings_screen.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/tui/council_view.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/tui/decision_settings.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/tui/diff_preview.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/tui/gc_tuning.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/tui/harness.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/tui/home_scene.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/tui/icons.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/tui/matrix3.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/tui/mcp_tools_screen.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/tui/motion.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/tui/output_body.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/tui/output_buffer.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/tui/palette.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/tui/prime_panel.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/tui/provider_signin.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/tui/pty_shell.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/tui/resume_picker.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/tui/session_import.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/tui/session_tab.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/tui/session_transcript.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/tui/shell_output.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/tui/stall_watch.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/tui/statusline.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/tui/statusline_screen.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/tui/teammate_updates.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/tui/terminal.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/tui/terminal_view.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/tui/themes.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/tui/update_notice.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/tui/windows_input.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/tui/workspace_approval.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/ui/diff_highlight.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/ui/execution.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/ui/exit_summary.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/ui/input_preparation.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/ui/interrupt_handlers.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/ui/question_prompt.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/ui/status_phrases.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/ui/stream_preview.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/ui/streaming.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/ui/subagent_tracking.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/ui/ui_elements.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/update_ui.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/updates.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/utils/backend_patches.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/utils/backend_paths.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/utils/lazy_providers.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/utils/model_info.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/utils/pdf_extraction.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/utils/startup.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/utils/tasks.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/utils/windows.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/vixie/hook_adapter.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/vixie/server.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/wiki/__init__.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/wiki/ask.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/wiki/file.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/wiki/ingest.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli/wiki/manager.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli.egg-info/SOURCES.txt +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli.egg-info/dependency_links.txt +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli.egg-info/entry_points.txt +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli.egg-info/requires.txt +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/novacode_cli.egg-info/top_level.txt +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_absolute_host_paths.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_agent_invocation.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_agent_mailbox.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_agent_mentions.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_agent_server_launcher.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_agent_stream.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_agents_http_api.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_agents_screen.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_approval_decisions.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_approval_policy.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_arg_repair.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_artifacts.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_async_completion_delivery.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_async_general_purpose.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_async_mcp_tools.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_async_offload_fixes.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_async_on_demand.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_async_subagent_gating.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_async_task_errors.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_attribution.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_auth_refresh.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_auth_screens.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_autonomous_loop.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_background_monitor.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_background_responsiveness.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_bash_in_chat.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_brand.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_brand_banner.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_browser_mode.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_browser_mode_ui.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_browser_server_settings.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_build_avatar.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_builtin_agent_files.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_builtin_lessons.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_cache_diagnostics.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_caveman_benchmark.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_checkpoint_coordinator.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_claude_agent_files.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_claude_plan.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_clear.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_clear_context.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_cli_help_branding.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_clipboard_image_paste.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_code_mode_toggle.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_codex_plan.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_commandcode_provider.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_compaction.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_compaction_derived_label.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_compaction_no_replay.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_compaction_notice.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_compaction_prefix.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_compaction_replay_leak.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_compaction_tail.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_compaction_trigger_sync.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_computer_background.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_context_breakdown_tokens.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_context_compaction.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_context_compaction_guard.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_context_edit_trigger.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_context_history.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_context_learning_audit.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_context_learning_properties.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_context_learning_replay.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_context_learning_verification_gate.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_context_overflow.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_context_pressure_policy.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_context_snapshot.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_context_strategies.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_continuation_heading_coupling.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_continuation_leak.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_conversation_context.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_conversation_history_backend.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_core_prompt_subagents.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_council_chat_ui.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_council_consensus.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_council_planner.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_council_tui.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_council_view.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_cowork_broker_middleware.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_cowork_policy.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_cowork_server.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_credentials.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_cross_session_lifecycle.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_cross_session_tui.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_ctrl_b_background.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_daemon_hardening.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_daemon_security_identity.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_daemon_tool.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_dangerous_patterns.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_decision_settings.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_deepagents_compat.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_deferred_commands.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_delegated_auto_approve.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_desktop_notifications.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_desktop_sleep.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_diff_highlight.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_diff_preview.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_dream_agent_backend.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_dream_gates.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_dream_handler.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_edit_diagnostics.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_edit_fallback.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_entrance_animation.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_error_taxonomy.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_essential_session_tools.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_events.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_evolution_activity.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_exit_summary.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_external_review.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_factory_container.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_factory_controller.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_factory_interfaces.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_factory_knowledge.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_factory_workers.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_factory_workflow.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_factory_workspace.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_fallback_usage.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_file_mentions.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_file_op_tracker_isolation.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_file_ops.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_generic_mcp_tool.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_git_safety.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_goal_rubric.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_goal_usage.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_good_habits_injection.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_google_oauth_auth.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_google_tool_schema.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_google_workspace_offline.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_guard_and_log_fixes.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_headless.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_headless_production.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_home_scenes.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_hooks.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_host_path.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_hover_restyle.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_image_utils.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_input_history_and_redirect.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_install_commands.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_jev_auth.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_langsmith_runtime.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_langsmith_setup.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_langsmith_setup_modal.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_large_paste.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_lazy_heavy.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_lazy_providers.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_learning_activation.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_learning_command_lifecycle.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_learning_ledger.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_learning_recall.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_learning_review_safety.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_learning_rework.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_learning_tui.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_lesson_scope.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_local_backend_subagent_execute.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_log_session_line.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_loop_guard.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_loop_guard_halts.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_matrix3.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_matrix_rain.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_mcp_auth.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_mcp_cli.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_mcp_code_mode.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_mcp_presets.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_mcp_sessions.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_mcp_structured_content.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_memory_retrieval.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_memory_search.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_memory_tools.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_memory_wiki.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_modal_layouts.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_model_build.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_model_capabilities.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_model_catalog.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_model_command_core.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_model_endpoint.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_model_router.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_model_screen_custom.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_model_screen_roles.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_model_selector.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_models_dev_context.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_more_providers.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_multimodal_content_blocks.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_native_code_mode.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_native_search.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_notebook_tools.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_notifications.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_nova_avatar.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_nova_config_lost_update.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_nvidia_provider.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_ollama_context.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_ollama_stdout_guard.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_openai_chatgpt_auth.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_openai_decisions.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_opencode_jev.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_opencode_model_list.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_opencode_provider.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_opencode_zen.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_optimization.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_os_sandbox.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_packaged_main_prompts.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_paste_placeholders.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_pathless_search_scope.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_phase45.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_phase89.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_pipe_adapter.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_pipe_mode.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_plan_agent_checkpoint.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_plan_approval_options.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_plan_approval_persistence.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_plan_archive.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_plan_auto_scope.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_plan_directory_creation.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_plan_execution.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_plan_lifecycle_regressions.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_plan_mcp_guard.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_plan_middleware.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_plan_paths.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_planner_usage.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_plugins.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_policy_writer.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_portable_daemon_runtime.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_portable_paths_stdlib.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_prime_browser.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_prime_records.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_process_runtime.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_project_memory.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_project_root.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_project_session_picker.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_prompt_contracts.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_prompt_injection_guardrails.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_provider_accounting.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_provider_auth.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_provider_catalog.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_provider_effort_wiring.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_provider_errors.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_provider_signin_ui.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_provider_transports.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_provider_usage.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_python_kernel_tool.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_queue_and_redirect.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_quickjs_compat.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_ralph_progress.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_ralph_smart_loop.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_ralph_ui.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_reasoning_content.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_reasoning_scroll.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_reasoning_settings.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_reasoning_visibility.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_rebuild_keeps_backend.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_recent_plans.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_recovery.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_recovery_archives.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_reference_pin_background_ui.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_reference_screens.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_refine_handler.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_refreshing_skills.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_remember_approvals.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_remote_approval_processor.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_remote_approval_worker.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_remote_approvals.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_remote_commands.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_remote_cron.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_remote_image_display.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_remote_launch_approval.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_remote_question.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_remote_session_resume.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_remote_sessions.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_remote_start_approval.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_remote_stop.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_remote_streaming.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_remote_tool_digest.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_remote_voice_notes.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_repl_context_pressure.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_request_snapshot.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_research_subagents.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_research_swarm_roster.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_resource_efficiency.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_restored_context.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_resume_history.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_resume_picker_design.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_review_gateway_models.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_review_task_end.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_rewind.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_role_models.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_rootapp_remote.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_rootapp_ui.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_rule_synthesis.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_runtime_boundary_fixes.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_sandbox_langsmith.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_sandbox_orphan.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_sandbox_provider_regressions.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_sandbox_provision.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_sandbox_registry.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_security_middleware.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_security_paths_audit.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_security_remediation.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_session_agent_tools.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_session_allow.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_session_clear.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_session_crash_recovery.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_session_gateway.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_session_import.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_session_launch.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_session_lease.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_session_messaging.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_session_model_restore.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_session_plus.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_session_protocol.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_session_provider_restore.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_session_reply_panels.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_session_retention.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_session_rpc.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_session_state_fields.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_session_supervisor.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_session_transcript.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_session_transport.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_session_tree.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_session_worker.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_settings_screen.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_share_handler.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_shared_state_read.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_shell_dialect_routing.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_shell_jobs.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_shell_middleware.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_shell_nonblocking.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_shell_output.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_shell_output_responsiveness.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_shell_prompts.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_shutdown.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_side_commands_goal.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_skill_creation_contract.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_skill_executable.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_skill_invoke.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_skill_libraries_and_resolvers.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_skill_manage_tool.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_skill_usage_policy.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_skill_versioning.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_skills_controls.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_skills_curation.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_skills_prune.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_skills_upstream.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_startup_and_search_perf.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_startup_version_scan.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_status_phrases.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_statusline_controls.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_steering.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_store_memory.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_strict_tools.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_subagent_hitl.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_subagent_model_roles.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_subagent_registration.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_subagent_tasks.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_subagent_tracking.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_summarization_profile.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_tab_mentions.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_tab_performance.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_tab_resume.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_tab_tasks.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_task_discipline.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_task_progress_compaction.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_team_accounting.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_team_approvals.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_team_container.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_team_legacy.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_team_lifecycle.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_team_output.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_team_properties.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_team_recovery.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_team_runtime.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_team_store.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_team_swarm.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_team_update_handoff.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_team_workspace.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_team_worktree.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_teammate_computer.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_teammate_registry.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_telegram_approval_buttons.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_telegram_command_menu.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_telegram_format.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_telegram_hub.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_telegram_images.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_telegram_voice.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_test_gaming.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_text_repetition_guard.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_text_selection.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_theme_markdown.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_theme_readability.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_token_efficiency.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_tool_call_repair.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_tool_definition_accounting.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_tool_result_offload_vs_truncation.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_tool_verdict_flag.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_transcript_journal.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_transcript_restyle.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_trello_remote.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_trello_server.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_tui_agent_server_command.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_tui_animation_rate.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_tui_banner_sizes.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_tui_cancel.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_tui_compaction_row.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_tui_crash_autosave.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_tui_exit_immediate.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_tui_help_coverage.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_tui_home_dashboard.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_tui_icons.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_tui_long_run.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_tui_no_blocking_io.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_tui_no_layout_storm.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_tui_notices.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_tui_onboard_progress.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_tui_output_log.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_tui_pickers.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_tui_question_dock.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_tui_remember.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_tui_remote_subcommands.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_tui_replay_layouts.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_tui_resume_model.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_tui_sessions.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_tui_terminal_view.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_tui_test_output.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_tui_trace_command.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_tui_update_release.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_tui_windows_input.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_ui_harness.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_unified_code_mode.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_update_release.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_update_restart.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_update_success_screen.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_updates.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_usage_lifecycle.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_usage_tree.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_user_async_agents.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_user_config_guard.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_verdict_tool_uses_edit.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_verification_loop.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_verification_memory.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_verification_signal.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_vision_caption_wiring.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_vision_multimodal_routing.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_vision_router.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_voice_credentials.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_waiter_tools.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_web_workspace_ui.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_webhook_server.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_workdir_backend.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_workdir_backend_no_python3.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_workdir_grep.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_workspace_approval.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_worktree.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_worktree_tools.py +0 -0
- {novacode_cli-1.2.0 → novacode_cli-1.2.1}/tests/test_write_file_content_patch.py +0 -0
|
@@ -0,0 +1,271 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: novacode-cli
|
|
3
|
+
Version: 1.2.1
|
|
4
|
+
Summary: Agentic Coding Tool that runs in your terminal
|
|
5
|
+
Author-email: Babitdor <babitdorbryan14@gmail.com>
|
|
6
|
+
License-Expression: MIT
|
|
7
|
+
Project-URL: Homepage, https://github.com/Babitdor/NovaCode
|
|
8
|
+
Project-URL: Repository, https://github.com/Babitdor/NovaCode
|
|
9
|
+
Project-URL: Issues, https://github.com/Babitdor/NovaCode/issues
|
|
10
|
+
Project-URL: Changelog, https://github.com/Babitdor/NovaCode/blob/main/CHANGELOG.md
|
|
11
|
+
Keywords: nova,code-cli,nova-code,agentic-code-cli
|
|
12
|
+
Classifier: Development Status :: 3 - Alpha
|
|
13
|
+
Classifier: Intended Audience :: Developers
|
|
14
|
+
Classifier: Programming Language :: Python :: 3.11
|
|
15
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
16
|
+
Classifier: Programming Language :: Python :: 3.13
|
|
17
|
+
Requires-Python: <4.0,>=3.11
|
|
18
|
+
Description-Content-Type: text/markdown
|
|
19
|
+
License-File: LICENSE
|
|
20
|
+
Requires-Dist: requests
|
|
21
|
+
Requires-Dist: certifi>=2026.10.19
|
|
22
|
+
Requires-Dist: brotli>=1.2.1
|
|
23
|
+
Requires-Dist: jinja2>=3.1.0
|
|
24
|
+
Requires-Dist: rich>=13.0.0
|
|
25
|
+
Requires-Dist: textual>=1.0.0
|
|
26
|
+
Requires-Dist: psutil>=5.9
|
|
27
|
+
Requires-Dist: pyte<0.9,>=0.8.2
|
|
28
|
+
Requires-Dist: pywinpty<3,>=2.0.15; sys_platform == "win32"
|
|
29
|
+
Requires-Dist: langchain>=1.2.13
|
|
30
|
+
Requires-Dist: langchain-core>=1.2.22
|
|
31
|
+
Requires-Dist: langchain-openai>=1.0.0
|
|
32
|
+
Requires-Dist: langchain-anthropic>=1.4.0
|
|
33
|
+
Requires-Dist: langchain-ollama>=1.0.1
|
|
34
|
+
Requires-Dist: langchain-google-genai>=4.2.1
|
|
35
|
+
Requires-Dist: google-auth>=2.40
|
|
36
|
+
Requires-Dist: google-auth-oauthlib>=1.2.2
|
|
37
|
+
Requires-Dist: langchain-nvidia-ai-endpoints>=1.4.1
|
|
38
|
+
Requires-Dist: langchain-mcp-adapters>=0.2.2
|
|
39
|
+
Requires-Dist: langgraph>=1.1.3
|
|
40
|
+
Requires-Dist: langgraph-checkpoint-sqlite>=2.0.0
|
|
41
|
+
Requires-Dist: langsmith>=0.7.22
|
|
42
|
+
Requires-Dist: tavily-python
|
|
43
|
+
Requires-Dist: deepagents<0.8,>=0.7.0
|
|
44
|
+
Requires-Dist: python-dotenv
|
|
45
|
+
Requires-Dist: daytona>=0.113.0
|
|
46
|
+
Requires-Dist: modal>=0.65.0
|
|
47
|
+
Requires-Dist: markdownify>=0.13.0
|
|
48
|
+
Requires-Dist: runloop-api-client>=0.69.0
|
|
49
|
+
Requires-Dist: mcp<2,>=1.28.1
|
|
50
|
+
Requires-Dist: docker>=7.0.0
|
|
51
|
+
Requires-Dist: keyring>=24.0.0
|
|
52
|
+
Requires-Dist: pillow>=13.0.0
|
|
53
|
+
Requires-Dist: aiosqlite>=0.19.0
|
|
54
|
+
Requires-Dist: pyyaml>=6.0
|
|
55
|
+
Requires-Dist: tomli-w>=1.0.0
|
|
56
|
+
Requires-Dist: ddgs>=7.0.0
|
|
57
|
+
Requires-Dist: aiohttp>=3.9
|
|
58
|
+
Requires-Dist: httpx>=0.27
|
|
59
|
+
Requires-Dist: PyJWT[crypto]>=2.10
|
|
60
|
+
Requires-Dist: pydantic>=2.0
|
|
61
|
+
Requires-Dist: jsonschema>=4.18
|
|
62
|
+
Requires-Dist: referencing>=0.28.4
|
|
63
|
+
Requires-Dist: regex>=2024.11.6
|
|
64
|
+
Requires-Dist: pymupdf>=1.24
|
|
65
|
+
Requires-Dist: bm25s>=0.2
|
|
66
|
+
Requires-Dist: graphifyy>=0.4.0
|
|
67
|
+
Requires-Dist: semble>=0.1.8
|
|
68
|
+
Requires-Dist: discord.py>=2.3.0
|
|
69
|
+
Requires-Dist: python-telegram-bot>=21.0.0
|
|
70
|
+
Requires-Dist: langchain-quickjs==0.3.2
|
|
71
|
+
Requires-Dist: dill>=0.3.8
|
|
72
|
+
Requires-Dist: langchain-typesafe>=0.0.1a3
|
|
73
|
+
Provides-Extra: browser
|
|
74
|
+
Requires-Dist: browser-use>=0.1.0; extra == "browser"
|
|
75
|
+
Requires-Dist: playwright>=1.40.0; extra == "browser"
|
|
76
|
+
Provides-Extra: voice
|
|
77
|
+
Requires-Dist: faster-whisper>=1.0.0; extra == "voice"
|
|
78
|
+
Requires-Dist: silero-vad>=5.1; extra == "voice"
|
|
79
|
+
Requires-Dist: piper-tts>=1.2.0; extra == "voice"
|
|
80
|
+
Requires-Dist: sounddevice>=0.4.6; extra == "voice"
|
|
81
|
+
Provides-Extra: voice-orpheus
|
|
82
|
+
Requires-Dist: orpheus-cpp==0.0.3; extra == "voice-orpheus"
|
|
83
|
+
Requires-Dist: llama-cpp-python>=0.3.0; extra == "voice-orpheus"
|
|
84
|
+
Provides-Extra: voice-parakeet
|
|
85
|
+
Requires-Dist: sherpa-onnx<2,>=1.10.0; extra == "voice-parakeet"
|
|
86
|
+
Provides-Extra: voice-pocket
|
|
87
|
+
Requires-Dist: pocket-tts>=0.1.0; extra == "voice-pocket"
|
|
88
|
+
Provides-Extra: bedrock
|
|
89
|
+
Requires-Dist: langchain-aws>=1.0.0; extra == "bedrock"
|
|
90
|
+
Provides-Extra: server
|
|
91
|
+
Requires-Dist: fastapi>=0.115.0; extra == "server"
|
|
92
|
+
Requires-Dist: uvicorn>=0.34.0; extra == "server"
|
|
93
|
+
Provides-Extra: agents-server
|
|
94
|
+
Requires-Dist: langgraph-cli[inmem]; extra == "agents-server"
|
|
95
|
+
Provides-Extra: voice-whistle
|
|
96
|
+
Requires-Dist: cactus-needle<4,>=3.2.1; extra == "voice-whistle"
|
|
97
|
+
Provides-Extra: voice-kokoro
|
|
98
|
+
Requires-Dist: kokoro-onnx==0.4.9; extra == "voice-kokoro"
|
|
99
|
+
Provides-Extra: voice-sano
|
|
100
|
+
Requires-Dist: sanotts==0.3.0; extra == "voice-sano"
|
|
101
|
+
Provides-Extra: computer
|
|
102
|
+
Requires-Dist: cua==0.9.0; extra == "computer"
|
|
103
|
+
Dynamic: license-file
|
|
104
|
+
|
|
105
|
+

|
|
106
|
+
|
|
107
|
+
# NovaCode
|
|
108
|
+
|
|
109
|
+
An open-source terminal coding assistant that reads your project, plans changes,
|
|
110
|
+
edits files and runs checks. Choose cloud or local models and keep useful project
|
|
111
|
+
knowledge between sessions.
|
|
112
|
+
|
|
113
|
+
Built with Python, LangGraph, deepagents and Textual. [MIT licensed](LICENSE).
|
|
114
|
+
|
|
115
|
+

|
|
116
|
+
|
|
117
|
+
## Get started
|
|
118
|
+
|
|
119
|
+
Requires **Python 3.11+**, **Git** and **uv**, plus a supported model provider or
|
|
120
|
+
a running Ollama instance with a model installed.
|
|
121
|
+
|
|
122
|
+
```bash
|
|
123
|
+
git clone https://github.com/Babitdor/NovaCode.git
|
|
124
|
+
cd NovaCode
|
|
125
|
+
uv sync
|
|
126
|
+
uv run nova
|
|
127
|
+
```
|
|
128
|
+
|
|
129
|
+
First-run setup guides provider configuration and workspace approval. Hosted
|
|
130
|
+
models may charge for usage. To install a global `nova` command from this checkout,
|
|
131
|
+
run `uv tool install .`, then launch `nova` from your project directory.
|
|
132
|
+
|
|
133
|
+
## What Nova can do
|
|
134
|
+
|
|
135
|
+
- **Code and verify:** investigate projects, edit files, run commands and checks,
|
|
136
|
+
and review changes with workspace and tool approvals.
|
|
137
|
+
- **Plan and delegate:** compare Council proposals, use specialist agents and
|
|
138
|
+
coordinate project tabs with messages and Git worktrees.
|
|
139
|
+
- **Remember:** inspect and maintain a linked Markdown memory wiki, resume
|
|
140
|
+
sessions and recover supported file snapshots.
|
|
141
|
+
- **Choose and extend:** select hosted or local models, configure an independent
|
|
142
|
+
vision model, and add skills, plugins and MCP servers.
|
|
143
|
+
- **Compose tools in Code Mode:** toggle it below the composer to combine
|
|
144
|
+
eligible native and MCP tools in bounded JavaScript workflows.
|
|
145
|
+
- **Speak and listen:** optional speech input and short spoken reply summaries,
|
|
146
|
+
including lightweight CPU voice choices and model download progress.
|
|
147
|
+
- **Make it yours:** choose from 13 interface styles, including character art
|
|
148
|
+
and optional animated home scenes.
|
|
149
|
+
- **Work beyond the terminal:** use remote chats, local web workspaces, temporary
|
|
150
|
+
artifact previews and headless automation.
|
|
151
|
+
|
|
152
|
+
See [FEATURES.md](FEATURES.md) for the full catalog, setup requirements and
|
|
153
|
+
landing-page copy.
|
|
154
|
+
|
|
155
|
+
## Everyday use
|
|
156
|
+
|
|
157
|
+
| Command | Purpose |
|
|
158
|
+
| --- | --- |
|
|
159
|
+
| `/help` | Commands and keyboard shortcuts |
|
|
160
|
+
| `/onboard` | Interactive code map, guided tours, architecture guide, Q&A and change impact |
|
|
161
|
+
| `/model`, `/auth` | Models, vision and provider access |
|
|
162
|
+
| `/plan`, `/council <task>` | Investigate changes and compare plans |
|
|
163
|
+
| `/tabs`, `/resume` | Parallel projects and saved sessions |
|
|
164
|
+
| `/dream`, `/context` | Memory maintenance and context inspection |
|
|
165
|
+
| `/settings`, `/theme` | Voice, interface styles and preferences |
|
|
166
|
+
| `/mcp`, `/remote` | External tools and remote chat setup |
|
|
167
|
+
| `/restore` | Recoverable file snapshots |
|
|
168
|
+
|
|
169
|
+
Attach files with `@`; use **Shift+Enter** for a new line. For a one-shot task:
|
|
170
|
+
|
|
171
|
+
```bash
|
|
172
|
+
uv run nova -p "Summarize the changes in this repository"
|
|
173
|
+
```
|
|
174
|
+
|
|
175
|
+
**New to a project? Start with `/onboard`.** Inspired by
|
|
176
|
+
[Understand Anything](https://github.com/Egonex-AI/Understand-Anything), it parses
|
|
177
|
+
the local workspace with the already installed Graphify language parsers and
|
|
178
|
+
saves a persistent graph and guide in `.nova/onboard/`. The local artifact
|
|
179
|
+
dashboard provides file/symbol search, directory filters, a clickable dependency
|
|
180
|
+
map, a learning tour and incoming dependency impact tracing. It needs no Node
|
|
181
|
+
installation, browser credentials or external dashboard assets.
|
|
182
|
+
|
|
183
|
+
Use `/onboard open` to reopen the dashboard, `/onboard tour` for a conversational
|
|
184
|
+
tour, `/onboard ask <question>` for source-grounded Q&A, and
|
|
185
|
+
`/onboard impact <symbol or path>` before changing code. The dashboard's **Ask
|
|
186
|
+
Nova** tab prepares a command to paste into the conversation. Nova explains the
|
|
187
|
+
architecture and business flows using its normal model and tool permissions;
|
|
188
|
+
the initial deterministic guide contains structural facts only. Reopen the
|
|
189
|
+
dashboard after Nova enriches the guide. Model calls use your configured provider.
|
|
190
|
+
|
|
191
|
+
`/onboard refresh` rebuilds after changes. File-content fingerprints detect
|
|
192
|
+
new, edited and deleted inputs; saved analyses display a staleness notice.
|
|
193
|
+
Scans respect Git ignore rules and skip links, generated directories and common
|
|
194
|
+
secret filenames. Static parsing can miss dynamic dependencies; directory
|
|
195
|
+
groups are not semantic architecture layers. Limits: 5,000 source/Markdown
|
|
196
|
+
files, 1 MiB per file, 64 MiB total input and 32 MiB graph. The parsing deadline
|
|
197
|
+
scales with file count and input size from two to ten minutes; Escape cancels it.
|
|
198
|
+
Refresh replaces generated graph/guide files, so copy edited guides
|
|
199
|
+
elsewhere before rebuilding. This command currently requires a local workspace;
|
|
200
|
+
Plan Mode prevents building or refreshing the saved analysis.
|
|
201
|
+
|
|
202
|
+
## Optional features
|
|
203
|
+
|
|
204
|
+
Install selected extras from this checkout, for example:
|
|
205
|
+
|
|
206
|
+
```bash
|
|
207
|
+
uv sync --extra voice --extra voice-kokoro
|
|
208
|
+
```
|
|
209
|
+
|
|
210
|
+
Keep all desired `--extra` flags when syncing. Speech models download on first
|
|
211
|
+
use. See [setup and usage](SETUP.md) for global installation, voice providers,
|
|
212
|
+
browser automation and background-agent requirements.
|
|
213
|
+
|
|
214
|
+
**Local computer preview:** the `computer` extra lets Nova operate a
|
|
215
|
+
separate Linux QEMU VM with a private live browser preview and pause/resume/stop
|
|
216
|
+
controls. Requires QEMU, a guest-image download and 4 GiB RAM for the guest.
|
|
217
|
+
Start with `/computer start`; see [computer setup and limits](COMPUTER.md).
|
|
218
|
+
The Windows WHPX compatibility fix in this checkout has passed a real desktop boot.
|
|
219
|
+
|
|
220
|
+
## Documentation and contributing
|
|
221
|
+
|
|
222
|
+
[Setup and usage](SETUP.md) · [Feature catalog](FEATURES.md) ·
|
|
223
|
+
[Code Mode](docs/mcp-code-mode.md) · [Permissions](docs/security-guardrails.md) ·
|
|
224
|
+
[Sharing](docs/temporary-sharing.md) · [Changelog](changelog/)
|
|
225
|
+
|
|
226
|
+
For development, run `uv sync --group dev` and tests relevant to your change.
|
|
227
|
+
See [project instructions](AGENTS.md) for build and check commands. Report bugs
|
|
228
|
+
or propose changes through repository issues and pull requests.
|
|
229
|
+
|
|
230
|
+
|
|
231
|
+
### Compression preferences
|
|
232
|
+
|
|
233
|
+
The composer selector cycles **Off → Caveman → Ponytail → Off**. Options saves
|
|
234
|
+
mode, independent intensities and Caveman feature switches together; Escape discards
|
|
235
|
+
edits. Preferences persist across restarts. Existing Caveman settings migrate automatically.
|
|
236
|
+
Mode changes use temporary notifications and never submit your draft.
|
|
237
|
+
|
|
238
|
+
- `/caveman on|off|lite|full|ultra|wenyan-lite|wenyan-full|wenyan-ultra`
|
|
239
|
+
- `/ponytail` activates Ponytail without resetting its selected intensity.
|
|
240
|
+
- `/ponytail lite|full|ultra|off|settings|status`
|
|
241
|
+
- `/ponytail-review [scope]`, `/ponytail-audit [scope]`, `/ponytail-debt [scope]`,
|
|
242
|
+
`/ponytail-gain`, `/ponytail-help` run the corresponding one-shot helper without
|
|
243
|
+
changing the selected mode. Review and audit request reports, not edits.
|
|
244
|
+
- A standalone `stop ponytail` or `normal mode` disables Ponytail. Those phrases
|
|
245
|
+
inside an ordinary task do not change preferences.
|
|
246
|
+
|
|
247
|
+
Caveman compresses prose and optionally tool views. Ponytail applies the upstream
|
|
248
|
+
coding rules: solve the complete problem with the least new code, preserve necessary
|
|
249
|
+
checks, and name skipped work and risks. Ponytail leaves tool results intact and
|
|
250
|
+
also applies to delegated model requests. Neither mode changes tool permissions.
|
|
251
|
+
Savings depend on the task and model; shorter output is not guaranteed.
|
|
252
|
+
|
|
253
|
+
Ponytail's MIT-licensed skill bodies and JavaScript instruction builder are vendored
|
|
254
|
+
from [DietrichGebert/ponytail](https://github.com/DietrichGebert/ponytail) at
|
|
255
|
+
`09c434ab73ca43761c5d8b0c5d341926c2fba710`. Nova's Python builder is checked
|
|
256
|
+
against golden hashes from that JavaScript builder. Nova owns the persistent selector;
|
|
257
|
+
upstream Claude-specific band, board, install hooks and default-mode files are not used.
|
|
258
|
+
There is no Node runtime requirement.
|
|
259
|
+
|
|
260
|
+
To validate every compression intensity against your configured LLM (20 paid/provider
|
|
261
|
+
calls, concurrency two, 60-second timeout each), run:
|
|
262
|
+
|
|
263
|
+
```sh
|
|
264
|
+
uv run python -m scripts.verify_compression_live
|
|
265
|
+
```
|
|
266
|
+
|
|
267
|
+
This opt-in check preserves exact failure facts/commands and validates generated
|
|
268
|
+
Python on boundary and invalid-bound cases. It writes synthetic outputs and reported
|
|
269
|
+
usage (or `unknown`) to `test-results/compression-live.json`, without changing your
|
|
270
|
+
preferences. Offline tests never call an LLM. Golden parity proves prompt equivalence;
|
|
271
|
+
it cannot guarantee identical stochastic model responses.
|
|
@@ -0,0 +1,167 @@
|
|
|
1
|
+

|
|
2
|
+
|
|
3
|
+
# NovaCode
|
|
4
|
+
|
|
5
|
+
An open-source terminal coding assistant that reads your project, plans changes,
|
|
6
|
+
edits files and runs checks. Choose cloud or local models and keep useful project
|
|
7
|
+
knowledge between sessions.
|
|
8
|
+
|
|
9
|
+
Built with Python, LangGraph, deepagents and Textual. [MIT licensed](LICENSE).
|
|
10
|
+
|
|
11
|
+

|
|
12
|
+
|
|
13
|
+
## Get started
|
|
14
|
+
|
|
15
|
+
Requires **Python 3.11+**, **Git** and **uv**, plus a supported model provider or
|
|
16
|
+
a running Ollama instance with a model installed.
|
|
17
|
+
|
|
18
|
+
```bash
|
|
19
|
+
git clone https://github.com/Babitdor/NovaCode.git
|
|
20
|
+
cd NovaCode
|
|
21
|
+
uv sync
|
|
22
|
+
uv run nova
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
First-run setup guides provider configuration and workspace approval. Hosted
|
|
26
|
+
models may charge for usage. To install a global `nova` command from this checkout,
|
|
27
|
+
run `uv tool install .`, then launch `nova` from your project directory.
|
|
28
|
+
|
|
29
|
+
## What Nova can do
|
|
30
|
+
|
|
31
|
+
- **Code and verify:** investigate projects, edit files, run commands and checks,
|
|
32
|
+
and review changes with workspace and tool approvals.
|
|
33
|
+
- **Plan and delegate:** compare Council proposals, use specialist agents and
|
|
34
|
+
coordinate project tabs with messages and Git worktrees.
|
|
35
|
+
- **Remember:** inspect and maintain a linked Markdown memory wiki, resume
|
|
36
|
+
sessions and recover supported file snapshots.
|
|
37
|
+
- **Choose and extend:** select hosted or local models, configure an independent
|
|
38
|
+
vision model, and add skills, plugins and MCP servers.
|
|
39
|
+
- **Compose tools in Code Mode:** toggle it below the composer to combine
|
|
40
|
+
eligible native and MCP tools in bounded JavaScript workflows.
|
|
41
|
+
- **Speak and listen:** optional speech input and short spoken reply summaries,
|
|
42
|
+
including lightweight CPU voice choices and model download progress.
|
|
43
|
+
- **Make it yours:** choose from 13 interface styles, including character art
|
|
44
|
+
and optional animated home scenes.
|
|
45
|
+
- **Work beyond the terminal:** use remote chats, local web workspaces, temporary
|
|
46
|
+
artifact previews and headless automation.
|
|
47
|
+
|
|
48
|
+
See [FEATURES.md](FEATURES.md) for the full catalog, setup requirements and
|
|
49
|
+
landing-page copy.
|
|
50
|
+
|
|
51
|
+
## Everyday use
|
|
52
|
+
|
|
53
|
+
| Command | Purpose |
|
|
54
|
+
| --- | --- |
|
|
55
|
+
| `/help` | Commands and keyboard shortcuts |
|
|
56
|
+
| `/onboard` | Interactive code map, guided tours, architecture guide, Q&A and change impact |
|
|
57
|
+
| `/model`, `/auth` | Models, vision and provider access |
|
|
58
|
+
| `/plan`, `/council <task>` | Investigate changes and compare plans |
|
|
59
|
+
| `/tabs`, `/resume` | Parallel projects and saved sessions |
|
|
60
|
+
| `/dream`, `/context` | Memory maintenance and context inspection |
|
|
61
|
+
| `/settings`, `/theme` | Voice, interface styles and preferences |
|
|
62
|
+
| `/mcp`, `/remote` | External tools and remote chat setup |
|
|
63
|
+
| `/restore` | Recoverable file snapshots |
|
|
64
|
+
|
|
65
|
+
Attach files with `@`; use **Shift+Enter** for a new line. For a one-shot task:
|
|
66
|
+
|
|
67
|
+
```bash
|
|
68
|
+
uv run nova -p "Summarize the changes in this repository"
|
|
69
|
+
```
|
|
70
|
+
|
|
71
|
+
**New to a project? Start with `/onboard`.** Inspired by
|
|
72
|
+
[Understand Anything](https://github.com/Egonex-AI/Understand-Anything), it parses
|
|
73
|
+
the local workspace with the already installed Graphify language parsers and
|
|
74
|
+
saves a persistent graph and guide in `.nova/onboard/`. The local artifact
|
|
75
|
+
dashboard provides file/symbol search, directory filters, a clickable dependency
|
|
76
|
+
map, a learning tour and incoming dependency impact tracing. It needs no Node
|
|
77
|
+
installation, browser credentials or external dashboard assets.
|
|
78
|
+
|
|
79
|
+
Use `/onboard open` to reopen the dashboard, `/onboard tour` for a conversational
|
|
80
|
+
tour, `/onboard ask <question>` for source-grounded Q&A, and
|
|
81
|
+
`/onboard impact <symbol or path>` before changing code. The dashboard's **Ask
|
|
82
|
+
Nova** tab prepares a command to paste into the conversation. Nova explains the
|
|
83
|
+
architecture and business flows using its normal model and tool permissions;
|
|
84
|
+
the initial deterministic guide contains structural facts only. Reopen the
|
|
85
|
+
dashboard after Nova enriches the guide. Model calls use your configured provider.
|
|
86
|
+
|
|
87
|
+
`/onboard refresh` rebuilds after changes. File-content fingerprints detect
|
|
88
|
+
new, edited and deleted inputs; saved analyses display a staleness notice.
|
|
89
|
+
Scans respect Git ignore rules and skip links, generated directories and common
|
|
90
|
+
secret filenames. Static parsing can miss dynamic dependencies; directory
|
|
91
|
+
groups are not semantic architecture layers. Limits: 5,000 source/Markdown
|
|
92
|
+
files, 1 MiB per file, 64 MiB total input and 32 MiB graph. The parsing deadline
|
|
93
|
+
scales with file count and input size from two to ten minutes; Escape cancels it.
|
|
94
|
+
Refresh replaces generated graph/guide files, so copy edited guides
|
|
95
|
+
elsewhere before rebuilding. This command currently requires a local workspace;
|
|
96
|
+
Plan Mode prevents building or refreshing the saved analysis.
|
|
97
|
+
|
|
98
|
+
## Optional features
|
|
99
|
+
|
|
100
|
+
Install selected extras from this checkout, for example:
|
|
101
|
+
|
|
102
|
+
```bash
|
|
103
|
+
uv sync --extra voice --extra voice-kokoro
|
|
104
|
+
```
|
|
105
|
+
|
|
106
|
+
Keep all desired `--extra` flags when syncing. Speech models download on first
|
|
107
|
+
use. See [setup and usage](SETUP.md) for global installation, voice providers,
|
|
108
|
+
browser automation and background-agent requirements.
|
|
109
|
+
|
|
110
|
+
**Local computer preview:** the `computer` extra lets Nova operate a
|
|
111
|
+
separate Linux QEMU VM with a private live browser preview and pause/resume/stop
|
|
112
|
+
controls. Requires QEMU, a guest-image download and 4 GiB RAM for the guest.
|
|
113
|
+
Start with `/computer start`; see [computer setup and limits](COMPUTER.md).
|
|
114
|
+
The Windows WHPX compatibility fix in this checkout has passed a real desktop boot.
|
|
115
|
+
|
|
116
|
+
## Documentation and contributing
|
|
117
|
+
|
|
118
|
+
[Setup and usage](SETUP.md) · [Feature catalog](FEATURES.md) ·
|
|
119
|
+
[Code Mode](docs/mcp-code-mode.md) · [Permissions](docs/security-guardrails.md) ·
|
|
120
|
+
[Sharing](docs/temporary-sharing.md) · [Changelog](changelog/)
|
|
121
|
+
|
|
122
|
+
For development, run `uv sync --group dev` and tests relevant to your change.
|
|
123
|
+
See [project instructions](AGENTS.md) for build and check commands. Report bugs
|
|
124
|
+
or propose changes through repository issues and pull requests.
|
|
125
|
+
|
|
126
|
+
|
|
127
|
+
### Compression preferences
|
|
128
|
+
|
|
129
|
+
The composer selector cycles **Off → Caveman → Ponytail → Off**. Options saves
|
|
130
|
+
mode, independent intensities and Caveman feature switches together; Escape discards
|
|
131
|
+
edits. Preferences persist across restarts. Existing Caveman settings migrate automatically.
|
|
132
|
+
Mode changes use temporary notifications and never submit your draft.
|
|
133
|
+
|
|
134
|
+
- `/caveman on|off|lite|full|ultra|wenyan-lite|wenyan-full|wenyan-ultra`
|
|
135
|
+
- `/ponytail` activates Ponytail without resetting its selected intensity.
|
|
136
|
+
- `/ponytail lite|full|ultra|off|settings|status`
|
|
137
|
+
- `/ponytail-review [scope]`, `/ponytail-audit [scope]`, `/ponytail-debt [scope]`,
|
|
138
|
+
`/ponytail-gain`, `/ponytail-help` run the corresponding one-shot helper without
|
|
139
|
+
changing the selected mode. Review and audit request reports, not edits.
|
|
140
|
+
- A standalone `stop ponytail` or `normal mode` disables Ponytail. Those phrases
|
|
141
|
+
inside an ordinary task do not change preferences.
|
|
142
|
+
|
|
143
|
+
Caveman compresses prose and optionally tool views. Ponytail applies the upstream
|
|
144
|
+
coding rules: solve the complete problem with the least new code, preserve necessary
|
|
145
|
+
checks, and name skipped work and risks. Ponytail leaves tool results intact and
|
|
146
|
+
also applies to delegated model requests. Neither mode changes tool permissions.
|
|
147
|
+
Savings depend on the task and model; shorter output is not guaranteed.
|
|
148
|
+
|
|
149
|
+
Ponytail's MIT-licensed skill bodies and JavaScript instruction builder are vendored
|
|
150
|
+
from [DietrichGebert/ponytail](https://github.com/DietrichGebert/ponytail) at
|
|
151
|
+
`09c434ab73ca43761c5d8b0c5d341926c2fba710`. Nova's Python builder is checked
|
|
152
|
+
against golden hashes from that JavaScript builder. Nova owns the persistent selector;
|
|
153
|
+
upstream Claude-specific band, board, install hooks and default-mode files are not used.
|
|
154
|
+
There is no Node runtime requirement.
|
|
155
|
+
|
|
156
|
+
To validate every compression intensity against your configured LLM (20 paid/provider
|
|
157
|
+
calls, concurrency two, 60-second timeout each), run:
|
|
158
|
+
|
|
159
|
+
```sh
|
|
160
|
+
uv run python -m scripts.verify_compression_live
|
|
161
|
+
```
|
|
162
|
+
|
|
163
|
+
This opt-in check preserves exact failure facts/commands and validates generated
|
|
164
|
+
Python on boundary and invalid-bound cases. It writes synthetic outputs and reported
|
|
165
|
+
usage (or `unknown`) to `test-results/compression-live.json`, without changing your
|
|
166
|
+
preferences. Offline tests never call an LLM. Golden parity proves prompt equivalence;
|
|
167
|
+
it cannot guarantee identical stochastic model responses.
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
"""General-purpose delegation on Nova's background agent server."""
|
|
2
|
+
|
|
3
|
+
from __future__ import annotations
|
|
4
|
+
|
|
5
|
+
from typing import Any
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
def build_graph() -> Any:
|
|
9
|
+
"""Build with the server's workspace, async model role and unattended policy."""
|
|
10
|
+
from deepagents import create_deep_agent
|
|
11
|
+
from novacode_cli.context.snapshot import background_context_middleware
|
|
12
|
+
from deepagents.backends.filesystem import FilesystemBackend
|
|
13
|
+
|
|
14
|
+
from novacode_cli.agents.async_agents._specialist import BACKGROUND_NOTE
|
|
15
|
+
from novacode_cli.agents.async_context import AsyncModelOverrideMiddleware, NovaAsyncContext
|
|
16
|
+
from novacode_cli.agents.async_workspace import workspace_root
|
|
17
|
+
from novacode_cli.config.model_create import build_async_agent_model
|
|
18
|
+
from novacode_cli.prompts import render_template
|
|
19
|
+
from novacode_cli.security.delegated_approval import DelegatedApprovalMiddleware
|
|
20
|
+
from novacode_cli.shell.middleware import ShellMiddleware
|
|
21
|
+
from novacode_cli.skills.libraries import background_library
|
|
22
|
+
from novacode_cli.tools import docs_search, fetch_url, web_search
|
|
23
|
+
|
|
24
|
+
root = workspace_root()
|
|
25
|
+
return create_deep_agent(
|
|
26
|
+
name="general-purpose-async",
|
|
27
|
+
model=build_async_agent_model(),
|
|
28
|
+
tools=[web_search, docs_search, fetch_url],
|
|
29
|
+
backend=FilesystemBackend(root_dir=str(root), virtual_mode=True),
|
|
30
|
+
system_prompt=render_template("async_agents/general_purpose.jinja") + BACKGROUND_NOTE,
|
|
31
|
+
middleware=[
|
|
32
|
+
AsyncModelOverrideMiddleware(),
|
|
33
|
+
DelegatedApprovalMiddleware(),
|
|
34
|
+
ShellMiddleware(workspace_root=str(root)),
|
|
35
|
+
background_library("general-purpose-async"),
|
|
36
|
+
*background_context_middleware(),
|
|
37
|
+
],
|
|
38
|
+
context_schema=NovaAsyncContext,
|
|
39
|
+
)
|
|
40
|
+
|
|
41
|
+
|
|
42
|
+
graph = build_graph()
|