polycoding 0.1.0__tar.gz → 1.0.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (224) hide show
  1. {polycoding-0.1.0 → polycoding-1.0.0}/AGENTS.md +3 -2
  2. {polycoding-0.1.0 → polycoding-1.0.0}/Dockerfile +10 -3
  3. polycoding-1.0.0/PKG-INFO +853 -0
  4. polycoding-1.0.0/README.md +811 -0
  5. polycoding-1.0.0/alembic.ini +149 -0
  6. polycoding-1.0.0/docs/CONTEXTPLUS.md +180 -0
  7. polycoding-1.0.0/docs/INJECT.md +235 -0
  8. polycoding-1.0.0/docs/NIGHTSHIFT.md +257 -0
  9. {polycoding-0.1.0 → polycoding-1.0.0}/docs/PLUGIN.md +170 -23
  10. polycoding-1.0.0/docs/PMTOOLS.md +587 -0
  11. polycoding-1.0.0/docs/RETRO.md +564 -0
  12. polycoding-1.0.0/docs/SPECIFY.md +749 -0
  13. polycoding-0.1.0/entrypooint.sh → polycoding-1.0.0/entrypoint.sh +6 -4
  14. polycoding-1.0.0/migrations/README +1 -0
  15. polycoding-1.0.0/migrations/env.py +81 -0
  16. polycoding-1.0.0/migrations/script.py.mako +28 -0
  17. polycoding-1.0.0/migrations/versions/0a5f21557119_repo_details_and_flow_incolumns.py +35 -0
  18. polycoding-1.0.0/migrations/versions/1defbd72658b_initial.py +82 -0
  19. polycoding-1.0.0/pyproject.toml +166 -0
  20. polycoding-1.0.0/src/agentsmd/__init__.py +3 -0
  21. polycoding-0.1.0/src/tools/agents_md_loader.py → polycoding-1.0.0/src/agentsmd/loader_tool.py +3 -5
  22. polycoding-1.0.0/src/agentsmd/module.py +72 -0
  23. polycoding-1.0.0/src/bootstrap.py +121 -0
  24. {polycoding-0.1.0 → polycoding-1.0.0}/src/cli/flow.py +45 -37
  25. {polycoding-0.1.0 → polycoding-1.0.0}/src/cli/project.py +4 -0
  26. {polycoding-0.1.0 → polycoding-1.0.0}/src/cli/server.py +2 -3
  27. {polycoding-0.1.0 → polycoding-1.0.0}/src/cli/utils.py +3 -0
  28. {polycoding-0.1.0 → polycoding-1.0.0}/src/crews/__init__.py +2 -1
  29. {polycoding-0.1.0 → polycoding-1.0.0}/src/crews/base.py +2 -2
  30. polycoding-1.0.0/src/crews/conversation_crew/config/agents.yaml +28 -0
  31. polycoding-1.0.0/src/crews/conversation_crew/config/tasks.yaml +76 -0
  32. {polycoding-0.1.0 → polycoding-1.0.0}/src/crews/conversation_crew/conversation_crew.py +26 -13
  33. {polycoding-0.1.0 → polycoding-1.0.0}/src/crews/conversation_crew/types.py +2 -1
  34. {polycoding-0.1.0 → polycoding-1.0.0}/src/crews/implement_crew/config/tasks.yaml +6 -0
  35. {polycoding-0.1.0 → polycoding-1.0.0}/src/crews/implement_crew/implement_crew.py +54 -25
  36. {polycoding-0.1.0 → polycoding-1.0.0}/src/crews/plan_crew/config/agents.yaml +3 -6
  37. {polycoding-0.1.0 → polycoding-1.0.0}/src/crews/plan_crew/config/tasks.yaml +17 -10
  38. {polycoding-0.1.0 → polycoding-1.0.0}/src/crews/plan_crew/plan_crew.py +1 -1
  39. {polycoding-0.1.0 → polycoding-1.0.0}/src/crews/ralph_crew/config/tasks.yaml +2 -0
  40. polycoding-1.0.0/src/crews/review_crew/__init__.py +4 -0
  41. polycoding-1.0.0/src/crews/review_crew/config/agents.yaml +97 -0
  42. polycoding-1.0.0/src/crews/review_crew/config/tasks.yaml +145 -0
  43. polycoding-1.0.0/src/crews/review_crew/postmortem.py +45 -0
  44. polycoding-1.0.0/src/crews/review_crew/review_crew.py +186 -0
  45. polycoding-1.0.0/src/crews/review_crew/types.py +25 -0
  46. {polycoding-0.1.0 → polycoding-1.0.0}/src/flows/__init__.py +0 -3
  47. {polycoding-0.1.0 → polycoding-1.0.0}/src/flows/base.py +31 -37
  48. {polycoding-0.1.0 → polycoding-1.0.0}/src/flows/ralph/flow.py +10 -6
  49. {polycoding-0.1.0 → polycoding-1.0.0}/src/flows/ralph/module.py +13 -5
  50. polycoding-1.0.0/src/flows/specify/__init__.py +6 -0
  51. polycoding-1.0.0/src/flows/specify/flow.py +180 -0
  52. polycoding-1.0.0/src/flows/specify/module.py +49 -0
  53. polycoding-1.0.0/src/flows/specify/types.py +39 -0
  54. {polycoding-0.1.0 → polycoding-1.0.0}/src/gitcore/__init__.py +4 -1
  55. polycoding-0.1.0/src/retro/git_notes.py → polycoding-1.0.0/src/gitcore/notes.py +71 -46
  56. {polycoding-0.1.0 → polycoding-1.0.0}/src/gitcore/operations.py +1 -1
  57. {polycoding-0.1.0 → polycoding-1.0.0}/src/gitcore/types.py +4 -0
  58. {polycoding-0.1.0 → polycoding-1.0.0}/src/github_app/installation_manager.py +0 -14
  59. {polycoding-0.1.0 → polycoding-1.0.0}/src/github_app/webhook_handler.py +56 -39
  60. {polycoding-0.1.0 → polycoding-1.0.0}/src/glm.py +1 -0
  61. {polycoding-0.1.0 → polycoding-1.0.0}/src/modules/__init__.py +0 -4
  62. {polycoding-0.1.0 → polycoding-1.0.0}/src/modules/hooks.py +7 -4
  63. {polycoding-0.1.0 → polycoding-1.0.0}/src/modules/protocol.py +16 -6
  64. polycoding-1.0.0/src/modules/registry.py +438 -0
  65. {polycoding-0.1.0 → polycoding-1.0.0}/src/persistence/config.py +0 -1
  66. {polycoding-0.1.0 → polycoding-1.0.0}/src/persistence/postgres.py +16 -9
  67. {polycoding-0.1.0 → polycoding-1.0.0}/src/project_manager/README.md +5 -5
  68. {polycoding-0.1.0 → polycoding-1.0.0}/src/project_manager/__init__.py +0 -2
  69. {polycoding-0.1.0 → polycoding-1.0.0}/src/project_manager/base.py +66 -0
  70. {polycoding-0.1.0 → polycoding-1.0.0}/src/project_manager/config.py +1 -1
  71. polycoding-1.0.0/src/project_manager/factory.py +40 -0
  72. {polycoding-0.1.0 → polycoding-1.0.0}/src/project_manager/flow_runner.py +21 -30
  73. {polycoding-0.1.0 → polycoding-1.0.0}/src/project_manager/github.py +148 -10
  74. {polycoding-0.1.0 → polycoding-1.0.0}/src/project_manager/hooks.py +35 -2
  75. {polycoding-0.1.0 → polycoding-1.0.0}/src/project_manager/types.py +7 -0
  76. polycoding-1.0.0/src/retro/__init__.py +5 -0
  77. {polycoding-0.1.0 → polycoding-1.0.0}/src/retro/analyzer.py +82 -82
  78. polycoding-1.0.0/src/retro/hooks.py +94 -0
  79. polycoding-1.0.0/src/retro/module.py +68 -0
  80. {polycoding-0.1.0 → polycoding-1.0.0}/src/retro/types.py +4 -2
  81. {polycoding-0.1.0 → polycoding-1.0.0}/src/tasks/tasks.py +7 -37
  82. {polycoding-0.1.0 → polycoding-1.0.0}/src/tasks/worker.py +2 -3
  83. {polycoding-0.1.0 → polycoding-1.0.0}/src/tools/__init__.py +2 -1
  84. polycoding-1.0.0/src/tools/project_management/__init__.py +61 -0
  85. polycoding-1.0.0/src/tools/project_management/base.py +24 -0
  86. polycoding-1.0.0/src/tools/project_management/issues.py +104 -0
  87. polycoding-1.0.0/src/tools/project_management/labels.py +82 -0
  88. polycoding-1.0.0/src/tools/project_management/projects.py +71 -0
  89. polycoding-1.0.0/src/tools/project_management/pull_requests.py +71 -0
  90. {polycoding-0.1.0 → polycoding-1.0.0}/tests/test_agents_md_loader.py +1 -1
  91. polycoding-1.0.0/tests/test_agentsmd_module.py +100 -0
  92. polycoding-1.0.0/tests/test_context_injector.py +98 -0
  93. {polycoding-0.1.0 → polycoding-1.0.0}/tests/test_flows.py +12 -11
  94. polycoding-1.0.0/tests/test_retro.py +177 -0
  95. polycoding-1.0.0/tests/test_tools/test_issues.py +45 -0
  96. polycoding-1.0.0/tests/tools/test_project_management_tools.py +28 -0
  97. {polycoding-0.1.0 → polycoding-1.0.0}/uv.lock +167 -1
  98. polycoding-0.1.0/LICENSE +0 -20
  99. polycoding-0.1.0/PKG-INFO +0 -225
  100. polycoding-0.1.0/README.md +0 -183
  101. polycoding-0.1.0/pyproject.toml +0 -97
  102. polycoding-0.1.0/src/bootstrap.py +0 -121
  103. polycoding-0.1.0/src/crews/conversation_crew/config/agents.yaml +0 -20
  104. polycoding-0.1.0/src/crews/conversation_crew/config/tasks.yaml +0 -66
  105. polycoding-0.1.0/src/crews/review_crew/__init__.py +0 -4
  106. polycoding-0.1.0/src/crews/review_crew/config/agents.yaml +0 -9
  107. polycoding-0.1.0/src/crews/review_crew/config/tasks.yaml +0 -23
  108. polycoding-0.1.0/src/crews/review_crew/review_crew.py +0 -46
  109. polycoding-0.1.0/src/crews/review_crew/types.py +0 -11
  110. polycoding-0.1.0/src/flows/registry.py +0 -124
  111. polycoding-0.1.0/src/modules/registry.py +0 -165
  112. polycoding-0.1.0/src/modules/tasks.py +0 -123
  113. polycoding-0.1.0/src/persistence/registry.py +0 -111
  114. polycoding-0.1.0/src/project_manager/conversation/__init__.py +0 -19
  115. polycoding-0.1.0/src/project_manager/conversation/flow.py +0 -233
  116. polycoding-0.1.0/src/project_manager/conversation/types.py +0 -64
  117. polycoding-0.1.0/src/project_manager/git_utils.py +0 -30
  118. polycoding-0.1.0/src/retro/__init__.py +0 -23
  119. polycoding-0.1.0/src/retro/crews/__init__.py +0 -5
  120. polycoding-0.1.0/src/retro/persistence.py +0 -247
  121. polycoding-0.1.0/src/tools/code_analysis/README.md +0 -84
  122. polycoding-0.1.0/src/tools/code_analysis/__init__.py +0 -179
  123. polycoding-0.1.0/src/tools/code_analysis/context_manager.py +0 -150
  124. polycoding-0.1.0/src/tools/code_analysis/language_support.py +0 -154
  125. polycoding-0.1.0/src/tools/code_analysis/lsp/__init__.py +0 -41
  126. polycoding-0.1.0/src/tools/code_analysis/lsp/base.py +0 -141
  127. polycoding-0.1.0/src/tools/code_analysis/lsp/client_pool.py +0 -358
  128. polycoding-0.1.0/src/tools/code_analysis/lsp/definition_tool.py +0 -173
  129. polycoding-0.1.0/src/tools/code_analysis/lsp/diagnostics_tool.py +0 -222
  130. polycoding-0.1.0/src/tools/code_analysis/lsp/hover_tool.py +0 -136
  131. polycoding-0.1.0/src/tools/code_analysis/lsp/references_tool.py +0 -162
  132. polycoding-0.1.0/src/tools/code_analysis/module.py +0 -159
  133. polycoding-0.1.0/src/tools/code_analysis/tree_sitter/README.md +0 -66
  134. polycoding-0.1.0/src/tools/code_analysis/tree_sitter/base.py +0 -189
  135. polycoding-0.1.0/src/tools/code_analysis/tree_sitter/types.py +0 -131
  136. polycoding-0.1.0/src/tools/code_analysis/types.py +0 -131
  137. polycoding-0.1.0/tests/test_retro.py +0 -131
  138. {polycoding-0.1.0 → polycoding-1.0.0}/.dockerignore +0 -0
  139. {polycoding-0.1.0 → polycoding-1.0.0}/.env.example +0 -0
  140. {polycoding-0.1.0 → polycoding-1.0.0}/.gitignore +0 -0
  141. {polycoding-0.1.0 → polycoding-1.0.0}/Makefile +0 -0
  142. {polycoding-0.1.0 → polycoding-1.0.0}/docs/ARCHITECTURE.md +0 -0
  143. {polycoding-0.1.0 → polycoding-1.0.0}/docs/CELERY_README.md +0 -0
  144. {polycoding-0.1.0 → polycoding-1.0.0}/docs/CLI_USAGE.md +0 -0
  145. {polycoding-0.1.0 → polycoding-1.0.0}/docs/FLOWS.md +0 -0
  146. {polycoding-0.1.0 → polycoding-1.0.0}/docs/HOOK_ARCHITECTURE.md +0 -0
  147. {polycoding-0.1.0 → polycoding-1.0.0}/docs/QUICKSTART.md +0 -0
  148. {polycoding-0.1.0 → polycoding-1.0.0}/src/AGENTS.md +0 -0
  149. {polycoding-0.1.0 → polycoding-1.0.0}/src/README.md +0 -0
  150. {polycoding-0.1.0 → polycoding-1.0.0}/src/channels/__init__.py +0 -0
  151. {polycoding-0.1.0 → polycoding-1.0.0}/src/channels/base.py +0 -0
  152. {polycoding-0.1.0 → polycoding-1.0.0}/src/channels/dispatcher.py +0 -0
  153. {polycoding-0.1.0 → polycoding-1.0.0}/src/channels/hooks.py +0 -0
  154. {polycoding-0.1.0 → polycoding-1.0.0}/src/channels/redis/__init__.py +0 -0
  155. {polycoding-0.1.0 → polycoding-1.0.0}/src/channels/redis/channel.py +0 -0
  156. {polycoding-0.1.0 → polycoding-1.0.0}/src/channels/stream/__init__.py +0 -0
  157. {polycoding-0.1.0 → polycoding-1.0.0}/src/channels/stream/config.py +0 -0
  158. {polycoding-0.1.0 → polycoding-1.0.0}/src/channels/stream/server.py +0 -0
  159. {polycoding-0.1.0 → polycoding-1.0.0}/src/channels/stream/server_app.py +0 -0
  160. {polycoding-0.1.0 → polycoding-1.0.0}/src/channels/types.py +0 -0
  161. {polycoding-0.1.0 → polycoding-1.0.0}/src/cli/__init__.py +0 -0
  162. {polycoding-0.1.0 → polycoding-1.0.0}/src/cli/db.py +0 -0
  163. {polycoding-0.1.0 → polycoding-1.0.0}/src/cli/main.py +0 -0
  164. {polycoding-0.1.0 → polycoding-1.0.0}/src/cli/worker.py +0 -0
  165. {polycoding-0.1.0 → polycoding-1.0.0}/src/crews/conversation_crew/__init__.py +0 -0
  166. {polycoding-0.1.0 → polycoding-1.0.0}/src/crews/implement_crew/__init__.py +0 -0
  167. {polycoding-0.1.0 → polycoding-1.0.0}/src/crews/implement_crew/config/agents.yaml +0 -0
  168. {polycoding-0.1.0 → polycoding-1.0.0}/src/crews/implement_crew/types.py +0 -0
  169. {polycoding-0.1.0 → polycoding-1.0.0}/src/crews/plan_crew/__init__.py +0 -0
  170. {polycoding-0.1.0 → polycoding-1.0.0}/src/crews/plan_crew/types.py +0 -0
  171. {polycoding-0.1.0 → polycoding-1.0.0}/src/crews/ralph_crew/__init__.py +0 -0
  172. {polycoding-0.1.0 → polycoding-1.0.0}/src/crews/ralph_crew/config/agents.yaml +0 -0
  173. {polycoding-0.1.0 → polycoding-1.0.0}/src/crews/ralph_crew/ralph_crew.py +0 -0
  174. {polycoding-0.1.0 → polycoding-1.0.0}/src/crews/ralph_crew/types.py +0 -0
  175. {polycoding-0.1.0/src/retro → polycoding-1.0.0/src}/crews/retro_crew/__init__.py +0 -0
  176. {polycoding-0.1.0/src/retro → polycoding-1.0.0/src}/crews/retro_crew/config/agents.yaml +0 -0
  177. {polycoding-0.1.0/src/retro → polycoding-1.0.0/src}/crews/retro_crew/config/tasks.yaml +0 -0
  178. {polycoding-0.1.0/src/retro → polycoding-1.0.0/src}/crews/retro_crew/retro_crew.py +0 -0
  179. {polycoding-0.1.0 → polycoding-1.0.0}/src/crews/streaming/__init__.py +0 -0
  180. {polycoding-0.1.0 → polycoding-1.0.0}/src/crews/streaming/callback.py +0 -0
  181. {polycoding-0.1.0 → polycoding-1.0.0}/src/crews/streaming/factory.py +0 -0
  182. {polycoding-0.1.0 → polycoding-1.0.0}/src/crews/streaming/publisher.py +0 -0
  183. {polycoding-0.1.0 → polycoding-1.0.0}/src/crews/streaming/types.py +0 -0
  184. {polycoding-0.1.0 → polycoding-1.0.0}/src/crews/test_crew/__init__.py +0 -0
  185. {polycoding-0.1.0 → polycoding-1.0.0}/src/crews/test_crew/config/agents.yaml +0 -0
  186. {polycoding-0.1.0 → polycoding-1.0.0}/src/crews/test_crew/config/tasks.yaml +0 -0
  187. {polycoding-0.1.0 → polycoding-1.0.0}/src/crews/test_crew/test_crew.py +0 -0
  188. {polycoding-0.1.0 → polycoding-1.0.0}/src/crews/test_crew/types.py +0 -0
  189. {polycoding-0.1.0 → polycoding-1.0.0}/src/crews/verify_crew/__init__.py +0 -0
  190. {polycoding-0.1.0 → polycoding-1.0.0}/src/crews/verify_crew/config/agents.yaml +0 -0
  191. {polycoding-0.1.0 → polycoding-1.0.0}/src/crews/verify_crew/config/tasks.yaml +0 -0
  192. {polycoding-0.1.0 → polycoding-1.0.0}/src/crews/verify_crew/types.py +0 -0
  193. {polycoding-0.1.0 → polycoding-1.0.0}/src/crews/verify_crew/verify_crew.py +0 -0
  194. {polycoding-0.1.0 → polycoding-1.0.0}/src/flows/protocol.py +0 -0
  195. {polycoding-0.1.0 → polycoding-1.0.0}/src/flows/ralph/__init__.py +0 -0
  196. {polycoding-0.1.0 → polycoding-1.0.0}/src/flows/ralph/types.py +0 -0
  197. {polycoding-0.1.0 → polycoding-1.0.0}/src/gitcore/hooks.py +0 -0
  198. {polycoding-0.1.0 → polycoding-1.0.0}/src/gitcore/module.py +0 -0
  199. {polycoding-0.1.0 → polycoding-1.0.0}/src/github_app/__init__.py +0 -0
  200. {polycoding-0.1.0 → polycoding-1.0.0}/src/github_app/app.py +0 -0
  201. {polycoding-0.1.0 → polycoding-1.0.0}/src/github_app/auth.py +0 -0
  202. {polycoding-0.1.0 → polycoding-1.0.0}/src/github_app/config.py +0 -0
  203. {polycoding-0.1.0 → polycoding-1.0.0}/src/github_app/label_mapper.py +0 -0
  204. {polycoding-0.1.0 → polycoding-1.0.0}/src/github_app/models.py +0 -0
  205. {polycoding-0.1.0 → polycoding-1.0.0}/src/modules/README.md +0 -0
  206. {polycoding-0.1.0 → polycoding-1.0.0}/src/modules/channels.py +0 -0
  207. {polycoding-0.1.0 → polycoding-1.0.0}/src/modules/context.py +0 -0
  208. {polycoding-0.1.0 → polycoding-1.0.0}/src/persistence/__init__.py +0 -0
  209. {polycoding-0.1.0 → polycoding-1.0.0}/src/persistence/tasks.py +0 -0
  210. {polycoding-0.1.0 → polycoding-1.0.0}/src/project_manager/github_conversation.py +0 -0
  211. {polycoding-0.1.0 → polycoding-1.0.0}/src/project_manager/github_projects_client.py +0 -0
  212. {polycoding-0.1.0 → polycoding-1.0.0}/src/project_manager/module.py +0 -0
  213. {polycoding-0.1.0 → polycoding-1.0.0}/src/retro/README.md +0 -0
  214. {polycoding-0.1.0 → polycoding-1.0.0}/src/tasks/__init__.py +0 -0
  215. {polycoding-0.1.0 → polycoding-1.0.0}/src/tasks/config.py +0 -0
  216. {polycoding-0.1.0 → polycoding-1.0.0}/src/tools/directory_read_tool.py +0 -0
  217. {polycoding-0.1.0 → polycoding-1.0.0}/src/tools/exec_tool.py +0 -0
  218. {polycoding-0.1.0 → polycoding-1.0.0}/src/tools/file_read_tool.py +0 -0
  219. {polycoding-0.1.0 → polycoding-1.0.0}/task_templates/custom_generate_result.md +0 -0
  220. {polycoding-0.1.0 → polycoding-1.0.0}/task_templates/custom_implement.md +0 -0
  221. {polycoding-0.1.0 → polycoding-1.0.0}/tests/__init__.py +0 -0
  222. {polycoding-0.1.0 → polycoding-1.0.0}/tests/test_gitcore.py +0 -0
  223. {polycoding-0.1.0 → polycoding-1.0.0}/tests/test_github_manager.py +0 -0
  224. {polycoding-0.1.0 → polycoding-1.0.0}/tests/test_project_manager_plugin.py +0 -0
@@ -152,7 +152,7 @@ def project_id(self) -> str:
152
152
  # Raise specific exceptions with helpful messages
153
153
  if not token:
154
154
  raise ValueError(
155
- "GitHub token must be provided via config or GITHUB_TOKEN env var"
155
+ "Either config.token or config.installation_id must be provided"
156
156
  )
157
157
 
158
158
  # Handle exceptions gracefully, return sensible defaults
@@ -277,7 +277,8 @@ Run manually: `pre-commit run --all-files`
277
277
  Required in `.env`:
278
278
 
279
279
  ```
280
- GITHUB_TOKEN=ghp_...
280
+ GITHUB_APP_ID=12345
281
+ GITHUB_APP_PRIVATE_KEY="-----BEGIN RSA PRIVATE KEY-----\n..."
281
282
  DATABASE_URL=postgresql://...
282
283
  REDIS_HOST=localhost
283
284
  REDIS_PORT=6379
@@ -10,11 +10,19 @@ RUN apt-get update && apt-get install -y --no-install-recommends \
10
10
  ssh \
11
11
  curl \
12
12
  ca-certificates \
13
+ unzip \
13
14
  && curl -fsSL https://deb.nodesource.com/setup_22.x | bash - \
14
15
  && apt-get install -y nodejs \
16
+ && curl -fsSL https://bun.sh/install | bash \
15
17
  && apt-get clean \
16
18
  && rm -rf /var/lib/apt/lists/*
17
- RUN node --version && npm --version && npm install -g pnpm && pnpm --version
19
+
20
+ # Add Bun to PATH and verify installations
21
+ ENV PATH="/root/.bun/bin:$PATH"
22
+ RUN node --version && npm --version && npm install -g pnpm && pnpm --version && bun --version
23
+
24
+ # Install Context+ globally ( bun install -g contextplus)
25
+ RUN bun install -g contextplus
18
26
 
19
27
  FROM base
20
28
  WORKDIR /app
@@ -22,9 +30,8 @@ WORKDIR /app
22
30
  COPY pyproject.toml uv.lock README.md ./
23
31
  RUN pip install --no-cache-dir "crewai[litellm]>=1.10.0b1" && uv sync
24
32
 
25
- COPY entrypooint.sh /usr/local/bin/entrypoint.sh
33
+ COPY entrypoint.sh /usr/local/bin/entrypoint.sh
26
34
  RUN chmod +x /usr/local/bin/entrypoint.sh
27
-
28
35
  # Creates a non-root user and adds permission to access the /app folder
29
36
  RUN useradd --create-home appuser \
30
37
  && chown -R appuser /app