deepcode-hku 2.1.0__tar.gz → 2.2.0__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.
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/MANIFEST.in +1 -0
- {deepcode_hku-2.1.0/deepcode_hku.egg-info → deepcode_hku-2.2.0}/PKG-INFO +279 -15
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/README.md +277 -13
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/README_ZH.md +289 -59
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/THIRD_PARTY_NOTICES.md +12 -0
- deepcode_hku-2.2.0/app_server/config_watch.py +59 -0
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/app_server/dispatcher.py +153 -13
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/app_server/protocol/methods.py +4 -0
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/app_server/protocol/notifications.py +1 -0
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/app_server/server.py +21 -0
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/cli/exec_cli.py +10 -0
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/cli/execution_options.py +31 -0
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/cli/goal_runner.py +3 -0
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/cli/headless_turn.py +13 -0
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/cli/loop_cli.py +12 -10
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/cli/schedule_cli.py +5 -2
- deepcode_hku-2.2.0/cli/tui/animation.py +89 -0
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/cli/tui/app.py +406 -47
- deepcode_hku-2.2.0/cli/tui/commands.py +876 -0
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/cli/tui/input.py +82 -4
- deepcode_hku-2.2.0/cli/tui/picker.py +285 -0
- deepcode_hku-2.2.0/cli/tui/renderer.py +806 -0
- deepcode_hku-2.2.0/cli/tui/session_bridge.py +58 -0
- deepcode_hku-2.2.0/cli/tui/text.py +85 -0
- deepcode_hku-2.2.0/cli/tui/theme.py +200 -0
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/cli/tui/thread_client.py +127 -8
- deepcode_hku-2.2.0/core/agent_presets/__init__.py +377 -0
- deepcode_hku-2.2.0/core/agent_presets/builtin/code-reader.md +11 -0
- deepcode_hku-2.2.0/core/agent_presets/builtin/minimal.md +9 -0
- deepcode_hku-2.2.0/core/agent_runtime/compaction.py +165 -0
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/core/agent_runtime/context.py +31 -5
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/core/agent_runtime/helpers.py +45 -14
- deepcode_hku-2.2.0/core/agent_runtime/pruner.py +85 -0
- deepcode_hku-2.2.0/core/agent_runtime/repeat_guard.py +130 -0
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/core/agent_runtime/runner.py +503 -147
- deepcode_hku-2.2.0/core/agent_runtime/token_meter.py +161 -0
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/core/agent_runtime/tools/base.py +67 -0
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/core/agent_setup.py +40 -2
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/core/application/agent_adapter.py +22 -0
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/core/application/application.py +3 -0
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/core/application/config_store.py +32 -0
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/core/application/diagnostics_service.py +16 -0
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/core/application/event_service.py +31 -2
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/core/application/execution_coordinator.py +36 -2
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/core/application/llm_configuration_service.py +135 -19
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/core/application/session_runtime.py +265 -6
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/core/application/settings_service.py +21 -3
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/core/application/thread_service.py +308 -24
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/core/application/turn_service.py +128 -23
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/core/application/views.py +13 -0
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/core/application/workflow_service.py +1 -0
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/core/config.py +106 -1
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/core/domain/execution_profile.py +23 -1
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/core/domain/thread.py +18 -0
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/core/events/session.py +141 -5
- deepcode_hku-2.2.0/core/harness/agents/control.py +795 -0
- deepcode_hku-2.2.0/core/harness/agents/external_backend.py +302 -0
- deepcode_hku-2.2.0/core/harness/agents/structured_result.py +128 -0
- deepcode_hku-2.2.0/core/harness/command_guard.py +151 -0
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/core/harness/hooks/discovery.py +11 -2
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/core/harness/hooks/engine.py +26 -2
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/core/harness/hooks/events.py +8 -4
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/core/harness/hooks/execution.py +2 -0
- deepcode_hku-2.2.0/core/harness/memory.py +494 -0
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/core/harness/tools/__init__.py +6 -1
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/core/harness/tools/spawn_agent.py +87 -9
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/core/mcp/models.py +7 -0
- deepcode_hku-2.2.0/core/mcp/runtime.py +455 -0
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/core/mcp/tools.py +12 -4
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/core/observability/bus.py +44 -0
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/core/persistence/migrations.py +19 -0
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/core/persistence/thread_repository.py +20 -1
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/core/plugins/mcp.py +73 -1
- deepcode_hku-2.2.0/core/private_storage.py +322 -0
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/core/providers/base.py +33 -0
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/core/providers/catalog.py +24 -2
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/core/providers/catalog_service.py +151 -19
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/core/providers/openai_compat.py +6 -25
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/core/providers/profiles.py +62 -8
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/core/providers/registry.py +1 -10
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/core/sessions/store.py +41 -0
- deepcode_hku-2.2.0/core/sessions/transcript.py +189 -0
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/core/version.py +1 -1
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0/deepcode_hku.egg-info}/PKG-INFO +279 -15
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/deepcode_hku.egg-info/SOURCES.txt +47 -0
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/deepcode_hku.egg-info/requires.txt +1 -1
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/protocol/app-server.schema.json +324 -1
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/requirements.txt +1 -1
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/setup.py +1 -0
- deepcode_hku-2.2.0/tests/test_agent_presets.py +338 -0
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/tests/test_agent_runner_kernel.py +8 -1
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/tests/test_agent_session.py +34 -0
- deepcode_hku-2.2.0/tests/test_code_implementation_workspace.py +46 -0
- deepcode_hku-2.2.0/tests/test_code_indexer_concurrent.py +45 -0
- deepcode_hku-2.2.0/tests/test_command_executor_native_fence.py +86 -0
- deepcode_hku-2.2.0/tests/test_command_guard.py +85 -0
- deepcode_hku-2.2.0/tests/test_compaction_memory.py +172 -0
- deepcode_hku-2.2.0/tests/test_compaction_retry_memo.py +95 -0
- deepcode_hku-2.2.0/tests/test_config_layers.py +109 -0
- deepcode_hku-2.2.0/tests/test_context_note_sink.py +276 -0
- deepcode_hku-2.2.0/tests/test_context_window_overflow.py +59 -0
- deepcode_hku-2.2.0/tests/test_cross_process_run_lease.py +178 -0
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/tests/test_exec_sandbox_wiring.py +25 -0
- deepcode_hku-2.2.0/tests/test_external_subagent_backend.py +375 -0
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/tests/test_forge_provider.py +14 -25
- deepcode_hku-2.2.0/tests/test_git_command_url.py +42 -0
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/tests/test_loop_cli.py +3 -1
- deepcode_hku-2.2.0/tests/test_loop_detector.py +49 -0
- deepcode_hku-2.2.0/tests/test_manual_compact.py +163 -0
- deepcode_hku-2.2.0/tests/test_mcp_runtime_lazy.py +215 -0
- deepcode_hku-2.2.0/tests/test_memory.py +310 -0
- deepcode_hku-2.2.0/tests/test_model_visible_is_logged.py +175 -0
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/tests/test_plugins.py +83 -0
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/tests/test_private_storage.py +10 -0
- deepcode_hku-2.2.0/tests/test_private_storage_acl_once.py +173 -0
- deepcode_hku-2.2.0/tests/test_private_storage_windows.py +174 -0
- deepcode_hku-2.2.0/tests/test_repeat_call_reminder.py +187 -0
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/tests/test_session_compaction.py +26 -8
- deepcode_hku-2.2.0/tests/test_session_end_lifecycle.py +353 -0
- deepcode_hku-2.2.0/tests/test_session_run_lease.py +59 -0
- deepcode_hku-2.2.0/tests/test_session_transcript.py +72 -0
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/tests/test_skills.py +20 -0
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/tests/test_skills_product.py +11 -3
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/tests/test_spawn_agent.py +37 -44
- deepcode_hku-2.2.0/tests/test_stdlib_logging_bridge.py +102 -0
- deepcode_hku-2.2.0/tests/test_subagent_composition.py +288 -0
- deepcode_hku-2.2.0/tests/test_subagent_conversation.py +210 -0
- deepcode_hku-2.2.0/tests/test_subagent_late_result.py +108 -0
- deepcode_hku-2.2.0/tests/test_token_meter.py +88 -0
- deepcode_hku-2.2.0/tests/test_token_meter_wiring.py +80 -0
- deepcode_hku-2.2.0/tests/test_tool_call_timeout.py +212 -0
- deepcode_hku-2.2.0/tests/test_tool_description_quality.py +130 -0
- deepcode_hku-2.2.0/tests/test_tool_result_pruner.py +263 -0
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/tests/test_tui.py +793 -7
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/tests/test_tui_thread_client.py +49 -0
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/tools/code_implementation_server.py +22 -11
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/tools/code_indexer.py +3 -1
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/tools/command_executor.py +8 -0
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/tools/git_command.py +2 -2
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/utils/loop_detector.py +9 -5
- deepcode_hku-2.1.0/cli/tui/commands.py +0 -286
- deepcode_hku-2.1.0/cli/tui/renderer.py +0 -318
- deepcode_hku-2.1.0/cli/tui/session_bridge.py +0 -211
- deepcode_hku-2.1.0/cli/tui/theme.py +0 -41
- deepcode_hku-2.1.0/core/harness/agents/control.py +0 -485
- deepcode_hku-2.1.0/core/harness/memory.py +0 -238
- deepcode_hku-2.1.0/core/mcp/runtime.py +0 -268
- deepcode_hku-2.1.0/core/private_storage.py +0 -158
- deepcode_hku-2.1.0/tests/test_memory.py +0 -153
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/LICENSE +0 -0
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/__init__.py +0 -0
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/app_server/__init__.py +0 -0
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/app_server/__main__.py +0 -0
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/app_server/connection.py +0 -0
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/app_server/errors.py +0 -0
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/app_server/protocol/__init__.py +0 -0
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/app_server/protocol/codec.py +0 -0
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/app_server/protocol/models.py +0 -0
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/app_server/runtime_probe.py +0 -0
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/cli/__init__.py +0 -0
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/cli/automation_cli.py +0 -0
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/cli/automation_foreground.py +0 -0
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/cli/config_errors.py +0 -0
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/cli/init_config.py +0 -0
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/cli/mcp_cli.py +0 -0
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/cli/mcp_server.py +0 -0
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/cli/plugin_cli.py +0 -0
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/cli/project_trust.py +0 -0
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/cli/provider_cli.py +0 -0
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/cli/session_cli.py +0 -0
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/cli/skill_cli.py +0 -0
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/cli/transcript.py +0 -0
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/cli/tui/__init__.py +0 -0
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/cli/tui/__main__.py +0 -0
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/cli/tui/domain_events.py +0 -0
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/cli/tui/goal_controller.py +0 -0
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/core/__init__.py +0 -0
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/core/agent_runtime/__init__.py +0 -0
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/core/agent_runtime/goal_runtime.py +0 -0
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/core/agent_runtime/hook.py +0 -0
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/core/agent_runtime/injections.py +0 -0
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/core/agent_runtime/processes.py +0 -0
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/core/agent_runtime/runtime.py +0 -0
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/core/agent_runtime/tools/__init__.py +0 -0
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/core/agent_runtime/tools/alias.py +0 -0
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/core/agent_runtime/tools/mcp.py +0 -0
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/core/agent_runtime/tools/registry.py +0 -0
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/core/application/__init__.py +0 -0
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/core/application/application_lease.py +0 -0
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/core/application/approval_service.py +0 -0
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/core/application/automation_permission_policy.py +0 -0
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/core/application/automation_schedule_policy.py +0 -0
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/core/application/automation_scheduler.py +0 -0
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/core/application/automation_service.py +0 -0
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/core/application/errors.py +0 -0
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/core/application/execution_admission.py +0 -0
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/core/application/execution_handler_registry.py +0 -0
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/core/application/execution_registry.py +0 -0
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/core/application/execution_security_policy.py +0 -0
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/core/application/extension_service.py +0 -0
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/core/application/file_service.py +0 -0
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/core/application/git_service.py +0 -0
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/core/application/goal_extension.py +0 -0
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/core/application/goal_prompts/__init__.py +0 -0
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/core/application/goal_prompts/continuation.md +0 -0
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/core/application/goal_turn_port.py +0 -0
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/core/application/interactive_turn_router.py +0 -0
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/core/application/legacy_session_importer.py +0 -0
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/core/application/mcp_service.py +0 -0
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/core/application/plugin_service.py +0 -0
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/core/application/project_service.py +0 -0
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/core/application/session_deletion_service.py +0 -0
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/core/application/skill_service.py +0 -0
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/core/application/terminal_service.py +0 -0
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/core/application/test_service.py +0 -0
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/core/application/turn_input_service.py +0 -0
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/core/application/turn_projection.py +0 -0
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/core/application/turn_usage.py +0 -0
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/core/application/workflow_adapter.py +0 -0
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/core/application/workspace_service.py +0 -0
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/core/application/worktree_service.py +0 -0
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/core/compat/__init__.py +0 -0
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/core/compat/agent.py +0 -0
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/core/compat/mcp_app.py +0 -0
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/core/compat/parallel.py +0 -0
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/core/compat/request_params.py +0 -0
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/core/compat/runtime.py +0 -0
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/core/domain/__init__.py +0 -0
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/core/domain/approval.py +0 -0
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/core/domain/artifact.py +0 -0
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/core/domain/automation.py +0 -0
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/core/domain/common.py +0 -0
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/core/domain/event.py +0 -0
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/core/domain/execution_permission.py +0 -0
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/core/domain/execution_security.py +0 -0
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/core/domain/item.py +0 -0
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/core/domain/message_provenance.py +0 -0
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/core/domain/project.py +0 -0
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/core/domain/runtime_coordination.py +0 -0
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/core/domain/thread_goal.py +0 -0
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/core/domain/turn.py +0 -0
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/core/domain/workflow.py +0 -0
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/core/events/__init__.py +0 -0
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/core/events/llm_events.py +0 -0
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/core/events/parts.py +0 -0
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/core/events/protocol.py +0 -0
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/core/file_lock.py +0 -0
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/core/harness/__init__.py +0 -0
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/core/harness/agents/__init__.py +0 -0
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/core/harness/approval.py +0 -0
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/core/harness/code_mode/__init__.py +0 -0
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/core/harness/code_mode/_runner.py +0 -0
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/core/harness/code_mode/tool.py +0 -0
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/core/harness/collaboration.py +0 -0
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/core/harness/hooks/__init__.py +0 -0
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/core/harness/permissions.py +0 -0
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/core/harness/policy.py +0 -0
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/core/harness/sandbox.py +0 -0
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/core/harness/skills.py +0 -0
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/core/harness/snapshot.py +0 -0
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/core/harness/tools/diagnostics.py +0 -0
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/core/harness/tools/files.py +0 -0
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/core/harness/tools/goal.py +0 -0
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/core/harness/tools/patch.py +0 -0
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/core/harness/tools/plan.py +0 -0
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/core/harness/tools/replace.py +0 -0
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/core/harness/tools/search.py +0 -0
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/core/harness/tools/shell.py +0 -0
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/core/harness/tools/user_input.py +0 -0
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/core/harness/tools/web.py +0 -0
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/core/harness/windows_sandbox.py +0 -0
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/core/llm_runtime.py +0 -0
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/core/loop/__init__.py +0 -0
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/core/loop/autodream.py +0 -0
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/core/mcp/__init__.py +0 -0
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/core/mcp/connection.py +0 -0
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/core/mcp/naming.py +0 -0
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/core/mcp/oauth.py +0 -0
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/core/mcp/presets.json +0 -0
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/core/mcp/presets.py +0 -0
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/core/mcp/probe.py +0 -0
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/core/mcp/resolver.py +0 -0
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/core/mcp/schema.py +0 -0
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/core/network/__init__.py +0 -0
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/core/network/hostnames.py +0 -0
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/core/network/safe_http.py +0 -0
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/core/observability/__init__.py +0 -0
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/core/observability/context.py +0 -0
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/core/observability/records.py +0 -0
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/core/persistence/__init__.py +0 -0
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/core/persistence/automation_repository.py +0 -0
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/core/persistence/coordination_repository.py +0 -0
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/core/persistence/database.py +0 -0
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/core/persistence/errors.py +0 -0
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/core/persistence/event_repository.py +0 -0
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/core/persistence/execution_repository.py +0 -0
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/core/persistence/legacy_import_repository.py +0 -0
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/core/persistence/project_repository.py +0 -0
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/core/persistence/serde.py +0 -0
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/core/persistence/workflow_repository.py +0 -0
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/core/platform_compat.py +0 -0
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/core/platform_file_lock.py +0 -0
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/core/plugins/__init__.py +0 -0
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/core/plugins/domain.py +0 -0
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/core/plugins/formats/__init__.py +0 -0
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/core/plugins/formats/agent_plugins_v1.py +0 -0
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/core/plugins/host.py +0 -0
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/core/plugins/registry.py +0 -0
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/core/plugins/resolver.py +0 -0
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/core/plugins/skill_provider.py +0 -0
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/core/providers/__init__.py +0 -0
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/core/providers/anthropic.py +0 -0
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/core/providers/credentials.py +0 -0
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/core/providers/model_compat.py +0 -0
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/core/providers/openai_responses/__init__.py +0 -0
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/core/providers/openai_responses/converters.py +0 -0
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/core/providers/openai_responses/parsing.py +0 -0
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/core/providers/reasoning.py +0 -0
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/core/providers/timeouts.py +0 -0
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/core/reasoning.py +0 -0
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/core/schedule/__init__.py +0 -0
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/core/schedule/keepalive.py +0 -0
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/core/schedule/scheduler.py +0 -0
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/core/sessions/__init__.py +0 -0
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/core/sessions/continuation.py +0 -0
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/core/sessions/deletion.py +0 -0
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/core/sessions/index.py +0 -0
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/core/sessions/legacy_goal_decoder.py +0 -0
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/core/sessions/models.py +0 -0
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/core/sessions/thread_goal_store.py +0 -0
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/core/skills/__init__.py +0 -0
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/core/skills/aggregation.py +0 -0
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/core/skills/builtin/UPSTREAM_SOURCES.json +0 -0
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/core/skills/builtin/frontend-design/LICENSE.txt +0 -0
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/core/skills/builtin/frontend-design/SKILL.md +0 -0
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/core/skills/builtin/mcp-builder/LICENSE.txt +0 -0
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/core/skills/builtin/mcp-builder/SKILL.md +0 -0
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/core/skills/builtin/mcp-builder/reference/evaluation.md +0 -0
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/core/skills/builtin/mcp-builder/reference/mcp_best_practices.md +0 -0
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/core/skills/builtin/mcp-builder/reference/node_mcp_server.md +0 -0
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/core/skills/builtin/mcp-builder/reference/python_mcp_server.md +0 -0
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/core/skills/builtin/mcp-builder/scripts/connections.py +0 -0
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/core/skills/builtin/mcp-builder/scripts/evaluation.py +0 -0
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/core/skills/builtin/mcp-builder/scripts/example_evaluation.xml +0 -0
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/core/skills/builtin/mcp-builder/scripts/requirements.txt +0 -0
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/core/skills/builtin/review-agent/LICENSE.txt +0 -0
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/core/skills/builtin/review-agent/SKILL.md +0 -0
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/core/skills/builtin/review-agent/agents/openai.yaml +0 -0
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/core/skills/builtin/security-best-practices/LICENSE.txt +0 -0
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/core/skills/builtin/security-best-practices/SKILL.md +0 -0
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/core/skills/builtin/security-best-practices/agents/openai.yaml +0 -0
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/core/skills/builtin/security-best-practices/references/golang-general-backend-security.md +0 -0
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/core/skills/builtin/security-best-practices/references/javascript-express-web-server-security.md +0 -0
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/core/skills/builtin/security-best-practices/references/javascript-general-web-frontend-security.md +0 -0
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/core/skills/builtin/security-best-practices/references/javascript-jquery-web-frontend-security.md +0 -0
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/core/skills/builtin/security-best-practices/references/javascript-typescript-nextjs-web-server-security.md +0 -0
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/core/skills/builtin/security-best-practices/references/javascript-typescript-react-web-frontend-security.md +0 -0
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/core/skills/builtin/security-best-practices/references/javascript-typescript-vue-web-frontend-security.md +0 -0
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/core/skills/builtin/security-best-practices/references/python-django-web-server-security.md +0 -0
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/core/skills/builtin/security-best-practices/references/python-fastapi-web-server-security.md +0 -0
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/core/skills/builtin/security-best-practices/references/python-flask-web-server-security.md +0 -0
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/core/skills/builtin/security-ownership-map/LICENSE.txt +0 -0
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/core/skills/builtin/security-ownership-map/SKILL.md +0 -0
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/core/skills/builtin/security-ownership-map/agents/openai.yaml +0 -0
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/core/skills/builtin/security-ownership-map/references/neo4j-import.md +0 -0
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/core/skills/builtin/security-ownership-map/scripts/build_ownership_map.py +0 -0
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/core/skills/builtin/security-ownership-map/scripts/community_maintainers.py +0 -0
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/core/skills/builtin/security-ownership-map/scripts/query_ownership.py +0 -0
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/core/skills/builtin/security-ownership-map/scripts/run_ownership_map.py +0 -0
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/core/skills/builtin/security-threat-model/LICENSE.txt +0 -0
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/core/skills/builtin/security-threat-model/SKILL.md +0 -0
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/core/skills/builtin/security-threat-model/agents/openai.yaml +0 -0
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/core/skills/builtin/security-threat-model/references/prompt-template.md +0 -0
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/core/skills/builtin/security-threat-model/references/security-controls-and-assets.md +0 -0
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/core/skills/builtin/skill-creator/LICENSE.txt +0 -0
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/core/skills/builtin/skill-creator/SKILL.md +0 -0
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/core/skills/builtin/skill-creator/agents/openai.yaml +0 -0
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/core/skills/builtin/skill-creator/references/openai_yaml.md +0 -0
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/core/skills/builtin/skill-creator/scripts/generate_openai_yaml.py +0 -0
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/core/skills/builtin/skill-creator/scripts/init_skill.py +0 -0
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/core/skills/builtin/skill-creator/scripts/quick_validate.py +0 -0
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/core/skills/builtin/webapp-testing/LICENSE.txt +0 -0
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/core/skills/builtin/webapp-testing/SKILL.md +0 -0
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/core/skills/builtin/webapp-testing/examples/console_logging.py +0 -0
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/core/skills/builtin/webapp-testing/examples/element_discovery.py +0 -0
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/core/skills/builtin/webapp-testing/examples/static_html_automation.py +0 -0
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/core/skills/builtin/webapp-testing/scripts/with_server.py +0 -0
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/core/skills/builtin_registry.py +0 -0
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/core/skills/capabilities.py +0 -0
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/core/skills/catalog.py +0 -0
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/core/skills/config.py +0 -0
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/core/skills/host.py +0 -0
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/core/skills/management.py +0 -0
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/core/skills/metadata.py +0 -0
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/core/skills/models.py +0 -0
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/core/skills/monitor.py +0 -0
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/core/skills/prompting.py +0 -0
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/core/skills/provider.py +0 -0
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/core/skills/resources.py +0 -0
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/core/skills/roots.py +0 -0
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/core/skills/runtime.py +0 -0
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/core/team/__init__.py +0 -0
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/core/team/worktree.py +0 -0
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/core/verification.py +0 -0
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/deepcode.py +0 -0
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/deepcode_hku.egg-info/dependency_links.txt +0 -0
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/deepcode_hku.egg-info/entry_points.txt +0 -0
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/deepcode_hku.egg-info/top_level.txt +0 -0
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/eval/__init__.py +0 -0
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/eval/swebench/README.md +0 -0
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/eval/swebench/__init__.py +0 -0
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/eval/swebench/dataset.py +0 -0
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/eval/swebench/evaluate.py +0 -0
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/eval/swebench/instance.py +0 -0
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/eval/swebench/predict.py +0 -0
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/eval/swebench/report.py +0 -0
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/eval/swebench/run.py +0 -0
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/prompts/__init__.py +0 -0
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/prompts/code_prompts.py +0 -0
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/pyproject.toml +0 -0
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/schema/mcp-agent.config.schema.json +0 -0
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/setup.cfg +0 -0
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/tests/test_apply_patch.py +0 -0
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/tests/test_autodream.py +0 -0
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/tests/test_automation_cli.py +0 -0
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/tests/test_automation_foreground.py +0 -0
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/tests/test_catalog.py +0 -0
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/tests/test_cli_logging_bootstrap.py +0 -0
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/tests/test_code_indexer_output.py +0 -0
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/tests/test_code_mode.py +0 -0
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/tests/test_collaboration.py +0 -0
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/tests/test_config_errors.py +0 -0
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/tests/test_config_layering.py +0 -0
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/tests/test_desktop_ci_scope.py +0 -0
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/tests/test_desktop_release_scripts.py +0 -0
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/tests/test_diagnostics.py +0 -0
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/tests/test_document_conversion.py +0 -0
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/tests/test_exec_cli.py +0 -0
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/tests/test_fuzzy_replace.py +0 -0
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/tests/test_goal_runtime.py +0 -0
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/tests/test_harness_approval.py +0 -0
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/tests/test_harness_permissions.py +0 -0
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/tests/test_harness_policy.py +0 -0
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/tests/test_harness_sandbox.py +0 -0
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/tests/test_hooks.py +0 -0
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/tests/test_init_config.py +0 -0
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/tests/test_llm_events.py +0 -0
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/tests/test_llm_runtime_connections.py +0 -0
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/tests/test_mcp_cli.py +0 -0
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/tests/test_mcp_oauth.py +0 -0
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/tests/test_mcp_runtime.py +0 -0
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/tests/test_mcp_server.py +0 -0
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/tests/test_model_catalog_service.py +0 -0
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/tests/test_model_compat.py +0 -0
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/tests/test_native_file_tools.py +0 -0
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/tests/test_openspace_recipe.py +0 -0
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/tests/test_parts.py +0 -0
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/tests/test_pdf_downloader_security.py +0 -0
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/tests/test_plan_tool.py +0 -0
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/tests/test_platform_compat.py +0 -0
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/tests/test_plugin_cli.py +0 -0
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/tests/test_provider_cli.py +0 -0
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/tests/test_provider_timeouts.py +0 -0
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/tests/test_python_distribution_release.py +0 -0
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/tests/test_reasoning.py +0 -0
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/tests/test_reasoning_capabilities.py +0 -0
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/tests/test_reasoning_catalog_alignment.py +0 -0
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/tests/test_reasoning_providers.py +0 -0
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/tests/test_requesty_provider.py +0 -0
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/tests/test_safe_http.py +0 -0
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/tests/test_schedule.py +0 -0
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/tests/test_session_cli.py +0 -0
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/tests/test_session_index.py +0 -0
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/tests/test_session_runtime.py +0 -0
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/tests/test_shell_search_tools.py +0 -0
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/tests/test_skill_capabilities.py +0 -0
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/tests/test_skill_cli.py +0 -0
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/tests/test_skill_host.py +0 -0
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/tests/test_skill_provider.py +0 -0
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/tests/test_snapshot.py +0 -0
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/tests/test_swebench_harness.py +0 -0
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/tests/test_team_worktree.py +0 -0
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/tests/test_thinking_requires_capable_model.py +0 -0
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/tests/test_tui_domain_events.py +0 -0
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/tests/test_turn_input_mailbox.py +0 -0
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/tests/test_turn_projection.py +0 -0
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/tests/test_turn_queue.py +0 -0
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/tests/test_turn_steering.py +0 -0
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/tests/test_unified_impl_workflow.py +0 -0
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/tests/test_user_input_tool.py +0 -0
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/tests/test_verification.py +0 -0
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/tests/test_version_metadata.py +0 -0
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/tests/test_web_tools.py +0 -0
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/tests/test_workflow_compatibility.py +0 -0
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/tests/test_workflow_interactions.py +0 -0
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/tests/test_zhipu_thinking_wire.py +0 -0
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/tools/__init__.py +0 -0
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/tools/code_reference_indexer.py +0 -0
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/tools/document_conversion.py +0 -0
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/tools/document_segmentation_server.py +0 -0
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/tools/indexer_config.yaml +0 -0
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/tools/pdf_converter.py +0 -0
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/tools/pdf_downloader.py +0 -0
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/tools/pdf_downloader_server.py +0 -0
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/tools/pdf_utils.py +0 -0
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/utils/__init__.py +0 -0
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/utils/file_processor.py +0 -0
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/utils/llm_utils.py +0 -0
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/uv.lock +0 -0
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/workflows/__init__.py +0 -0
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/workflows/agent_orchestration_engine.py +0 -0
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/workflows/agents/__init__.py +0 -0
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/workflows/agents/code_implementation_agent.py +0 -0
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/workflows/agents/document_segmentation_agent.py +0 -0
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/workflows/agents/memory_agent_concise.py +0 -0
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/workflows/agents/requirement_analysis_agent.py +0 -0
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/workflows/code_implementation_workflow.py +0 -0
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/workflows/codebase_index_workflow.py +0 -0
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/workflows/environment.py +0 -0
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/workflows/interactions/USAGE.md +0 -0
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/workflows/interactions/__init__.py +0 -0
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/workflows/interactions/base.py +0 -0
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/workflows/interactions/integration.py +0 -0
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/workflows/interactions/plan_review.py +0 -0
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/workflows/interactions/requirement_analysis.py +0 -0
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/workflows/plan_review_runtime.py +0 -0
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/workflows/planning_runtime.py +0 -0
- {deepcode_hku-2.1.0 → deepcode_hku-2.2.0}/workflows/workflow_context.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: deepcode-hku
|
|
3
|
-
Version: 2.
|
|
3
|
+
Version: 2.2.0
|
|
4
4
|
Summary: Open agentic coding with durable sessions, goals, and verification
|
|
5
5
|
Home-page: https://github.com/HKUDS/DeepCode
|
|
6
6
|
Author: DeepCode Team
|
|
@@ -37,7 +37,7 @@ Requires-Dist: openapi
|
|
|
37
37
|
Requires-Dist: pathlib2
|
|
38
38
|
Requires-Dist: prompt_toolkit>=3.0.0
|
|
39
39
|
Requires-Dist: pydantic-settings>=2.14.2
|
|
40
|
-
Requires-Dist: pypdf>=6.
|
|
40
|
+
Requires-Dist: pypdf>=6.16.1
|
|
41
41
|
Requires-Dist: PyYAML>=6.0
|
|
42
42
|
Requires-Dist: reportlab>=3.5.0
|
|
43
43
|
Requires-Dist: rich>=13.0.0
|
|
@@ -88,6 +88,10 @@ Dynamic: summary
|
|
|
88
88
|
|
|
89
89
|
### *Advancing Code Generation with Multi-Agent Systems*
|
|
90
90
|
|
|
91
|
+
<p align="center">
|
|
92
|
+
<a href="https://hkuds.github.io/DeepCode/" target="_blank"><img alt="Website — hkuds.github.io/DeepCode" src="https://img.shields.io/badge/Website-hkuds.github.io%2FDeepCode%20%E2%86%97-06B6D4?style=for-the-badge&labelColor=0B1116" height="36"></a>
|
|
93
|
+
</p>
|
|
94
|
+
|
|
91
95
|
<!-- <p align="center">
|
|
92
96
|
<img src="https://img.shields.io/badge/Version-1.0.0-00d4ff?style=for-the-badge&logo=rocket&logoColor=white" alt="Version">
|
|
93
97
|
|
|
@@ -179,25 +183,28 @@ Skills, permissions, Goals, and Automations. See the
|
|
|
179
183
|
- [📰 News](#news)
|
|
180
184
|
- [🧠 What Deep means in DeepCode](#what-deep-means-in-deepcode)
|
|
181
185
|
- [🚀 Core capabilities](#core-capabilities)
|
|
182
|
-
- [
|
|
183
|
-
- [Loop Engineering](#loop-engineering)
|
|
184
|
-
- [Context Engineering](#context-engineering)
|
|
186
|
+
- [Work directly in your repository](#work-directly-in-your-repository)
|
|
187
|
+
- [Goal-driven Loop Engineering](#goal-driven-loop-engineering)
|
|
185
188
|
- [Evidence-driven completion](#evidence-driven-completion)
|
|
186
|
-
- [Durable
|
|
187
|
-
- [
|
|
188
|
-
- [
|
|
189
|
+
- [Durable Sessions and project context](#durable-sessions-and-project-context)
|
|
190
|
+
- [Your models, your reasoning settings](#your-models-your-reasoning-settings)
|
|
191
|
+
- [Reusable Skills](#reusable-skills)
|
|
192
|
+
- [Permissions you can understand](#permissions-you-can-understand)
|
|
193
|
+
- [Parallel agents without file collisions](#parallel-agents-without-file-collisions)
|
|
194
|
+
- [Automate repeatable engineering work](#automate-repeatable-engineering-work)
|
|
195
|
+
- [Paper2Code](#paper2code)
|
|
189
196
|
- [⚡ Quick start](#quick-start)
|
|
190
197
|
- [🧭 Using DeepCode](#using-deepcode)
|
|
191
198
|
- [⚙️ Headless and automation](docs/HEADLESS_AND_AUTOMATION.md)
|
|
192
|
-
- [🔬 Paper2Code](#paper2code)
|
|
199
|
+
- [🔬 Paper2Code](#paper2code-1)
|
|
193
200
|
- [The original architecture](#the-original-architecture)
|
|
194
201
|
- [Research results](#research-results)
|
|
195
|
-
- [🎬 Live demonstrations](
|
|
202
|
+
- [🎬 Live demonstrations](#-live-demonstrations)
|
|
196
203
|
- [🛠️ Development](#development)
|
|
197
|
-
- [⭐ Star History](
|
|
198
|
-
- [🙏 Appreciation](
|
|
199
|
-
- [📖 Citation](
|
|
200
|
-
- [📄 License](
|
|
204
|
+
- [⭐ Star History](#-star-history)
|
|
205
|
+
- [🙏 Appreciation](#-appreciation)
|
|
206
|
+
- [📖 Citation](#-citation)
|
|
207
|
+
- [📄 License](#-license)
|
|
201
208
|
|
|
202
209
|
<p align="center">
|
|
203
210
|
<img src="assets/readme/deepcode-overview.png" alt="A verified task completed with DeepCode" width="1080" />
|
|
@@ -205,6 +212,246 @@ Skills, permissions, Goals, and Automations. See the
|
|
|
205
212
|
|
|
206
213
|
## News
|
|
207
214
|
|
|
215
|
+
**2026-09-06 · DeepCode v2.2.0: Session context-window caps, compaction that leaves a memory, and a fully localized Desktop**
|
|
216
|
+
|
|
217
|
+
- **Cap a Session's context window.** `/context 64k` in the TUI or the
|
|
218
|
+
preset next to the Desktop model picker narrows the model's published
|
|
219
|
+
window for future Turns; the cap is frozen into each accepted Turn and
|
|
220
|
+
feeds the compaction gate directly. `/context auto` follows the model
|
|
221
|
+
again. (#203)
|
|
222
|
+
- **Compaction leaves a note in memory, and memory notes cannot escape their
|
|
223
|
+
boundary.** A compaction summary is deposited into the workspace memory on
|
|
224
|
+
a background thread, and injected memory content is wrapped in an
|
|
225
|
+
`<untrusted-data>` boundary whose closing tags are escaped, so a poisoned
|
|
226
|
+
note cannot forge instructions. (#204)
|
|
227
|
+
- **Appearance settings speak Simplified Chinese too**, completing the
|
|
228
|
+
Desktop shell's zh-CN coverage. (#202)
|
|
229
|
+
|
|
230
|
+
**2026-09-03 · Desktop catalog race, an honest command screen, GLM-5.2, and two dependency bumps**
|
|
231
|
+
|
|
232
|
+
- **Switching projects no longer strands the MCP catalog.** A probe or
|
|
233
|
+
mutation started in one project can no longer invalidate the load of the
|
|
234
|
+
project you switched to, so the catalog stops sticking in a loading state.
|
|
235
|
+
(#201)
|
|
236
|
+
- **The legacy `execute_bash` screen matches on argv, not substrings.**
|
|
237
|
+
`rm -r -f`, `--recursive --force`, `chmod 0777` and a destructive stage
|
|
238
|
+
inside a pipeline are caught; `touch rm-rf-notes.txt` is not. It stays a
|
|
239
|
+
cheap first pass in front of the sandbox, which remains the boundary.
|
|
240
|
+
(#195)
|
|
241
|
+
- **GLM-5.2 is in the model catalog** — 1M context, 128K output,
|
|
242
|
+
`reasoning_effort` `high` / `max`. (from #198)
|
|
243
|
+
- **Security bumps:** `browserslist` past GHSA-c83g-rgw3-j3cx in the Desktop
|
|
244
|
+
toolchain, and the App Server sidecar's `pypdf` to 6.16.1
|
|
245
|
+
(CVE-2026-84309/84310/84311).
|
|
246
|
+
|
|
247
|
+
**2026-08-28 · Community fixes: plugin credential warnings and a wider zh-CN Desktop**
|
|
248
|
+
|
|
249
|
+
- **Agent Plugin manifests now warn about plaintext credentials.** Literal
|
|
250
|
+
`env` and `headers` values in a Plugin's `mcp.json` that look like secrets
|
|
251
|
+
produce a redacted warning instead of loading silently, and the docs point
|
|
252
|
+
to runtime credential bindings instead. (#194, landed 2026-08-27)
|
|
253
|
+
- **Most of the Desktop shell speaks Simplified Chinese.** The thread header,
|
|
254
|
+
Goal rail, approval card, inspector, sidebar, and the Updates and
|
|
255
|
+
Diagnostics settings gained about a hundred zh-CN strings; English stays
|
|
256
|
+
the inline default. (#187)
|
|
257
|
+
|
|
258
|
+
**2026-08-25 · Command executors close two bypasses**
|
|
259
|
+
|
|
260
|
+
- **Case and whitespace no longer slip past the dangerous-command check**, and
|
|
261
|
+
the native `mkdir`/`touch`/`rm`/`cp`/`mv` fast path declines any operand
|
|
262
|
+
outside the working directory, so those commands run through the sandbox
|
|
263
|
+
like every other command instead of as in-process file operations. (#193)
|
|
264
|
+
|
|
265
|
+
**2026-08-23 · Five repaired contributions land together**
|
|
266
|
+
|
|
267
|
+
- **MCP servers can start lazily.** `deferLoading` keeps a server off until
|
|
268
|
+
the agent calls `activate_server`; deferred servers stay reachable and
|
|
269
|
+
cancellation-safe. (#184)
|
|
270
|
+
- **Hooks see the whole lifecycle.** `SessionEnd` runs exactly once at
|
|
271
|
+
teardown and `PreCompact` can inject context before a compaction. (#172)
|
|
272
|
+
- **Instruction files can be excluded, and the dangerous preset must be named
|
|
273
|
+
explicitly.** (#186)
|
|
274
|
+
- **Windows private files get a fail-safe ACL**, applied once at creation
|
|
275
|
+
(#164); the Desktop sidecar's pip pin also moved past PYSEC-2026-3721 (#191).
|
|
276
|
+
|
|
277
|
+
**2026-08-19 · Sessions that survive resume, compaction, and a second window**
|
|
278
|
+
|
|
279
|
+
- **Resuming a session restores what the agent did, not only what it said.**
|
|
280
|
+
Tool calls and their results are part of the canonical record now, so a
|
|
281
|
+
resumed agent can answer "what did you just run?". A test makes the rule
|
|
282
|
+
executable: every request a run sends must be rebuildable from the session
|
|
283
|
+
file alone.
|
|
284
|
+
- **Compaction keeps the recent tail.** The checkpoint replaces the older
|
|
285
|
+
range and everything recent survives verbatim — assistant messages and tool
|
|
286
|
+
results included — instead of dropping them and putting the summary last.
|
|
287
|
+
Manual `/compact` used to refuse almost every real conversation; it works,
|
|
288
|
+
and the checkpoint speaks as the model's own history, so it stops being
|
|
289
|
+
discounted as someone else's report.
|
|
290
|
+
- **Context pressure is measured, not guessed.** The gate now anchors on the
|
|
291
|
+
size the provider itself reports. The built-in estimator prices Chinese
|
|
292
|
+
prose at more than twice its real cost, which was compacting Chinese
|
|
293
|
+
conversations at roughly half the context they could hold.
|
|
294
|
+
- **Two windows on one Session no longer crash each other.** Each Session
|
|
295
|
+
now has one live writer, enforced by an OS lock held around a turn: the
|
|
296
|
+
second window gets a sentence naming who is running it, instead of a
|
|
297
|
+
process dying to a database constraint about half the time. Alternate
|
|
298
|
+
freely between Desktop and the terminal — just not mid-turn.
|
|
299
|
+
|
|
300
|
+
**2026-08-18 · The runtime learns dsh's context discipline, and the TUI gets a face**
|
|
301
|
+
|
|
302
|
+
- **A new turn no longer throws away the prompt cache.** The environment
|
|
303
|
+
block used to be re-inserted before your newest message every turn, so each
|
|
304
|
+
turn diverged from the previous request right where that block had been:
|
|
305
|
+
7,420 prompt tokens recomputed at every turn boundary, now 28.
|
|
306
|
+
- **The TUI has a logo, a live status line, and tool cards that read.** A
|
|
307
|
+
spinner and a sweep while work runs, paths written the way you would type
|
|
308
|
+
them, the plan tool's checklist visible at last, and a turn footer with its
|
|
309
|
+
time and token usage. An idle TUI costs nothing to animate.
|
|
310
|
+
- **A source-level comparison against dsh became a plan.** Where the message
|
|
311
|
+
list the model sees comes from, what compaction should keep, and what the
|
|
312
|
+
session record must contain — measured and written down, and four
|
|
313
|
+
unreferenced documents retired.
|
|
314
|
+
|
|
315
|
+
**2026-08-17 · Fixes from a review pass over the new settings and TUI work**
|
|
316
|
+
|
|
317
|
+
- **A declared model reads the same everywhere.** Per-model declarations now
|
|
318
|
+
shape the catalog a picker shows, not only what a Turn executes with, so a
|
|
319
|
+
context window you set to avoid overflow is the number you see.
|
|
320
|
+
- **Adopting fetched models shows them immediately.** The catalog cache is
|
|
321
|
+
keyed on the settings that shape it, instead of serving the previous remote
|
|
322
|
+
listing for up to an hour.
|
|
323
|
+
- **Escape closes one thing.** Dismissing the provider editor no longer tears
|
|
324
|
+
down the settings dialog around it and discards a half-typed key.
|
|
325
|
+
- **A removed model row takes its own capacities with it** rather than leaving
|
|
326
|
+
them on the row that survived — which then saved them onto the wrong model.
|
|
327
|
+
- **Automated runs keep their tools.** A default agent preset chosen for
|
|
328
|
+
interactive chatting no longer narrows `deepcode exec` and goal runs behind
|
|
329
|
+
your back.
|
|
330
|
+
- **The provider section says it is user-scoped**, instead of letting the
|
|
331
|
+
dialog's project write scope imply otherwise.
|
|
332
|
+
|
|
333
|
+
**2026-08-16 · The TUI answers every bare command with a selector**
|
|
334
|
+
|
|
335
|
+
- **Type the command, pick from a list.** `/model` now opens the full model
|
|
336
|
+
directory — every configured connection's catalog (remote snapshot or
|
|
337
|
+
declared entries, near a thousand rows on OpenRouter) in one filterable
|
|
338
|
+
selector with the current route pinned first and each model's published
|
|
339
|
+
reasoning ladder on Shift+Tab; Enter commits model and effort together.
|
|
340
|
+
`/preset`, `/effort`, `/permissions`, `/transcript` and `/skill` join
|
|
341
|
+
`/resume`: a bare invocation opens a picker with the current choice
|
|
342
|
+
marked, while argument forms and piped runs keep their text paths.
|
|
343
|
+
- **Background tracebacks can no longer shred the transcript.** Stdlib
|
|
344
|
+
logging is bridged into loguru with call-site fidelity, so file-only
|
|
345
|
+
transports really are file-only; and the durable event relay backs off
|
|
346
|
+
exponentially on persistent failure — one traceback per streak, one-line
|
|
347
|
+
repeats, a recovery notice.
|
|
348
|
+
|
|
349
|
+
**2026-08-15 · Settings grow up: a dsh-style dialog, declared models, and a safer config**
|
|
350
|
+
|
|
351
|
+
- **A connection's key now reaches exactly the requests it was resolved
|
|
352
|
+
for.** Building a provider no longer exports the key into the process
|
|
353
|
+
environment, where every same-template connection could pick it up as its
|
|
354
|
+
own; removing a provider un-configures every key source instead of letting
|
|
355
|
+
it reappear; and when a launch environment variable shadows a pasted key,
|
|
356
|
+
the editor says which one and that it wins. Verification also works from
|
|
357
|
+
async hosts now.
|
|
358
|
+
- **The agent-preset picker grew up.** A menu with per-preset descriptions
|
|
359
|
+
and trust marking replaces the cramped native dropdown, the duplicate
|
|
360
|
+
"Default" row is gone, and a started session shows a read-only label of
|
|
361
|
+
what it runs.
|
|
362
|
+
- **Manage what each connection actually serves.** The provider editor can
|
|
363
|
+
fetch the live model list from a connection's endpoint and adopt picked
|
|
364
|
+
models as its manual list, an environment-provided key locks the paste
|
|
365
|
+
field instead of silently outranking it, and connection rows show the
|
|
366
|
+
discovered model count.
|
|
367
|
+
- **`deepcode chat` reads like a terminal app, not a log.** A restyled
|
|
368
|
+
transcript — brand-gradient banner, status-colored tool cards with result
|
|
369
|
+
elbows, block spacing, word-boundary wrapping — plus streaming that
|
|
370
|
+
survives the prompt redraw with real colors instead of `?[36m` litter.
|
|
371
|
+
- **Desktop Settings became a dsh-style dialog.** General / Models /
|
|
372
|
+
Plugins / Agent presets in a left rail, with Open configuration file and
|
|
373
|
+
the write-scope picker in the header. General gains the five canonical
|
|
374
|
+
rows — default agent preset for new sessions (applied as a by-value
|
|
375
|
+
snapshot at creation, CLI and TUI included), permissions, language
|
|
376
|
+
(English/中文, first translated batch), Light/Dark/System appearance
|
|
377
|
+
cards, and a steer-or-queue busy-Enter preference.
|
|
378
|
+
- **Models are declarations now.** `manualModels` entries can carry a
|
|
379
|
+
label, capacities, and the published reasoning ladder; declarations are
|
|
380
|
+
authoritative offline for execution profiles and every picker. Discovery
|
|
381
|
+
probes the editor form as shown — unsaved URL or key included — and
|
|
382
|
+
adopted picks land as accurate declaration rows. Config writes gained
|
|
383
|
+
optimistic concurrency (a changed file conflicts instead of being
|
|
384
|
+
clobbered) and a settings.changed push keeps an open dialog fresh.
|
|
385
|
+
- **Session and model commands now hold up.** `/resume` and `/model` open
|
|
386
|
+
an inline selector — type to filter by title, arrows move, Enter picks,
|
|
387
|
+
Tab flips directory scope, Shift+Tab cycles the route's published
|
|
388
|
+
reasoning effort — and resume replays the conversation tail. Bare model
|
|
389
|
+
names resolve their connection, typos no longer kill the REPL, and
|
|
390
|
+
`/compact` summarizes with the model you actually selected. New verbs:
|
|
391
|
+
`/rename`, `/delete`, `/retry`, with tab completion for session ids,
|
|
392
|
+
transcript modes, permission presets, and effort levels.
|
|
393
|
+
|
|
394
|
+
<details>
|
|
395
|
+
<summary><strong>Earlier August 2026 updates</strong></summary>
|
|
396
|
+
|
|
397
|
+
**2026-08-14 · Subagent runtime, compaction, and one-way persistence**
|
|
398
|
+
|
|
399
|
+
- **Delegate to Codex or Claude Code as a subagent.** `spawn_agent` gains
|
|
400
|
+
external backends that run the installed CLI with a scrubbed environment and
|
|
401
|
+
strict success criteria, while native subagents gain personas, validated
|
|
402
|
+
tool allowlists, JSON output schemas, follow-up conversation via
|
|
403
|
+
`send_message`, and full transcripts in the parent session.
|
|
404
|
+
- **Guard the loop.** Tools can declare timeouts the runner enforces, and a
|
|
405
|
+
repeat-call tracker injects an escalating, model-visible reminder when
|
|
406
|
+
identical calls repeat.
|
|
407
|
+
- **Compact on demand.** `/compact` summarizes older turns in the resident
|
|
408
|
+
context; every refusal is a stable, readable reason (busy Turn, too little
|
|
409
|
+
history, a failed or non-shrinking summary) and canonical session data is
|
|
410
|
+
never touched.
|
|
411
|
+
- **See which file sets every configuration value.** Diagnostics report each
|
|
412
|
+
configured leaf with its providing layer and a bounded preview;
|
|
413
|
+
credential-shaped subtrees are redacted whole. A verbatim deepseek-harness
|
|
414
|
+
Skill also loads unchanged from `.agents/skills`.
|
|
415
|
+
- **Relieve context pressure with the cheapest sufficient measure.** Under
|
|
416
|
+
pressure the runtime first middle-prunes oversized tool results — a free,
|
|
417
|
+
convergent pass covering MCP and custom tools alike — and only summarizes
|
|
418
|
+
if that is not enough; the summarization call replays the routed request as
|
|
419
|
+
a genuine prefix so provider prompt caching is reused, and a summary that
|
|
420
|
+
would not shrink the conversation is rejected.
|
|
421
|
+
- **Deleted sessions stay deleted.** The Desktop projection no longer adopts
|
|
422
|
+
a thread back into canonical storage unless SQLite genuinely owns it
|
|
423
|
+
(legacy import or automation bootstrap), and every mid-turn message the
|
|
424
|
+
model sees — goal updates, recovery prompts, injected results — now lands
|
|
425
|
+
in the canonical session log, so a resumed session rebuilds exactly the
|
|
426
|
+
history the model saw.
|
|
427
|
+
- **Open a session as a different agent.** Named agent presets bundle a
|
|
428
|
+
persona and a tool face — `deepcode exec --preset code-reader`, `/preset`
|
|
429
|
+
in the TUI, or the picker beside the Desktop model control — while the
|
|
430
|
+
model route and permissions stay independent knobs. A preset is one
|
|
431
|
+
markdown agent file in the `.claude/agents`/`.agents` dialect, so
|
|
432
|
+
definitions written for other harnesses load unchanged; the resolved
|
|
433
|
+
composition is snapshotted into the session record and locked once the
|
|
434
|
+
conversation starts, at which point the Desktop picker becomes a
|
|
435
|
+
read-only label of what the session runs.
|
|
436
|
+
|
|
437
|
+
**2026-08-13 · Desktop typography, themes, and native controls**
|
|
438
|
+
|
|
439
|
+
- **Make the type-size preference actually resize the app.** Every interface
|
|
440
|
+
size now derives from one rem-based scale, so the Appearance slider moves the
|
|
441
|
+
whole window. It previously moved almost nothing: 255 hardcoded pixel values
|
|
442
|
+
ignored it, and the smallest labels sat at 7px.
|
|
443
|
+
- **Pick from eight themes, including high contrast.** Light, Dark, Paper, and
|
|
444
|
+
Midnight are joined by two terracotta palettes and a WCAG AAA high-contrast
|
|
445
|
+
option. Tests compare each palette against the complete token set, so a theme
|
|
446
|
+
cannot half-apply and leave a stray default showing through.
|
|
447
|
+
- **See one design language rather than the operating system's.** Sliders,
|
|
448
|
+
selects, and focus rings now follow the active theme instead of falling back
|
|
449
|
+
to platform chrome, and an explicit theme choice moves `color-scheme` with it
|
|
450
|
+
so native controls stop rendering in the OS scheme.
|
|
451
|
+
- **Read the quiet text.** The light palette's secondary tones and every accent
|
|
452
|
+
colour were refitted to clear WCAG AA against the surfaces they actually sit
|
|
453
|
+
on, several of which previously measured under 3:1.
|
|
454
|
+
|
|
208
455
|
**2026-08-12 · Reviewed upstream core Skills**
|
|
209
456
|
|
|
210
457
|
- **Start with reviewed upstream Skills.** DeepCode now bundles eight pinned,
|
|
@@ -342,6 +589,8 @@ DeepCode v2.0 is built to help you spend less time supervising every step and
|
|
|
342
589
|
more time shipping software you are proud of. We cannot wait to see what you
|
|
343
590
|
build! 🚀
|
|
344
591
|
|
|
592
|
+
</details>
|
|
593
|
+
|
|
345
594
|
<details>
|
|
346
595
|
<summary><strong>Earlier 2026 milestones</strong></summary>
|
|
347
596
|
|
|
@@ -704,6 +953,10 @@ Open **Settings → AI providers** after Desktop starts.
|
|
|
704
953
|
|
|
705
954
|
## Using DeepCode
|
|
706
955
|
|
|
956
|
+
Prefer a guided walkthrough? The [teaching guides](docs/guide/README.md) cover
|
|
957
|
+
the same ground page by page — first session, the TUI, sessions, models,
|
|
958
|
+
skills and memory, and headless automation — with worked examples.
|
|
959
|
+
|
|
707
960
|
### Sessions
|
|
708
961
|
|
|
709
962
|
Every task lives in a durable Session attached to its original Project. Open a
|
|
@@ -719,14 +972,22 @@ and CLI without export or conversion.
|
|
|
719
972
|
| Attach a file | Use the composer attachment | `@path/to/file` |
|
|
720
973
|
| Change the next Turn's model | Composer model picker | `/model` |
|
|
721
974
|
| Adjust Thinking effort | Composer effort picker | `/effort` |
|
|
975
|
+
| Cap the Session context window | Model picker context control | `/context` |
|
|
722
976
|
| Choose tool access | Composer access picker | `/permissions` |
|
|
723
977
|
| Load Skills for the next Turn | Composer Skills control | `/skill <name>` |
|
|
724
978
|
| Create a reusable Skill | **Skills → Create Skill** | `$skill-creator` |
|
|
725
979
|
| Set or revise a durable Goal | Goal panel | `/goal` |
|
|
980
|
+
| Queue the next instruction | Composer while a Turn runs | `/queue <text>` |
|
|
726
981
|
| Stop the active Turn | Use the stop control | `/stop` |
|
|
982
|
+
| Re-run the last Turn | Retry control on the Turn | `/retry` |
|
|
983
|
+
| Compact a long conversation | Automatic under pressure | `/compact` (also automatic) |
|
|
984
|
+
| Change transcript detail | — | `/transcript` or `Ctrl+O` |
|
|
985
|
+
| Rename or delete a Session | Session context menu | `/rename <title>` · `/delete <id>` |
|
|
727
986
|
|
|
728
987
|
Session history, tool activity, approvals, Goal state, and verification evidence
|
|
729
|
-
remain together.
|
|
988
|
+
remain together. A Session has one live writer at a time: Desktop and the CLI
|
|
989
|
+
may hold it open together, but if one is mid-Turn the other refuses new input
|
|
990
|
+
with a message naming the holder instead of corrupting shared history. Archiving hides a Session without deleting its history;
|
|
730
991
|
permanent deletion removes the Session records but never repository files.
|
|
731
992
|
|
|
732
993
|
### Connections and models
|
|
@@ -734,6 +995,9 @@ permanent deletion removes the Session records but never repository files.
|
|
|
734
995
|
Desktop provides connection setup and verification under **Settings → AI
|
|
735
996
|
providers**. In the CLI, `/model` changes the connection and model for future
|
|
736
997
|
Turns, while `/effort` selects a Thinking level supported by that model.
|
|
998
|
+
Use the model picker's context control, or `/context 64k` in the TUI, to make
|
|
999
|
+
future Turns compact history sooner; `/context auto` restores the model's
|
|
1000
|
+
published window.
|
|
737
1001
|
|
|
738
1002
|
Model changes never rewrite earlier history or alter an active Turn. Thinking
|
|
739
1003
|
effort controls the request sent to the provider; transcript detail controls
|