carole.ai 0.1.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 (327) hide show
  1. carole_ai-0.1.0/MANIFEST.in +9 -0
  2. carole_ai-0.1.0/PKG-INFO +188 -0
  3. carole_ai-0.1.0/README.md +103 -0
  4. carole_ai-0.1.0/backend/carole.ai.egg-info/PKG-INFO +188 -0
  5. carole_ai-0.1.0/backend/carole.ai.egg-info/SOURCES.txt +325 -0
  6. carole_ai-0.1.0/backend/carole.ai.egg-info/dependency_links.txt +1 -0
  7. carole_ai-0.1.0/backend/carole.ai.egg-info/entry_points.txt +2 -0
  8. carole_ai-0.1.0/backend/carole.ai.egg-info/requires.txt +66 -0
  9. carole_ai-0.1.0/backend/carole.ai.egg-info/top_level.txt +4 -0
  10. carole_ai-0.1.0/backend/carole_ai/__init__.py +3 -0
  11. carole_ai-0.1.0/backend/carole_ai/cli.py +59 -0
  12. carole_ai-0.1.0/backend/carole_ai/resources/alembic/README +1 -0
  13. carole_ai-0.1.0/backend/carole_ai/resources/alembic/env.py +100 -0
  14. carole_ai-0.1.0/backend/carole_ai/resources/alembic/script.py.mako +28 -0
  15. carole_ai-0.1.0/backend/carole_ai/resources/alembic/versions/87fc6871354e_add_notifications.py +47 -0
  16. carole_ai-0.1.0/backend/carole_ai/resources/alembic/versions/a3f91d8e2b5c_file_backups_message_id_nullable.py +43 -0
  17. carole_ai-0.1.0/backend/carole_ai/resources/alembic/versions/b4c6d8e0f2a1_memory_index_queue.py +23 -0
  18. carole_ai-0.1.0/backend/carole_ai/resources/alembic/versions/c1371da95782_add_notifications_table.py +32 -0
  19. carole_ai-0.1.0/backend/carole_ai/resources/alembic/versions/c1b78449f80c_initial_schema.py +244 -0
  20. carole_ai-0.1.0/backend/carole_ai/resources/alembic/versions/c5d7e9f1a3b2_scoped_compaction_snapshots.py +23 -0
  21. carole_ai-0.1.0/backend/carole_ai/resources/alembic/versions/ccbd2b0dedbd_add_scheduled_tasks_table.py +51 -0
  22. carole_ai-0.1.0/backend/carole_ai/resources/alembic/versions/d6e8f0a2b4c6_kanban_production_features.py +152 -0
  23. carole_ai-0.1.0/backend/carole_ai/resources/alembic/versions/e7f9a1b3c5d7_request_accounting.py +48 -0
  24. carole_ai-0.1.0/backend/carole_ai/resources/alembic/versions/e9a3f2b7c841_merge_heads_add_compaction_events.py +50 -0
  25. carole_ai-0.1.0/backend/carole_ai/resources/alembic/versions/f3b8c2d1e4a5_add_compaction_event_watermarks.py +32 -0
  26. carole_ai-0.1.0/backend/carole_ai/resources/alembic.ini +149 -0
  27. carole_ai-0.1.0/backend/carole_ai/web/404.html +1 -0
  28. carole_ai-0.1.0/backend/carole_ai/web/__init__.py +1 -0
  29. carole_ai-0.1.0/backend/carole_ai/web/__next.__PAGE__.txt +30 -0
  30. carole_ai-0.1.0/backend/carole_ai/web/__next._full.txt +26 -0
  31. carole_ai-0.1.0/backend/carole_ai/web/__next._tree.txt +9 -0
  32. carole_ai-0.1.0/backend/carole_ai/web/_next/static/Y60d1O157hD9-Dl6GNA11/_buildManifest.js +1 -0
  33. carole_ai-0.1.0/backend/carole_ai/web/_next/static/Y60d1O157hD9-Dl6GNA11/_ssgManifest.js +1 -0
  34. carole_ai-0.1.0/backend/carole_ai/web/_next/static/chunks/252-6d718dff1b4cf13c.js +38 -0
  35. carole_ai-0.1.0/backend/carole_ai/web/_next/static/chunks/350-d0d0e34c4999e9e1.js +9 -0
  36. carole_ai-0.1.0/backend/carole_ai/web/_next/static/chunks/4bd1b696-4803b72be6f350ab.js +1 -0
  37. carole_ai-0.1.0/backend/carole_ai/web/_next/static/chunks/547-c8915a89030c6d35.js +1 -0
  38. carole_ai-0.1.0/backend/carole_ai/web/_next/static/chunks/606.da79f3f7d7127949.js +1 -0
  39. carole_ai-0.1.0/backend/carole_ai/web/_next/static/chunks/794-01f513876bb79669.js +52 -0
  40. carole_ai-0.1.0/backend/carole_ai/web/_next/static/chunks/app/_global-error/page-f005ec62af4a6fe9.js +1 -0
  41. carole_ai-0.1.0/backend/carole_ai/web/_next/static/chunks/app/_not-found/page-85804c12c61f831f.js +1 -0
  42. carole_ai-0.1.0/backend/carole_ai/web/_next/static/chunks/app/dev/chat-preview/page-02affa45655af244.js +1 -0
  43. carole_ai-0.1.0/backend/carole_ai/web/_next/static/chunks/app/layout-d7240d68af5fd1ad.js +1 -0
  44. carole_ai-0.1.0/backend/carole_ai/web/_next/static/chunks/app/page-3bef9f2c6e8d015e.js +60 -0
  45. carole_ai-0.1.0/backend/carole_ai/web/_next/static/chunks/e868780c.9f684de549e33ce0.js +18 -0
  46. carole_ai-0.1.0/backend/carole_ai/web/_next/static/chunks/framework-e864f982f533525d.js +1 -0
  47. carole_ai-0.1.0/backend/carole_ai/web/_next/static/chunks/main-49cd3bf67f791819.js +5 -0
  48. carole_ai-0.1.0/backend/carole_ai/web/_next/static/chunks/main-app-1fb173deb2dd49ea.js +1 -0
  49. carole_ai-0.1.0/backend/carole_ai/web/_next/static/chunks/next/dist/client/components/builtin/app-error-f005ec62af4a6fe9.js +1 -0
  50. carole_ai-0.1.0/backend/carole_ai/web/_next/static/chunks/next/dist/client/components/builtin/forbidden-f005ec62af4a6fe9.js +1 -0
  51. carole_ai-0.1.0/backend/carole_ai/web/_next/static/chunks/next/dist/client/components/builtin/global-error-643763a753d351b2.js +1 -0
  52. carole_ai-0.1.0/backend/carole_ai/web/_next/static/chunks/next/dist/client/components/builtin/not-found-f005ec62af4a6fe9.js +1 -0
  53. carole_ai-0.1.0/backend/carole_ai/web/_next/static/chunks/next/dist/client/components/builtin/unauthorized-f005ec62af4a6fe9.js +1 -0
  54. carole_ai-0.1.0/backend/carole_ai/web/_next/static/chunks/polyfills-42372ed130431b0a.js +1 -0
  55. carole_ai-0.1.0/backend/carole_ai/web/_next/static/chunks/webpack-382426666a0235c1.js +1 -0
  56. carole_ai-0.1.0/backend/carole_ai/web/_next/static/css/019ac255fd2906a8.css +1 -0
  57. carole_ai-0.1.0/backend/carole_ai/web/_next/static/css/21d7e3df3e74b2c1.css +1 -0
  58. carole_ai-0.1.0/backend/carole_ai/web/_next/static/css/979f8c50f2cb5fc2.css +1 -0
  59. carole_ai-0.1.0/backend/carole_ai/web/_next/static/css/d09c476c58b04f6c.css +1 -0
  60. carole_ai-0.1.0/backend/carole_ai/web/_next/static/css/d2cdc0e45a1c1127.css +1 -0
  61. carole_ai-0.1.0/backend/carole_ai/web/_next/static/media/558ca1a6aa3cb55e-s.p.woff2 +0 -0
  62. carole_ai-0.1.0/backend/carole_ai/web/_next/static/media/636a5ac981f94f8b-s.p.woff2 +0 -0
  63. carole_ai-0.1.0/backend/carole_ai/web/_next/static/media/64d784ea54a4acde-s.woff2 +0 -0
  64. carole_ai-0.1.0/backend/carole_ai/web/_next/static/media/6d831b18ae5b01dc-s.woff2 +0 -0
  65. carole_ai-0.1.0/backend/carole_ai/web/_next/static/media/6fe53d21e6e7ebd8-s.woff2 +0 -0
  66. carole_ai-0.1.0/backend/carole_ai/web/_next/static/media/8ebc6e9dde468c4a-s.woff2 +0 -0
  67. carole_ai-0.1.0/backend/carole_ai/web/_next/static/media/93a6e477e1480c92-s.woff2 +0 -0
  68. carole_ai-0.1.0/backend/carole_ai/web/_next/static/media/9d5a263311222317-s.p.woff2 +0 -0
  69. carole_ai-0.1.0/backend/carole_ai/web/_next/static/media/9e7b0a821b9dfcb4-s.woff2 +0 -0
  70. carole_ai-0.1.0/backend/carole_ai/web/_next/static/media/ac0e76ddaeeb7981-s.woff2 +0 -0
  71. carole_ai-0.1.0/backend/carole_ai/web/_next/static/media/c7e0cf6c760983e7-s.woff2 +0 -0
  72. carole_ai-0.1.0/backend/carole_ai/web/_next/static/media/edc640959b0c7826-s.woff2 +0 -0
  73. carole_ai-0.1.0/backend/carole_ai/web/_next/static/media/ff71da380fbe67dd-s.woff2 +0 -0
  74. carole_ai-0.1.0/backend/carole_ai/web/_not-found/__next._full.txt +21 -0
  75. carole_ai-0.1.0/backend/carole_ai/web/_not-found/__next._not-found.__PAGE__.txt +25 -0
  76. carole_ai-0.1.0/backend/carole_ai/web/_not-found/__next._tree.txt +6 -0
  77. carole_ai-0.1.0/backend/carole_ai/web/_not-found.html +1 -0
  78. carole_ai-0.1.0/backend/carole_ai/web/_not-found.txt +21 -0
  79. carole_ai-0.1.0/backend/carole_ai/web/apple-touch-icon.png +0 -0
  80. carole_ai-0.1.0/backend/carole_ai/web/branding/agent-animated.gif +0 -0
  81. carole_ai-0.1.0/backend/carole_ai/web/branding/agent-animated.webp +0 -0
  82. carole_ai-0.1.0/backend/carole_ai/web/branding/agent-eyes-closed.png +0 -0
  83. carole_ai-0.1.0/backend/carole_ai/web/branding/agent-eyes-open.png +0 -0
  84. carole_ai-0.1.0/backend/carole_ai/web/branding/agent-head-animated.gif +0 -0
  85. carole_ai-0.1.0/backend/carole_ai/web/branding/agent-head-animated.webp +0 -0
  86. carole_ai-0.1.0/backend/carole_ai/web/branding/logo-full-animated.gif +0 -0
  87. carole_ai-0.1.0/backend/carole_ai/web/branding/logo-full-animated.webp +0 -0
  88. carole_ai-0.1.0/backend/carole_ai/web/branding/logo-full-closed.png +0 -0
  89. carole_ai-0.1.0/backend/carole_ai/web/branding/logo-full-dark-animated.gif +0 -0
  90. carole_ai-0.1.0/backend/carole_ai/web/branding/logo-full-dark-animated.webp +0 -0
  91. carole_ai-0.1.0/backend/carole_ai/web/branding/logo-full-dark-closed.png +0 -0
  92. carole_ai-0.1.0/backend/carole_ai/web/branding/logo-full-dark.png +0 -0
  93. carole_ai-0.1.0/backend/carole_ai/web/branding/logo-full.png +0 -0
  94. carole_ai-0.1.0/backend/carole_ai/web/branding/logo-horizontal-animated.gif +0 -0
  95. carole_ai-0.1.0/backend/carole_ai/web/branding/logo-horizontal-animated.webp +0 -0
  96. carole_ai-0.1.0/backend/carole_ai/web/branding/logo-horizontal-closed.png +0 -0
  97. carole_ai-0.1.0/backend/carole_ai/web/branding/logo-horizontal-dark-animated.gif +0 -0
  98. carole_ai-0.1.0/backend/carole_ai/web/branding/logo-horizontal-dark-animated.webp +0 -0
  99. carole_ai-0.1.0/backend/carole_ai/web/branding/logo-horizontal-dark-closed.png +0 -0
  100. carole_ai-0.1.0/backend/carole_ai/web/branding/logo-horizontal-dark.png +0 -0
  101. carole_ai-0.1.0/backend/carole_ai/web/branding/logo-horizontal.png +0 -0
  102. carole_ai-0.1.0/backend/carole_ai/web/branding/logo-mark-animated.gif +0 -0
  103. carole_ai-0.1.0/backend/carole_ai/web/branding/logo-mark-animated.webp +0 -0
  104. carole_ai-0.1.0/backend/carole_ai/web/branding/logo-mark-closed.png +0 -0
  105. carole_ai-0.1.0/backend/carole_ai/web/branding/logo-mark.png +0 -0
  106. carole_ai-0.1.0/backend/carole_ai/web/branding/logo-name-dark.png +0 -0
  107. carole_ai-0.1.0/backend/carole_ai/web/branding/logo-name.png +0 -0
  108. carole_ai-0.1.0/backend/carole_ai/web/branding/logo-original-closed.png +0 -0
  109. carole_ai-0.1.0/backend/carole_ai/web/branding/logo-original.png +0 -0
  110. carole_ai-0.1.0/backend/carole_ai/web/branding/logo-wordmark-dark.png +0 -0
  111. carole_ai-0.1.0/backend/carole_ai/web/branding/logo-wordmark.png +0 -0
  112. carole_ai-0.1.0/backend/carole_ai/web/dev/chat-preview/__next._full.txt +24 -0
  113. carole_ai-0.1.0/backend/carole_ai/web/dev/chat-preview/__next._tree.txt +8 -0
  114. carole_ai-0.1.0/backend/carole_ai/web/dev/chat-preview/__next.dev.chat-preview.__PAGE__.txt +30 -0
  115. carole_ai-0.1.0/backend/carole_ai/web/dev/chat-preview.html +1 -0
  116. carole_ai-0.1.0/backend/carole_ai/web/dev/chat-preview.txt +24 -0
  117. carole_ai-0.1.0/backend/carole_ai/web/favicon.ico +0 -0
  118. carole_ai-0.1.0/backend/carole_ai/web/file.svg +1 -0
  119. carole_ai-0.1.0/backend/carole_ai/web/globe.svg +1 -0
  120. carole_ai-0.1.0/backend/carole_ai/web/icon.png +0 -0
  121. carole_ai-0.1.0/backend/carole_ai/web/icons/feature-browser.svg +28 -0
  122. carole_ai-0.1.0/backend/carole_ai/web/icons/feature-context.svg +51 -0
  123. carole_ai-0.1.0/backend/carole_ai/web/icons/feature-google.svg +27 -0
  124. carole_ai-0.1.0/backend/carole_ai/web/icons/feature-history.svg +26 -0
  125. carole_ai-0.1.0/backend/carole_ai/web/icons/feature-kanban.svg +42 -0
  126. carole_ai-0.1.0/backend/carole_ai/web/icons/feature-memory.svg +44 -0
  127. carole_ai-0.1.0/backend/carole_ai/web/icons/feature-plugin.svg +21 -0
  128. carole_ai-0.1.0/backend/carole_ai/web/icons/feature-security.svg +41 -0
  129. carole_ai-0.1.0/backend/carole_ai/web/icons/feature-subagents.svg +54 -0
  130. carole_ai-0.1.0/backend/carole_ai/web/icons/feature-tools.svg +42 -0
  131. carole_ai-0.1.0/backend/carole_ai/web/icons/pillar-mcp.jpg +0 -0
  132. carole_ai-0.1.0/backend/carole_ai/web/icons/pillar-mcp.svg +36 -0
  133. carole_ai-0.1.0/backend/carole_ai/web/icons/pillar-multimodal.jpg +0 -0
  134. carole_ai-0.1.0/backend/carole_ai/web/icons/pillar-multimodal.svg +36 -0
  135. carole_ai-0.1.0/backend/carole_ai/web/icons/pillar-opensource.jpg +0 -0
  136. carole_ai-0.1.0/backend/carole_ai/web/icons/pillar-opensource.svg +30 -0
  137. carole_ai-0.1.0/backend/carole_ai/web/icons/pillar-privacy.jpg +0 -0
  138. carole_ai-0.1.0/backend/carole_ai/web/icons/pillar-privacy.svg +34 -0
  139. carole_ai-0.1.0/backend/carole_ai/web/index.html +1 -0
  140. carole_ai-0.1.0/backend/carole_ai/web/index.txt +26 -0
  141. carole_ai-0.1.0/backend/carole_ai/web/logos/airtable.svg +5 -0
  142. carole_ai-0.1.0/backend/carole_ai/web/logos/anthropic.svg +1 -0
  143. carole_ai-0.1.0/backend/carole_ai/web/logos/asana.svg +1 -0
  144. carole_ai-0.1.0/backend/carole_ai/web/logos/aws.png +0 -0
  145. carole_ai-0.1.0/backend/carole_ai/web/logos/aws.svg +1 -0
  146. carole_ai-0.1.0/backend/carole_ai/web/logos/brave-search.svg +1 -0
  147. carole_ai-0.1.0/backend/carole_ai/web/logos/browserbase.svg +6 -0
  148. carole_ai-0.1.0/backend/carole_ai/web/logos/browseruse.svg +14 -0
  149. carole_ai-0.1.0/backend/carole_ai/web/logos/claude.svg +1 -0
  150. carole_ai-0.1.0/backend/carole_ai/web/logos/clickup.svg +1 -0
  151. carole_ai-0.1.0/backend/carole_ai/web/logos/confluence.svg +1 -0
  152. carole_ai-0.1.0/backend/carole_ai/web/logos/database.png +0 -0
  153. carole_ai-0.1.0/backend/carole_ai/web/logos/datadog.svg +1 -0
  154. carole_ai-0.1.0/backend/carole_ai/web/logos/deepseek.svg +5 -0
  155. carole_ai-0.1.0/backend/carole_ai/web/logos/discord.svg +1 -0
  156. carole_ai-0.1.0/backend/carole_ai/web/logos/docker.svg +1 -0
  157. carole_ai-0.1.0/backend/carole_ai/web/logos/fastapi.svg +4 -0
  158. carole_ai-0.1.0/backend/carole_ai/web/logos/figma.svg +7 -0
  159. carole_ai-0.1.0/backend/carole_ai/web/logos/flashrank.png +0 -0
  160. carole_ai-0.1.0/backend/carole_ai/web/logos/flashrank.svg +13 -0
  161. carole_ai-0.1.0/backend/carole_ai/web/logos/github.svg +1 -0
  162. carole_ai-0.1.0/backend/carole_ai/web/logos/gitlab.svg +1 -0
  163. carole_ai-0.1.0/backend/carole_ai/web/logos/google-drive.svg +5 -0
  164. carole_ai-0.1.0/backend/carole_ai/web/logos/google.svg +1 -0
  165. carole_ai-0.1.0/backend/carole_ai/web/logos/googlegemini.svg +1 -0
  166. carole_ai-0.1.0/backend/carole_ai/web/logos/groq.svg +5 -0
  167. carole_ai-0.1.0/backend/carole_ai/web/logos/hubspot.png +0 -0
  168. carole_ai-0.1.0/backend/carole_ai/web/logos/hubspot.svg +1 -0
  169. carole_ai-0.1.0/backend/carole_ai/web/logos/intercom.svg +1 -0
  170. carole_ai-0.1.0/backend/carole_ai/web/logos/jira.png +0 -0
  171. carole_ai-0.1.0/backend/carole_ai/web/logos/jira.svg +1 -0
  172. carole_ai-0.1.0/backend/carole_ai/web/logos/jwt.svg +7 -0
  173. carole_ai-0.1.0/backend/carole_ai/web/logos/lancedb.png +0 -0
  174. carole_ai-0.1.0/backend/carole_ai/web/logos/lancedb.svg +14 -0
  175. carole_ai-0.1.0/backend/carole_ai/web/logos/linear.svg +1 -0
  176. carole_ai-0.1.0/backend/carole_ai/web/logos/mcp.png +0 -0
  177. carole_ai-0.1.0/backend/carole_ai/web/logos/mistral.svg +1 -0
  178. carole_ai-0.1.0/backend/carole_ai/web/logos/model2vec.svg +12 -0
  179. carole_ai-0.1.0/backend/carole_ai/web/logos/mongodb.png +0 -0
  180. carole_ai-0.1.0/backend/carole_ai/web/logos/mongodb.svg +1 -0
  181. carole_ai-0.1.0/backend/carole_ai/web/logos/mysql.svg +1 -0
  182. carole_ai-0.1.0/backend/carole_ai/web/logos/nextjs.svg +20 -0
  183. carole_ai-0.1.0/backend/carole_ai/web/logos/notion.svg +9 -0
  184. carole_ai-0.1.0/backend/carole_ai/web/logos/nvidia.svg +4 -0
  185. carole_ai-0.1.0/backend/carole_ai/web/logos/ollama.svg +1 -0
  186. carole_ai-0.1.0/backend/carole_ai/web/logos/openai.svg +1 -0
  187. carole_ai-0.1.0/backend/carole_ai/web/logos/openllmetry.png +0 -0
  188. carole_ai-0.1.0/backend/carole_ai/web/logos/openrouter.svg +4 -0
  189. carole_ai-0.1.0/backend/carole_ai/web/logos/perplexity.svg +1 -0
  190. carole_ai-0.1.0/backend/carole_ai/web/logos/phoenix.png +0 -0
  191. carole_ai-0.1.0/backend/carole_ai/web/logos/phoenix.svg +12 -0
  192. carole_ai-0.1.0/backend/carole_ai/web/logos/playwright.svg +8 -0
  193. carole_ai-0.1.0/backend/carole_ai/web/logos/postgres.svg +1 -0
  194. carole_ai-0.1.0/backend/carole_ai/web/logos/posthog.svg +1 -0
  195. carole_ai-0.1.0/backend/carole_ai/web/logos/puppeteer.png +0 -0
  196. carole_ai-0.1.0/backend/carole_ai/web/logos/puppeteer.svg +1 -0
  197. carole_ai-0.1.0/backend/carole_ai/web/logos/python.svg +3 -0
  198. carole_ai-0.1.0/backend/carole_ai/web/logos/react.svg +1 -0
  199. carole_ai-0.1.0/backend/carole_ai/web/logos/redis.svg +1 -0
  200. carole_ai-0.1.0/backend/carole_ai/web/logos/sentry.svg +1 -0
  201. carole_ai-0.1.0/backend/carole_ai/web/logos/slack.svg +10 -0
  202. carole_ai-0.1.0/backend/carole_ai/web/logos/sqlite.svg +11 -0
  203. carole_ai-0.1.0/backend/carole_ai/web/logos/stripe.svg +1 -0
  204. carole_ai-0.1.0/backend/carole_ai/web/logos/supabase.svg +1 -0
  205. carole_ai-0.1.0/backend/carole_ai/web/logos/treesitter.png +0 -0
  206. carole_ai-0.1.0/backend/carole_ai/web/logos/treesitter.svg +7 -0
  207. carole_ai-0.1.0/backend/carole_ai/web/logos/trello.svg +1 -0
  208. carole_ai-0.1.0/backend/carole_ai/web/logos/typescript.svg +3 -0
  209. carole_ai-0.1.0/backend/carole_ai/web/logos/websocket.svg +7 -0
  210. carole_ai-0.1.0/backend/carole_ai/web/logos/zendesk.svg +1 -0
  211. carole_ai-0.1.0/backend/carole_ai/web/next.svg +1 -0
  212. carole_ai-0.1.0/backend/carole_ai/web/test_image.png +0 -0
  213. carole_ai-0.1.0/backend/carole_ai/web/vercel.svg +1 -0
  214. carole_ai-0.1.0/backend/carole_ai/web/window.svg +1 -0
  215. carole_ai-0.1.0/backend/core/__init__.py +1 -0
  216. carole_ai-0.1.0/backend/core/agent/__init__.py +1 -0
  217. carole_ai-0.1.0/backend/core/agent/checkpoint_store.py +28 -0
  218. carole_ai-0.1.0/backend/core/agent/context_ast.py +230 -0
  219. carole_ai-0.1.0/backend/core/agent/context_compiler.py +166 -0
  220. carole_ai-0.1.0/backend/core/agent/context_condenser.py +588 -0
  221. carole_ai-0.1.0/backend/core/agent/coordinator.py +78 -0
  222. carole_ai-0.1.0/backend/core/agent/cron_worker.py +137 -0
  223. carole_ai-0.1.0/backend/core/agent/intent_engine.py +262 -0
  224. carole_ai-0.1.0/backend/core/agent/loop_policy.py +48 -0
  225. carole_ai-0.1.0/backend/core/agent/message_history.py +358 -0
  226. carole_ai-0.1.0/backend/core/agent/observation_cache.py +211 -0
  227. carole_ai-0.1.0/backend/core/agent/prompt_blocks.py +195 -0
  228. carole_ai-0.1.0/backend/core/agent/prompt_safety.py +46 -0
  229. carole_ai-0.1.0/backend/core/agent/react_agent.py +2965 -0
  230. carole_ai-0.1.0/backend/core/agent/role_templates.py +395 -0
  231. carole_ai-0.1.0/backend/core/agent/run_budget.py +53 -0
  232. carole_ai-0.1.0/backend/core/agent/semantic_router.py +189 -0
  233. carole_ai-0.1.0/backend/core/agent/token_budget.py +18 -0
  234. carole_ai-0.1.0/backend/core/agent/workflow_dag.py +421 -0
  235. carole_ai-0.1.0/backend/core/api/__init__.py +1 -0
  236. carole_ai-0.1.0/backend/core/api/auth_routes.py +95 -0
  237. carole_ai-0.1.0/backend/core/api/browser_routes.py +408 -0
  238. carole_ai-0.1.0/backend/core/api/cost_routes.py +103 -0
  239. carole_ai-0.1.0/backend/core/api/cron_routes.py +119 -0
  240. carole_ai-0.1.0/backend/core/api/crud_routes.py +4156 -0
  241. carole_ai-0.1.0/backend/core/api/file_routes.py +960 -0
  242. carole_ai-0.1.0/backend/core/api/git_routes.py +469 -0
  243. carole_ai-0.1.0/backend/core/api/google_auth_routes.py +290 -0
  244. carole_ai-0.1.0/backend/core/api/model_routes.py +46 -0
  245. carole_ai-0.1.0/backend/core/api/notification_routes.py +127 -0
  246. carole_ai-0.1.0/backend/core/api/observability_routes.py +245 -0
  247. carole_ai-0.1.0/backend/core/api/plugin_routes.py +214 -0
  248. carole_ai-0.1.0/backend/core/api/scratchpad_routes.py +142 -0
  249. carole_ai-0.1.0/backend/core/api/search_routes.py +114 -0
  250. carole_ai-0.1.0/backend/core/api/skill_routes.py +377 -0
  251. carole_ai-0.1.0/backend/core/api/task_routes.py +77 -0
  252. carole_ai-0.1.0/backend/core/api/terminal_routes.py +60 -0
  253. carole_ai-0.1.0/backend/core/api/terminal_ws.py +467 -0
  254. carole_ai-0.1.0/backend/core/auth/__init__.py +3 -0
  255. carole_ai-0.1.0/backend/core/auth/auth_middleware.py +55 -0
  256. carole_ai-0.1.0/backend/core/auth/auth_service.py +326 -0
  257. carole_ai-0.1.0/backend/core/auth/instance_owner.py +60 -0
  258. carole_ai-0.1.0/backend/core/auth/rate_limiter.py +32 -0
  259. carole_ai-0.1.0/backend/core/chat/__init__.py +1 -0
  260. carole_ai-0.1.0/backend/core/chat/attachments.py +36 -0
  261. carole_ai-0.1.0/backend/core/chat/event_bus.py +166 -0
  262. carole_ai-0.1.0/backend/core/chat/message_router.py +666 -0
  263. carole_ai-0.1.0/backend/core/config.py +265 -0
  264. carole_ai-0.1.0/backend/core/defaults/__init__.py +3 -0
  265. carole_ai-0.1.0/backend/core/defaults/prompts.json +36 -0
  266. carole_ai-0.1.0/backend/core/defaults/supported_models.json +102 -0
  267. carole_ai-0.1.0/backend/core/judge/__init__.py +1 -0
  268. carole_ai-0.1.0/backend/core/judge/judge_evaluator.py +249 -0
  269. carole_ai-0.1.0/backend/core/knowledge/__init__.py +3 -0
  270. carole_ai-0.1.0/backend/core/knowledge/ast_parser.py +716 -0
  271. carole_ai-0.1.0/backend/core/knowledge/code_graph.py +718 -0
  272. carole_ai-0.1.0/backend/core/knowledge/hybrid_search.py +599 -0
  273. carole_ai-0.1.0/backend/core/knowledge/knowledge_ingestor.py +234 -0
  274. carole_ai-0.1.0/backend/core/llm/__init__.py +1 -0
  275. carole_ai-0.1.0/backend/core/llm/config_manager.py +437 -0
  276. carole_ai-0.1.0/backend/core/llm/model_catalog.py +203 -0
  277. carole_ai-0.1.0/backend/core/llm/multi_model_router.py +2694 -0
  278. carole_ai-0.1.0/backend/core/llm/provider_sync.py +429 -0
  279. carole_ai-0.1.0/backend/core/llm/usage_accounting.py +56 -0
  280. carole_ai-0.1.0/backend/core/memory/__init__.py +1 -0
  281. carole_ai-0.1.0/backend/core/memory/auto_dream.py +435 -0
  282. carole_ai-0.1.0/backend/core/memory/database.py +240 -0
  283. carole_ai-0.1.0/backend/core/memory/embedding.py +12 -0
  284. carole_ai-0.1.0/backend/core/memory/index_queue.py +61 -0
  285. carole_ai-0.1.0/backend/core/memory/lancedb_client.py +282 -0
  286. carole_ai-0.1.0/backend/core/memory/models.py +767 -0
  287. carole_ai-0.1.0/backend/core/memory/scratchpad.py +320 -0
  288. carole_ai-0.1.0/backend/core/notifications.py +58 -0
  289. carole_ai-0.1.0/backend/core/observability/openllmetry_tracer.py +188 -0
  290. carole_ai-0.1.0/backend/core/prompts.py +248 -0
  291. carole_ai-0.1.0/backend/core/skills/skill_manager.py +389 -0
  292. carole_ai-0.1.0/backend/core/skills/skill_parser.py +172 -0
  293. carole_ai-0.1.0/backend/core/tasks/__init__.py +2 -0
  294. carole_ai-0.1.0/backend/core/tasks/board_service.py +609 -0
  295. carole_ai-0.1.0/backend/core/tools/__init__.py +1 -0
  296. carole_ai-0.1.0/backend/core/tools/agent_tools.py +641 -0
  297. carole_ai-0.1.0/backend/core/tools/browser_agent.py +496 -0
  298. carole_ai-0.1.0/backend/core/tools/browser_pool.py +513 -0
  299. carole_ai-0.1.0/backend/core/tools/browser_tool.py +934 -0
  300. carole_ai-0.1.0/backend/core/tools/build_dom_tree.js +270 -0
  301. carole_ai-0.1.0/backend/core/tools/code_analysis_tools.py +464 -0
  302. carole_ai-0.1.0/backend/core/tools/context.py +56 -0
  303. carole_ai-0.1.0/backend/core/tools/cron_task_tools.py +181 -0
  304. carole_ai-0.1.0/backend/core/tools/file_tools.py +838 -0
  305. carole_ai-0.1.0/backend/core/tools/git_tools.py +266 -0
  306. carole_ai-0.1.0/backend/core/tools/google_meet_tool.py +113 -0
  307. carole_ai-0.1.0/backend/core/tools/google_workspace_tools.py +101 -0
  308. carole_ai-0.1.0/backend/core/tools/interaction_tools.py +192 -0
  309. carole_ai-0.1.0/backend/core/tools/mcp_client.py +494 -0
  310. carole_ai-0.1.0/backend/core/tools/meeting_tool.py +113 -0
  311. carole_ai-0.1.0/backend/core/tools/memory_tools.py +261 -0
  312. carole_ai-0.1.0/backend/core/tools/network_clients.py +436 -0
  313. carole_ai-0.1.0/backend/core/tools/plugin_decorator.py +45 -0
  314. carole_ai-0.1.0/backend/core/tools/process_runner.py +56 -0
  315. carole_ai-0.1.0/backend/core/tools/shell_tools.py +379 -0
  316. carole_ai-0.1.0/backend/core/tools/ssrf_guard.py +96 -0
  317. carole_ai-0.1.0/backend/core/tools/task_tools.py +718 -0
  318. carole_ai-0.1.0/backend/core/tools/tool_executor.py +3518 -0
  319. carole_ai-0.1.0/backend/core/tools/tool_registry.py +518 -0
  320. carole_ai-0.1.0/backend/core/tools/tool_retrieval.py +105 -0
  321. carole_ai-0.1.0/backend/core/tools/voice_stt_tts.py +200 -0
  322. carole_ai-0.1.0/backend/core/tools/web_tools.py +640 -0
  323. carole_ai-0.1.0/backend/main.py +922 -0
  324. carole_ai-0.1.0/backend/plugins/__init__.py +1 -0
  325. carole_ai-0.1.0/backend/plugins/_example_tool.py +21 -0
  326. carole_ai-0.1.0/pyproject.toml +118 -0
  327. carole_ai-0.1.0/setup.cfg +4 -0
@@ -0,0 +1,9 @@
1
+ include README.md
2
+ recursive-include backend/carole_ai/web *
3
+ recursive-include backend/carole_ai/resources *
4
+ recursive-include backend/core/defaults *.json
5
+ recursive-include backend/core/tools *.js
6
+ global-exclude *.pyc *.pyo
7
+ prune backend/carole_ai/web/__pycache__
8
+ prune backend/carole_ai/resources/alembic/__pycache__
9
+ prune backend/carole_ai/resources/alembic/versions/__pycache__
@@ -0,0 +1,188 @@
1
+ Metadata-Version: 2.4
2
+ Name: carole.ai
3
+ Version: 0.1.0
4
+ Summary: A local AI agent workspace with a FastAPI backend and integrated web UI
5
+ Author: Carole.ai
6
+ Project-URL: Homepage, https://github.com/sshivasai/Carole.ai
7
+ Project-URL: Repository, https://github.com/sshivasai/Carole.ai
8
+ Project-URL: Issues, https://github.com/sshivasai/Carole.ai/issues
9
+ Keywords: ai,agents,assistant,mcp,fastapi
10
+ Classifier: Development Status :: 3 - Alpha
11
+ Classifier: Environment :: Console
12
+ Classifier: Framework :: FastAPI
13
+ Classifier: Programming Language :: Python :: 3
14
+ Classifier: Programming Language :: Python :: 3.11
15
+ Classifier: Programming Language :: Python :: 3.12
16
+ Classifier: Topic :: Software Development :: Libraries :: Application Frameworks
17
+ Requires-Python: <3.14,>=3.11
18
+ Description-Content-Type: text/markdown
19
+ Requires-Dist: fastapi>=0.100.0
20
+ Requires-Dist: uvicorn>=0.23.0
21
+ Requires-Dist: python-dotenv>=1.0.0
22
+ Requires-Dist: sqlalchemy<2.1,>=2.0.0
23
+ Requires-Dist: aiosqlite>=0.19.0
24
+ Requires-Dist: alembic>=1.13.0
25
+ Requires-Dist: lancedb>=0.5.0
26
+ Requires-Dist: httpx>=0.25.0
27
+ Requires-Dist: pydantic>=2.0.0
28
+ Requires-Dist: jsonschema<5,>=4.23.0
29
+ Requires-Dist: referencing<1,>=0.35.0
30
+ Requires-Dist: pydantic-settings>=2.0.0
31
+ Requires-Dist: python-multipart>=0.0.6
32
+ Requires-Dist: PyPDF2>=3.0.0
33
+ Requires-Dist: networkx>=3.0.0
34
+ Requires-Dist: google-api-python-client>=2.0.0
35
+ Requires-Dist: google-auth-httplib2>=0.2.0
36
+ Requires-Dist: google-auth-oauthlib>=1.2.0
37
+ Requires-Dist: mcp<3,>=1.0.0
38
+ Requires-Dist: websockets>=12.0
39
+ Requires-Dist: langchain-openai
40
+ Requires-Dist: langchain-anthropic
41
+ Requires-Dist: langchain-google-genai
42
+ Requires-Dist: aiohttp>=3.9.0
43
+ Requires-Dist: slowapi>=0.1.9
44
+ Requires-Dist: playwright>=1.40.0
45
+ Requires-Dist: browser-use
46
+ Requires-Dist: python-docx>=1.0.0
47
+ Requires-Dist: markitdown>=0.1.7
48
+ Requires-Dist: beautifulsoup4>=4.12.0
49
+ Requires-Dist: markdownify>=0.14.0
50
+ Requires-Dist: aiofiles>=23.0.0
51
+ Requires-Dist: h2>=4.1.0
52
+ Requires-Dist: rank-bm25>=0.2.2
53
+ Requires-Dist: tree-sitter>=0.26.0
54
+ Requires-Dist: tree-sitter-python>=0.25.0
55
+ Requires-Dist: tree-sitter-javascript>=0.25.0
56
+ Requires-Dist: tree-sitter-typescript>=0.23.0
57
+ Requires-Dist: tree-sitter-rust>=0.24.0
58
+ Requires-Dist: tree-sitter-go>=0.25.0
59
+ Requires-Dist: tree-sitter-java>=0.23.0
60
+ Requires-Dist: tree-sitter-c>=0.24.0
61
+ Requires-Dist: tree-sitter-cpp>=0.23.0
62
+ Requires-Dist: tree-sitter-c-sharp>=0.23.0
63
+ Requires-Dist: tree-sitter-ruby>=0.23.0
64
+ Requires-Dist: tree-sitter-php>=0.24.0
65
+ Requires-Dist: tree-sitter-html>=0.23.0
66
+ Requires-Dist: tree-sitter-css>=0.25.0
67
+ Requires-Dist: tree-sitter-json>=0.24.0
68
+ Requires-Dist: tree-sitter-bash>=0.25.0
69
+ Requires-Dist: tree-sitter-yaml>=0.7.0
70
+ Requires-Dist: tree-sitter-toml>=0.7.0
71
+ Requires-Dist: tree-sitter-lua>=0.5.0
72
+ Requires-Dist: tree-sitter-markdown>=0.5.0
73
+ Requires-Dist: tree-sitter-scala>=0.26.0
74
+ Requires-Dist: tree-sitter-kotlin>=1.1.0
75
+ Requires-Dist: tree-sitter-swift>=0.7.0
76
+ Requires-Dist: tree-sitter-sql>=0.3.0
77
+ Requires-Dist: tree-sitter-elixir>=0.3.0
78
+ Requires-Dist: tree-sitter-zig>=1.1.0
79
+ Requires-Dist: tree-sitter-make>=1.1.0
80
+ Requires-Dist: tree-sitter-cmake>=0.7.0
81
+ Requires-Dist: model2vec>=0.9.0
82
+ Requires-Dist: flashrank>=0.2.10
83
+ Requires-Dist: traceloop-sdk>=0.62.0
84
+ Requires-Dist: croniter<7,>=6.0.0
85
+
86
+ <p align="center">
87
+ <img src="https://raw.githubusercontent.com/sshivasai/Carole.ai/master/frontend/public/branding/logo-full-dark-animated.gif" alt="Carole.ai Logo" width="280" />
88
+
89
+ </p>
90
+
91
+ # Carole.ai
92
+
93
+ **AI AGENTS. REAL WORK.**
94
+
95
+ Carole.ai is an advanced AI-powered assistant and development environment with a robust suite of features including Hybrid GraphRAG, zero-cost meeting integration, MCP (Model Context Protocol) expansion, and a native real-time Kanban board.
96
+
97
+ ## Install
98
+
99
+ Carole.ai includes its production web interface in the Python package, so Node.js
100
+ is not required at runtime. Python 3.11 or 3.12 is supported.
101
+
102
+ ```bash
103
+ pip install carole.ai
104
+ caroleai
105
+ ```
106
+
107
+ Carole.ai opens at [http://127.0.0.1:8000](http://127.0.0.1:8000) and stores
108
+ persistent application data in `~/.carole`. For an isolated application install,
109
+ you can use `pipx install carole.ai`. Browser automation additionally requires
110
+ the one-time command `playwright install chromium`.
111
+
112
+ ## Features
113
+
114
+ - **Hybrid GraphRAG**: Combines Dense (LanceDB) and Sparse memory retrieval, mapped alongside a real-time `networkx` Code Graph for unparalleled context awareness.
115
+ - **Zero-Cost Meeting Integration**: Seamlessly integrates with Google Meet via Playwright DOM caption scraping and native chat injection.
116
+ - **MCP Expansion**: Features a universal Model Context Protocol firewall and dynamic ToolRegistry, expanding the ecosystem of available models and tools securely.
117
+ - **Native Real-Time Kanban**: EventBus-driven split-screen project management for dynamic task tracking and synchronization.
118
+
119
+ ## Local Setup Instructions
120
+
121
+ Follow these steps to get Carole.ai running locally.
122
+
123
+ ### 1. Prerequisites
124
+ - Docker and Docker Compose
125
+ - Node.js (v22 recommended)
126
+ - Python (v3.11 or later)
127
+
128
+ ### 2. Environment Variables
129
+ Create a `.env` file in the root directory (or update the existing one) with the necessary variables. At a minimum, you'll need:
130
+
131
+ ```env
132
+ OPENROUTER_API_KEY=your_openrouter_api_key_here
133
+ # Optional recovery override. Normally the first account is the local owner.
134
+ # CAROLE_OWNER_ID=your_account_uuid
135
+ # Add other required API keys or database URLs as needed
136
+ ```
137
+
138
+ ### 3. Start the Backend (FastAPI)
139
+ The backend requires Python and FastAPI. We recommend using a virtual environment.
140
+
141
+ ```bash
142
+ cd backend
143
+ python -m venv venv
144
+ source venv/bin/activate # On Windows use: venv\Scripts\activate
145
+ pip install -r requirements.txt
146
+ uvicorn main:app --reload
147
+ ```
148
+
149
+ ### 4. Start the Frontend (Next.js)
150
+ The frontend is built with Next.js. Open a new terminal window to start it.
151
+
152
+ ```bash
153
+ cd frontend
154
+ npm install
155
+ npm run dev
156
+ ```
157
+
158
+ ### 5. Access the Application
159
+ - Frontend: [http://localhost:3000](http://localhost:3000)
160
+ - Backend API Docs: [http://localhost:8000/docs](http://localhost:8000/docs)
161
+
162
+
163
+ ## Instance owner and upgrade notes
164
+
165
+ The first account created is automatically the local instance owner. An operator
166
+ can optionally set `CAROLE_OWNER_ID` to an account UUID as a recovery override.
167
+ The instance owner controls host capabilities:
168
+ terminal/shell access, Git, browser automation, plugins, MCP servers, external
169
+ workspace paths, and instance settings/model/prompt administration. These
170
+ operations are unavailable until an owner is configured. Project ownership alone
171
+ does not grant access to the host machine. Host tools run with the backend OS
172
+ account's privileges; this is not an OS sandbox for untrusted tenants.
173
+
174
+ File, search, Git, and history APIs require an owned project UUID. Clients must
175
+ use the backend Git API; the former Next.js Git endpoint returns HTTP 410.
176
+ Attachments require authenticated downloads. Google accounts must reconnect
177
+ through Settings after upgrading: credentials are now stored separately per
178
+ account, and the old shared token is not reused. The OAuth start request must
179
+ include browser credentials so its callback can verify the initiating browser.
180
+
181
+ Docker stores application data in the `carole_data` volume at `/data/carole`.
182
+ Back up and copy any existing `.carole` data into that volume before switching an
183
+ existing deployment; creating the volume does not migrate old data. An explicit
184
+ `DATABASE_URL` or `CAROLE_HOME_DIR` override must point to persistent storage.
185
+ Playwright browsers are installed at a path available to the non-root app user.
186
+
187
+ See [runtime repair notes](docs/RUNTIME_REPAIRS.md) for the implementation changes
188
+ and verification boundaries.
@@ -0,0 +1,103 @@
1
+ <p align="center">
2
+ <img src="https://raw.githubusercontent.com/sshivasai/Carole.ai/master/frontend/public/branding/logo-full-dark-animated.gif" alt="Carole.ai Logo" width="280" />
3
+
4
+ </p>
5
+
6
+ # Carole.ai
7
+
8
+ **AI AGENTS. REAL WORK.**
9
+
10
+ Carole.ai is an advanced AI-powered assistant and development environment with a robust suite of features including Hybrid GraphRAG, zero-cost meeting integration, MCP (Model Context Protocol) expansion, and a native real-time Kanban board.
11
+
12
+ ## Install
13
+
14
+ Carole.ai includes its production web interface in the Python package, so Node.js
15
+ is not required at runtime. Python 3.11 or 3.12 is supported.
16
+
17
+ ```bash
18
+ pip install carole.ai
19
+ caroleai
20
+ ```
21
+
22
+ Carole.ai opens at [http://127.0.0.1:8000](http://127.0.0.1:8000) and stores
23
+ persistent application data in `~/.carole`. For an isolated application install,
24
+ you can use `pipx install carole.ai`. Browser automation additionally requires
25
+ the one-time command `playwright install chromium`.
26
+
27
+ ## Features
28
+
29
+ - **Hybrid GraphRAG**: Combines Dense (LanceDB) and Sparse memory retrieval, mapped alongside a real-time `networkx` Code Graph for unparalleled context awareness.
30
+ - **Zero-Cost Meeting Integration**: Seamlessly integrates with Google Meet via Playwright DOM caption scraping and native chat injection.
31
+ - **MCP Expansion**: Features a universal Model Context Protocol firewall and dynamic ToolRegistry, expanding the ecosystem of available models and tools securely.
32
+ - **Native Real-Time Kanban**: EventBus-driven split-screen project management for dynamic task tracking and synchronization.
33
+
34
+ ## Local Setup Instructions
35
+
36
+ Follow these steps to get Carole.ai running locally.
37
+
38
+ ### 1. Prerequisites
39
+ - Docker and Docker Compose
40
+ - Node.js (v22 recommended)
41
+ - Python (v3.11 or later)
42
+
43
+ ### 2. Environment Variables
44
+ Create a `.env` file in the root directory (or update the existing one) with the necessary variables. At a minimum, you'll need:
45
+
46
+ ```env
47
+ OPENROUTER_API_KEY=your_openrouter_api_key_here
48
+ # Optional recovery override. Normally the first account is the local owner.
49
+ # CAROLE_OWNER_ID=your_account_uuid
50
+ # Add other required API keys or database URLs as needed
51
+ ```
52
+
53
+ ### 3. Start the Backend (FastAPI)
54
+ The backend requires Python and FastAPI. We recommend using a virtual environment.
55
+
56
+ ```bash
57
+ cd backend
58
+ python -m venv venv
59
+ source venv/bin/activate # On Windows use: venv\Scripts\activate
60
+ pip install -r requirements.txt
61
+ uvicorn main:app --reload
62
+ ```
63
+
64
+ ### 4. Start the Frontend (Next.js)
65
+ The frontend is built with Next.js. Open a new terminal window to start it.
66
+
67
+ ```bash
68
+ cd frontend
69
+ npm install
70
+ npm run dev
71
+ ```
72
+
73
+ ### 5. Access the Application
74
+ - Frontend: [http://localhost:3000](http://localhost:3000)
75
+ - Backend API Docs: [http://localhost:8000/docs](http://localhost:8000/docs)
76
+
77
+
78
+ ## Instance owner and upgrade notes
79
+
80
+ The first account created is automatically the local instance owner. An operator
81
+ can optionally set `CAROLE_OWNER_ID` to an account UUID as a recovery override.
82
+ The instance owner controls host capabilities:
83
+ terminal/shell access, Git, browser automation, plugins, MCP servers, external
84
+ workspace paths, and instance settings/model/prompt administration. These
85
+ operations are unavailable until an owner is configured. Project ownership alone
86
+ does not grant access to the host machine. Host tools run with the backend OS
87
+ account's privileges; this is not an OS sandbox for untrusted tenants.
88
+
89
+ File, search, Git, and history APIs require an owned project UUID. Clients must
90
+ use the backend Git API; the former Next.js Git endpoint returns HTTP 410.
91
+ Attachments require authenticated downloads. Google accounts must reconnect
92
+ through Settings after upgrading: credentials are now stored separately per
93
+ account, and the old shared token is not reused. The OAuth start request must
94
+ include browser credentials so its callback can verify the initiating browser.
95
+
96
+ Docker stores application data in the `carole_data` volume at `/data/carole`.
97
+ Back up and copy any existing `.carole` data into that volume before switching an
98
+ existing deployment; creating the volume does not migrate old data. An explicit
99
+ `DATABASE_URL` or `CAROLE_HOME_DIR` override must point to persistent storage.
100
+ Playwright browsers are installed at a path available to the non-root app user.
101
+
102
+ See [runtime repair notes](docs/RUNTIME_REPAIRS.md) for the implementation changes
103
+ and verification boundaries.
@@ -0,0 +1,188 @@
1
+ Metadata-Version: 2.4
2
+ Name: carole.ai
3
+ Version: 0.1.0
4
+ Summary: A local AI agent workspace with a FastAPI backend and integrated web UI
5
+ Author: Carole.ai
6
+ Project-URL: Homepage, https://github.com/sshivasai/Carole.ai
7
+ Project-URL: Repository, https://github.com/sshivasai/Carole.ai
8
+ Project-URL: Issues, https://github.com/sshivasai/Carole.ai/issues
9
+ Keywords: ai,agents,assistant,mcp,fastapi
10
+ Classifier: Development Status :: 3 - Alpha
11
+ Classifier: Environment :: Console
12
+ Classifier: Framework :: FastAPI
13
+ Classifier: Programming Language :: Python :: 3
14
+ Classifier: Programming Language :: Python :: 3.11
15
+ Classifier: Programming Language :: Python :: 3.12
16
+ Classifier: Topic :: Software Development :: Libraries :: Application Frameworks
17
+ Requires-Python: <3.14,>=3.11
18
+ Description-Content-Type: text/markdown
19
+ Requires-Dist: fastapi>=0.100.0
20
+ Requires-Dist: uvicorn>=0.23.0
21
+ Requires-Dist: python-dotenv>=1.0.0
22
+ Requires-Dist: sqlalchemy<2.1,>=2.0.0
23
+ Requires-Dist: aiosqlite>=0.19.0
24
+ Requires-Dist: alembic>=1.13.0
25
+ Requires-Dist: lancedb>=0.5.0
26
+ Requires-Dist: httpx>=0.25.0
27
+ Requires-Dist: pydantic>=2.0.0
28
+ Requires-Dist: jsonschema<5,>=4.23.0
29
+ Requires-Dist: referencing<1,>=0.35.0
30
+ Requires-Dist: pydantic-settings>=2.0.0
31
+ Requires-Dist: python-multipart>=0.0.6
32
+ Requires-Dist: PyPDF2>=3.0.0
33
+ Requires-Dist: networkx>=3.0.0
34
+ Requires-Dist: google-api-python-client>=2.0.0
35
+ Requires-Dist: google-auth-httplib2>=0.2.0
36
+ Requires-Dist: google-auth-oauthlib>=1.2.0
37
+ Requires-Dist: mcp<3,>=1.0.0
38
+ Requires-Dist: websockets>=12.0
39
+ Requires-Dist: langchain-openai
40
+ Requires-Dist: langchain-anthropic
41
+ Requires-Dist: langchain-google-genai
42
+ Requires-Dist: aiohttp>=3.9.0
43
+ Requires-Dist: slowapi>=0.1.9
44
+ Requires-Dist: playwright>=1.40.0
45
+ Requires-Dist: browser-use
46
+ Requires-Dist: python-docx>=1.0.0
47
+ Requires-Dist: markitdown>=0.1.7
48
+ Requires-Dist: beautifulsoup4>=4.12.0
49
+ Requires-Dist: markdownify>=0.14.0
50
+ Requires-Dist: aiofiles>=23.0.0
51
+ Requires-Dist: h2>=4.1.0
52
+ Requires-Dist: rank-bm25>=0.2.2
53
+ Requires-Dist: tree-sitter>=0.26.0
54
+ Requires-Dist: tree-sitter-python>=0.25.0
55
+ Requires-Dist: tree-sitter-javascript>=0.25.0
56
+ Requires-Dist: tree-sitter-typescript>=0.23.0
57
+ Requires-Dist: tree-sitter-rust>=0.24.0
58
+ Requires-Dist: tree-sitter-go>=0.25.0
59
+ Requires-Dist: tree-sitter-java>=0.23.0
60
+ Requires-Dist: tree-sitter-c>=0.24.0
61
+ Requires-Dist: tree-sitter-cpp>=0.23.0
62
+ Requires-Dist: tree-sitter-c-sharp>=0.23.0
63
+ Requires-Dist: tree-sitter-ruby>=0.23.0
64
+ Requires-Dist: tree-sitter-php>=0.24.0
65
+ Requires-Dist: tree-sitter-html>=0.23.0
66
+ Requires-Dist: tree-sitter-css>=0.25.0
67
+ Requires-Dist: tree-sitter-json>=0.24.0
68
+ Requires-Dist: tree-sitter-bash>=0.25.0
69
+ Requires-Dist: tree-sitter-yaml>=0.7.0
70
+ Requires-Dist: tree-sitter-toml>=0.7.0
71
+ Requires-Dist: tree-sitter-lua>=0.5.0
72
+ Requires-Dist: tree-sitter-markdown>=0.5.0
73
+ Requires-Dist: tree-sitter-scala>=0.26.0
74
+ Requires-Dist: tree-sitter-kotlin>=1.1.0
75
+ Requires-Dist: tree-sitter-swift>=0.7.0
76
+ Requires-Dist: tree-sitter-sql>=0.3.0
77
+ Requires-Dist: tree-sitter-elixir>=0.3.0
78
+ Requires-Dist: tree-sitter-zig>=1.1.0
79
+ Requires-Dist: tree-sitter-make>=1.1.0
80
+ Requires-Dist: tree-sitter-cmake>=0.7.0
81
+ Requires-Dist: model2vec>=0.9.0
82
+ Requires-Dist: flashrank>=0.2.10
83
+ Requires-Dist: traceloop-sdk>=0.62.0
84
+ Requires-Dist: croniter<7,>=6.0.0
85
+
86
+ <p align="center">
87
+ <img src="https://raw.githubusercontent.com/sshivasai/Carole.ai/master/frontend/public/branding/logo-full-dark-animated.gif" alt="Carole.ai Logo" width="280" />
88
+
89
+ </p>
90
+
91
+ # Carole.ai
92
+
93
+ **AI AGENTS. REAL WORK.**
94
+
95
+ Carole.ai is an advanced AI-powered assistant and development environment with a robust suite of features including Hybrid GraphRAG, zero-cost meeting integration, MCP (Model Context Protocol) expansion, and a native real-time Kanban board.
96
+
97
+ ## Install
98
+
99
+ Carole.ai includes its production web interface in the Python package, so Node.js
100
+ is not required at runtime. Python 3.11 or 3.12 is supported.
101
+
102
+ ```bash
103
+ pip install carole.ai
104
+ caroleai
105
+ ```
106
+
107
+ Carole.ai opens at [http://127.0.0.1:8000](http://127.0.0.1:8000) and stores
108
+ persistent application data in `~/.carole`. For an isolated application install,
109
+ you can use `pipx install carole.ai`. Browser automation additionally requires
110
+ the one-time command `playwright install chromium`.
111
+
112
+ ## Features
113
+
114
+ - **Hybrid GraphRAG**: Combines Dense (LanceDB) and Sparse memory retrieval, mapped alongside a real-time `networkx` Code Graph for unparalleled context awareness.
115
+ - **Zero-Cost Meeting Integration**: Seamlessly integrates with Google Meet via Playwright DOM caption scraping and native chat injection.
116
+ - **MCP Expansion**: Features a universal Model Context Protocol firewall and dynamic ToolRegistry, expanding the ecosystem of available models and tools securely.
117
+ - **Native Real-Time Kanban**: EventBus-driven split-screen project management for dynamic task tracking and synchronization.
118
+
119
+ ## Local Setup Instructions
120
+
121
+ Follow these steps to get Carole.ai running locally.
122
+
123
+ ### 1. Prerequisites
124
+ - Docker and Docker Compose
125
+ - Node.js (v22 recommended)
126
+ - Python (v3.11 or later)
127
+
128
+ ### 2. Environment Variables
129
+ Create a `.env` file in the root directory (or update the existing one) with the necessary variables. At a minimum, you'll need:
130
+
131
+ ```env
132
+ OPENROUTER_API_KEY=your_openrouter_api_key_here
133
+ # Optional recovery override. Normally the first account is the local owner.
134
+ # CAROLE_OWNER_ID=your_account_uuid
135
+ # Add other required API keys or database URLs as needed
136
+ ```
137
+
138
+ ### 3. Start the Backend (FastAPI)
139
+ The backend requires Python and FastAPI. We recommend using a virtual environment.
140
+
141
+ ```bash
142
+ cd backend
143
+ python -m venv venv
144
+ source venv/bin/activate # On Windows use: venv\Scripts\activate
145
+ pip install -r requirements.txt
146
+ uvicorn main:app --reload
147
+ ```
148
+
149
+ ### 4. Start the Frontend (Next.js)
150
+ The frontend is built with Next.js. Open a new terminal window to start it.
151
+
152
+ ```bash
153
+ cd frontend
154
+ npm install
155
+ npm run dev
156
+ ```
157
+
158
+ ### 5. Access the Application
159
+ - Frontend: [http://localhost:3000](http://localhost:3000)
160
+ - Backend API Docs: [http://localhost:8000/docs](http://localhost:8000/docs)
161
+
162
+
163
+ ## Instance owner and upgrade notes
164
+
165
+ The first account created is automatically the local instance owner. An operator
166
+ can optionally set `CAROLE_OWNER_ID` to an account UUID as a recovery override.
167
+ The instance owner controls host capabilities:
168
+ terminal/shell access, Git, browser automation, plugins, MCP servers, external
169
+ workspace paths, and instance settings/model/prompt administration. These
170
+ operations are unavailable until an owner is configured. Project ownership alone
171
+ does not grant access to the host machine. Host tools run with the backend OS
172
+ account's privileges; this is not an OS sandbox for untrusted tenants.
173
+
174
+ File, search, Git, and history APIs require an owned project UUID. Clients must
175
+ use the backend Git API; the former Next.js Git endpoint returns HTTP 410.
176
+ Attachments require authenticated downloads. Google accounts must reconnect
177
+ through Settings after upgrading: credentials are now stored separately per
178
+ account, and the old shared token is not reused. The OAuth start request must
179
+ include browser credentials so its callback can verify the initiating browser.
180
+
181
+ Docker stores application data in the `carole_data` volume at `/data/carole`.
182
+ Back up and copy any existing `.carole` data into that volume before switching an
183
+ existing deployment; creating the volume does not migrate old data. An explicit
184
+ `DATABASE_URL` or `CAROLE_HOME_DIR` override must point to persistent storage.
185
+ Playwright browsers are installed at a path available to the non-root app user.
186
+
187
+ See [runtime repair notes](docs/RUNTIME_REPAIRS.md) for the implementation changes
188
+ and verification boundaries.