docsgpt 0.19.0__py3-none-any.whl

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 (488) hide show
  1. docsgpt/__init__.py +0 -0
  2. docsgpt/agents/__init__.py +0 -0
  3. docsgpt/agents/agent_creator.py +25 -0
  4. docsgpt/agents/agentic_agent.py +58 -0
  5. docsgpt/agents/base.py +1484 -0
  6. docsgpt/agents/classic_agent.py +60 -0
  7. docsgpt/agents/default_tools.py +385 -0
  8. docsgpt/agents/headless_runner.py +284 -0
  9. docsgpt/agents/research_agent.py +703 -0
  10. docsgpt/agents/scheduler_utils.py +131 -0
  11. docsgpt/agents/tool_executor.py +1471 -0
  12. docsgpt/agents/tools/api_body_serializer.py +322 -0
  13. docsgpt/agents/tools/api_tool.py +237 -0
  14. docsgpt/agents/tools/artifact_generator.py +893 -0
  15. docsgpt/agents/tools/artifact_ref.py +67 -0
  16. docsgpt/agents/tools/attachment_bridge.py +152 -0
  17. docsgpt/agents/tools/base.py +23 -0
  18. docsgpt/agents/tools/brave.py +198 -0
  19. docsgpt/agents/tools/code_executor.py +498 -0
  20. docsgpt/agents/tools/cryptoprice.py +80 -0
  21. docsgpt/agents/tools/duckduckgo.py +216 -0
  22. docsgpt/agents/tools/internal_search.py +502 -0
  23. docsgpt/agents/tools/mcp_tool.py +1106 -0
  24. docsgpt/agents/tools/memory.py +523 -0
  25. docsgpt/agents/tools/notes.py +264 -0
  26. docsgpt/agents/tools/ntfy.py +137 -0
  27. docsgpt/agents/tools/path_utils.py +34 -0
  28. docsgpt/agents/tools/postgres.py +180 -0
  29. docsgpt/agents/tools/read_document.py +479 -0
  30. docsgpt/agents/tools/read_webpage.py +218 -0
  31. docsgpt/agents/tools/remote_device.py +317 -0
  32. docsgpt/agents/tools/scheduler.py +342 -0
  33. docsgpt/agents/tools/spec_parser.py +342 -0
  34. docsgpt/agents/tools/telegram.py +102 -0
  35. docsgpt/agents/tools/think.py +70 -0
  36. docsgpt/agents/tools/todo_list.py +357 -0
  37. docsgpt/agents/tools/tool_action_parser.py +158 -0
  38. docsgpt/agents/tools/tool_manager.py +77 -0
  39. docsgpt/agents/tools/wiki.py +510 -0
  40. docsgpt/agents/workflow_agent.py +545 -0
  41. docsgpt/agents/workflows/cel_evaluator.py +158 -0
  42. docsgpt/agents/workflows/node_agent.py +81 -0
  43. docsgpt/agents/workflows/schemas.py +193 -0
  44. docsgpt/agents/workflows/workflow_engine.py +1401 -0
  45. docsgpt/alembic/env.py +92 -0
  46. docsgpt/alembic/script.py.mako +26 -0
  47. docsgpt/alembic/versions/0001_initial.py +927 -0
  48. docsgpt/alembic/versions/0002_app_metadata.py +37 -0
  49. docsgpt/alembic/versions/0003_user_custom_models.py +65 -0
  50. docsgpt/alembic/versions/0004_durability_foundation.py +217 -0
  51. docsgpt/alembic/versions/0005_ingest_attempt_id.py +44 -0
  52. docsgpt/alembic/versions/0006_idempotency_lease.py +57 -0
  53. docsgpt/alembic/versions/0007_message_events.py +40 -0
  54. docsgpt/alembic/versions/0008_ingest_progress_status.py +44 -0
  55. docsgpt/alembic/versions/0009_tool_preferences.py +83 -0
  56. docsgpt/alembic/versions/0010_schedules.py +147 -0
  57. docsgpt/alembic/versions/0011_schedules_nullable_agent.py +53 -0
  58. docsgpt/alembic/versions/0012_remote_devices.py +117 -0
  59. docsgpt/alembic/versions/0013_devices_approval_modes.py +52 -0
  60. docsgpt/alembic/versions/0014_device_token_hash_index.py +29 -0
  61. docsgpt/alembic/versions/0015_token_usage_model_id.py +34 -0
  62. docsgpt/alembic/versions/0016_conversation_visibility.py +59 -0
  63. docsgpt/alembic/versions/0017_oidc_scim.py +48 -0
  64. docsgpt/alembic/versions/0018_tool_attempts_attribution.py +56 -0
  65. docsgpt/alembic/versions/0019_agent_slug.py +36 -0
  66. docsgpt/alembic/versions/0020_user_roles.py +50 -0
  67. docsgpt/alembic/versions/0021_teams.py +181 -0
  68. docsgpt/alembic/versions/0022_source_config.py +41 -0
  69. docsgpt/alembic/versions/0023_wiki_pages.py +64 -0
  70. docsgpt/alembic/versions/0024_wiki_pages_updated_via.py +28 -0
  71. docsgpt/alembic/versions/0025_artifacts.py +111 -0
  72. docsgpt/alembic/versions/0026_stack_logs_agent_id.py +52 -0
  73. docsgpt/alembic/versions/0027_schedule_run_error_types.py +61 -0
  74. docsgpt/alembic/versions/0028_user_logs_agent_lookup_idx.py +114 -0
  75. docsgpt/alembic/versions/0029_agent_guardrails.py +104 -0
  76. docsgpt/alembic/versions/0030_superseded_messages.py +55 -0
  77. docsgpt/alembic/versions/0031_token_usage_cache_tokens.py +35 -0
  78. docsgpt/alembic.ini +52 -0
  79. docsgpt/api/__init__.py +7 -0
  80. docsgpt/api/admin/__init__.py +3 -0
  81. docsgpt/api/admin/routes.py +375 -0
  82. docsgpt/api/answer/__init__.py +21 -0
  83. docsgpt/api/answer/routes/__init__.py +0 -0
  84. docsgpt/api/answer/routes/answer.py +192 -0
  85. docsgpt/api/answer/routes/base.py +1689 -0
  86. docsgpt/api/answer/routes/search.py +55 -0
  87. docsgpt/api/answer/routes/stream.py +220 -0
  88. docsgpt/api/answer/services/__init__.py +0 -0
  89. docsgpt/api/answer/services/compression/__init__.py +20 -0
  90. docsgpt/api/answer/services/compression/message_builder.py +249 -0
  91. docsgpt/api/answer/services/compression/orchestrator.py +353 -0
  92. docsgpt/api/answer/services/compression/prompt_builder.py +149 -0
  93. docsgpt/api/answer/services/compression/service.py +483 -0
  94. docsgpt/api/answer/services/compression/threshold_checker.py +111 -0
  95. docsgpt/api/answer/services/compression/token_counter.py +174 -0
  96. docsgpt/api/answer/services/compression/types.py +184 -0
  97. docsgpt/api/answer/services/continuation_service.py +220 -0
  98. docsgpt/api/answer/services/conversation_service.py +660 -0
  99. docsgpt/api/answer/services/persistence_policy.py +44 -0
  100. docsgpt/api/answer/services/prompt_renderer.py +190 -0
  101. docsgpt/api/answer/services/stream_processor.py +1840 -0
  102. docsgpt/api/async_sse.py +248 -0
  103. docsgpt/api/connector/routes.py +551 -0
  104. docsgpt/api/devices/__init__.py +11 -0
  105. docsgpt/api/devices/auth.py +141 -0
  106. docsgpt/api/devices/pairing.py +518 -0
  107. docsgpt/api/devices/routes.py +327 -0
  108. docsgpt/api/devices/session.py +272 -0
  109. docsgpt/api/events/__init__.py +0 -0
  110. docsgpt/api/events/routes.py +537 -0
  111. docsgpt/api/internal/__init__.py +0 -0
  112. docsgpt/api/internal/routes.py +171 -0
  113. docsgpt/api/oidc/__init__.py +11 -0
  114. docsgpt/api/oidc/denylist.py +107 -0
  115. docsgpt/api/oidc/provider.py +270 -0
  116. docsgpt/api/oidc/routes.py +670 -0
  117. docsgpt/api/scim/__init__.py +11 -0
  118. docsgpt/api/scim/routes.py +452 -0
  119. docsgpt/api/user/__init__.py +5 -0
  120. docsgpt/api/user/agents/__init__.py +17 -0
  121. docsgpt/api/user/agents/folders.py +366 -0
  122. docsgpt/api/user/agents/guardrails.py +156 -0
  123. docsgpt/api/user/agents/portability.py +1800 -0
  124. docsgpt/api/user/agents/routes.py +1941 -0
  125. docsgpt/api/user/agents/sharing.py +282 -0
  126. docsgpt/api/user/agents/webhooks.py +232 -0
  127. docsgpt/api/user/analytics/__init__.py +5 -0
  128. docsgpt/api/user/analytics/routes.py +1124 -0
  129. docsgpt/api/user/artifacts/__init__.py +5 -0
  130. docsgpt/api/user/artifacts/authz.py +168 -0
  131. docsgpt/api/user/artifacts/routes.py +402 -0
  132. docsgpt/api/user/attachments/__init__.py +5 -0
  133. docsgpt/api/user/attachments/routes.py +837 -0
  134. docsgpt/api/user/authz.py +97 -0
  135. docsgpt/api/user/base.py +431 -0
  136. docsgpt/api/user/conversations/__init__.py +5 -0
  137. docsgpt/api/user/conversations/routes.py +489 -0
  138. docsgpt/api/user/idempotency.py +294 -0
  139. docsgpt/api/user/me/__init__.py +3 -0
  140. docsgpt/api/user/me/routes.py +34 -0
  141. docsgpt/api/user/models/__init__.py +3 -0
  142. docsgpt/api/user/models/routes.py +574 -0
  143. docsgpt/api/user/prompts/__init__.py +5 -0
  144. docsgpt/api/user/prompts/routes.py +233 -0
  145. docsgpt/api/user/reconciliation.py +501 -0
  146. docsgpt/api/user/routes.py +87 -0
  147. docsgpt/api/user/scheduler_dispatcher.py +186 -0
  148. docsgpt/api/user/scheduler_worker.py +450 -0
  149. docsgpt/api/user/schedules/__init__.py +5 -0
  150. docsgpt/api/user/schedules/routes.py +621 -0
  151. docsgpt/api/user/sharing/__init__.py +5 -0
  152. docsgpt/api/user/sharing/routes.py +393 -0
  153. docsgpt/api/user/sources/__init__.py +13 -0
  154. docsgpt/api/user/sources/chunks.py +311 -0
  155. docsgpt/api/user/sources/retrieval_test.py +254 -0
  156. docsgpt/api/user/sources/routes.py +1331 -0
  157. docsgpt/api/user/sources/upload.py +1141 -0
  158. docsgpt/api/user/tasks.py +863 -0
  159. docsgpt/api/user/team_authz.py +109 -0
  160. docsgpt/api/user/team_sharing.py +124 -0
  161. docsgpt/api/user/teams/__init__.py +5 -0
  162. docsgpt/api/user/teams/routes.py +636 -0
  163. docsgpt/api/user/tools/__init__.py +6 -0
  164. docsgpt/api/user/tools/mcp.py +516 -0
  165. docsgpt/api/user/tools/routes.py +1030 -0
  166. docsgpt/api/user/utils.py +75 -0
  167. docsgpt/api/user/workflows/__init__.py +3 -0
  168. docsgpt/api/user/workflows/routes.py +593 -0
  169. docsgpt/api/v1/__init__.py +3 -0
  170. docsgpt/api/v1/idempotency.py +260 -0
  171. docsgpt/api/v1/routes.py +649 -0
  172. docsgpt/api/v1/session_store.py +99 -0
  173. docsgpt/api/v1/translator.py +680 -0
  174. docsgpt/app.py +374 -0
  175. docsgpt/asgi.py +46 -0
  176. docsgpt/auth.py +41 -0
  177. docsgpt/cache.py +337 -0
  178. docsgpt/celery_init.py +212 -0
  179. docsgpt/celeryconfig.py +69 -0
  180. docsgpt/cli.py +180 -0
  181. docsgpt/core/__init__.py +0 -0
  182. docsgpt/core/db_uri.py +89 -0
  183. docsgpt/core/json_schema_utils.py +34 -0
  184. docsgpt/core/log_context.py +57 -0
  185. docsgpt/core/logging_config.py +112 -0
  186. docsgpt/core/model_registry.py +389 -0
  187. docsgpt/core/model_settings.py +99 -0
  188. docsgpt/core/model_utils.py +183 -0
  189. docsgpt/core/model_yaml.py +395 -0
  190. docsgpt/core/models/README.md +251 -0
  191. docsgpt/core/models/_defaults.yaml +18 -0
  192. docsgpt/core/models/anthropic.yaml +23 -0
  193. docsgpt/core/models/deepseek.yaml +18 -0
  194. docsgpt/core/models/docsgpt.yaml +7 -0
  195. docsgpt/core/models/examples/mistral.yaml.example +31 -0
  196. docsgpt/core/models/google.yaml +17 -0
  197. docsgpt/core/models/groq.yaml +16 -0
  198. docsgpt/core/models/huggingface.yaml +7 -0
  199. docsgpt/core/models/novita.yaml +21 -0
  200. docsgpt/core/models/openai.yaml +20 -0
  201. docsgpt/core/models/openrouter.yaml +25 -0
  202. docsgpt/core/optional_deps.py +79 -0
  203. docsgpt/core/paths.py +50 -0
  204. docsgpt/core/secret_key.py +89 -0
  205. docsgpt/core/settings.py +585 -0
  206. docsgpt/core/shutdown.py +28 -0
  207. docsgpt/core/url_validation.py +183 -0
  208. docsgpt/devices/__init__.py +1 -0
  209. docsgpt/devices/broker.py +593 -0
  210. docsgpt/devices/denylist.py +172 -0
  211. docsgpt/devices/normalizer.py +84 -0
  212. docsgpt/devices/splitter.py +110 -0
  213. docsgpt/error.py +37 -0
  214. docsgpt/events/__init__.py +0 -0
  215. docsgpt/events/keys.py +52 -0
  216. docsgpt/events/publisher.py +144 -0
  217. docsgpt/graphrag/__init__.py +10 -0
  218. docsgpt/graphrag/extraction.py +338 -0
  219. docsgpt/graphrag/store.py +1136 -0
  220. docsgpt/guardrails/__init__.py +32 -0
  221. docsgpt/guardrails/base.py +122 -0
  222. docsgpt/guardrails/checks/__init__.py +26 -0
  223. docsgpt/guardrails/checks/heuristics.py +178 -0
  224. docsgpt/guardrails/checks/judge.py +133 -0
  225. docsgpt/guardrails/checks/patterns.py +281 -0
  226. docsgpt/guardrails/config.py +224 -0
  227. docsgpt/guardrails/engine.py +210 -0
  228. docsgpt/guardrails/guardrail_creator.py +63 -0
  229. docsgpt/guardrails/runtime.py +270 -0
  230. docsgpt/guardrails/stream.py +303 -0
  231. docsgpt/guardrails/types.py +225 -0
  232. docsgpt/gunicorn_conf.py +72 -0
  233. docsgpt/gunicorn_worker.py +57 -0
  234. docsgpt/llm/__init__.py +0 -0
  235. docsgpt/llm/anthropic.py +787 -0
  236. docsgpt/llm/base.py +871 -0
  237. docsgpt/llm/docsgpt_provider.py +62 -0
  238. docsgpt/llm/google_ai.py +738 -0
  239. docsgpt/llm/groq.py +17 -0
  240. docsgpt/llm/handlers/__init__.py +0 -0
  241. docsgpt/llm/handlers/anthropic.py +120 -0
  242. docsgpt/llm/handlers/base.py +1739 -0
  243. docsgpt/llm/handlers/google.py +120 -0
  244. docsgpt/llm/handlers/handler_creator.py +21 -0
  245. docsgpt/llm/handlers/openai.py +70 -0
  246. docsgpt/llm/llama_cpp.py +62 -0
  247. docsgpt/llm/llm_creator.py +130 -0
  248. docsgpt/llm/novita.py +17 -0
  249. docsgpt/llm/open_router.py +17 -0
  250. docsgpt/llm/openai.py +2138 -0
  251. docsgpt/llm/providers/__init__.py +45 -0
  252. docsgpt/llm/providers/_apikey_or_llm_name.py +51 -0
  253. docsgpt/llm/providers/anthropic.py +23 -0
  254. docsgpt/llm/providers/base.py +74 -0
  255. docsgpt/llm/providers/docsgpt.py +22 -0
  256. docsgpt/llm/providers/google.py +23 -0
  257. docsgpt/llm/providers/groq.py +23 -0
  258. docsgpt/llm/providers/huggingface.py +25 -0
  259. docsgpt/llm/providers/llama_cpp.py +19 -0
  260. docsgpt/llm/providers/novita.py +23 -0
  261. docsgpt/llm/providers/openai.py +37 -0
  262. docsgpt/llm/providers/openai_compatible.py +151 -0
  263. docsgpt/llm/providers/openrouter.py +23 -0
  264. docsgpt/logging.py +290 -0
  265. docsgpt/mcp_server.py +61 -0
  266. docsgpt/parser/__init__.py +1 -0
  267. docsgpt/parser/chunking.py +157 -0
  268. docsgpt/parser/chunking_creator.py +57 -0
  269. docsgpt/parser/chunking_strategies.py +320 -0
  270. docsgpt/parser/connectors/__init__.py +18 -0
  271. docsgpt/parser/connectors/_auth_utils.py +37 -0
  272. docsgpt/parser/connectors/base.py +140 -0
  273. docsgpt/parser/connectors/confluence/__init__.py +4 -0
  274. docsgpt/parser/connectors/confluence/auth.py +221 -0
  275. docsgpt/parser/connectors/confluence/loader.py +417 -0
  276. docsgpt/parser/connectors/connector_creator.py +89 -0
  277. docsgpt/parser/connectors/google_drive/__init__.py +10 -0
  278. docsgpt/parser/connectors/google_drive/auth.py +269 -0
  279. docsgpt/parser/connectors/google_drive/loader.py +561 -0
  280. docsgpt/parser/connectors/share_point/__init__.py +10 -0
  281. docsgpt/parser/connectors/share_point/auth.py +153 -0
  282. docsgpt/parser/connectors/share_point/loader.py +650 -0
  283. docsgpt/parser/document_reader.py +628 -0
  284. docsgpt/parser/embedding_pipeline.py +479 -0
  285. docsgpt/parser/file/__init__.py +1 -0
  286. docsgpt/parser/file/anydoc_parser.py +417 -0
  287. docsgpt/parser/file/audio_parser.py +48 -0
  288. docsgpt/parser/file/base.py +19 -0
  289. docsgpt/parser/file/base_parser.py +133 -0
  290. docsgpt/parser/file/bulk.py +650 -0
  291. docsgpt/parser/file/constants.py +102 -0
  292. docsgpt/parser/file/docling_parser.py +1014 -0
  293. docsgpt/parser/file/docs_parser.py +70 -0
  294. docsgpt/parser/file/epub_parser.py +28 -0
  295. docsgpt/parser/file/html_parser.py +238 -0
  296. docsgpt/parser/file/image_parser.py +31 -0
  297. docsgpt/parser/file/json_parser.py +57 -0
  298. docsgpt/parser/file/markdown_parser.py +145 -0
  299. docsgpt/parser/file/ocr_parser.py +874 -0
  300. docsgpt/parser/file/openapi3_parser.py +51 -0
  301. docsgpt/parser/file/pdf_trust.py +280 -0
  302. docsgpt/parser/file/pdfium_parser.py +261 -0
  303. docsgpt/parser/file/pptx_parser.py +75 -0
  304. docsgpt/parser/file/rst_parser.py +201 -0
  305. docsgpt/parser/file/tableize.py +105 -0
  306. docsgpt/parser/file/tabular_parser.py +280 -0
  307. docsgpt/parser/remote/base.py +19 -0
  308. docsgpt/parser/remote/crawler_loader.py +102 -0
  309. docsgpt/parser/remote/crawler_markdown.py +187 -0
  310. docsgpt/parser/remote/github_loader.py +454 -0
  311. docsgpt/parser/remote/reddit_loader.py +89 -0
  312. docsgpt/parser/remote/remote_creator.py +92 -0
  313. docsgpt/parser/remote/s3_loader.py +440 -0
  314. docsgpt/parser/remote/sitemap_loader.py +111 -0
  315. docsgpt/parser/remote/web_loader.py +57 -0
  316. docsgpt/parser/schema/__init__.py +1 -0
  317. docsgpt/parser/schema/base.py +34 -0
  318. docsgpt/parser/schema/schema.py +64 -0
  319. docsgpt/parser/tokenization.py +291 -0
  320. docsgpt/prompts/chat_reduce_prompt.txt +3 -0
  321. docsgpt/prompts/composer.py +99 -0
  322. docsgpt/prompts/compression/v1.0.txt +35 -0
  323. docsgpt/prompts/fragments/answering/agentic_creative.txt +8 -0
  324. docsgpt/prompts/fragments/answering/agentic_default.txt +7 -0
  325. docsgpt/prompts/fragments/answering/agentic_strict.txt +7 -0
  326. docsgpt/prompts/fragments/answering/classic_creative.txt +7 -0
  327. docsgpt/prompts/fragments/answering/classic_default.txt +6 -0
  328. docsgpt/prompts/fragments/answering/classic_strict.txt +6 -0
  329. docsgpt/prompts/fragments/attachments.txt +11 -0
  330. docsgpt/prompts/fragments/boundaries.txt +2 -0
  331. docsgpt/prompts/fragments/formatting.txt +5 -0
  332. docsgpt/prompts/fragments/identity.txt +2 -0
  333. docsgpt/prompts/fragments/memory.txt +10 -0
  334. docsgpt/prompts/fragments/persona.txt +8 -0
  335. docsgpt/prompts/fragments/platform.txt +4 -0
  336. docsgpt/prompts/partials/platform_capabilities.txt +12 -0
  337. docsgpt/prompts/research/clarification.txt +23 -0
  338. docsgpt/prompts/research/planning.txt +23 -0
  339. docsgpt/prompts/research/step.txt +13 -0
  340. docsgpt/prompts/research/synthesis.txt +22 -0
  341. docsgpt/retriever/__init__.py +0 -0
  342. docsgpt/retriever/base.py +10 -0
  343. docsgpt/retriever/classic_rag.py +419 -0
  344. docsgpt/retriever/dispatcher.py +349 -0
  345. docsgpt/retriever/fanout.py +190 -0
  346. docsgpt/retriever/graph_rag.py +359 -0
  347. docsgpt/retriever/hybrid_rag.py +85 -0
  348. docsgpt/retriever/labels.py +38 -0
  349. docsgpt/retriever/retriever_creator.py +25 -0
  350. docsgpt/retriever/stages/__init__.py +1 -0
  351. docsgpt/retriever/stages/prescreen.py +248 -0
  352. docsgpt/sandbox/__init__.py +1 -0
  353. docsgpt/sandbox/artifacts_capture.py +488 -0
  354. docsgpt/sandbox/base.py +90 -0
  355. docsgpt/sandbox/daytona.py +688 -0
  356. docsgpt/sandbox/jupyter_gateway.py +676 -0
  357. docsgpt/sandbox/manager.py +403 -0
  358. docsgpt/sandbox/sandbox_creator.py +91 -0
  359. docsgpt/scripts/__init__.py +0 -0
  360. docsgpt/scripts/prefetch_models.py +123 -0
  361. docsgpt/scripts/reembed.py +542 -0
  362. docsgpt/scripts/verify_offline.py +161 -0
  363. docsgpt/security/__init__.py +0 -0
  364. docsgpt/security/encryption.py +88 -0
  365. docsgpt/security/safe_url.py +593 -0
  366. docsgpt/security/zip_archive.py +401 -0
  367. docsgpt/seed/__init__.py +0 -0
  368. docsgpt/seed/commands.py +21 -0
  369. docsgpt/seed/config/agents_template.yaml +36 -0
  370. docsgpt/seed/config/premade_agents.yaml +94 -0
  371. docsgpt/seed/seeder.py +349 -0
  372. docsgpt/services/__init__.py +0 -0
  373. docsgpt/services/search_service.py +259 -0
  374. docsgpt/storage/__init__.py +0 -0
  375. docsgpt/storage/base.py +170 -0
  376. docsgpt/storage/db/__init__.py +10 -0
  377. docsgpt/storage/db/base_repository.py +67 -0
  378. docsgpt/storage/db/bootstrap.py +524 -0
  379. docsgpt/storage/db/embeddings_pin.py +150 -0
  380. docsgpt/storage/db/engine.py +98 -0
  381. docsgpt/storage/db/models.py +1081 -0
  382. docsgpt/storage/db/redaction.py +64 -0
  383. docsgpt/storage/db/repositories/__init__.py +11 -0
  384. docsgpt/storage/db/repositories/admin_stats.py +137 -0
  385. docsgpt/storage/db/repositories/agent_folders.py +140 -0
  386. docsgpt/storage/db/repositories/agents.py +385 -0
  387. docsgpt/storage/db/repositories/app_metadata.py +75 -0
  388. docsgpt/storage/db/repositories/artifacts.py +627 -0
  389. docsgpt/storage/db/repositories/attachments.py +307 -0
  390. docsgpt/storage/db/repositories/auth_events.py +108 -0
  391. docsgpt/storage/db/repositories/connector_sessions.py +317 -0
  392. docsgpt/storage/db/repositories/conversations.py +1368 -0
  393. docsgpt/storage/db/repositories/device_audit_log.py +183 -0
  394. docsgpt/storage/db/repositories/device_auto_approve_patterns.py +81 -0
  395. docsgpt/storage/db/repositories/devices.py +142 -0
  396. docsgpt/storage/db/repositories/guardrail_events.py +170 -0
  397. docsgpt/storage/db/repositories/idempotency.py +346 -0
  398. docsgpt/storage/db/repositories/ingest_chunk_progress.py +148 -0
  399. docsgpt/storage/db/repositories/memories.py +115 -0
  400. docsgpt/storage/db/repositories/message_events.py +298 -0
  401. docsgpt/storage/db/repositories/notes.py +88 -0
  402. docsgpt/storage/db/repositories/pending_tool_state.py +272 -0
  403. docsgpt/storage/db/repositories/prompts.py +217 -0
  404. docsgpt/storage/db/repositories/reconciliation.py +393 -0
  405. docsgpt/storage/db/repositories/schedule_runs.py +278 -0
  406. docsgpt/storage/db/repositories/schedules.py +352 -0
  407. docsgpt/storage/db/repositories/shared_conversations.py +241 -0
  408. docsgpt/storage/db/repositories/sources.py +448 -0
  409. docsgpt/storage/db/repositories/stack_logs.py +124 -0
  410. docsgpt/storage/db/repositories/team_members.py +197 -0
  411. docsgpt/storage/db/repositories/team_resource_grants.py +167 -0
  412. docsgpt/storage/db/repositories/team_scope.py +113 -0
  413. docsgpt/storage/db/repositories/teams.py +158 -0
  414. docsgpt/storage/db/repositories/todos.py +258 -0
  415. docsgpt/storage/db/repositories/token_usage.py +312 -0
  416. docsgpt/storage/db/repositories/tool_call_attempts.py +208 -0
  417. docsgpt/storage/db/repositories/user_custom_models.py +201 -0
  418. docsgpt/storage/db/repositories/user_logs.py +50 -0
  419. docsgpt/storage/db/repositories/user_roles.py +115 -0
  420. docsgpt/storage/db/repositories/user_tools.py +238 -0
  421. docsgpt/storage/db/repositories/users.py +439 -0
  422. docsgpt/storage/db/repositories/wiki_pages.py +269 -0
  423. docsgpt/storage/db/repositories/workflow_edges.py +173 -0
  424. docsgpt/storage/db/repositories/workflow_nodes.py +167 -0
  425. docsgpt/storage/db/repositories/workflow_runs.py +144 -0
  426. docsgpt/storage/db/repositories/workflows.py +271 -0
  427. docsgpt/storage/db/serialization.py +93 -0
  428. docsgpt/storage/db/session.py +67 -0
  429. docsgpt/storage/db/source_config.py +197 -0
  430. docsgpt/storage/db/source_ids.py +23 -0
  431. docsgpt/storage/local.py +194 -0
  432. docsgpt/storage/s3.py +294 -0
  433. docsgpt/storage/storage_creator.py +32 -0
  434. docsgpt/streaming/__init__.py +0 -0
  435. docsgpt/streaming/async_broadcast_channel.py +119 -0
  436. docsgpt/streaming/async_event_replay.py +232 -0
  437. docsgpt/streaming/async_redis.py +47 -0
  438. docsgpt/streaming/broadcast_channel.py +144 -0
  439. docsgpt/streaming/event_replay.py +260 -0
  440. docsgpt/streaming/keys.py +19 -0
  441. docsgpt/streaming/message_journal.py +447 -0
  442. docsgpt/streaming/sse_keepalive.py +72 -0
  443. docsgpt/stt/__init__.py +1 -0
  444. docsgpt/stt/base.py +15 -0
  445. docsgpt/stt/constants.py +15 -0
  446. docsgpt/stt/faster_whisper_stt.py +70 -0
  447. docsgpt/stt/live_session.py +201 -0
  448. docsgpt/stt/openai_stt.py +66 -0
  449. docsgpt/stt/stt_creator.py +17 -0
  450. docsgpt/stt/upload_limits.py +43 -0
  451. docsgpt/templates/__init__.py +0 -0
  452. docsgpt/templates/namespaces.py +395 -0
  453. docsgpt/templates/template_engine.py +182 -0
  454. docsgpt/tts/base.py +10 -0
  455. docsgpt/tts/elevenlabs.py +31 -0
  456. docsgpt/tts/google_tts.py +19 -0
  457. docsgpt/tts/tts_creator.py +18 -0
  458. docsgpt/updates/__init__.py +0 -0
  459. docsgpt/updates/version_check.py +304 -0
  460. docsgpt/upload_limits.py +306 -0
  461. docsgpt/usage.py +307 -0
  462. docsgpt/utils.py +517 -0
  463. docsgpt/vectorstore/__init__.py +0 -0
  464. docsgpt/vectorstore/base.py +455 -0
  465. docsgpt/vectorstore/document_class.py +8 -0
  466. docsgpt/vectorstore/elasticsearch.py +225 -0
  467. docsgpt/vectorstore/embeddings_delegated.py +254 -0
  468. docsgpt/vectorstore/embeddings_local.py +356 -0
  469. docsgpt/vectorstore/embeddings_openai.py +89 -0
  470. docsgpt/vectorstore/embeddings_tasks.py +29 -0
  471. docsgpt/vectorstore/faiss.py +385 -0
  472. docsgpt/vectorstore/faiss_docstore.py +230 -0
  473. docsgpt/vectorstore/lancedb.py +132 -0
  474. docsgpt/vectorstore/milvus.py +220 -0
  475. docsgpt/vectorstore/model_registry.py +177 -0
  476. docsgpt/vectorstore/mongodb.py +236 -0
  477. docsgpt/vectorstore/pgconn.py +135 -0
  478. docsgpt/vectorstore/pgvector.py +773 -0
  479. docsgpt/vectorstore/qdrant.py +219 -0
  480. docsgpt/vectorstore/vector_creator.py +24 -0
  481. docsgpt/version.py +10 -0
  482. docsgpt/worker.py +2893 -0
  483. docsgpt/wsgi.py +5 -0
  484. docsgpt-0.19.0.dist-info/METADATA +280 -0
  485. docsgpt-0.19.0.dist-info/RECORD +488 -0
  486. docsgpt-0.19.0.dist-info/WHEEL +4 -0
  487. docsgpt-0.19.0.dist-info/entry_points.txt +2 -0
  488. docsgpt-0.19.0.dist-info/licenses/LICENSE +21 -0
docsgpt/wsgi.py ADDED
@@ -0,0 +1,5 @@
1
+ from docsgpt.app import app
2
+ from docsgpt.core.settings import settings
3
+
4
+ if __name__ == "__main__":
5
+ app.run(debug=settings.FLASK_DEBUG_MODE, port=7091)
@@ -0,0 +1,280 @@
1
+ Metadata-Version: 2.5
2
+ Name: docsgpt
3
+ Version: 0.19.0
4
+ Summary: DocsGPT backend: chat with your documents, agents, and tools.
5
+ Project-URL: Homepage, https://www.docsgpt.cloud/
6
+ Project-URL: Documentation, https://docs.docsgpt.cloud/
7
+ Project-URL: Repository, https://github.com/arc53/DocsGPT
8
+ Project-URL: Issues, https://github.com/arc53/DocsGPT/issues
9
+ Project-URL: Changelog, https://github.com/arc53/DocsGPT/releases
10
+ Author: Arc53
11
+ License-Expression: MIT
12
+ License-File: LICENSE
13
+ Keywords: agents,chat,documents,llm,rag,search
14
+ Classifier: Development Status :: 5 - Production/Stable
15
+ Classifier: Environment :: Web Environment
16
+ Classifier: Framework :: Flask
17
+ Classifier: Intended Audience :: Developers
18
+ Classifier: Operating System :: OS Independent
19
+ Classifier: Programming Language :: Python :: 3
20
+ Classifier: Programming Language :: Python :: 3.12
21
+ Classifier: Programming Language :: Python :: 3.13
22
+ Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
23
+ Requires-Python: >=3.12
24
+ Requires-Dist: a2wsgi<2,>=1.10.10
25
+ Requires-Dist: alembic<2,>=1.13
26
+ Requires-Dist: anthropic<0.122,>=0.121.0
27
+ Requires-Dist: beautifulsoup4<5,>=4.15.0
28
+ Requires-Dist: boto3<2,>=1.43.67
29
+ Requires-Dist: cel-python<0.6,>=0.5.0
30
+ Requires-Dist: celery-redbeat<3,>=2.4.2
31
+ Requires-Dist: celery<6,>=5.6.3
32
+ Requires-Dist: croniter<7,>=6.2.4
33
+ Requires-Dist: cryptography<51,>=50.0.0
34
+ Requires-Dist: dataclasses-json<0.7,>=0.6.7
35
+ Requires-Dist: daytona<0.206,>=0.205.1
36
+ Requires-Dist: ddgs<10,>=8.0.0
37
+ Requires-Dist: defusedxml<0.8,>=0.7.1
38
+ Requires-Dist: docx2txt<0.10,>=0.9
39
+ Requires-Dist: elevenlabs<3,>=2.62.0
40
+ Requires-Dist: faiss-cpu<2,>=1.15.0
41
+ Requires-Dist: fast-ebook<0.3,>=0.2.0
42
+ Requires-Dist: fastembed<0.9,>=0.8.0
43
+ Requires-Dist: fastmcp<4,>=3.4.6
44
+ Requires-Dist: firecrawl-anydoc<0.3,>=0.2.3
45
+ Requires-Dist: flask-restx<2,>=1.3.2
46
+ Requires-Dist: flask<4,>=3.1.3
47
+ Requires-Dist: google-api-python-client<3,>=2.198.0
48
+ Requires-Dist: google-auth-oauthlib<2,>=1.4.0
49
+ Requires-Dist: google-genai<3,>=2.17.0
50
+ Requires-Dist: gtts<3,>=2.5.4
51
+ Requires-Dist: gunicorn<27,>=26.0.0
52
+ Requires-Dist: jinja2<4,>=3.1.6
53
+ Requires-Dist: kombu<6,>=5.6.2
54
+ Requires-Dist: markdownify<2,>=1.2.3
55
+ Requires-Dist: msal<2,>=1.37.0
56
+ Requires-Dist: networkx<4,>=3.6.1
57
+ Requires-Dist: numpy<3,>=2.5.1
58
+ Requires-Dist: onnxruntime<2,>=1.28.0
59
+ Requires-Dist: openai<3,>=2.53.0
60
+ Requires-Dist: openapi3-parser<2,>=1.1.22
61
+ Requires-Dist: openpyxl<4,>=3.1.5
62
+ Requires-Dist: opentelemetry-distro<1,>=0.50b0
63
+ Requires-Dist: opentelemetry-exporter-otlp<2,>=1.29.0
64
+ Requires-Dist: opentelemetry-instrumentation-celery<1,>=0.50b0
65
+ Requires-Dist: opentelemetry-instrumentation-flask<1,>=0.50b0
66
+ Requires-Dist: opentelemetry-instrumentation-logging<1,>=0.50b0
67
+ Requires-Dist: opentelemetry-instrumentation-psycopg<1,>=0.50b0
68
+ Requires-Dist: opentelemetry-instrumentation-redis<1,>=0.50b0
69
+ Requires-Dist: opentelemetry-instrumentation-requests<1,>=0.50b0
70
+ Requires-Dist: opentelemetry-instrumentation-sqlalchemy<1,>=0.50b0
71
+ Requires-Dist: opentelemetry-instrumentation-starlette<1,>=0.50b0
72
+ Requires-Dist: pandas<4,>=3.0.5
73
+ Requires-Dist: pdf2image<2,>=1.17.0
74
+ Requires-Dist: pgvector<1,>=0.5
75
+ Requires-Dist: pillow<13,>=12.3.0
76
+ Requires-Dist: praw<9,>=8.0.2
77
+ Requires-Dist: psycopg[binary,pool]<4,>=3.1
78
+ Requires-Dist: pydantic-settings<3,>=2.15.0
79
+ Requires-Dist: pydantic<3,>=2.13.5
80
+ Requires-Dist: pypdf<7,>=6.15.0
81
+ Requires-Dist: pypdfium2<6,>=5.12.1
82
+ Requires-Dist: python-dateutil<3,>=2.9.0
83
+ Requires-Dist: python-dotenv<2,>=1.2.3
84
+ Requires-Dist: python-jose<4,>=3.5.0
85
+ Requires-Dist: python-pptx<2,>=1.0.2
86
+ Requires-Dist: pyyaml<7,>=6.0.3
87
+ Requires-Dist: qdrant-client<2,>=1.19.0
88
+ Requires-Dist: redis<8,>=7.4.0
89
+ Requires-Dist: requests<3,>=2.34.2
90
+ Requires-Dist: retry<0.10,>=0.9.2
91
+ Requires-Dist: sqlalchemy<3,>=2.0
92
+ Requires-Dist: starlette<2,>=1.0
93
+ Requires-Dist: tiktoken<0.14,>=0.13.0
94
+ Requires-Dist: tldextract<6,>=5.3.2
95
+ Requires-Dist: tokenizers<0.23,>=0.22.2
96
+ Requires-Dist: tqdm<5,>=4.67.3
97
+ Requires-Dist: uvicorn-worker<1,>=0.4
98
+ Requires-Dist: uvicorn[standard]<1,>=0.30
99
+ Requires-Dist: websocket-client<2,>=1.9.0
100
+ Requires-Dist: werkzeug<4,>=3.1.0
101
+ Provides-Extra: docling
102
+ Requires-Dist: docling<3,>=2.119.0; extra == 'docling'
103
+ Requires-Dist: rapidocr<4,>=3.9.2; extra == 'docling'
104
+ Requires-Dist: torch<3,>=2.11.0; extra == 'docling'
105
+ Requires-Dist: torchvision<0.27,>=0.26.0; extra == 'docling'
106
+ Requires-Dist: transformers<5.9,>=5.8.1; extra == 'docling'
107
+ Provides-Extra: milvus
108
+ Requires-Dist: milvus-lite<4,>=3.2.0; (sys_platform != 'win32') and extra == 'milvus'
109
+ Requires-Dist: pymilvus<4,>=3.0.1; extra == 'milvus'
110
+ Description-Content-Type: text/markdown
111
+
112
+ <h1 align="center">
113
+ DocsGPT πŸ¦–
114
+ </h1>
115
+
116
+ <p align="center">
117
+ <strong>Private AI for agents, assistants and enterprise search</strong>
118
+ </p>
119
+
120
+ <p align="left">
121
+ <strong><a href="https://www.docsgpt.cloud/">DocsGPT</a></strong> is an open-source AI platform for building intelligent agents and assistants. Features Agent Builder, deep research tools, document analysis (PDF, Office, web content, and audio), Multi-model support (choose your provider or run locally), and rich API connectivity for agents with actionable tools and integrations. Deploy anywhere with complete privacy control.
122
+ </p>
123
+
124
+ <div align="center">
125
+
126
+ <a href="https://github.com/arc53/DocsGPT">![link to main GitHub showing Stars number](https://img.shields.io/github/stars/arc53/docsgpt?style=social)</a>
127
+ <a href="https://github.com/arc53/DocsGPT">![link to main GitHub showing Forks number](https://img.shields.io/github/forks/arc53/docsgpt?style=social)</a>
128
+ <a href="https://github.com/arc53/DocsGPT/blob/main/LICENSE">![link to license file](https://img.shields.io/github/license/arc53/docsgpt)</a>
129
+ <a href="https://www.bestpractices.dev/projects/9907"><img src="https://www.bestpractices.dev/projects/9907/badge"></a>
130
+ <a href="https://discord.gg/vN7YFfdMpj">![link to discord](https://img.shields.io/discord/1070046503302877216)</a>
131
+ <a href="https://x.com/docsgptai">![X (formerly Twitter) URL](https://img.shields.io/twitter/follow/docsgptai)</a>
132
+
133
+ <a href="https://docs.docsgpt.cloud/quickstart">⚑️ Quickstart</a> β€’ <a href="https://app.docsgpt.cloud/">☁️ Cloud Version</a> β€’ <a href="https://discord.gg/vN7YFfdMpj">πŸ’¬ Discord</a>
134
+ <br>
135
+ <a href="https://docs.docsgpt.cloud/">πŸ“– Documentation</a> β€’ <a href="https://github.com/arc53/DocsGPT/blob/main/CONTRIBUTING.md">πŸ‘« Contribute</a> β€’ <a href="https://blog.docsgpt.cloud/">πŸ—ž Blog</a>
136
+ <br>
137
+
138
+ </div>
139
+
140
+
141
+ <div align="center">
142
+ <br>
143
+ <img src="https://d3dg1063dc54p9.cloudfront.net/videos/demo-26.gif" alt="video-example-of-docs-gpt" width="800" height="480">
144
+ </div>
145
+ <h3 align="left">
146
+ <strong>Key Features:</strong>
147
+ </h3>
148
+ <ul align="left">
149
+ <li><strong>πŸ—‚οΈ Wide Format Support:</strong> Reads PDF, DOCX, CSV, XLSX, EPUB, MD, RST, HTML, MDX, JSON, PPTX, images, and audio files such as MP3, WAV, M4A, OGG, and WebM.</li>
150
+ <li><strong>πŸŽ™οΈ Speech Workflows:</strong> Record voice input into chat, transcribe audio on the backend, and ingest meeting recordings or voice notes as searchable knowledge.</li>
151
+ <li><strong>🌐 Web & Data Integration:</strong> Ingests from URLs, sitemaps, Reddit, GitHub and web crawlers.</li>
152
+ <li><strong>βœ… Reliable Answers:</strong> Get accurate, hallucination-free responses with source citations viewable in a clean UI.</li>
153
+ <li><strong>πŸ”‘ Streamlined API Keys:</strong> Generate keys linked to your settings, documents, and models, simplifying chatbot and integration setup.</li>
154
+ <li><strong>πŸ”— Actionable Tooling:</strong> Connect to APIs, tools, and other services to enable LLM actions.</li>
155
+ <li><strong>🧩 Pre-built Integrations:</strong> Use readily available HTML/React chat widgets, search tools, Discord/Telegram bots, and more.</li>
156
+ <li><strong>πŸ”Œ Flexible Deployment:</strong> Works with major LLMs (OpenAI, Google, Anthropic) and local models (Ollama, llama_cpp).</li>
157
+ <li><strong>🏒 Secure & Scalable:</strong> Run privately and securely with Kubernetes support, designed for enterprise-grade reliability.</li>
158
+ </ul>
159
+
160
+ ## Roadmap
161
+ - [x] Agent Workflow Builder with conditional nodes ( February 2026 )
162
+ - [x] Research mode ( March 2026 )
163
+ - [x] SharePoint & Confluence connectors ( March – April 2026 )
164
+ - [x] Postgres migration for user data ( April 2026 )
165
+ - [x] OpenTelemetry observability ( April 2026 )
166
+ - [x] Bring Your Own Model (BYOM) ( April 2026 )
167
+ - [x] Agent scheduling (RedBeat-backed) ( April 2026 )
168
+ - [x] Notifications & conversation search ( May 2026 )
169
+ - [x] Analytics & logs revamp with per-agent attribution ( June 2026 )
170
+ - [x] OIDC / SSO login with SCIM provisioning & groups ( June 2026 )
171
+ - [x] Admin dashboard & role-based access control (RBAC) ( June 2026 )
172
+ - [x] Agent import / export ( June 2026 )
173
+ - [x] Teams with team-scoped sharing & roles ( June 2026 )
174
+
175
+ You can find our full roadmap [here](https://github.com/orgs/arc53/projects/2). Please don't hesitate to contribute or create issues, it helps us improve DocsGPT!
176
+
177
+ ### Production Support / Help for Companies:
178
+
179
+ We're eager to provide personalized assistance when deploying your DocsGPT to a live environment.
180
+
181
+ [Get a Demo :wave:](https://www.docsgpt.cloud/contact)⁠
182
+
183
+ [Send Email :email:](mailto:support@docsgpt.cloud?subject=DocsGPT%20support%2Fsolutions)
184
+
185
+ ## Join the Lighthouse Program 🌟
186
+
187
+ Calling all developers and GenAI innovators! The **DocsGPT Lighthouse Program** connects technical leaders actively deploying or extending DocsGPT in real-world scenarios. Collaborate directly with our team to shape the roadmap, access priority support, and build enterprise-ready solutions with exclusive community insights.
188
+
189
+ [Learn More & Apply β†’](https://docs.google.com/forms/d/1KAADiJinUJ8EMQyfTXUIGyFbqINNClNR3jBNWq7DgTE)
190
+
191
+ ## QuickStart
192
+
193
+ > [!Note]
194
+ > Make sure you have [Docker](https://docs.docker.com/engine/install/) installed
195
+
196
+ A more detailed [Quickstart](https://docs.docsgpt.cloud/quickstart) is available in our documentation
197
+
198
+ 1. **Clone the repository:**
199
+
200
+ ```bash
201
+ git clone https://github.com/arc53/DocsGPT.git
202
+ cd DocsGPT
203
+ ```
204
+
205
+ **For macOS and Linux:**
206
+
207
+ 2. **Run the setup script:**
208
+
209
+ ```bash
210
+ ./setup.sh
211
+ ```
212
+
213
+ **For Windows:**
214
+
215
+ 2. **Run the PowerShell setup script:**
216
+
217
+ ```powershell
218
+ PowerShell -ExecutionPolicy Bypass -File .\setup.ps1
219
+ ```
220
+
221
+ Either script will guide you through setting up DocsGPT. Five options are available: using the public API, running locally, connecting to a local inference engine, using a cloud API provider, or building the docker image locally. The scripts will automatically configure your `.env` file and handle necessary downloads and installations based on your chosen option.
222
+
223
+ **Navigate to http://localhost:5173/**
224
+
225
+ To stop DocsGPT, open a terminal in the `DocsGPT` directory and run:
226
+
227
+ ```bash
228
+ docker compose -f deployment/docker-compose.yaml down
229
+ ```
230
+
231
+ (or use the specific `docker compose down` command shown after running the setup script).
232
+
233
+ > [!Note]
234
+ > For development environment setup instructions, please refer to the [Development Environment Guide](https://docs.docsgpt.cloud/Deploying/Development-Environment).
235
+
236
+ ## Contributing
237
+
238
+ Please refer to the [CONTRIBUTING.md](CONTRIBUTING.md) file for information about how to get involved. We welcome issues, questions, and pull requests.
239
+
240
+ ## Architecture
241
+
242
+ ![Architecture chart](https://github.com/user-attachments/assets/fc6a7841-ddfc-45e6-b5a0-d05fe648cbe2)
243
+
244
+ ## Project Structure
245
+
246
+ - **docsgpt** - Backend Flask application (the `docsgpt` Python package).
247
+
248
+ - **Extensions** - Integrations and widgets (e.g., Chatwoot, React widget).
249
+
250
+ - **Frontend** - Web UI built with [Vite](https://vitejs.dev/) and [React](https://react.dev/).
251
+
252
+ - **Scripts** - Miscellaneous utility scripts.
253
+
254
+ ## Code Of Conduct
255
+
256
+ We as members, contributors, and leaders, pledge to make participation in our community a harassment-free experience for everyone, regardless of age, body size, visible or invisible disability, ethnicity, sex characteristics, gender identity and expression, level of experience, education, socio-economic status, nationality, personal appearance, race, religion, or sexual identity and orientation. Please refer to the [CODE_OF_CONDUCT.md](CODE_OF_CONDUCT.md) file for more information about contributing.
257
+
258
+ ## Many Thanks To Our Contributors⚑
259
+
260
+ <a href="https://github.com/arc53/DocsGPT/graphs/contributors" alt="View Contributors">
261
+ <img src="https://contrib.rocks/image?repo=arc53/DocsGPT" alt="Contributors" />
262
+ </a>
263
+
264
+ ## License
265
+
266
+ The source code license is [MIT](https://opensource.org/license/mit/), as described in the [LICENSE](LICENSE) file.
267
+
268
+ ## This project is supported by:
269
+
270
+ <p>
271
+ <a href="https://www.digitalocean.com/?utm_medium=opensource&utm_source=DocsGPT">
272
+ <img src="https://opensource.nyc3.cdn.digitaloceanspaces.com/attribution/assets/SVG/DO_Logo_horizontal_blue.svg" width="201px">
273
+ </a>
274
+ </p>
275
+ <p>
276
+ <a href="https://get.neon.com/docsgpt">
277
+ <img width="201" alt="color" src="https://github.com/user-attachments/assets/7d9813b7-0e6d-403f-b5af-68af066b326f" />
278
+ </a>
279
+
280
+ </p>