deepcode-hku 2.2.0__tar.gz → 2.3.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.
Files changed (655) hide show
  1. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/MANIFEST.in +5 -1
  2. {deepcode_hku-2.2.0/deepcode_hku.egg-info → deepcode_hku-2.3.1}/PKG-INFO +273 -129
  3. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/README.md +269 -127
  4. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/README_ZH.md +213 -111
  5. deepcode_hku-2.3.1/app_server/__init__.py +1 -0
  6. deepcode_hku-2.3.1/app_server/__main__.py +124 -0
  7. deepcode_hku-2.3.1/app_server/blocking_client.py +185 -0
  8. deepcode_hku-2.3.1/app_server/browser_auth.py +72 -0
  9. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/app_server/config_watch.py +6 -2
  10. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/app_server/connection.py +3 -0
  11. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/app_server/dispatcher.py +180 -6
  12. deepcode_hku-2.3.1/app_server/host.py +147 -0
  13. deepcode_hku-2.3.1/app_server/launchd.py +227 -0
  14. deepcode_hku-2.3.1/app_server/managed_entry.py +49 -0
  15. deepcode_hku-2.3.1/app_server/native_client.py +223 -0
  16. deepcode_hku-2.3.1/app_server/peer.py +311 -0
  17. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/app_server/protocol/codec.py +2 -1
  18. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/app_server/protocol/methods.py +14 -0
  19. deepcode_hku-2.3.1/app_server/protocol/retry.py +61 -0
  20. deepcode_hku-2.3.1/app_server/runtime_install.py +49 -0
  21. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/app_server/runtime_probe.py +5 -0
  22. deepcode_hku-2.3.1/app_server/server.py +52 -0
  23. deepcode_hku-2.3.1/app_server/service.py +464 -0
  24. deepcode_hku-2.3.1/app_server/service_client.py +100 -0
  25. deepcode_hku-2.3.1/app_server/service_state.py +216 -0
  26. deepcode_hku-2.3.1/app_server/state_backup.py +446 -0
  27. deepcode_hku-2.3.1/app_server/stdio_relay.py +218 -0
  28. deepcode_hku-2.3.1/app_server/systemd_user.py +280 -0
  29. deepcode_hku-2.3.1/app_server/web_assets/assets/Inspector-8Es-_51F.js +5 -0
  30. deepcode_hku-2.3.1/app_server/web_assets/assets/Inspector-DypK0oEq.css +1 -0
  31. deepcode_hku-2.3.1/app_server/web_assets/assets/LocalMonacoEditor-DCuhGEPh.js +12 -0
  32. deepcode_hku-2.3.1/app_server/web_assets/assets/ManagementWorkspace-BJC9sMuB.js +4 -0
  33. deepcode_hku-2.3.1/app_server/web_assets/assets/MarkdownContent-BIoldQGd.css +1 -0
  34. deepcode_hku-2.3.1/app_server/web_assets/assets/MarkdownContent-khfmKOQ0.js +33 -0
  35. deepcode_hku-2.3.1/app_server/web_assets/assets/PluginsPage-CMshr5Pz.css +1 -0
  36. deepcode_hku-2.3.1/app_server/web_assets/assets/PluginsPage-DUG3WIqn.js +1 -0
  37. deepcode_hku-2.3.1/app_server/web_assets/assets/SettingsDialog-DCn47fGr.css +1 -0
  38. deepcode_hku-2.3.1/app_server/web_assets/assets/SettingsDialog-vGNFlrd5.js +1 -0
  39. deepcode_hku-2.3.1/app_server/web_assets/assets/ThreadConversation-DMQrKlux.js +1 -0
  40. deepcode_hku-2.3.1/app_server/web_assets/assets/ThreadConversation-DqZ9_3Ex.css +1 -0
  41. deepcode_hku-2.3.1/app_server/web_assets/assets/WorkflowComposer-6EHQGool.js +1 -0
  42. deepcode_hku-2.3.1/app_server/web_assets/assets/WorkflowComposer-DkLp3G33.css +1 -0
  43. deepcode_hku-2.3.1/app_server/web_assets/assets/addon-fit-DIOBYJe3.js +1 -0
  44. deepcode_hku-2.3.1/app_server/web_assets/assets/confirmAction-CndHH5nL.js +1 -0
  45. deepcode_hku-2.3.1/app_server/web_assets/assets/createLucideIcon-BQ7pep_N.js +1 -0
  46. deepcode_hku-2.3.1/app_server/web_assets/assets/css-DIMkf-bt.js +3 -0
  47. deepcode_hku-2.3.1/app_server/web_assets/assets/editor-CJEeZjoM.css +1 -0
  48. deepcode_hku-2.3.1/app_server/web_assets/assets/editor.api-DfsewISI.js +818 -0
  49. deepcode_hku-2.3.1/app_server/web_assets/assets/editor.worker-DSGwkeXF.js +33 -0
  50. deepcode_hku-2.3.1/app_server/web_assets/assets/flask-conical-B5W0AT8b.js +1 -0
  51. deepcode_hku-2.3.1/app_server/web_assets/assets/html-DmJuEt5_.js +1 -0
  52. deepcode_hku-2.3.1/app_server/web_assets/assets/index-B4STS7MU.js +2 -0
  53. deepcode_hku-2.3.1/app_server/web_assets/assets/ini-sBoK_t0W.js +1 -0
  54. deepcode_hku-2.3.1/app_server/web_assets/assets/itemPresentation-CpLiCTmA.js +1 -0
  55. deepcode_hku-2.3.1/app_server/web_assets/assets/javascript-MLwwUW_7.js +1 -0
  56. deepcode_hku-2.3.1/app_server/web_assets/assets/jsx-runtime-CIxEorsV.js +1 -0
  57. deepcode_hku-2.3.1/app_server/web_assets/assets/markdown-Cimd5fb3.js +1 -0
  58. deepcode_hku-2.3.1/app_server/web_assets/assets/python-DJ9JSdOX.js +1 -0
  59. deepcode_hku-2.3.1/app_server/web_assets/assets/reasoningPayload-C9Yeq9Ar.js +1 -0
  60. deepcode_hku-2.3.1/app_server/web_assets/assets/robot-aTY9e0LG.png +0 -0
  61. deepcode_hku-2.3.1/app_server/web_assets/assets/rolldown-runtime-QTnfLwEv.js +1 -0
  62. deepcode_hku-2.3.1/app_server/web_assets/assets/rust-DdL9SqIa.js +1 -0
  63. deepcode_hku-2.3.1/app_server/web_assets/assets/sparkles-DGUrvUnr.js +1 -0
  64. deepcode_hku-2.3.1/app_server/web_assets/assets/trash-2-DgbNN8mD.js +1 -0
  65. deepcode_hku-2.3.1/app_server/web_assets/assets/typescript-CGPudguY.js +1 -0
  66. deepcode_hku-2.3.1/app_server/web_assets/assets/useConnectionCatalog-CMQD5GS5.js +7 -0
  67. deepcode_hku-2.3.1/app_server/web_assets/assets/useSkillCatalog-CFGIrhRX.js +1 -0
  68. deepcode_hku-2.3.1/app_server/web_assets/assets/useSystemDarkMode-COxZJwQa.js +1 -0
  69. deepcode_hku-2.3.1/app_server/web_assets/assets/useTranslation-CYApFZ2x.js +1 -0
  70. deepcode_hku-2.3.1/app_server/web_assets/assets/webMain-DHoYpK8Q.js +13 -0
  71. deepcode_hku-2.3.1/app_server/web_assets/assets/webMain-u_hskv3e.css +1 -0
  72. deepcode_hku-2.3.1/app_server/web_assets/assets/x-CrqHGWEM.js +1 -0
  73. deepcode_hku-2.3.1/app_server/web_assets/assets/xterm-BrP-ENHg.css +1 -0
  74. deepcode_hku-2.3.1/app_server/web_assets/assets/xterm-U4TA8lIC.js +35 -0
  75. deepcode_hku-2.3.1/app_server/web_assets/assets/yaml-CZqRoqwh.js +1 -0
  76. deepcode_hku-2.3.1/app_server/web_assets/index.html +13 -0
  77. deepcode_hku-2.3.1/app_server/web_assets/web-build.json +1 -0
  78. deepcode_hku-2.3.1/app_server/web_surface.py +279 -0
  79. deepcode_hku-2.3.1/app_server/websocket.py +332 -0
  80. deepcode_hku-2.3.1/app_server/windows_task.py +391 -0
  81. deepcode_hku-2.3.1/cli/__init__.py +5 -0
  82. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/cli/automation_cli.py +15 -6
  83. deepcode_hku-2.3.1/cli/desktop_cli.py +171 -0
  84. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/cli/exec_cli.py +43 -12
  85. deepcode_hku-2.3.1/cli/goal_runner.py +245 -0
  86. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/cli/headless_turn.py +2 -37
  87. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/cli/loop_cli.py +4 -8
  88. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/cli/mcp_cli.py +73 -2
  89. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/cli/mcp_server.py +45 -46
  90. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/cli/provider_cli.py +74 -2
  91. deepcode_hku-2.3.1/cli/rpc_models.py +47 -0
  92. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/cli/schedule_cli.py +33 -7
  93. deepcode_hku-2.3.1/cli/service_automation.py +120 -0
  94. deepcode_hku-2.3.1/cli/service_catalogs.py +249 -0
  95. deepcode_hku-2.3.1/cli/service_cli.py +469 -0
  96. deepcode_hku-2.3.1/cli/service_events.py +256 -0
  97. deepcode_hku-2.3.1/cli/service_thread_client.py +613 -0
  98. deepcode_hku-2.3.1/cli/service_turn.py +111 -0
  99. deepcode_hku-2.3.1/cli/service_turns.py +131 -0
  100. deepcode_hku-2.3.1/cli/thread_client.py +133 -0
  101. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/cli/tui/app.py +362 -90
  102. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/cli/tui/commands.py +63 -9
  103. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/cli/tui/goal_controller.py +36 -33
  104. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/cli/tui/input.py +49 -4
  105. deepcode_hku-2.3.1/cli/tui/markdown_stream.py +184 -0
  106. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/cli/tui/renderer.py +171 -30
  107. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/cli/tui/text.py +4 -1
  108. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/cli/tui/theme.py +4 -0
  109. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/cli/tui/thread_client.py +30 -40
  110. deepcode_hku-2.3.1/cli/web_cli.py +50 -0
  111. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/core/agent_runtime/compaction.py +9 -4
  112. deepcode_hku-2.3.1/core/agent_runtime/evidence_ledger.py +102 -0
  113. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/core/agent_runtime/injections.py +13 -5
  114. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/core/agent_runtime/runner.py +55 -9
  115. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/core/agent_runtime/runtime.py +20 -0
  116. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/core/agent_runtime/tools/registry.py +7 -1
  117. deepcode_hku-2.3.1/core/agent_runtime/tools/semantic_hint.py +82 -0
  118. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/core/agent_setup.py +17 -0
  119. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/core/application/agent_adapter.py +11 -1
  120. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/core/application/application.py +36 -0
  121. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/core/application/config_store.py +6 -35
  122. deepcode_hku-2.3.1/core/application/dictation_service.py +238 -0
  123. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/core/application/errors.py +55 -0
  124. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/core/application/event_service.py +18 -3
  125. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/core/application/execution_coordinator.py +24 -1
  126. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/core/application/execution_registry.py +24 -1
  127. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/core/application/git_service.py +7 -2
  128. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/core/application/goal_extension.py +16 -0
  129. deepcode_hku-2.3.1/core/application/input_identity.py +51 -0
  130. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/core/application/llm_configuration_service.py +181 -55
  131. deepcode_hku-2.3.1/core/application/provider_verification.py +253 -0
  132. deepcode_hku-2.3.1/core/application/service_lifecycle.py +77 -0
  133. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/core/application/session_runtime.py +50 -10
  134. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/core/application/terminal_service.py +180 -37
  135. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/core/application/thread_service.py +35 -3
  136. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/core/application/turn_input_service.py +200 -43
  137. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/core/application/turn_projection.py +75 -1
  138. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/core/application/turn_service.py +88 -5
  139. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/core/application/workflow_service.py +23 -20
  140. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/core/compat/runtime.py +42 -4
  141. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/core/config.py +280 -6
  142. deepcode_hku-2.3.1/core/dictation/__init__.py +43 -0
  143. deepcode_hku-2.3.1/core/dictation/audio.py +186 -0
  144. deepcode_hku-2.3.1/core/dictation/client.py +148 -0
  145. deepcode_hku-2.3.1/core/dictation/local_runner.py +143 -0
  146. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/core/domain/execution_profile.py +56 -0
  147. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/core/domain/message_provenance.py +10 -0
  148. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/core/events/protocol.py +12 -1
  149. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/core/events/session.py +9 -2
  150. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/core/harness/agents/external_backend.py +10 -17
  151. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/core/harness/code_mode/tool.py +4 -1
  152. deepcode_hku-2.3.1/core/harness/command_guard.py +685 -0
  153. deepcode_hku-2.3.1/core/harness/env_sanitize.py +111 -0
  154. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/core/harness/hooks/discovery.py +1 -1
  155. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/core/harness/hooks/execution.py +4 -1
  156. deepcode_hku-2.3.1/core/harness/memory.py +1153 -0
  157. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/core/harness/policy.py +52 -0
  158. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/core/harness/tools/search.py +5 -1
  159. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/core/harness/tools/shell.py +101 -0
  160. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/core/loop/autodream.py +10 -1
  161. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/core/network/safe_http.py +18 -2
  162. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/core/observability/bus.py +216 -12
  163. deepcode_hku-2.3.1/core/observability/llmops.py +236 -0
  164. deepcode_hku-2.3.1/core/observability/records.py +316 -0
  165. deepcode_hku-2.3.1/core/persistence/database.py +315 -0
  166. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/core/persistence/event_repository.py +10 -2
  167. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/core/persistence/execution_repository.py +31 -4
  168. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/core/private_storage.py +69 -13
  169. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/core/providers/anthropic.py +71 -22
  170. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/core/providers/base.py +109 -5
  171. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/core/providers/catalog.py +49 -0
  172. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/core/providers/catalog_service.py +38 -19
  173. deepcode_hku-2.3.1/core/providers/credentials.py +237 -0
  174. deepcode_hku-2.3.1/core/providers/egress.py +353 -0
  175. deepcode_hku-2.3.1/core/providers/oauth.py +297 -0
  176. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/core/providers/openai_compat.py +128 -17
  177. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/core/providers/openai_responses/parsing.py +5 -1
  178. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/core/providers/profiles.py +219 -31
  179. deepcode_hku-2.3.1/core/providers/protocol_config.py +127 -0
  180. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/core/providers/reasoning.py +19 -0
  181. deepcode_hku-2.3.1/core/providers/registry.py +401 -0
  182. deepcode_hku-2.3.1/core/providers/revisions.py +73 -0
  183. deepcode_hku-2.3.1/core/schedule/monitor.py +489 -0
  184. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/core/sessions/store.py +6 -0
  185. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/core/team/worktree.py +4 -4
  186. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/core/version.py +1 -1
  187. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/deepcode.py +37 -20
  188. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1/deepcode_hku.egg-info}/PKG-INFO +273 -129
  189. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/deepcode_hku.egg-info/SOURCES.txt +124 -2
  190. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/deepcode_hku.egg-info/requires.txt +4 -1
  191. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/protocol/app-server.schema.json +1590 -231
  192. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/pyproject.toml +10 -0
  193. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/requirements.txt +1 -1
  194. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/setup.py +5 -0
  195. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/tests/test_automation_cli.py +2 -2
  196. deepcode_hku-2.3.1/tests/test_bedrock_provider.py +194 -0
  197. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/tests/test_catalog.py +65 -0
  198. deepcode_hku-2.3.1/tests/test_ci_installation.py +32 -0
  199. deepcode_hku-2.3.1/tests/test_ci_scope.py +188 -0
  200. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/tests/test_command_guard.py +47 -0
  201. deepcode_hku-2.3.1/tests/test_command_guard_egress.py +238 -0
  202. deepcode_hku-2.3.1/tests/test_compaction_tool_call_budget.py +55 -0
  203. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/tests/test_config_layering.py +60 -0
  204. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/tests/test_cross_process_run_lease.py +2 -2
  205. deepcode_hku-2.3.1/tests/test_desktop_cli.py +156 -0
  206. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/tests/test_desktop_release_scripts.py +106 -2
  207. deepcode_hku-2.3.1/tests/test_dictation.py +408 -0
  208. deepcode_hku-2.3.1/tests/test_dictation_local_runner.py +118 -0
  209. deepcode_hku-2.3.1/tests/test_dictation_service.py +444 -0
  210. deepcode_hku-2.3.1/tests/test_env_sanitize.py +112 -0
  211. deepcode_hku-2.3.1/tests/test_evidence_ledger.py +369 -0
  212. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/tests/test_exec_cli.py +4 -0
  213. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/tests/test_harness_policy.py +38 -0
  214. deepcode_hku-2.3.1/tests/test_llmops.py +86 -0
  215. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/tests/test_loop_cli.py +4 -1
  216. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/tests/test_manual_compact.py +50 -0
  217. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/tests/test_mcp_cli.py +72 -0
  218. deepcode_hku-2.3.1/tests/test_mcp_server.py +101 -0
  219. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/tests/test_memory.py +27 -0
  220. deepcode_hku-2.3.1/tests/test_memory_layers.py +391 -0
  221. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/tests/test_model_visible_is_logged.py +4 -1
  222. deepcode_hku-2.3.1/tests/test_opper_provider.py +78 -0
  223. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/tests/test_private_storage_acl_once.py +41 -0
  224. deepcode_hku-2.3.1/tests/test_provider_credentials.py +216 -0
  225. deepcode_hku-2.3.1/tests/test_provider_egress.py +404 -0
  226. deepcode_hku-2.3.1/tests/test_provider_lifetime.py +137 -0
  227. deepcode_hku-2.3.1/tests/test_provider_oauth.py +185 -0
  228. deepcode_hku-2.3.1/tests/test_provider_protocols.py +555 -0
  229. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/tests/test_python_distribution_release.py +63 -1
  230. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/tests/test_reasoning_providers.py +12 -3
  231. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/tests/test_safe_http.py +32 -0
  232. deepcode_hku-2.3.1/tests/test_schedule_monitor.py +176 -0
  233. deepcode_hku-2.3.1/tests/test_semantic_hint.py +72 -0
  234. deepcode_hku-2.3.1/tests/test_service_events.py +191 -0
  235. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/tests/test_session_index.py +17 -0
  236. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/tests/test_session_runtime.py +112 -0
  237. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/tests/test_shell_search_tools.py +112 -1
  238. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/tests/test_stdlib_logging_bridge.py +12 -0
  239. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/tests/test_team_worktree.py +17 -0
  240. deepcode_hku-2.3.1/tests/test_transparency_log.py +469 -0
  241. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/tests/test_tui.py +42 -5
  242. deepcode_hku-2.3.1/tests/test_tui_input_safety.py +261 -0
  243. deepcode_hku-2.3.1/tests/test_tui_markdown_stream.py +243 -0
  244. deepcode_hku-2.3.1/tests/test_tui_resilience.py +366 -0
  245. deepcode_hku-2.3.1/tests/test_tui_responsiveness.py +146 -0
  246. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/tests/test_tui_thread_client.py +2 -0
  247. deepcode_hku-2.3.1/tests/test_tui_transcript_order.py +189 -0
  248. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/tests/test_turn_input_mailbox.py +33 -0
  249. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/tests/test_turn_steering.py +206 -0
  250. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/tools/command_executor.py +19 -0
  251. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/workflows/code_implementation_workflow.py +10 -1
  252. deepcode_hku-2.2.0/__init__.py +0 -16
  253. deepcode_hku-2.2.0/app_server/__init__.py +0 -5
  254. deepcode_hku-2.2.0/app_server/__main__.py +0 -80
  255. deepcode_hku-2.2.0/app_server/server.py +0 -345
  256. deepcode_hku-2.2.0/cli/__init__.py +0 -17
  257. deepcode_hku-2.2.0/cli/goal_runner.py +0 -362
  258. deepcode_hku-2.2.0/core/harness/command_guard.py +0 -151
  259. deepcode_hku-2.2.0/core/harness/memory.py +0 -494
  260. deepcode_hku-2.2.0/core/observability/records.py +0 -187
  261. deepcode_hku-2.2.0/core/persistence/database.py +0 -169
  262. deepcode_hku-2.2.0/core/providers/credentials.py +0 -149
  263. deepcode_hku-2.2.0/core/providers/registry.py +0 -229
  264. deepcode_hku-2.2.0/tests/test_desktop_ci_scope.py +0 -42
  265. deepcode_hku-2.2.0/tests/test_mcp_server.py +0 -131
  266. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/LICENSE +0 -0
  267. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/THIRD_PARTY_NOTICES.md +0 -0
  268. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/app_server/errors.py +0 -0
  269. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/app_server/protocol/__init__.py +0 -0
  270. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/app_server/protocol/models.py +0 -0
  271. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/app_server/protocol/notifications.py +0 -0
  272. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/cli/automation_foreground.py +0 -0
  273. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/cli/config_errors.py +0 -0
  274. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/cli/execution_options.py +0 -0
  275. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/cli/init_config.py +0 -0
  276. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/cli/plugin_cli.py +0 -0
  277. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/cli/project_trust.py +0 -0
  278. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/cli/session_cli.py +0 -0
  279. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/cli/skill_cli.py +0 -0
  280. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/cli/transcript.py +0 -0
  281. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/cli/tui/__init__.py +0 -0
  282. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/cli/tui/__main__.py +0 -0
  283. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/cli/tui/animation.py +0 -0
  284. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/cli/tui/domain_events.py +0 -0
  285. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/cli/tui/picker.py +0 -0
  286. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/cli/tui/session_bridge.py +0 -0
  287. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/core/__init__.py +0 -0
  288. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/core/agent_presets/__init__.py +0 -0
  289. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/core/agent_presets/builtin/code-reader.md +0 -0
  290. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/core/agent_presets/builtin/minimal.md +0 -0
  291. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/core/agent_runtime/__init__.py +0 -0
  292. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/core/agent_runtime/context.py +0 -0
  293. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/core/agent_runtime/goal_runtime.py +0 -0
  294. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/core/agent_runtime/helpers.py +0 -0
  295. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/core/agent_runtime/hook.py +0 -0
  296. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/core/agent_runtime/processes.py +0 -0
  297. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/core/agent_runtime/pruner.py +0 -0
  298. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/core/agent_runtime/repeat_guard.py +0 -0
  299. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/core/agent_runtime/token_meter.py +0 -0
  300. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/core/agent_runtime/tools/__init__.py +0 -0
  301. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/core/agent_runtime/tools/alias.py +0 -0
  302. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/core/agent_runtime/tools/base.py +0 -0
  303. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/core/agent_runtime/tools/mcp.py +0 -0
  304. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/core/application/__init__.py +0 -0
  305. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/core/application/application_lease.py +0 -0
  306. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/core/application/approval_service.py +0 -0
  307. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/core/application/automation_permission_policy.py +0 -0
  308. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/core/application/automation_schedule_policy.py +0 -0
  309. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/core/application/automation_scheduler.py +0 -0
  310. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/core/application/automation_service.py +0 -0
  311. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/core/application/diagnostics_service.py +0 -0
  312. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/core/application/execution_admission.py +0 -0
  313. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/core/application/execution_handler_registry.py +0 -0
  314. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/core/application/execution_security_policy.py +0 -0
  315. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/core/application/extension_service.py +0 -0
  316. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/core/application/file_service.py +0 -0
  317. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/core/application/goal_prompts/__init__.py +0 -0
  318. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/core/application/goal_prompts/continuation.md +0 -0
  319. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/core/application/goal_turn_port.py +0 -0
  320. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/core/application/interactive_turn_router.py +0 -0
  321. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/core/application/legacy_session_importer.py +0 -0
  322. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/core/application/mcp_service.py +0 -0
  323. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/core/application/plugin_service.py +0 -0
  324. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/core/application/project_service.py +0 -0
  325. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/core/application/session_deletion_service.py +0 -0
  326. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/core/application/settings_service.py +0 -0
  327. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/core/application/skill_service.py +0 -0
  328. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/core/application/test_service.py +0 -0
  329. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/core/application/turn_usage.py +0 -0
  330. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/core/application/views.py +0 -0
  331. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/core/application/workflow_adapter.py +0 -0
  332. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/core/application/workspace_service.py +0 -0
  333. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/core/application/worktree_service.py +0 -0
  334. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/core/compat/__init__.py +0 -0
  335. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/core/compat/agent.py +0 -0
  336. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/core/compat/mcp_app.py +0 -0
  337. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/core/compat/parallel.py +0 -0
  338. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/core/compat/request_params.py +0 -0
  339. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/core/domain/__init__.py +0 -0
  340. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/core/domain/approval.py +0 -0
  341. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/core/domain/artifact.py +0 -0
  342. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/core/domain/automation.py +0 -0
  343. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/core/domain/common.py +0 -0
  344. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/core/domain/event.py +0 -0
  345. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/core/domain/execution_permission.py +0 -0
  346. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/core/domain/execution_security.py +0 -0
  347. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/core/domain/item.py +0 -0
  348. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/core/domain/project.py +0 -0
  349. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/core/domain/runtime_coordination.py +0 -0
  350. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/core/domain/thread.py +0 -0
  351. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/core/domain/thread_goal.py +0 -0
  352. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/core/domain/turn.py +0 -0
  353. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/core/domain/workflow.py +0 -0
  354. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/core/events/__init__.py +0 -0
  355. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/core/events/llm_events.py +0 -0
  356. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/core/events/parts.py +0 -0
  357. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/core/file_lock.py +0 -0
  358. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/core/harness/__init__.py +0 -0
  359. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/core/harness/agents/__init__.py +0 -0
  360. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/core/harness/agents/control.py +0 -0
  361. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/core/harness/agents/structured_result.py +0 -0
  362. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/core/harness/approval.py +0 -0
  363. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/core/harness/code_mode/__init__.py +0 -0
  364. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/core/harness/code_mode/_runner.py +0 -0
  365. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/core/harness/collaboration.py +0 -0
  366. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/core/harness/hooks/__init__.py +0 -0
  367. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/core/harness/hooks/engine.py +0 -0
  368. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/core/harness/hooks/events.py +0 -0
  369. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/core/harness/permissions.py +0 -0
  370. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/core/harness/sandbox.py +0 -0
  371. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/core/harness/skills.py +0 -0
  372. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/core/harness/snapshot.py +0 -0
  373. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/core/harness/tools/__init__.py +0 -0
  374. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/core/harness/tools/diagnostics.py +0 -0
  375. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/core/harness/tools/files.py +0 -0
  376. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/core/harness/tools/goal.py +0 -0
  377. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/core/harness/tools/patch.py +0 -0
  378. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/core/harness/tools/plan.py +0 -0
  379. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/core/harness/tools/replace.py +0 -0
  380. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/core/harness/tools/spawn_agent.py +0 -0
  381. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/core/harness/tools/user_input.py +0 -0
  382. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/core/harness/tools/web.py +0 -0
  383. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/core/harness/windows_sandbox.py +0 -0
  384. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/core/llm_runtime.py +0 -0
  385. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/core/loop/__init__.py +0 -0
  386. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/core/mcp/__init__.py +0 -0
  387. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/core/mcp/connection.py +0 -0
  388. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/core/mcp/models.py +0 -0
  389. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/core/mcp/naming.py +0 -0
  390. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/core/mcp/oauth.py +0 -0
  391. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/core/mcp/presets.json +0 -0
  392. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/core/mcp/presets.py +0 -0
  393. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/core/mcp/probe.py +0 -0
  394. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/core/mcp/resolver.py +0 -0
  395. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/core/mcp/runtime.py +0 -0
  396. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/core/mcp/schema.py +0 -0
  397. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/core/mcp/tools.py +0 -0
  398. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/core/network/__init__.py +0 -0
  399. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/core/network/hostnames.py +0 -0
  400. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/core/observability/__init__.py +0 -0
  401. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/core/observability/context.py +0 -0
  402. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/core/persistence/__init__.py +0 -0
  403. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/core/persistence/automation_repository.py +0 -0
  404. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/core/persistence/coordination_repository.py +0 -0
  405. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/core/persistence/errors.py +0 -0
  406. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/core/persistence/legacy_import_repository.py +0 -0
  407. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/core/persistence/migrations.py +0 -0
  408. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/core/persistence/project_repository.py +0 -0
  409. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/core/persistence/serde.py +0 -0
  410. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/core/persistence/thread_repository.py +0 -0
  411. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/core/persistence/workflow_repository.py +0 -0
  412. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/core/platform_compat.py +0 -0
  413. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/core/platform_file_lock.py +0 -0
  414. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/core/plugins/__init__.py +0 -0
  415. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/core/plugins/domain.py +0 -0
  416. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/core/plugins/formats/__init__.py +0 -0
  417. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/core/plugins/formats/agent_plugins_v1.py +0 -0
  418. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/core/plugins/host.py +0 -0
  419. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/core/plugins/mcp.py +0 -0
  420. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/core/plugins/registry.py +0 -0
  421. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/core/plugins/resolver.py +0 -0
  422. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/core/plugins/skill_provider.py +0 -0
  423. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/core/providers/__init__.py +0 -0
  424. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/core/providers/model_compat.py +0 -0
  425. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/core/providers/openai_responses/__init__.py +0 -0
  426. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/core/providers/openai_responses/converters.py +0 -0
  427. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/core/providers/timeouts.py +0 -0
  428. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/core/reasoning.py +0 -0
  429. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/core/schedule/__init__.py +0 -0
  430. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/core/schedule/keepalive.py +0 -0
  431. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/core/schedule/scheduler.py +0 -0
  432. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/core/sessions/__init__.py +0 -0
  433. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/core/sessions/continuation.py +0 -0
  434. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/core/sessions/deletion.py +0 -0
  435. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/core/sessions/index.py +0 -0
  436. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/core/sessions/legacy_goal_decoder.py +0 -0
  437. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/core/sessions/models.py +0 -0
  438. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/core/sessions/thread_goal_store.py +0 -0
  439. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/core/sessions/transcript.py +0 -0
  440. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/core/skills/__init__.py +0 -0
  441. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/core/skills/aggregation.py +0 -0
  442. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/core/skills/builtin/UPSTREAM_SOURCES.json +0 -0
  443. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/core/skills/builtin/frontend-design/LICENSE.txt +0 -0
  444. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/core/skills/builtin/frontend-design/SKILL.md +0 -0
  445. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/core/skills/builtin/mcp-builder/LICENSE.txt +0 -0
  446. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/core/skills/builtin/mcp-builder/SKILL.md +0 -0
  447. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/core/skills/builtin/mcp-builder/reference/evaluation.md +0 -0
  448. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/core/skills/builtin/mcp-builder/reference/mcp_best_practices.md +0 -0
  449. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/core/skills/builtin/mcp-builder/reference/node_mcp_server.md +0 -0
  450. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/core/skills/builtin/mcp-builder/reference/python_mcp_server.md +0 -0
  451. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/core/skills/builtin/mcp-builder/scripts/connections.py +0 -0
  452. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/core/skills/builtin/mcp-builder/scripts/evaluation.py +0 -0
  453. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/core/skills/builtin/mcp-builder/scripts/example_evaluation.xml +0 -0
  454. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/core/skills/builtin/mcp-builder/scripts/requirements.txt +0 -0
  455. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/core/skills/builtin/review-agent/LICENSE.txt +0 -0
  456. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/core/skills/builtin/review-agent/SKILL.md +0 -0
  457. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/core/skills/builtin/review-agent/agents/openai.yaml +0 -0
  458. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/core/skills/builtin/security-best-practices/LICENSE.txt +0 -0
  459. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/core/skills/builtin/security-best-practices/SKILL.md +0 -0
  460. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/core/skills/builtin/security-best-practices/agents/openai.yaml +0 -0
  461. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/core/skills/builtin/security-best-practices/references/golang-general-backend-security.md +0 -0
  462. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/core/skills/builtin/security-best-practices/references/javascript-express-web-server-security.md +0 -0
  463. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/core/skills/builtin/security-best-practices/references/javascript-general-web-frontend-security.md +0 -0
  464. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/core/skills/builtin/security-best-practices/references/javascript-jquery-web-frontend-security.md +0 -0
  465. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/core/skills/builtin/security-best-practices/references/javascript-typescript-nextjs-web-server-security.md +0 -0
  466. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/core/skills/builtin/security-best-practices/references/javascript-typescript-react-web-frontend-security.md +0 -0
  467. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/core/skills/builtin/security-best-practices/references/javascript-typescript-vue-web-frontend-security.md +0 -0
  468. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/core/skills/builtin/security-best-practices/references/python-django-web-server-security.md +0 -0
  469. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/core/skills/builtin/security-best-practices/references/python-fastapi-web-server-security.md +0 -0
  470. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/core/skills/builtin/security-best-practices/references/python-flask-web-server-security.md +0 -0
  471. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/core/skills/builtin/security-ownership-map/LICENSE.txt +0 -0
  472. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/core/skills/builtin/security-ownership-map/SKILL.md +0 -0
  473. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/core/skills/builtin/security-ownership-map/agents/openai.yaml +0 -0
  474. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/core/skills/builtin/security-ownership-map/references/neo4j-import.md +0 -0
  475. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/core/skills/builtin/security-ownership-map/scripts/build_ownership_map.py +0 -0
  476. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/core/skills/builtin/security-ownership-map/scripts/community_maintainers.py +0 -0
  477. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/core/skills/builtin/security-ownership-map/scripts/query_ownership.py +0 -0
  478. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/core/skills/builtin/security-ownership-map/scripts/run_ownership_map.py +0 -0
  479. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/core/skills/builtin/security-threat-model/LICENSE.txt +0 -0
  480. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/core/skills/builtin/security-threat-model/SKILL.md +0 -0
  481. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/core/skills/builtin/security-threat-model/agents/openai.yaml +0 -0
  482. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/core/skills/builtin/security-threat-model/references/prompt-template.md +0 -0
  483. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/core/skills/builtin/security-threat-model/references/security-controls-and-assets.md +0 -0
  484. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/core/skills/builtin/skill-creator/LICENSE.txt +0 -0
  485. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/core/skills/builtin/skill-creator/SKILL.md +0 -0
  486. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/core/skills/builtin/skill-creator/agents/openai.yaml +0 -0
  487. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/core/skills/builtin/skill-creator/references/openai_yaml.md +0 -0
  488. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/core/skills/builtin/skill-creator/scripts/generate_openai_yaml.py +0 -0
  489. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/core/skills/builtin/skill-creator/scripts/init_skill.py +0 -0
  490. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/core/skills/builtin/skill-creator/scripts/quick_validate.py +0 -0
  491. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/core/skills/builtin/webapp-testing/LICENSE.txt +0 -0
  492. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/core/skills/builtin/webapp-testing/SKILL.md +0 -0
  493. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/core/skills/builtin/webapp-testing/examples/console_logging.py +0 -0
  494. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/core/skills/builtin/webapp-testing/examples/element_discovery.py +0 -0
  495. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/core/skills/builtin/webapp-testing/examples/static_html_automation.py +0 -0
  496. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/core/skills/builtin/webapp-testing/scripts/with_server.py +0 -0
  497. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/core/skills/builtin_registry.py +0 -0
  498. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/core/skills/capabilities.py +0 -0
  499. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/core/skills/catalog.py +0 -0
  500. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/core/skills/config.py +0 -0
  501. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/core/skills/host.py +0 -0
  502. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/core/skills/management.py +0 -0
  503. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/core/skills/metadata.py +0 -0
  504. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/core/skills/models.py +0 -0
  505. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/core/skills/monitor.py +0 -0
  506. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/core/skills/prompting.py +0 -0
  507. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/core/skills/provider.py +0 -0
  508. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/core/skills/resources.py +0 -0
  509. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/core/skills/roots.py +0 -0
  510. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/core/skills/runtime.py +0 -0
  511. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/core/team/__init__.py +0 -0
  512. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/core/verification.py +0 -0
  513. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/deepcode_hku.egg-info/dependency_links.txt +0 -0
  514. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/deepcode_hku.egg-info/entry_points.txt +0 -0
  515. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/deepcode_hku.egg-info/top_level.txt +0 -0
  516. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/eval/__init__.py +0 -0
  517. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/eval/swebench/README.md +0 -0
  518. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/eval/swebench/__init__.py +0 -0
  519. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/eval/swebench/dataset.py +0 -0
  520. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/eval/swebench/evaluate.py +0 -0
  521. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/eval/swebench/instance.py +0 -0
  522. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/eval/swebench/predict.py +0 -0
  523. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/eval/swebench/report.py +0 -0
  524. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/eval/swebench/run.py +0 -0
  525. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/prompts/__init__.py +0 -0
  526. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/prompts/code_prompts.py +0 -0
  527. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/schema/mcp-agent.config.schema.json +0 -0
  528. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/setup.cfg +0 -0
  529. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/tests/test_agent_presets.py +0 -0
  530. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/tests/test_agent_runner_kernel.py +0 -0
  531. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/tests/test_agent_session.py +0 -0
  532. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/tests/test_apply_patch.py +0 -0
  533. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/tests/test_autodream.py +0 -0
  534. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/tests/test_automation_foreground.py +0 -0
  535. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/tests/test_cli_logging_bootstrap.py +0 -0
  536. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/tests/test_code_implementation_workspace.py +0 -0
  537. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/tests/test_code_indexer_concurrent.py +0 -0
  538. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/tests/test_code_indexer_output.py +0 -0
  539. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/tests/test_code_mode.py +0 -0
  540. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/tests/test_collaboration.py +0 -0
  541. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/tests/test_command_executor_native_fence.py +0 -0
  542. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/tests/test_compaction_memory.py +0 -0
  543. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/tests/test_compaction_retry_memo.py +0 -0
  544. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/tests/test_config_errors.py +0 -0
  545. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/tests/test_config_layers.py +0 -0
  546. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/tests/test_context_note_sink.py +0 -0
  547. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/tests/test_context_window_overflow.py +0 -0
  548. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/tests/test_diagnostics.py +0 -0
  549. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/tests/test_document_conversion.py +0 -0
  550. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/tests/test_exec_sandbox_wiring.py +0 -0
  551. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/tests/test_external_subagent_backend.py +0 -0
  552. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/tests/test_forge_provider.py +0 -0
  553. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/tests/test_fuzzy_replace.py +0 -0
  554. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/tests/test_git_command_url.py +0 -0
  555. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/tests/test_goal_runtime.py +0 -0
  556. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/tests/test_harness_approval.py +0 -0
  557. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/tests/test_harness_permissions.py +0 -0
  558. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/tests/test_harness_sandbox.py +0 -0
  559. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/tests/test_hooks.py +0 -0
  560. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/tests/test_init_config.py +0 -0
  561. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/tests/test_llm_events.py +0 -0
  562. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/tests/test_llm_runtime_connections.py +0 -0
  563. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/tests/test_loop_detector.py +0 -0
  564. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/tests/test_mcp_oauth.py +0 -0
  565. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/tests/test_mcp_runtime.py +0 -0
  566. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/tests/test_mcp_runtime_lazy.py +0 -0
  567. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/tests/test_model_catalog_service.py +0 -0
  568. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/tests/test_model_compat.py +0 -0
  569. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/tests/test_native_file_tools.py +0 -0
  570. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/tests/test_openspace_recipe.py +0 -0
  571. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/tests/test_parts.py +0 -0
  572. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/tests/test_pdf_downloader_security.py +0 -0
  573. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/tests/test_plan_tool.py +0 -0
  574. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/tests/test_platform_compat.py +0 -0
  575. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/tests/test_plugin_cli.py +0 -0
  576. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/tests/test_plugins.py +0 -0
  577. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/tests/test_private_storage.py +0 -0
  578. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/tests/test_private_storage_windows.py +0 -0
  579. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/tests/test_provider_cli.py +0 -0
  580. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/tests/test_provider_timeouts.py +0 -0
  581. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/tests/test_reasoning.py +0 -0
  582. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/tests/test_reasoning_capabilities.py +0 -0
  583. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/tests/test_reasoning_catalog_alignment.py +0 -0
  584. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/tests/test_repeat_call_reminder.py +0 -0
  585. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/tests/test_requesty_provider.py +0 -0
  586. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/tests/test_schedule.py +0 -0
  587. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/tests/test_session_cli.py +0 -0
  588. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/tests/test_session_compaction.py +0 -0
  589. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/tests/test_session_end_lifecycle.py +0 -0
  590. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/tests/test_session_run_lease.py +0 -0
  591. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/tests/test_session_transcript.py +0 -0
  592. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/tests/test_skill_capabilities.py +0 -0
  593. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/tests/test_skill_cli.py +0 -0
  594. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/tests/test_skill_host.py +0 -0
  595. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/tests/test_skill_provider.py +0 -0
  596. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/tests/test_skills.py +0 -0
  597. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/tests/test_skills_product.py +0 -0
  598. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/tests/test_snapshot.py +0 -0
  599. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/tests/test_spawn_agent.py +0 -0
  600. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/tests/test_subagent_composition.py +0 -0
  601. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/tests/test_subagent_conversation.py +0 -0
  602. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/tests/test_subagent_late_result.py +0 -0
  603. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/tests/test_swebench_harness.py +0 -0
  604. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/tests/test_thinking_requires_capable_model.py +0 -0
  605. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/tests/test_token_meter.py +0 -0
  606. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/tests/test_token_meter_wiring.py +0 -0
  607. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/tests/test_tool_call_timeout.py +0 -0
  608. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/tests/test_tool_description_quality.py +0 -0
  609. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/tests/test_tool_result_pruner.py +0 -0
  610. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/tests/test_tui_domain_events.py +0 -0
  611. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/tests/test_turn_projection.py +0 -0
  612. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/tests/test_turn_queue.py +0 -0
  613. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/tests/test_unified_impl_workflow.py +0 -0
  614. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/tests/test_user_input_tool.py +0 -0
  615. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/tests/test_verification.py +0 -0
  616. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/tests/test_version_metadata.py +0 -0
  617. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/tests/test_web_tools.py +0 -0
  618. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/tests/test_workflow_compatibility.py +0 -0
  619. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/tests/test_workflow_interactions.py +0 -0
  620. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/tests/test_zhipu_thinking_wire.py +0 -0
  621. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/tools/__init__.py +0 -0
  622. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/tools/code_implementation_server.py +0 -0
  623. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/tools/code_indexer.py +0 -0
  624. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/tools/code_reference_indexer.py +0 -0
  625. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/tools/document_conversion.py +0 -0
  626. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/tools/document_segmentation_server.py +0 -0
  627. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/tools/git_command.py +0 -0
  628. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/tools/indexer_config.yaml +0 -0
  629. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/tools/pdf_converter.py +0 -0
  630. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/tools/pdf_downloader.py +0 -0
  631. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/tools/pdf_downloader_server.py +0 -0
  632. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/tools/pdf_utils.py +0 -0
  633. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/utils/__init__.py +0 -0
  634. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/utils/file_processor.py +0 -0
  635. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/utils/llm_utils.py +0 -0
  636. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/utils/loop_detector.py +0 -0
  637. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/uv.lock +0 -0
  638. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/workflows/__init__.py +0 -0
  639. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/workflows/agent_orchestration_engine.py +0 -0
  640. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/workflows/agents/__init__.py +0 -0
  641. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/workflows/agents/code_implementation_agent.py +0 -0
  642. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/workflows/agents/document_segmentation_agent.py +0 -0
  643. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/workflows/agents/memory_agent_concise.py +0 -0
  644. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/workflows/agents/requirement_analysis_agent.py +0 -0
  645. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/workflows/codebase_index_workflow.py +0 -0
  646. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/workflows/environment.py +0 -0
  647. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/workflows/interactions/USAGE.md +0 -0
  648. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/workflows/interactions/__init__.py +0 -0
  649. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/workflows/interactions/base.py +0 -0
  650. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/workflows/interactions/integration.py +0 -0
  651. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/workflows/interactions/plan_review.py +0 -0
  652. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/workflows/interactions/requirement_analysis.py +0 -0
  653. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/workflows/plan_review_runtime.py +0 -0
  654. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/workflows/planning_runtime.py +0 -0
  655. {deepcode_hku-2.2.0 → deepcode_hku-2.3.1}/workflows/workflow_context.py +0 -0
@@ -4,7 +4,10 @@ include LICENSE
4
4
  include THIRD_PARTY_NOTICES.md
5
5
  include requirements.txt
6
6
  include uv.lock
7
- include __init__.py
7
+ # NOTE: the repository root is deliberately NOT a package (no `include __init__.py`).
8
+ # A root __init__.py made `import deepcode` bind to the checkout directory instead of
9
+ # deepcode.py on case-insensitive filesystems (pytest puts the package root on
10
+ # sys.path), which broke `deepcode.main()` from a source checkout on Windows.
8
11
  recursive-include prompts *
9
12
  recursive-include schema *
10
13
  recursive-include cli *.py
@@ -12,6 +15,7 @@ recursive-include core *.py
12
15
  recursive-include core/skills/builtin *
13
16
  recursive-include core/application/goal_prompts *.md
14
17
  recursive-include app_server *.py
18
+ recursive-include app_server/web_assets *
15
19
  recursive-include protocol *.json
16
20
  recursive-include utils *.py
17
21
  recursive-include tools *.py
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: deepcode-hku
3
- Version: 2.2.0
3
+ Version: 2.3.1
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,15 +37,17 @@ 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.16.1
40
+ Requires-Dist: pypdf>=6.19.0
41
41
  Requires-Dist: PyYAML>=6.0
42
42
  Requires-Dist: reportlab>=3.5.0
43
43
  Requires-Dist: rich>=13.0.0
44
+ Provides-Extra: server
44
45
  Provides-Extra: advanced-documents
45
46
  Requires-Dist: docling>=2.113.0; extra == "advanced-documents"
46
47
  Provides-Extra: test
47
48
  Requires-Dist: pytest<10,>=8; extra == "test"
48
49
  Requires-Dist: pytest-asyncio<2,>=1; extra == "test"
50
+ Requires-Dist: pyte<0.9,>=0.8.2; extra == "test"
49
51
  Dynamic: author
50
52
  Dynamic: classifier
51
53
  Dynamic: description
@@ -139,11 +141,10 @@ Dynamic: summary
139
141
  *Work with DeepCode in a visual workspace for Sessions, goals, tool activity, code changes, and verification.*
140
142
  </div>
141
143
 
142
- DeepCode has one Agent runtime and two interfaces: an interactive CLI for
143
- terminal workflows and a Tauri Desktop workbench for visual Sessions, review,
144
- and settings. Both open the same local Projects, Session history, models,
145
- Skills, permissions, Goals, and Automations. See the
146
- [`Desktop source guide`](desktop/README.md) to run the application locally.
144
+ DeepCode provides TUI, Desktop, and Web clients over one shared local service.
145
+ They share Projects, Session history, models, Skills, permissions, Goals, and
146
+ Automations. Use `deepcode`, `deepcode desktop`, or `deepcode web`; see
147
+ [Quick start](#quick-start) for installation and your first task.
147
148
 
148
149
  ---
149
150
 
@@ -194,6 +195,14 @@ Skills, permissions, Goals, and Automations. See the
194
195
  - [Automate repeatable engineering work](#automate-repeatable-engineering-work)
195
196
  - [Paper2Code](#paper2code)
196
197
  - [⚡ Quick start](#quick-start)
198
+ - [Launch commands at a glance](#launch-commands-at-a-glance)
199
+ - [Install the runtime](#install-the-runtime)
200
+ - [Configure a model](#configure-a-model)
201
+ - [Start the TUI](#start-the-tui)
202
+ - [Start Desktop](#start-desktop)
203
+ - [Start Web](#start-web)
204
+ - [Complete your first task](#complete-your-first-task)
205
+ - [Manage the shared background service](#manage-the-shared-background-service)
197
206
  - [🧭 Using DeepCode](#using-deepcode)
198
207
  - [⚙️ Headless and automation](docs/HEADLESS_AND_AUTOMATION.md)
199
208
  - [🔬 Paper2Code](#paper2code-1)
@@ -212,6 +221,100 @@ Skills, permissions, Goals, and Automations. See the
212
221
 
213
222
  ## News
214
223
 
224
+ **2026-10-12 · DeepCode v2.3.1: Markdown answers in the TUI, a Windows service that stays up, `/compact` for coding sessions, and community fixes**
225
+
226
+ - **Answers render as Markdown while they stream.** Headings, lists, bold
227
+ text and tables are formatted as each line completes; code blocks are not
228
+ indented or wrapped by DeepCode, links show their address, and the line
229
+ still being written is previewed above the status line. `/raw` prints
230
+ answers exactly as written, for copying. The reasoning card now comes
231
+ before the answer, and `Ctrl+O` mid-answer no longer repeats or drops
232
+ lines. See [The terminal UI](docs/guide/the-tui.md).
233
+ - **The Windows service stays up.** On a Windows install in a virtual
234
+ environment, the background service no longer stops right after it starts,
235
+ whether the TUI, `deepcode service start`, or `deepcode web` launched it.
236
+ - **`/compact` handles coding sessions.** Tool-call arguments, such as the file
237
+ a `write_file` call carries, now count when compaction picks what to keep and
238
+ checks that the summary is smaller. Sessions that wrote large files compact
239
+ instead of being refused, and the report shows the characters actually
240
+ replaced. (#258)
241
+ - **Community fixes.** Diff lines that contain a Unicode line separator or a
242
+ form feed stay whole (#253); web fetch refuses private addresses tunnelled
243
+ through NAT64 or IPv4-compatible IPv6 (#254); the destructive-command screen
244
+ also catches absolute paths such as `/bin/rm -rf /` (#255); and `glob` finds
245
+ files when the project sits under a directory named `build` or `venv` (#256).
246
+ - **Security updates.** pypdf, PyJWT, urllib3, and multidict move to patched
247
+ releases.
248
+
249
+ **2026-10-10 · A steadier terminal UI: answers shown once, keys that keep your draft, and an orderly `/compact`**
250
+
251
+ - **Answers appear once.** The TUI no longer prints an answer a second time
252
+ when it finishes, and a stopped answer keeps the text already shown, in every
253
+ client.
254
+ - **Keys that keep your draft.** `Esc` interrupts only from an empty prompt and
255
+ otherwise closes a completion menu; `Ctrl+C` first clears what you are
256
+ typing. Stopping a command no longer closes the TUI. See
257
+ [The terminal UI](docs/guide/the-tui.md).
258
+ - **Calm when the service is slow.** Typing, completion, and `Ctrl+C` stay
259
+ responsive while the background service is busy; a slow answer is reported
260
+ instead of retried three times, and `/reconnect` brings your conversation
261
+ back after a restart.
262
+ - **`/compact` waits its turn.** A message sent during compaction waits for the
263
+ summary, the next reply no longer starts with a failed request, and a refusal
264
+ says why instead of "internal error". See [Sessions](docs/guide/sessions.md).
265
+ - **Current settings, safer Goals.** Default model and access changes show up
266
+ in the TUI, `/new` follows your defaults, and `/goal clear out …` sets a new
267
+ objective instead of clearing the Goal.
268
+
269
+ **2026-09-28 · DeepCode v2.3.0: voice dictation, Opper and Bedrock, Desktop polish, and opt-in hardening**
270
+
271
+ - **Dictate your prompt.** Add a `dictation` block to your config and the
272
+ Desktop and Web composer gains a microphone. See
273
+ [Voice dictation](docs/guide/dictation.md). (#240)
274
+ - **More providers and models.** Opper and Amazon Bedrock join the provider
275
+ templates, and DeepSeek V4 gets its own 1M context window and pricing.
276
+ (#242, #208, #249)
277
+ - **Desktop polish.** Drag the conversation's edge to resize it, import a
278
+ VS Code color theme, and choose from fonts that are actually installed.
279
+ (#238, #207, #239)
280
+ - **Opt-in hardening.** `providers.egress` limits which hosts receive your
281
+ prompts, `DEEPCODE_COMMAND_SCREEN=strict` screens risky commands,
282
+ `DEEPCODE_BASH_SCRUB_ENV=1` keeps provider keys out of shell commands, and
283
+ `DEEPCODE_KEYRING=1` reads keys from the OS keychain. (#229, #230, #232,
284
+ #246)
285
+ - **Leaner memory and clearer signals.** `MEMORY.md` can be a short index of
286
+ topic files, `mcp list` flags servers worth a second look, and the agent is
287
+ reminded when a call keeps returning the same result. (#233, #241, #247)
288
+ - **Steadier everywhere.** The state database keeps its locks when several
289
+ DeepCode processes share it, and a round of Windows fixes landed. (#210,
290
+ #235, #236, #237)
291
+
292
+ <details>
293
+ <summary><strong>Earlier updates, August to early September 2026</strong></summary>
294
+
295
+ **2026-09-09 · TUI, Desktop, and Web share one local background service**
296
+
297
+ - **Choose your interface.** Run `deepcode` for the TUI, `deepcode desktop`
298
+ for the native app, or `deepcode web` to open the workbench in your browser.
299
+ All three connect to the same local service; Web needs no DeepCode account.
300
+ - **Continue the same task across interfaces.** Closing a client leaves running
301
+ work in the background. Reconnect from another interface to follow the same
302
+ conversation, review tool activity, and respond to approvals. The computer
303
+ must remain awake, and pending approvals still need your response.
304
+ - **Configure and verify your models.** Save cloud or local model connections
305
+ for use across all three interfaces. Browse available models, check a model's
306
+ response, and test streaming and tool calls before using a custom server.
307
+ See [Models and providers](docs/guide/models.md).
308
+ - **Manage your background service and prepare for upgrades.** Use
309
+ `deepcode service` commands to check status, read logs, or stop after current
310
+ work finishes. Create a runtime snapshot before upgrading and restore it when
311
+ needed; keep project files in your usual version control or backup.
312
+ See [Upgrading DeepCode](docs/UPGRADE_AND_RESTORE.md).
313
+
314
+ Start with the updated [Quick start](#quick-start) and
315
+ [first coding task tutorial](docs/guide/getting-started.md).
316
+ ([#212](https://github.com/HKUDS/DeepCode/pull/212))
317
+
215
318
  **2026-09-06 · DeepCode v2.2.0: Session context-window caps, compaction that leaves a memory, and a fully localized Desktop**
216
319
 
217
320
  - **Cap a Session's context window.** `/context 64k` in the TUI or the
@@ -391,9 +494,6 @@ Skills, permissions, Goals, and Automations. See the
391
494
  `/rename`, `/delete`, `/retry`, with tab completion for session ids,
392
495
  transcript modes, permission presets, and effort levels.
393
496
 
394
- <details>
395
- <summary><strong>Earlier August 2026 updates</strong></summary>
396
-
397
497
  **2026-08-14 · Subagent runtime, compaction, and one-way persistence**
398
498
 
399
499
  - **Delegate to Codex or Claude Code as a subagent.** `spawn_agent` gains
@@ -665,9 +765,9 @@ you finish real software engineering work more reliably.
665
765
 
666
766
  ## Core capabilities
667
767
 
668
- DeepCode provides a complete local Coding Agent workflow. CLI and Desktop are
669
- two ways to use the same Agent, Sessions, models, Skills, permissions, and task
670
- state.
768
+ DeepCode provides a complete local Coding Agent workflow. TUI, Desktop, and Web
769
+ use the same Agent, Sessions, models, Skills, permissions, and task state through
770
+ the shared local service.
671
771
 
672
772
  <p align="center">
673
773
  <img src="assets/readme/verification-loop.png" alt="DeepCode Agent Harness and verification loop" width="1080" />
@@ -786,7 +886,14 @@ Automation does not launch a separate, reduced Agent. It uses the same
786
886
  Sessions, models, Skills, permissions, approvals, and recovery behavior, and
787
887
  keeps the history of every run.
788
888
 
789
- ### Paper2Code
889
+ ### Shared background service
890
+
891
+ Desktop, Web, TUI, `exec`, `loop`, and MCP task calls use the same local service.
892
+ Starting a client starts the service when needed. Closing a client leaves its
893
+ accepted tasks running; explicitly stop the service to shut down the runtime.
894
+ See [Quick start](#quick-start) for installation and launch commands.
895
+
896
+ ## Paper2Code
790
897
 
791
898
  Paper2Code was DeepCode's original research direction and remains its dedicated
792
899
  workflow for research reproduction.
@@ -800,156 +907,188 @@ run, be inspected, and keep improving.
800
907
 
801
908
  ## Quick start
802
909
 
803
- DeepCode has two interfaces with separate installation paths. Choose one to get
804
- started; both use the same Agent runtime and canonical Session history.
910
+ Use DeepCode to explore a repository, make changes, and run tests. Choose the
911
+ terminal, desktop app, or browser—your projects and conversations are available
912
+ in all three.
805
913
 
806
- > `uv tool install --python 3.12 deepcode-hku` installs the CLI and shared
807
- > Python runtime. It does **not** install the Tauri Desktop application.
914
+ ### Launch commands at a glance
808
915
 
809
- ### Option A — Install the CLI
916
+ After installation, open the interface you prefer:
810
917
 
811
- Install `uv` first if it is not already available. On Windows PowerShell:
918
+ | Interface | Start command |
919
+ |---|---|
920
+ | **TUI** — work in your terminal | `deepcode` |
921
+ | **Desktop** — use a native app | `deepcode desktop` |
922
+ | **Web** — work in your browser | `deepcode web` |
812
923
 
813
- ```powershell
814
- winget install --id astral-sh.uv --exact
815
- ```
924
+ DeepCode starts its local background service automatically. You can close an
925
+ interface and return to your conversation later.
926
+
927
+ ### Install the runtime
816
928
 
817
- Open a new terminal after the first `uv` installation, then run:
929
+ #### Published package
930
+
931
+ With `uv` installed, run:
818
932
 
819
933
  ```console
820
934
  uv tool install --python 3.12 deepcode-hku
821
935
  deepcode init
822
936
  ```
823
937
 
824
- The explicit Python selection is intentional: DeepCode requires Python 3.12+
825
- and must not fall back to an unsupported legacy package on an older interpreter.
826
- If an existing uv tool environment still contains DeepCode 1.x, migrate it with
827
- `uv tool upgrade --python 3.12 deepcode-hku`.
938
+ On Windows, you can install `uv` with `winget install --id astral-sh.uv --exact`,
939
+ then open a new terminal. DeepCode requires Python 3.12 or later.
940
+
941
+ To use the native app, also install DeepCode Desktop from
942
+ [GitHub Releases](https://github.com/HKUDS/DeepCode/releases). To try changes
943
+ that have not been released yet, install from source below.
944
+
945
+ <details>
946
+ <summary>Install from source</summary>
947
+
948
+ #### Current source checkout
949
+
950
+ You will need Git, `uv`, and Node.js 22 or later. Run these commands in your terminal:
951
+
952
+ ```console
953
+ git clone https://github.com/HKUDS/DeepCode.git
954
+ cd DeepCode
955
+ npm --prefix desktop ci
956
+ npm --prefix desktop run build:web
957
+ uv tool install --python 3.12 --force .
958
+ deepcode init
959
+ ```
960
+
961
+ If you already have the repository, start in its root directory and skip cloning.
962
+ You can now run `deepcode` from any directory. For source Desktop, also install
963
+ Rust and the platform dependencies described in the [Desktop guide](desktop/README.md).
964
+
965
+ </details>
966
+
967
+ If your terminal cannot find `deepcode`, run `uv tool update-shell` and open a
968
+ new terminal.
828
969
 
829
- Create a model connection once. `--api-key` opens a non-echoing prompt:
970
+ ### Configure a model
971
+
972
+ Choose either the graphical setup or the terminal commands below.
973
+
974
+ **In Desktop or Web:** open **Settings → AI providers**, select **Add provider**,
975
+ and enter your provider's API key. Click **Save and check** to load its models.
976
+ Under **Agent model**, choose a model and click **Save and verify model** to try
977
+ a short request. Then choose the connection and model in your conversation's
978
+ message box.
979
+
980
+ <div align="center">
981
+ <img src="assets/setting_model.png" alt="Choose a provider and model in DeepCode settings" width="100%" style="border-radius: 10px; box-shadow: 0 8px 20px rgba(45,55,72,0.2); margin: 15px 0;"/>
982
+ </div>
983
+
984
+ **In your terminal:** this example connects to OpenRouter. Enter your API key
985
+ when prompted; it will not be displayed as you type.
830
986
 
831
987
  ```console
832
- deepcode provider set personal-openrouter --template openrouter --label "OpenRouter · Personal" --api-key
833
- deepcode provider models personal-openrouter --refresh
834
- deepcode provider test personal-openrouter --model <model-id>
988
+ deepcode provider set my-openrouter --template openrouter --api-key
989
+ deepcode provider models my-openrouter --refresh
835
990
  ```
836
991
 
837
- Enter the repository you want DeepCode to work in and start the interactive
838
- Agent:
992
+ Choose a model from the list. Replace `MODEL_ID` below with its exact ID and
993
+ send a short test request:
839
994
 
840
995
  ```console
841
- cd <your-project>
842
- deepcode
996
+ deepcode provider test my-openrouter --model MODEL_ID
843
997
  ```
844
998
 
845
- `deepcode init` creates minimal user configuration under `~/.deepcode/`.
846
- Credentials are stored separately in user-private storage and are never written
847
- to Session history. `pipx install deepcode-hku` and `pip install deepcode-hku`
848
- are also supported in an appropriate Python 3.12+ environment.
999
+ You can use the same connection in all three interfaces. For other providers,
1000
+ local models, and tool-calling checks, see [Models and providers](docs/guide/models.md).
849
1001
 
850
- ### Option B — Install Desktop
1002
+ ### Start the TUI
851
1003
 
852
- Desktop release bundles are distributed separately from the Python package.
853
- Check [GitHub Releases](https://github.com/HKUDS/DeepCode/releases) for a signed
854
- installer for your platform. If no installer is attached, use the source setup
855
- below.
1004
+ Open a terminal in the project you want to work on. On your first visit, use
1005
+ `--trust` to allow DeepCode to work in that folder. With the connection configured
1006
+ above:
856
1007
 
857
- #### macOS and Linux from source
1008
+ ```console
1009
+ cd /path/to/your-project
1010
+ deepcode --trust --connection my-openrouter --model MODEL_ID
1011
+ ```
858
1012
 
859
- Install the platform dependencies from the
860
- [Tauri 2 prerequisite guide](https://v2.tauri.app/start/prerequisites/), plus
861
- Git, Python 3.12+, `uv`, Node.js 22+, and stable Rust. Then run:
1013
+ Replace the path with your project directory; on Windows, for example,
1014
+ `C:\projects\my-app`. For later visits, run `deepcode` in that directory and use
1015
+ `/model` to choose your connection and model. Use `/help` to see available commands.
862
1016
 
863
- ```bash
864
- git clone https://github.com/HKUDS/DeepCode.git
865
- cd DeepCode
866
- uv venv --python 3.12
867
- uv pip install --python .venv/bin/python -e .
868
- .venv/bin/deepcode init
869
- cd desktop
870
- npm ci
871
- npm run setup:sidecar
872
- npm run build:sidecar
873
- cd ..
874
- mkdir -p ~/.local/bin
875
- ln -sf "$(pwd)/scripts/deepcode-desktop" ~/.local/bin/deepcode-desktop
876
- export PATH="$HOME/.local/bin:$PATH"
877
- deepcode-desktop
1017
+ ### Start Desktop
1018
+
1019
+ ```console
1020
+ deepcode desktop
878
1021
  ```
879
1022
 
880
- The final link is a one-time source launcher installation. Afterwards,
881
- `deepcode-desktop` starts this checkout from any directory, provided
882
- `~/.local/bin` is on `PATH`. Add the export to your shell profile if it is not
883
- already configured. The command launches Desktop; add or select the repository
884
- you want to work on from the Project sidebar.
885
-
886
- #### Windows from source
887
-
888
- Windows requires Microsoft Edge WebView2 and the Visual Studio 2022 Build Tools
889
- workload **Desktop development with C++**. Accept the UAC prompt raised by Build
890
- Tools:
891
-
892
- ```powershell
893
- winget install --id Git.Git --exact
894
- winget install --id astral-sh.uv --exact
895
- winget install --id OpenJS.NodeJS.LTS --exact
896
- winget install --id Rustlang.Rustup --exact
897
- winget install --id Microsoft.VisualStudio.2022.BuildTools --exact `
898
- --override "--wait --passive --norestart --add Microsoft.VisualStudio.Workload.VCTools --includeRecommended"
1023
+ Add your project folder, confirm that you trust it, and click **New thread**.
1024
+ Choose a model in the message box, then describe what you want to do.
1025
+
1026
+ If you installed from source, this command opens the development app. Its first
1027
+ launch may take longer while dependencies are prepared; keep the terminal open
1028
+ while you use it. See the [Desktop guide](desktop/README.md) for platform setup
1029
+ and custom installation paths.
1030
+
1031
+ ### Start Web
1032
+
1033
+ ```console
1034
+ deepcode web
899
1035
  ```
900
1036
 
901
- Close PowerShell, open a new window, and verify the toolchains:
1037
+ DeepCode opens a browser tab. Add your project folder on this computer, confirm
1038
+ that you trust it, and create a thread. Select a model and send your first message.
1039
+ No DeepCode account is needed.
1040
+
1041
+ To copy the access link and open it yourself, use `deepcode web --no-open`.
1042
+ Open the link within 60 seconds. If it expires or the page asks you to sign in
1043
+ again, run `deepcode web` to get a fresh link.
1044
+
1045
+ ### Complete your first task
902
1046
 
903
- ```powershell
904
- git --version
905
- uv --version
906
- node --version
907
- rustup default stable-msvc
908
- rustc --version
909
- cargo --version
1047
+ Start by asking DeepCode to help you understand your project:
1048
+
1049
+ ```text
1050
+ Explain how this project is organized and how to run its tests.
1051
+ Do not change any files yet.
910
1052
  ```
911
1053
 
912
- Clone, prepare, and start Desktop:
1054
+ Then ask for a small change, describing the behavior you want and how to check it:
913
1055
 
914
- ```powershell
915
- git clone https://github.com/HKUDS/DeepCode.git
916
- Set-Location DeepCode
917
- uv venv --python 3.12
918
- uv pip install --python .venv\Scripts\python.exe -e .
919
- .venv\Scripts\deepcode.exe init
920
- Set-Location desktop
921
- npm ci
922
- $env:DEEPCODE_PYTHON = (Resolve-Path ..\.venv\Scripts\python.exe)
923
- npm run setup:sidecar
924
- npm run build:sidecar
925
- npm run tauri -- dev
1056
+ ```text
1057
+ Add tests for the configuration loader's handling of missing and invalid
1058
+ values. Follow the existing test style, run the relevant tests, and summarize
1059
+ the changes and results.
926
1060
  ```
927
1061
 
928
- Keep that PowerShell window open while Desktop is running. See the
929
- [Desktop source guide](desktop/README.md#windows-powershell) for subsequent
930
- launches and troubleshooting.
1062
+ Adapt the task to your repository. Follow the tool activity as DeepCode works,
1063
+ respond to any approval requests, and review the changed files and test output.
1064
+ You can send a follow-up message to adjust the task, or use the stop button
1065
+ (`/stop` in the TUI) to interrupt it.
931
1066
 
932
- #### Configure the Desktop model
1067
+ Your conversation is saved automatically. In Desktop/Web, select it from the
1068
+ project's thread list. In the TUI, use `/resume` to pick a saved conversation.
1069
+ You can switch interfaces and continue the same task.
933
1070
 
934
- Open **Settings → AI providers** after Desktop starts.
1071
+ For a complete exercise in a new folder, follow
1072
+ [Your first coding task](docs/guide/getting-started.md). It takes you through
1073
+ creating a Python function, testing it, and returning to the conversation later.
935
1074
 
936
- <div align="center">
937
- <img src="assets/setting_model.png" alt="Configure an AI provider and model in DeepCode Desktop" width="100%" style="border-radius: 10px; box-shadow: 0 8px 20px rgba(45,55,72,0.2); margin: 15px 0;"/>
1075
+ ### Manage the shared background service
938
1076
 
939
- <sub>Provider credentials, model discovery, and inference verification stay in one Desktop workflow.</sub>
940
- </div>
1077
+ Closing an interface leaves running tasks in the background. Pending approvals
1078
+ still need your response, and the computer must remain awake for work to continue.
1079
+
1080
+ Most days, you can just launch your preferred interface. When you need to inspect
1081
+ or stop the background service, use the command for that action:
941
1082
 
942
- 1. Select **Add provider**, choose the service, and enter an API key or its
943
- environment-variable name.
944
- 2. Select **Save and check** to verify the credential and load the provider's
945
- model catalog without sending repository content.
946
- 3. Under **Agent model**, choose an exact model ID and select **Save and verify
947
- model**. This final check sends only a minimal inference request.
948
- 4. Add or open a Project, create a Session, choose the model, Thinking effort,
949
- and access level, then describe the task in natural language.
1083
+ | What you want to do | Command |
1084
+ |---|---|
1085
+ | Check whether DeepCode is running | `deepcode service status` |
1086
+ | Read recent logs | `deepcode service logs --lines 100` |
1087
+ | Stop after current work finishes | `deepcode service stop --drain --timeout 60` |
1088
+ | Start automatically after signing into your computer | `deepcode service install --at-login` |
950
1089
 
951
- > The interface changes how the work is presented, not the Agent, policy,
952
- > configuration, or Session history behind it.
1090
+ For updates and backups, follow [Upgrading DeepCode](docs/UPGRADE_AND_RESTORE.md).
1091
+ If something does not work, start with [Troubleshooting](docs/guide/troubleshooting.md).
953
1092
 
954
1093
  ## Using DeepCode
955
1094
 
@@ -961,10 +1100,10 @@ skills and memory, and headless automation — with worked examples.
961
1100
 
962
1101
  Every task lives in a durable Session attached to its original Project. Open a
963
1102
  Project in Desktop or start `deepcode` from its directory, then create a new
964
- Session or resume an existing one. The same history can move between Desktop
965
- and CLI without export or conversion.
1103
+ Session or resume an existing one. The same history is available in TUI,
1104
+ Desktop, and Web without export or conversion.
966
1105
 
967
- | What you want to do | Desktop | Interactive CLI |
1106
+ | What you want to do | Desktop / Web | Interactive CLI |
968
1107
  |---|---|---|
969
1108
  | Start a Session | **New thread** | `/new [title]` |
970
1109
  | Resume local history | Select it under the Project | `/resume` |
@@ -985,9 +1124,11 @@ and CLI without export or conversion.
985
1124
  | Rename or delete a Session | Session context menu | `/rename <title>` · `/delete <id>` |
986
1125
 
987
1126
  Session history, tool activity, approvals, Goal state, and verification evidence
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;
1127
+ remain together. TUI, Desktop, and Web can observe the same Session while the
1128
+ shared service serializes its execution. Normal input during a Turn steers the
1129
+ active work; explicit queueing requests a subsequent Turn. The interface reports
1130
+ how the input was accepted. Closing a client leaves accepted work running.
1131
+ Archiving hides a Session without deleting its history;
991
1132
  permanent deletion removes the Session records but never repository files.
992
1133
 
993
1134
  ### Connections and models
@@ -1308,6 +1449,9 @@ On Windows PowerShell, activate with `.\.venv\Scripts\Activate.ps1`.
1308
1449
 
1309
1450
  ### Verification
1310
1451
 
1452
+ To reproduce CI's Python environment and understand each check, see the
1453
+ [CI guide](docs/CI.md).
1454
+
1311
1455
  ```bash
1312
1456
  uvx pre-commit run --all-files
1313
1457
  python -m compileall -q app_server cli core tools workflows