crabcode 0.1.3__tar.gz → 0.1.5__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 (321) hide show
  1. crabcode-0.1.5/.github/workflows/document-engine-wheels.yml +40 -0
  2. {crabcode-0.1.3 → crabcode-0.1.5}/.github/workflows/python-publish.yml +3 -0
  3. crabcode-0.1.5/.github/workflows/windows-compat.yml +52 -0
  4. {crabcode-0.1.3 → crabcode-0.1.5}/.gitignore +4 -1
  5. {crabcode-0.1.3 → crabcode-0.1.5}/PKG-INFO +15 -2
  6. {crabcode-0.1.3 → crabcode-0.1.5}/README.md +706 -53
  7. {crabcode-0.1.3 → crabcode-0.1.5}/README.zh-CN.md +661 -52
  8. crabcode-0.1.5/docs/windows-compatibility-fixes.md +58 -0
  9. crabcode-0.1.5/packages/cli/crabcode_cli/__init__.py +7 -0
  10. {crabcode-0.1.3 → crabcode-0.1.5}/packages/cli/crabcode_cli/app.py +308 -46
  11. {crabcode-0.1.3 → crabcode-0.1.5}/packages/cli/crabcode_cli/banner.py +11 -14
  12. crabcode-0.1.5/packages/cli/crabcode_cli/model_picker.py +168 -0
  13. {crabcode-0.1.3 → crabcode-0.1.5}/packages/cli/crabcode_cli/pipe.py +28 -11
  14. {crabcode-0.1.3 → crabcode-0.1.5}/packages/cli/crabcode_cli/repl.py +2085 -242
  15. crabcode-0.1.5/packages/cli/crabcode_cli/session_picker.py +239 -0
  16. {crabcode-0.1.3 → crabcode-0.1.5}/packages/cli/pyproject.toml +3 -2
  17. crabcode-0.1.5/packages/core/crabcode_core/__init__.py +7 -0
  18. crabcode-0.1.5/packages/core/crabcode_core/_version.py +3 -0
  19. crabcode-0.1.5/packages/core/crabcode_core/_windows_process.py +68 -0
  20. crabcode-0.1.5/packages/core/crabcode_core/agent_manager.py +1671 -0
  21. crabcode-0.1.5/packages/core/crabcode_core/api/anthropic_adapter.py +552 -0
  22. crabcode-0.1.5/packages/core/crabcode_core/api/base.py +177 -0
  23. {crabcode-0.1.3 → crabcode-0.1.5}/packages/core/crabcode_core/api/codex_adapter.py +393 -51
  24. crabcode-0.1.5/packages/core/crabcode_core/api/model_info.py +241 -0
  25. {crabcode-0.1.3 → crabcode-0.1.5}/packages/core/crabcode_core/api/openai_adapter.py +61 -36
  26. crabcode-0.1.5/packages/core/crabcode_core/command_line.py +18 -0
  27. crabcode-0.1.5/packages/core/crabcode_core/compact/__init__.py +17 -0
  28. crabcode-0.1.5/packages/core/crabcode_core/compact/compact.py +518 -0
  29. crabcode-0.1.5/packages/core/crabcode_core/compact/context_tokens.py +139 -0
  30. {crabcode-0.1.3 → crabcode-0.1.5}/packages/core/crabcode_core/config/claudemd.py +2 -2
  31. {crabcode-0.1.3 → crabcode-0.1.5}/packages/core/crabcode_core/config/manager.py +77 -8
  32. crabcode-0.1.5/packages/core/crabcode_core/events.py +4410 -0
  33. crabcode-0.1.5/packages/core/crabcode_core/file_lock.py +81 -0
  34. crabcode-0.1.5/packages/core/crabcode_core/filesystem.py +22 -0
  35. crabcode-0.1.5/packages/core/crabcode_core/goal.py +149 -0
  36. {crabcode-0.1.3 → crabcode-0.1.5}/packages/core/crabcode_core/hooks/manager.py +31 -8
  37. crabcode-0.1.5/packages/core/crabcode_core/io_worker.py +209 -0
  38. {crabcode-0.1.3 → crabcode-0.1.5}/packages/core/crabcode_core/logging_utils.py +60 -2
  39. {crabcode-0.1.3 → crabcode-0.1.5}/packages/core/crabcode_core/lsp/client.py +49 -20
  40. {crabcode-0.1.3 → crabcode-0.1.5}/packages/core/crabcode_core/lsp/diagnostics.py +3 -3
  41. {crabcode-0.1.3 → crabcode-0.1.5}/packages/core/crabcode_core/lsp/manager.py +2 -1
  42. {crabcode-0.1.3 → crabcode-0.1.5}/packages/core/crabcode_core/mcp/config.py +1 -1
  43. crabcode-0.1.5/packages/core/crabcode_core/path_validation.py +34 -0
  44. crabcode-0.1.5/packages/core/crabcode_core/peer/__init__.py +10 -0
  45. crabcode-0.1.5/packages/core/crabcode_core/peer/runtime.py +517 -0
  46. crabcode-0.1.5/packages/core/crabcode_core/permissions/__init__.py +7 -0
  47. crabcode-0.1.5/packages/core/crabcode_core/permissions/ai_reviewer.py +176 -0
  48. {crabcode-0.1.3 → crabcode-0.1.5}/packages/core/crabcode_core/permissions/manager.py +42 -3
  49. {crabcode-0.1.3 → crabcode-0.1.5}/packages/core/crabcode_core/plan/executor.py +48 -3
  50. {crabcode-0.1.3 → crabcode-0.1.5}/packages/core/crabcode_core/plan/types.py +16 -1
  51. {crabcode-0.1.3 → crabcode-0.1.5}/packages/core/crabcode_core/prompts/context.py +29 -17
  52. {crabcode-0.1.3 → crabcode-0.1.5}/packages/core/crabcode_core/prompts/system.py +89 -8
  53. {crabcode-0.1.3 → crabcode-0.1.5}/packages/core/crabcode_core/prompts/templates.py +7 -3
  54. crabcode-0.1.5/packages/core/crabcode_core/query/loop.py +1924 -0
  55. crabcode-0.1.5/packages/core/crabcode_core/schedule/__init__.py +13 -0
  56. crabcode-0.1.5/packages/core/crabcode_core/schedule/manager.py +617 -0
  57. {crabcode-0.1.3 → crabcode-0.1.5}/packages/core/crabcode_core/schedule/store.py +215 -7
  58. crabcode-0.1.5/packages/core/crabcode_core/schedule/timing.py +287 -0
  59. {crabcode-0.1.3 → crabcode-0.1.5}/packages/core/crabcode_core/session/export.py +4 -4
  60. {crabcode-0.1.3 → crabcode-0.1.5}/packages/core/crabcode_core/session/meta_db.py +251 -16
  61. crabcode-0.1.5/packages/core/crabcode_core/session/storage.py +1781 -0
  62. {crabcode-0.1.3 → crabcode-0.1.5}/packages/core/crabcode_core/snapshot/snapshot.py +17 -3
  63. {crabcode-0.1.3 → crabcode-0.1.5}/packages/core/crabcode_core/snapshot/tracker.py +112 -5
  64. crabcode-0.1.5/packages/core/crabcode_core/subprocess_utils.py +260 -0
  65. {crabcode-0.1.3 → crabcode-0.1.5}/packages/core/crabcode_core/team/bridge.py +1 -1
  66. crabcode-0.1.5/packages/core/crabcode_core/team/inbox.py +237 -0
  67. crabcode-0.1.5/packages/core/crabcode_core/team/manager.py +1659 -0
  68. crabcode-0.1.5/packages/core/crabcode_core/team/message_bus.py +821 -0
  69. {crabcode-0.1.3 → crabcode-0.1.5}/packages/core/crabcode_core/team/models.py +4 -4
  70. {crabcode-0.1.3 → crabcode-0.1.5}/packages/core/crabcode_core/team/recovery.py +66 -24
  71. crabcode-0.1.5/packages/core/crabcode_core/text_io.py +52 -0
  72. {crabcode-0.1.3 → crabcode-0.1.5}/packages/core/crabcode_core/tools/__init__.py +33 -2
  73. crabcode-0.1.5/packages/core/crabcode_core/tools/_input_schema.py +130 -0
  74. {crabcode-0.1.3 → crabcode-0.1.5}/packages/core/crabcode_core/tools/agent.py +114 -54
  75. {crabcode-0.1.3 → crabcode-0.1.5}/packages/core/crabcode_core/tools/bash.py +44 -25
  76. {crabcode-0.1.3 → crabcode-0.1.5}/packages/core/crabcode_core/tools/browser.py +15 -1
  77. {crabcode-0.1.3 → crabcode-0.1.5}/packages/core/crabcode_core/tools/checkpoint.py +14 -2
  78. {crabcode-0.1.3 → crabcode-0.1.5}/packages/core/crabcode_core/tools/file_edit.py +44 -5
  79. {crabcode-0.1.3 → crabcode-0.1.5}/packages/core/crabcode_core/tools/file_read.py +13 -3
  80. {crabcode-0.1.3 → crabcode-0.1.5}/packages/core/crabcode_core/tools/file_write.py +25 -4
  81. {crabcode-0.1.3 → crabcode-0.1.5}/packages/core/crabcode_core/tools/glob.py +8 -3
  82. crabcode-0.1.5/packages/core/crabcode_core/tools/goal.py +134 -0
  83. {crabcode-0.1.3 → crabcode-0.1.5}/packages/core/crabcode_core/tools/grep.py +108 -12
  84. crabcode-0.1.5/packages/core/crabcode_core/tools/image.py +166 -0
  85. crabcode-0.1.5/packages/core/crabcode_core/tools/image_generate.py +115 -0
  86. {crabcode-0.1.3 → crabcode-0.1.5}/packages/core/crabcode_core/tools/lint.py +22 -6
  87. crabcode-0.1.5/packages/core/crabcode_core/tools/memory.py +456 -0
  88. crabcode-0.1.5/packages/core/crabcode_core/tools/monitor.py +677 -0
  89. crabcode-0.1.5/packages/core/crabcode_core/tools/peer.py +103 -0
  90. {crabcode-0.1.3 → crabcode-0.1.5}/packages/core/crabcode_core/tools/revert.py +1 -1
  91. {crabcode-0.1.3 → crabcode-0.1.5}/packages/core/crabcode_core/tools/schedule.py +142 -71
  92. {crabcode-0.1.3 → crabcode-0.1.5}/packages/core/crabcode_core/tools/switch_mode.py +45 -3
  93. {crabcode-0.1.3 → crabcode-0.1.5}/packages/core/crabcode_core/tools/team.py +10 -5
  94. {crabcode-0.1.3 → crabcode-0.1.5}/packages/core/crabcode_core/types/__init__.py +10 -0
  95. {crabcode-0.1.3 → crabcode-0.1.5}/packages/core/crabcode_core/types/config.py +147 -6
  96. {crabcode-0.1.3 → crabcode-0.1.5}/packages/core/crabcode_core/types/event.py +61 -1
  97. {crabcode-0.1.3 → crabcode-0.1.5}/packages/core/crabcode_core/types/message.py +70 -0
  98. {crabcode-0.1.3 → crabcode-0.1.5}/packages/core/crabcode_core/types/tool.py +48 -0
  99. {crabcode-0.1.3 → crabcode-0.1.5}/packages/core/pyproject.toml +3 -1
  100. crabcode-0.1.5/packages/debugger/crabcode_debugger/__init__.py +5 -0
  101. crabcode-0.1.5/packages/debugger/crabcode_debugger/adapters.py +332 -0
  102. crabcode-0.1.5/packages/debugger/crabcode_debugger/dap.py +304 -0
  103. crabcode-0.1.5/packages/debugger/crabcode_debugger/memory.py +1806 -0
  104. crabcode-0.1.5/packages/debugger/crabcode_debugger/process.py +707 -0
  105. crabcode-0.1.5/packages/debugger/crabcode_debugger/runtime.py +58 -0
  106. crabcode-0.1.5/packages/debugger/crabcode_debugger/sessions.py +387 -0
  107. crabcode-0.1.5/packages/debugger/crabcode_debugger/tool.py +731 -0
  108. crabcode-0.1.5/packages/debugger/pyproject.toml +16 -0
  109. crabcode-0.1.5/packages/desktop/README.md +47 -0
  110. crabcode-0.1.5/packages/desktop/THEMES.md +68 -0
  111. crabcode-0.1.5/packages/desktop/index.html +13 -0
  112. crabcode-0.1.5/packages/desktop/package-lock.json +5201 -0
  113. crabcode-0.1.5/packages/desktop/package.json +38 -0
  114. crabcode-0.1.5/packages/desktop/src/App.test.tsx +1518 -0
  115. crabcode-0.1.5/packages/desktop/src/App.tsx +6832 -0
  116. crabcode-0.1.5/packages/desktop/src/ComposerEditor.test.tsx +286 -0
  117. crabcode-0.1.5/packages/desktop/src/ComposerEditor.tsx +680 -0
  118. crabcode-0.1.5/packages/desktop/src/CopyButton.tsx +68 -0
  119. crabcode-0.1.5/packages/desktop/src/DocumentWorkspace.blog.test.tsx +98 -0
  120. crabcode-0.1.5/packages/desktop/src/DocumentWorkspace.selection.test.tsx +64 -0
  121. crabcode-0.1.5/packages/desktop/src/DocumentWorkspace.test.ts +329 -0
  122. crabcode-0.1.5/packages/desktop/src/DocumentWorkspace.toolbar.test.tsx +86 -0
  123. crabcode-0.1.5/packages/desktop/src/DocumentWorkspace.tsx +2648 -0
  124. crabcode-0.1.5/packages/desktop/src/ModelSettingsPanel.tsx +730 -0
  125. crabcode-0.1.5/packages/desktop/src/ProjectFilesWorkspace.test.tsx +293 -0
  126. crabcode-0.1.5/packages/desktop/src/ProjectFilesWorkspace.tsx +688 -0
  127. crabcode-0.1.5/packages/desktop/src/RuntimeSettingsPanel.tsx +292 -0
  128. crabcode-0.1.5/packages/desktop/src/SettingsView.test.tsx +808 -0
  129. crabcode-0.1.5/packages/desktop/src/SettingsView.tsx +1587 -0
  130. crabcode-0.1.5/packages/desktop/src/TrajectoryView.test.tsx +71 -0
  131. crabcode-0.1.5/packages/desktop/src/TrajectoryView.tsx +383 -0
  132. crabcode-0.1.5/packages/desktop/src/events.test.ts +442 -0
  133. crabcode-0.1.5/packages/desktop/src/events.ts +693 -0
  134. crabcode-0.1.5/packages/desktop/src/favorites.test.ts +173 -0
  135. crabcode-0.1.5/packages/desktop/src/favorites.ts +295 -0
  136. crabcode-0.1.5/packages/desktop/src/gateway.ts +772 -0
  137. crabcode-0.1.5/packages/desktop/src/main.tsx +11 -0
  138. crabcode-0.1.5/packages/desktop/src/markdownMath.ts +112 -0
  139. crabcode-0.1.5/packages/desktop/src/native.test.ts +378 -0
  140. crabcode-0.1.5/packages/desktop/src/native.ts +507 -0
  141. crabcode-0.1.5/packages/desktop/src/pathUtils.ts +9 -0
  142. crabcode-0.1.5/packages/desktop/src/styles.css +14891 -0
  143. crabcode-0.1.5/packages/desktop/src/theme.test.ts +102 -0
  144. crabcode-0.1.5/packages/desktop/src/theme.ts +563 -0
  145. crabcode-0.1.5/packages/desktop/src/themePackages.test.ts +128 -0
  146. crabcode-0.1.5/packages/desktop/src/themePackages.ts +321 -0
  147. crabcode-0.1.5/packages/desktop/src/toolPresentation.test.ts +26 -0
  148. crabcode-0.1.5/packages/desktop/src/toolPresentation.ts +432 -0
  149. crabcode-0.1.5/packages/desktop/src/types.ts +724 -0
  150. crabcode-0.1.5/packages/desktop/src/vite-env.d.ts +1 -0
  151. crabcode-0.1.5/packages/desktop/src-tauri/Cargo.lock +5048 -0
  152. crabcode-0.1.5/packages/desktop/src-tauri/Cargo.toml +35 -0
  153. crabcode-0.1.5/packages/desktop/src-tauri/build.rs +3 -0
  154. crabcode-0.1.5/packages/desktop/src-tauri/capabilities/default.json +7 -0
  155. crabcode-0.1.5/packages/desktop/src-tauri/icons/128x128.png +0 -0
  156. crabcode-0.1.5/packages/desktop/src-tauri/icons/128x128@2x.png +0 -0
  157. crabcode-0.1.5/packages/desktop/src-tauri/icons/32x32.png +0 -0
  158. crabcode-0.1.5/packages/desktop/src-tauri/icons/icon.icns +0 -0
  159. crabcode-0.1.5/packages/desktop/src-tauri/icons/icon.ico +0 -0
  160. crabcode-0.1.5/packages/desktop/src-tauri/icons/icon.png +0 -0
  161. crabcode-0.1.5/packages/desktop/src-tauri/resources/dock-icon-light.png +0 -0
  162. crabcode-0.1.5/packages/desktop/src-tauri/src/gateway.rs +663 -0
  163. crabcode-0.1.5/packages/desktop/src-tauri/src/lib.rs +34 -0
  164. crabcode-0.1.5/packages/desktop/src-tauri/src/main.rs +5 -0
  165. crabcode-0.1.5/packages/desktop/src-tauri/src/settings.rs +340 -0
  166. crabcode-0.1.5/packages/desktop/src-tauri/tauri.conf.json +42 -0
  167. crabcode-0.1.5/packages/desktop/tsconfig.json +20 -0
  168. crabcode-0.1.5/packages/desktop/vite.config.ts +13 -0
  169. crabcode-0.1.5/packages/gateway/crabcode_gateway/__init__.py +18 -0
  170. crabcode-0.1.5/packages/gateway/crabcode_gateway/acp/agent.py +1581 -0
  171. crabcode-0.1.5/packages/gateway/crabcode_gateway/auth.py +139 -0
  172. crabcode-0.1.5/packages/gateway/crabcode_gateway/document_engine.py +636 -0
  173. crabcode-0.1.5/packages/gateway/crabcode_gateway/document_worker.py +301 -0
  174. crabcode-0.1.5/packages/gateway/crabcode_gateway/event_bus.py +655 -0
  175. crabcode-0.1.5/packages/gateway/crabcode_gateway/grpc/crabcode_pb2.py +70 -0
  176. crabcode-0.1.5/packages/gateway/crabcode_gateway/grpc/crabcode_pb2_grpc.py +474 -0
  177. {crabcode-0.1.3 → crabcode-0.1.5}/packages/gateway/crabcode_gateway/grpc/proto/crabcode.proto +24 -2
  178. crabcode-0.1.5/packages/gateway/crabcode_gateway/grpc/server.py +765 -0
  179. {crabcode-0.1.3 → crabcode-0.1.5}/packages/gateway/crabcode_gateway/middleware.py +144 -38
  180. crabcode-0.1.5/packages/gateway/crabcode_gateway/protocol.py +17 -0
  181. crabcode-0.1.5/packages/gateway/crabcode_gateway/routes/agent.py +392 -0
  182. crabcode-0.1.5/packages/gateway/crabcode_gateway/routes/auth.py +150 -0
  183. crabcode-0.1.5/packages/gateway/crabcode_gateway/routes/config.py +1219 -0
  184. crabcode-0.1.5/packages/gateway/crabcode_gateway/routes/document.py +1810 -0
  185. crabcode-0.1.5/packages/gateway/crabcode_gateway/routes/event.py +3553 -0
  186. crabcode-0.1.5/packages/gateway/crabcode_gateway/routes/peer.py +78 -0
  187. crabcode-0.1.5/packages/gateway/crabcode_gateway/routes/permission.py +121 -0
  188. crabcode-0.1.5/packages/gateway/crabcode_gateway/routes/schedule.py +300 -0
  189. crabcode-0.1.5/packages/gateway/crabcode_gateway/routes/session.py +1380 -0
  190. crabcode-0.1.5/packages/gateway/crabcode_gateway/routes/snapshot.py +211 -0
  191. crabcode-0.1.5/packages/gateway/crabcode_gateway/routes/tasks.py +318 -0
  192. crabcode-0.1.5/packages/gateway/crabcode_gateway/routes/team.py +392 -0
  193. crabcode-0.1.5/packages/gateway/crabcode_gateway/routes/workspace.py +283 -0
  194. crabcode-0.1.5/packages/gateway/crabcode_gateway/safe_file.py +63 -0
  195. crabcode-0.1.5/packages/gateway/crabcode_gateway/schemas.py +1520 -0
  196. crabcode-0.1.5/packages/gateway/crabcode_gateway/server.py +503 -0
  197. crabcode-0.1.5/packages/gateway/crabcode_gateway/session_registry.py +36 -0
  198. crabcode-0.1.5/packages/gateway/crabcode_gateway/task_registry.py +708 -0
  199. {crabcode-0.1.3 → crabcode-0.1.5}/packages/gateway/pyproject.toml +12 -2
  200. {crabcode-0.1.3 → crabcode-0.1.5}/packages/search/crabcode_search/background.py +6 -9
  201. {crabcode-0.1.3 → crabcode-0.1.5}/packages/search/crabcode_search/indexer.py +10 -7
  202. {crabcode-0.1.3 → crabcode-0.1.5}/packages/search/crabcode_search/store.py +4 -4
  203. {crabcode-0.1.3 → crabcode-0.1.5}/packages/search/crabcode_search/tool.py +22 -2
  204. {crabcode-0.1.3 → crabcode-0.1.5}/packages/search/pyproject.toml +3 -2
  205. crabcode-0.1.5/packages/vscode/.gitignore +1 -0
  206. crabcode-0.1.5/packages/vscode/.nvmrc +1 -0
  207. {crabcode-0.1.3 → crabcode-0.1.5}/packages/vscode/.vscode/launch.json +2 -2
  208. crabcode-0.1.5/packages/vscode/.vscodeignore +16 -0
  209. crabcode-0.1.5/packages/vscode/CHANGELOG.md +25 -0
  210. crabcode-0.1.5/packages/vscode/LICENSE +21 -0
  211. crabcode-0.1.5/packages/vscode/README.md +156 -0
  212. crabcode-0.1.5/packages/vscode/package-lock.json +4362 -0
  213. {crabcode-0.1.3 → crabcode-0.1.5}/packages/vscode/package.json +34 -5
  214. {crabcode-0.1.3 → crabcode-0.1.5}/packages/vscode/scripts/gen-types.py +56 -10
  215. crabcode-0.1.5/packages/vscode/src/chatPanel.ts +10531 -0
  216. crabcode-0.1.5/packages/vscode/src/client/protocol.ts +331 -0
  217. crabcode-0.1.5/packages/vscode/src/client/types.ts +1150 -0
  218. {crabcode-0.1.3 → crabcode-0.1.5}/packages/vscode/src/connection.ts +147 -24
  219. {crabcode-0.1.3 → crabcode-0.1.5}/packages/vscode/src/extension.ts +56 -24
  220. crabcode-0.1.5/packages/vscode/src/gatewayManager.ts +907 -0
  221. {crabcode-0.1.3 → crabcode-0.1.5}/packages/vscode/src/pendingEdits.ts +13 -8
  222. crabcode-0.1.5/packages/vscode/tests/contextUsage.test.cjs +28 -0
  223. crabcode-0.1.5/packages/vscode/tests/gatewayManager.test.cjs +71 -0
  224. crabcode-0.1.5/packages/vscode/tests/imageCaptions.test.cjs +89 -0
  225. {crabcode-0.1.3 → crabcode-0.1.5}/pyproject.toml +22 -2
  226. crabcode-0.1.5/scripts/audit_tool_cards.mjs +66 -0
  227. crabcode-0.1.5/scripts/build_document_engine_bundle.py +119 -0
  228. crabcode-0.1.5/scripts/sync_version.py +120 -0
  229. crabcode-0.1.5/tests/test_cli_api_recovery.py +388 -0
  230. crabcode-0.1.5/tests/test_cli_composer.py +215 -0
  231. crabcode-0.1.5/tests/test_cli_model_picker.py +113 -0
  232. crabcode-0.1.5/tests/test_cli_session_picker.py +138 -0
  233. crabcode-0.1.5/tests/test_context_token_accounting.py +326 -0
  234. crabcode-0.1.5/tests/test_image_context.py +231 -0
  235. crabcode-0.1.5/tests/test_image_tool.py +99 -0
  236. crabcode-0.1.5/tests/test_io_isolation.py +388 -0
  237. crabcode-0.1.5/tests/test_model_info.py +122 -0
  238. crabcode-0.1.5/tests/test_windows_audit_regressions.py +382 -0
  239. crabcode-0.1.5/tests/test_windows_compat.py +482 -0
  240. crabcode-0.1.3/packages/cli/crabcode_cli/__init__.py +0 -3
  241. crabcode-0.1.3/packages/core/crabcode_core/__init__.py +0 -3
  242. crabcode-0.1.3/packages/core/crabcode_core/agent_manager.py +0 -597
  243. crabcode-0.1.3/packages/core/crabcode_core/api/anthropic_adapter.py +0 -297
  244. crabcode-0.1.3/packages/core/crabcode_core/api/base.py +0 -90
  245. crabcode-0.1.3/packages/core/crabcode_core/api/model_info.py +0 -70
  246. crabcode-0.1.3/packages/core/crabcode_core/compact/__init__.py +0 -7
  247. crabcode-0.1.3/packages/core/crabcode_core/compact/compact.py +0 -219
  248. crabcode-0.1.3/packages/core/crabcode_core/events.py +0 -1151
  249. crabcode-0.1.3/packages/core/crabcode_core/permissions/__init__.py +0 -3
  250. crabcode-0.1.3/packages/core/crabcode_core/query/loop.py +0 -1068
  251. crabcode-0.1.3/packages/core/crabcode_core/schedule/__init__.py +0 -5
  252. crabcode-0.1.3/packages/core/crabcode_core/session/storage.py +0 -621
  253. crabcode-0.1.3/packages/core/crabcode_core/team/inbox.py +0 -102
  254. crabcode-0.1.3/packages/core/crabcode_core/team/manager.py +0 -577
  255. crabcode-0.1.3/packages/core/crabcode_core/team/message_bus.py +0 -365
  256. crabcode-0.1.3/packages/core/crabcode_core/tools/memory.py +0 -239
  257. crabcode-0.1.3/packages/gateway/crabcode_gateway/__init__.py +0 -3
  258. crabcode-0.1.3/packages/gateway/crabcode_gateway/acp/agent.py +0 -635
  259. crabcode-0.1.3/packages/gateway/crabcode_gateway/event_bus.py +0 -184
  260. crabcode-0.1.3/packages/gateway/crabcode_gateway/grpc/server.py +0 -415
  261. crabcode-0.1.3/packages/gateway/crabcode_gateway/routes/agent.py +0 -153
  262. crabcode-0.1.3/packages/gateway/crabcode_gateway/routes/config.py +0 -184
  263. crabcode-0.1.3/packages/gateway/crabcode_gateway/routes/event.py +0 -356
  264. crabcode-0.1.3/packages/gateway/crabcode_gateway/routes/permission.py +0 -59
  265. crabcode-0.1.3/packages/gateway/crabcode_gateway/routes/session.py +0 -371
  266. crabcode-0.1.3/packages/gateway/crabcode_gateway/routes/snapshot.py +0 -87
  267. crabcode-0.1.3/packages/gateway/crabcode_gateway/schemas.py +0 -563
  268. crabcode-0.1.3/packages/gateway/crabcode_gateway/server.py +0 -186
  269. crabcode-0.1.3/packages/vscode/package-lock.json +0 -545
  270. crabcode-0.1.3/packages/vscode/src/chatPanel.ts +0 -5930
  271. crabcode-0.1.3/packages/vscode/src/client/protocol.ts +0 -164
  272. crabcode-0.1.3/packages/vscode/src/client/types.ts +0 -392
  273. crabcode-0.1.3/packages/vscode/src/gatewayManager.ts +0 -466
  274. {crabcode-0.1.3 → crabcode-0.1.5}/packages/cli/crabcode_cli/__main__.py +0 -0
  275. {crabcode-0.1.3 → crabcode-0.1.5}/packages/cli/crabcode_cli/render/__init__.py +0 -0
  276. {crabcode-0.1.3 → crabcode-0.1.5}/packages/cli/crabcode_cli/render/messages.py +0 -0
  277. {crabcode-0.1.3 → crabcode-0.1.5}/packages/core/crabcode_core/api/__init__.py +0 -0
  278. {crabcode-0.1.3 → crabcode-0.1.5}/packages/core/crabcode_core/api/azure_adapter.py +0 -0
  279. {crabcode-0.1.3 → crabcode-0.1.5}/packages/core/crabcode_core/api/gemini_adapter.py +0 -0
  280. {crabcode-0.1.3 → crabcode-0.1.5}/packages/core/crabcode_core/api/ollama_adapter.py +0 -0
  281. {crabcode-0.1.3 → crabcode-0.1.5}/packages/core/crabcode_core/api/registry.py +0 -0
  282. {crabcode-0.1.3 → crabcode-0.1.5}/packages/core/crabcode_core/config/__init__.py +0 -0
  283. {crabcode-0.1.3 → crabcode-0.1.5}/packages/core/crabcode_core/hooks/__init__.py +0 -0
  284. {crabcode-0.1.3 → crabcode-0.1.5}/packages/core/crabcode_core/lsp/__init__.py +0 -0
  285. {crabcode-0.1.3 → crabcode-0.1.5}/packages/core/crabcode_core/mcp/__init__.py +0 -0
  286. {crabcode-0.1.3 → crabcode-0.1.5}/packages/core/crabcode_core/mcp/client.py +0 -0
  287. {crabcode-0.1.3 → crabcode-0.1.5}/packages/core/crabcode_core/plan/__init__.py +0 -0
  288. {crabcode-0.1.3 → crabcode-0.1.5}/packages/core/crabcode_core/prompts/__init__.py +0 -0
  289. {crabcode-0.1.3 → crabcode-0.1.5}/packages/core/crabcode_core/prompts/profile.py +0 -0
  290. {crabcode-0.1.3 → crabcode-0.1.5}/packages/core/crabcode_core/query/__init__.py +0 -0
  291. {crabcode-0.1.3 → crabcode-0.1.5}/packages/core/crabcode_core/schedule/models.py +0 -0
  292. {crabcode-0.1.3 → crabcode-0.1.5}/packages/core/crabcode_core/session/__init__.py +0 -0
  293. {crabcode-0.1.3 → crabcode-0.1.5}/packages/core/crabcode_core/session/title_gen.py +0 -0
  294. {crabcode-0.1.3 → crabcode-0.1.5}/packages/core/crabcode_core/skills/__init__.py +0 -0
  295. {crabcode-0.1.3 → crabcode-0.1.5}/packages/core/crabcode_core/skills/loader.py +0 -0
  296. {crabcode-0.1.3 → crabcode-0.1.5}/packages/core/crabcode_core/skills/matcher.py +0 -0
  297. {crabcode-0.1.3 → crabcode-0.1.5}/packages/core/crabcode_core/snapshot/__init__.py +0 -0
  298. {crabcode-0.1.3 → crabcode-0.1.5}/packages/core/crabcode_core/team/__init__.py +0 -0
  299. {crabcode-0.1.3 → crabcode-0.1.5}/packages/core/crabcode_core/tools/_input_helpers.py +0 -0
  300. {crabcode-0.1.3 → crabcode-0.1.5}/packages/core/crabcode_core/tools/ask_user.py +0 -0
  301. {crabcode-0.1.3 → crabcode-0.1.5}/packages/core/crabcode_core/tools/checklist.py +0 -0
  302. {crabcode-0.1.3 → crabcode-0.1.5}/packages/core/crabcode_core/tools/diff_utils.py +0 -0
  303. {crabcode-0.1.3 → crabcode-0.1.5}/packages/core/crabcode_core/tools/skill.py +0 -0
  304. {crabcode-0.1.3 → crabcode-0.1.5}/packages/core/crabcode_core/tools/web_search.py +0 -0
  305. {crabcode-0.1.3 → crabcode-0.1.5}/packages/core/crabcode_core/utf8_sanitize.py +0 -0
  306. {crabcode-0.1.3 → crabcode-0.1.5}/packages/gateway/crabcode_gateway/acp/__init__.py +0 -0
  307. {crabcode-0.1.3 → crabcode-0.1.5}/packages/gateway/crabcode_gateway/acp/session.py +0 -0
  308. {crabcode-0.1.3 → crabcode-0.1.5}/packages/gateway/crabcode_gateway/acp/transport.py +0 -0
  309. {crabcode-0.1.3 → crabcode-0.1.5}/packages/gateway/crabcode_gateway/acp/types.py +0 -0
  310. {crabcode-0.1.3 → crabcode-0.1.5}/packages/gateway/crabcode_gateway/adapter.py +0 -0
  311. {crabcode-0.1.3 → crabcode-0.1.5}/packages/gateway/crabcode_gateway/grpc/__init__.py +0 -0
  312. {crabcode-0.1.3 → crabcode-0.1.5}/packages/gateway/crabcode_gateway/routes/__init__.py +0 -0
  313. {crabcode-0.1.3 → crabcode-0.1.5}/packages/gateway/crabcode_gateway/routes/health.py +0 -0
  314. {crabcode-0.1.3 → crabcode-0.1.5}/packages/search/crabcode_search/__init__.py +0 -0
  315. {crabcode-0.1.3 → crabcode-0.1.5}/packages/search/crabcode_search/chunker.py +0 -0
  316. {crabcode-0.1.3 → crabcode-0.1.5}/packages/search/crabcode_search/embedder.py +0 -0
  317. {crabcode-0.1.3 → crabcode-0.1.5}/packages/vscode/.vscode/tasks.json +0 -0
  318. {crabcode-0.1.3 → crabcode-0.1.5}/packages/vscode/esbuild.js +0 -0
  319. {crabcode-0.1.3 → crabcode-0.1.5}/packages/vscode/logo.png +0 -0
  320. {crabcode-0.1.3 → crabcode-0.1.5}/packages/vscode/resources/icon.svg +0 -0
  321. {crabcode-0.1.3 → crabcode-0.1.5}/packages/vscode/tsconfig.json +0 -0
@@ -0,0 +1,40 @@
1
+ name: Document engine offline wheels
2
+
3
+ on:
4
+ workflow_dispatch:
5
+ pull_request:
6
+ paths:
7
+ - "pyproject.toml"
8
+ - "packages/gateway/**"
9
+ - "scripts/build_document_engine_bundle.py"
10
+ - ".github/workflows/document-engine-wheels.yml"
11
+
12
+ jobs:
13
+ offline-install:
14
+ strategy:
15
+ fail-fast: false
16
+ matrix:
17
+ os: [ubuntu-latest, macos-14, windows-latest]
18
+ python: ["3.10", "3.11", "3.12", "3.13"]
19
+ runs-on: ${{ matrix.os }}
20
+ steps:
21
+ - uses: actions/checkout@v4
22
+ - uses: actions/setup-python@v5
23
+ with:
24
+ python-version: ${{ matrix.python }}
25
+ - name: Build CrabCode wheel
26
+ run: |
27
+ python -m pip install build
28
+ python -m build --wheel
29
+ - name: Resolve platform wheelhouse
30
+ run: |
31
+ python -m pip download --only-binary=:all: --dest wheelhouse BabelDOC==0.6.4
32
+ python -c "from pathlib import Path; import shutil; shutil.copy2(next(Path('dist').glob('crabcode-*.whl')), 'wheelhouse')"
33
+ - name: Verify fully offline installation
34
+ shell: bash
35
+ run: |
36
+ python -m venv engine-venv
37
+ if [[ "$RUNNER_OS" == "Windows" ]]; then PYTHON=engine-venv/Scripts/python.exe; else PYTHON=engine-venv/bin/python; fi
38
+ "$PYTHON" -m pip install --no-index --find-links wheelhouse BabelDOC==0.6.4
39
+ "$PYTHON" -m pip install --no-index --no-deps --find-links wheelhouse crabcode
40
+ "$PYTHON" -c "import babeldoc; import crabcode_gateway.document_worker"
@@ -27,6 +27,9 @@ jobs:
27
27
  with:
28
28
  python-version: "3.10"
29
29
 
30
+ - name: Check version metadata
31
+ run: python scripts/sync_version.py --check
32
+
30
33
  - name: Build release distributions
31
34
  run: |
32
35
  pip install build
@@ -0,0 +1,52 @@
1
+ name: Cross-platform compatibility
2
+
3
+ on:
4
+ pull_request:
5
+ push:
6
+ branches: [main]
7
+
8
+ permissions:
9
+ contents: read
10
+
11
+ jobs:
12
+ python:
13
+ strategy:
14
+ fail-fast: false
15
+ matrix:
16
+ os: [windows-latest, ubuntu-latest, macos-latest]
17
+ python: ['3.10', '3.12']
18
+ runs-on: ${{ matrix.os }}
19
+ steps:
20
+ - uses: actions/checkout@v4
21
+ - uses: actions/setup-python@v5
22
+ with:
23
+ python-version: ${{ matrix.python }}
24
+ - uses: actions/setup-node@v4
25
+ with:
26
+ node-version: '22'
27
+ - run: python -m pip install -e . fastapi pypdf python-multipart
28
+ - run: python -m unittest discover -s tests -p "test_windows*.py" -v
29
+
30
+ windows-clients:
31
+ runs-on: windows-latest
32
+ steps:
33
+ - uses: actions/checkout@v4
34
+ - uses: actions/setup-node@v4
35
+ with:
36
+ node-version: '22'
37
+ - run: npm ci
38
+ working-directory: packages/desktop
39
+ - run: npm test
40
+ working-directory: packages/desktop
41
+ - run: npx tsc --noEmit
42
+ working-directory: packages/desktop
43
+ - run: npm ci
44
+ working-directory: packages/vscode
45
+ - run: npm test
46
+ working-directory: packages/vscode
47
+ - run: npx tsc --noEmit
48
+ working-directory: packages/vscode
49
+ - run: cargo test --locked
50
+ working-directory: packages/desktop/src-tauri
51
+ - run: cargo test --locked windows_credentials_survive_a_new_entry -- --ignored
52
+ working-directory: packages/desktop/src-tauri
@@ -11,4 +11,7 @@ build/
11
11
  .crabcode/
12
12
  .claude/
13
13
  .DS_Store
14
- node_modules
14
+ theme-samples
15
+ node_modules
16
+ target/
17
+ packages/desktop/src-tauri/gen/schemas/
@@ -1,6 +1,6 @@
1
- Metadata-Version: 2.4
1
+ Metadata-Version: 2.5
2
2
  Name: crabcode
3
- Version: 0.1.3
3
+ Version: 0.1.5
4
4
  Summary: CrabCode - AI coding assistant in the terminal
5
5
  Requires-Python: >=3.10
6
6
  Requires-Dist: anthropic>=0.40.0
@@ -12,16 +12,22 @@ Requires-Dist: pydantic>=2.0.0
12
12
  Requires-Dist: rich>=13.0.0
13
13
  Requires-Dist: tiktoken>=0.7.0
14
14
  Requires-Dist: typer>=0.12.0
15
+ Requires-Dist: websockets>=12.0
15
16
  Provides-Extra: all
16
17
  Requires-Dist: agent-client-protocol>=0.9.0; extra == 'all'
17
18
  Requires-Dist: anthropic[bedrock]>=0.40.0; extra == 'all'
18
19
  Requires-Dist: anthropic[vertex]>=0.40.0; extra == 'all'
20
+ Requires-Dist: babeldoc==0.6.4; extra == 'all'
21
+ Requires-Dist: cryptography>=42.0.0; extra == 'all'
19
22
  Requires-Dist: fastapi>=0.115.0; extra == 'all'
20
23
  Requires-Dist: grpcio-health-checking>=1.65.0; extra == 'all'
21
24
  Requires-Dist: grpcio>=1.65.0; extra == 'all'
22
25
  Requires-Dist: httpx>=0.27.0; extra == 'all'
23
26
  Requires-Dist: modelscope>=1.10.0; extra == 'all'
24
27
  Requires-Dist: playwright>=1.48.0; extra == 'all'
28
+ Requires-Dist: pyjwt>=2.9.0; extra == 'all'
29
+ Requires-Dist: pypdf>=4.0.0; extra == 'all'
30
+ Requires-Dist: python-multipart>=0.0.9; extra == 'all'
25
31
  Requires-Dist: sentence-transformers>=2.0.0; extra == 'all'
26
32
  Requires-Dist: sse-starlette>=2.0.0; extra == 'all'
27
33
  Requires-Dist: tree-sitter-language-pack>=1.0.0; extra == 'all'
@@ -31,12 +37,19 @@ Provides-Extra: bedrock
31
37
  Requires-Dist: anthropic[bedrock]>=0.40.0; extra == 'bedrock'
32
38
  Provides-Extra: browser
33
39
  Requires-Dist: playwright>=1.48.0; extra == 'browser'
40
+ Provides-Extra: debugger
41
+ Provides-Extra: document-translate
42
+ Requires-Dist: babeldoc==0.6.4; extra == 'document-translate'
34
43
  Provides-Extra: gateway
35
44
  Requires-Dist: agent-client-protocol>=0.9.0; extra == 'gateway'
45
+ Requires-Dist: cryptography>=42.0.0; extra == 'gateway'
36
46
  Requires-Dist: fastapi>=0.115.0; extra == 'gateway'
37
47
  Requires-Dist: grpcio-health-checking>=1.65.0; extra == 'gateway'
38
48
  Requires-Dist: grpcio>=1.65.0; extra == 'gateway'
39
49
  Requires-Dist: httpx>=0.27.0; extra == 'gateway'
50
+ Requires-Dist: pyjwt>=2.9.0; extra == 'gateway'
51
+ Requires-Dist: pypdf>=4.0.0; extra == 'gateway'
52
+ Requires-Dist: python-multipart>=0.0.9; extra == 'gateway'
40
53
  Requires-Dist: sse-starlette>=2.0.0; extra == 'gateway'
41
54
  Requires-Dist: uvicorn[standard]>=0.30.0; extra == 'gateway'
42
55
  Provides-Extra: search