ai-parrot 0.17.2__cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.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 (535) hide show
  1. agentui/.prettierrc +15 -0
  2. agentui/QUICKSTART.md +272 -0
  3. agentui/README.md +59 -0
  4. agentui/env.example +16 -0
  5. agentui/jsconfig.json +14 -0
  6. agentui/package-lock.json +4242 -0
  7. agentui/package.json +34 -0
  8. agentui/scripts/postinstall/apply-patches.mjs +260 -0
  9. agentui/src/app.css +61 -0
  10. agentui/src/app.d.ts +13 -0
  11. agentui/src/app.html +12 -0
  12. agentui/src/components/LoadingSpinner.svelte +64 -0
  13. agentui/src/components/ThemeSwitcher.svelte +159 -0
  14. agentui/src/components/index.js +4 -0
  15. agentui/src/lib/api/bots.ts +60 -0
  16. agentui/src/lib/api/chat.ts +22 -0
  17. agentui/src/lib/api/http.ts +25 -0
  18. agentui/src/lib/components/BotCard.svelte +33 -0
  19. agentui/src/lib/components/ChatBubble.svelte +63 -0
  20. agentui/src/lib/components/Toast.svelte +21 -0
  21. agentui/src/lib/config.ts +20 -0
  22. agentui/src/lib/stores/auth.svelte.ts +73 -0
  23. agentui/src/lib/stores/theme.svelte.js +64 -0
  24. agentui/src/lib/stores/toast.svelte.ts +31 -0
  25. agentui/src/lib/utils/conversation.ts +39 -0
  26. agentui/src/routes/+layout.svelte +20 -0
  27. agentui/src/routes/+page.svelte +232 -0
  28. agentui/src/routes/login/+page.svelte +200 -0
  29. agentui/src/routes/talk/[agentId]/+page.svelte +297 -0
  30. agentui/src/routes/talk/[agentId]/+page.ts +7 -0
  31. agentui/static/README.md +1 -0
  32. agentui/svelte.config.js +11 -0
  33. agentui/tailwind.config.ts +53 -0
  34. agentui/tsconfig.json +3 -0
  35. agentui/vite.config.ts +10 -0
  36. ai_parrot-0.17.2.dist-info/METADATA +472 -0
  37. ai_parrot-0.17.2.dist-info/RECORD +535 -0
  38. ai_parrot-0.17.2.dist-info/WHEEL +6 -0
  39. ai_parrot-0.17.2.dist-info/entry_points.txt +2 -0
  40. ai_parrot-0.17.2.dist-info/licenses/LICENSE +21 -0
  41. ai_parrot-0.17.2.dist-info/top_level.txt +6 -0
  42. crew-builder/.prettierrc +15 -0
  43. crew-builder/QUICKSTART.md +259 -0
  44. crew-builder/README.md +113 -0
  45. crew-builder/env.example +17 -0
  46. crew-builder/jsconfig.json +14 -0
  47. crew-builder/package-lock.json +4182 -0
  48. crew-builder/package.json +37 -0
  49. crew-builder/scripts/postinstall/apply-patches.mjs +260 -0
  50. crew-builder/src/app.css +62 -0
  51. crew-builder/src/app.d.ts +13 -0
  52. crew-builder/src/app.html +12 -0
  53. crew-builder/src/components/LoadingSpinner.svelte +64 -0
  54. crew-builder/src/components/ThemeSwitcher.svelte +149 -0
  55. crew-builder/src/components/index.js +9 -0
  56. crew-builder/src/lib/api/bots.ts +60 -0
  57. crew-builder/src/lib/api/chat.ts +80 -0
  58. crew-builder/src/lib/api/client.ts +56 -0
  59. crew-builder/src/lib/api/crew/crew.ts +136 -0
  60. crew-builder/src/lib/api/index.ts +5 -0
  61. crew-builder/src/lib/api/o365/auth.ts +65 -0
  62. crew-builder/src/lib/auth/auth.ts +54 -0
  63. crew-builder/src/lib/components/AgentNode.svelte +43 -0
  64. crew-builder/src/lib/components/BotCard.svelte +33 -0
  65. crew-builder/src/lib/components/ChatBubble.svelte +67 -0
  66. crew-builder/src/lib/components/ConfigPanel.svelte +278 -0
  67. crew-builder/src/lib/components/JsonTreeNode.svelte +76 -0
  68. crew-builder/src/lib/components/JsonViewer.svelte +24 -0
  69. crew-builder/src/lib/components/MarkdownEditor.svelte +48 -0
  70. crew-builder/src/lib/components/ThemeToggle.svelte +36 -0
  71. crew-builder/src/lib/components/Toast.svelte +67 -0
  72. crew-builder/src/lib/components/Toolbar.svelte +157 -0
  73. crew-builder/src/lib/components/index.ts +10 -0
  74. crew-builder/src/lib/config.ts +8 -0
  75. crew-builder/src/lib/stores/auth.svelte.ts +228 -0
  76. crew-builder/src/lib/stores/crewStore.ts +369 -0
  77. crew-builder/src/lib/stores/theme.svelte.js +145 -0
  78. crew-builder/src/lib/stores/toast.svelte.ts +69 -0
  79. crew-builder/src/lib/utils/conversation.ts +39 -0
  80. crew-builder/src/lib/utils/markdown.ts +122 -0
  81. crew-builder/src/lib/utils/talkHistory.ts +47 -0
  82. crew-builder/src/routes/+layout.svelte +20 -0
  83. crew-builder/src/routes/+page.svelte +539 -0
  84. crew-builder/src/routes/agents/+page.svelte +247 -0
  85. crew-builder/src/routes/agents/[agentId]/+page.svelte +288 -0
  86. crew-builder/src/routes/agents/[agentId]/+page.ts +7 -0
  87. crew-builder/src/routes/builder/+page.svelte +204 -0
  88. crew-builder/src/routes/crew/ask/+page.svelte +1052 -0
  89. crew-builder/src/routes/crew/ask/+page.ts +1 -0
  90. crew-builder/src/routes/integrations/o365/+page.svelte +304 -0
  91. crew-builder/src/routes/login/+page.svelte +197 -0
  92. crew-builder/src/routes/talk/[agentId]/+page.svelte +487 -0
  93. crew-builder/src/routes/talk/[agentId]/+page.ts +7 -0
  94. crew-builder/static/README.md +1 -0
  95. crew-builder/svelte.config.js +11 -0
  96. crew-builder/tailwind.config.ts +53 -0
  97. crew-builder/tsconfig.json +3 -0
  98. crew-builder/vite.config.ts +10 -0
  99. mcp_servers/calculator_server.py +309 -0
  100. parrot/__init__.py +27 -0
  101. parrot/__pycache__/__init__.cpython-310.pyc +0 -0
  102. parrot/__pycache__/version.cpython-310.pyc +0 -0
  103. parrot/_version.py +34 -0
  104. parrot/a2a/__init__.py +48 -0
  105. parrot/a2a/client.py +658 -0
  106. parrot/a2a/discovery.py +89 -0
  107. parrot/a2a/mixin.py +257 -0
  108. parrot/a2a/models.py +376 -0
  109. parrot/a2a/server.py +770 -0
  110. parrot/agents/__init__.py +29 -0
  111. parrot/bots/__init__.py +12 -0
  112. parrot/bots/a2a_agent.py +19 -0
  113. parrot/bots/abstract.py +3139 -0
  114. parrot/bots/agent.py +1129 -0
  115. parrot/bots/basic.py +9 -0
  116. parrot/bots/chatbot.py +669 -0
  117. parrot/bots/data.py +1618 -0
  118. parrot/bots/database/__init__.py +5 -0
  119. parrot/bots/database/abstract.py +3071 -0
  120. parrot/bots/database/cache.py +286 -0
  121. parrot/bots/database/models.py +468 -0
  122. parrot/bots/database/prompts.py +154 -0
  123. parrot/bots/database/retries.py +98 -0
  124. parrot/bots/database/router.py +269 -0
  125. parrot/bots/database/sql.py +41 -0
  126. parrot/bots/db/__init__.py +6 -0
  127. parrot/bots/db/abstract.py +556 -0
  128. parrot/bots/db/bigquery.py +602 -0
  129. parrot/bots/db/cache.py +85 -0
  130. parrot/bots/db/documentdb.py +668 -0
  131. parrot/bots/db/elastic.py +1014 -0
  132. parrot/bots/db/influx.py +898 -0
  133. parrot/bots/db/mock.py +96 -0
  134. parrot/bots/db/multi.py +783 -0
  135. parrot/bots/db/prompts.py +185 -0
  136. parrot/bots/db/sql.py +1255 -0
  137. parrot/bots/db/tools.py +212 -0
  138. parrot/bots/document.py +680 -0
  139. parrot/bots/hrbot.py +15 -0
  140. parrot/bots/kb.py +170 -0
  141. parrot/bots/mcp.py +36 -0
  142. parrot/bots/orchestration/README.md +463 -0
  143. parrot/bots/orchestration/__init__.py +1 -0
  144. parrot/bots/orchestration/agent.py +155 -0
  145. parrot/bots/orchestration/crew.py +3330 -0
  146. parrot/bots/orchestration/fsm.py +1179 -0
  147. parrot/bots/orchestration/hr.py +434 -0
  148. parrot/bots/orchestration/storage/__init__.py +4 -0
  149. parrot/bots/orchestration/storage/memory.py +100 -0
  150. parrot/bots/orchestration/storage/mixin.py +119 -0
  151. parrot/bots/orchestration/verify.py +202 -0
  152. parrot/bots/product.py +204 -0
  153. parrot/bots/prompts/__init__.py +96 -0
  154. parrot/bots/prompts/agents.py +155 -0
  155. parrot/bots/prompts/data.py +216 -0
  156. parrot/bots/prompts/output_generation.py +8 -0
  157. parrot/bots/scraper/__init__.py +3 -0
  158. parrot/bots/scraper/models.py +122 -0
  159. parrot/bots/scraper/scraper.py +1173 -0
  160. parrot/bots/scraper/templates.py +115 -0
  161. parrot/bots/stores/__init__.py +5 -0
  162. parrot/bots/stores/local.py +172 -0
  163. parrot/bots/webdev.py +81 -0
  164. parrot/cli.py +17 -0
  165. parrot/clients/__init__.py +16 -0
  166. parrot/clients/base.py +1491 -0
  167. parrot/clients/claude.py +1191 -0
  168. parrot/clients/factory.py +129 -0
  169. parrot/clients/google.py +4567 -0
  170. parrot/clients/gpt.py +1975 -0
  171. parrot/clients/grok.py +432 -0
  172. parrot/clients/groq.py +986 -0
  173. parrot/clients/hf.py +582 -0
  174. parrot/clients/models.py +18 -0
  175. parrot/conf.py +395 -0
  176. parrot/embeddings/__init__.py +9 -0
  177. parrot/embeddings/base.py +157 -0
  178. parrot/embeddings/google.py +98 -0
  179. parrot/embeddings/huggingface.py +74 -0
  180. parrot/embeddings/openai.py +84 -0
  181. parrot/embeddings/processor.py +88 -0
  182. parrot/exceptions.c +13868 -0
  183. parrot/exceptions.cpython-310-x86_64-linux-gnu.so +0 -0
  184. parrot/exceptions.pxd +22 -0
  185. parrot/exceptions.pxi +15 -0
  186. parrot/exceptions.pyx +44 -0
  187. parrot/generators/__init__.py +29 -0
  188. parrot/generators/base.py +200 -0
  189. parrot/generators/html.py +293 -0
  190. parrot/generators/react.py +205 -0
  191. parrot/generators/streamlit.py +203 -0
  192. parrot/generators/template.py +105 -0
  193. parrot/handlers/__init__.py +4 -0
  194. parrot/handlers/agent.py +861 -0
  195. parrot/handlers/agents/__init__.py +1 -0
  196. parrot/handlers/agents/abstract.py +900 -0
  197. parrot/handlers/bots.py +338 -0
  198. parrot/handlers/chat.py +915 -0
  199. parrot/handlers/creation.sql +192 -0
  200. parrot/handlers/crew/ARCHITECTURE.md +362 -0
  201. parrot/handlers/crew/README_BOTMANAGER_PERSISTENCE.md +303 -0
  202. parrot/handlers/crew/README_REDIS_PERSISTENCE.md +366 -0
  203. parrot/handlers/crew/__init__.py +0 -0
  204. parrot/handlers/crew/handler.py +801 -0
  205. parrot/handlers/crew/models.py +229 -0
  206. parrot/handlers/crew/redis_persistence.py +523 -0
  207. parrot/handlers/jobs/__init__.py +10 -0
  208. parrot/handlers/jobs/job.py +384 -0
  209. parrot/handlers/jobs/mixin.py +627 -0
  210. parrot/handlers/jobs/models.py +115 -0
  211. parrot/handlers/jobs/worker.py +31 -0
  212. parrot/handlers/models.py +596 -0
  213. parrot/handlers/o365_auth.py +105 -0
  214. parrot/handlers/stream.py +337 -0
  215. parrot/interfaces/__init__.py +6 -0
  216. parrot/interfaces/aws.py +143 -0
  217. parrot/interfaces/credentials.py +113 -0
  218. parrot/interfaces/database.py +27 -0
  219. parrot/interfaces/google.py +1123 -0
  220. parrot/interfaces/hierarchy.py +1227 -0
  221. parrot/interfaces/http.py +651 -0
  222. parrot/interfaces/images/__init__.py +0 -0
  223. parrot/interfaces/images/plugins/__init__.py +24 -0
  224. parrot/interfaces/images/plugins/abstract.py +58 -0
  225. parrot/interfaces/images/plugins/analisys.py +148 -0
  226. parrot/interfaces/images/plugins/classify.py +150 -0
  227. parrot/interfaces/images/plugins/classifybase.py +182 -0
  228. parrot/interfaces/images/plugins/detect.py +150 -0
  229. parrot/interfaces/images/plugins/exif.py +1103 -0
  230. parrot/interfaces/images/plugins/hash.py +52 -0
  231. parrot/interfaces/images/plugins/vision.py +104 -0
  232. parrot/interfaces/images/plugins/yolo.py +66 -0
  233. parrot/interfaces/images/plugins/zerodetect.py +197 -0
  234. parrot/interfaces/o365.py +978 -0
  235. parrot/interfaces/onedrive.py +822 -0
  236. parrot/interfaces/sharepoint.py +1435 -0
  237. parrot/interfaces/soap.py +257 -0
  238. parrot/loaders/__init__.py +8 -0
  239. parrot/loaders/abstract.py +1131 -0
  240. parrot/loaders/audio.py +199 -0
  241. parrot/loaders/basepdf.py +53 -0
  242. parrot/loaders/basevideo.py +1568 -0
  243. parrot/loaders/csv.py +409 -0
  244. parrot/loaders/docx.py +116 -0
  245. parrot/loaders/epubloader.py +316 -0
  246. parrot/loaders/excel.py +199 -0
  247. parrot/loaders/factory.py +55 -0
  248. parrot/loaders/files/__init__.py +0 -0
  249. parrot/loaders/files/abstract.py +39 -0
  250. parrot/loaders/files/html.py +26 -0
  251. parrot/loaders/files/text.py +63 -0
  252. parrot/loaders/html.py +152 -0
  253. parrot/loaders/markdown.py +442 -0
  254. parrot/loaders/pdf.py +373 -0
  255. parrot/loaders/pdfmark.py +320 -0
  256. parrot/loaders/pdftables.py +506 -0
  257. parrot/loaders/ppt.py +476 -0
  258. parrot/loaders/qa.py +63 -0
  259. parrot/loaders/splitters/__init__.py +10 -0
  260. parrot/loaders/splitters/base.py +138 -0
  261. parrot/loaders/splitters/md.py +228 -0
  262. parrot/loaders/splitters/token.py +143 -0
  263. parrot/loaders/txt.py +26 -0
  264. parrot/loaders/video.py +89 -0
  265. parrot/loaders/videolocal.py +218 -0
  266. parrot/loaders/videounderstanding.py +377 -0
  267. parrot/loaders/vimeo.py +167 -0
  268. parrot/loaders/web.py +599 -0
  269. parrot/loaders/youtube.py +504 -0
  270. parrot/manager/__init__.py +5 -0
  271. parrot/manager/manager.py +1030 -0
  272. parrot/mcp/__init__.py +28 -0
  273. parrot/mcp/adapter.py +105 -0
  274. parrot/mcp/cli.py +174 -0
  275. parrot/mcp/client.py +119 -0
  276. parrot/mcp/config.py +75 -0
  277. parrot/mcp/integration.py +842 -0
  278. parrot/mcp/oauth.py +933 -0
  279. parrot/mcp/server.py +225 -0
  280. parrot/mcp/transports/__init__.py +3 -0
  281. parrot/mcp/transports/base.py +279 -0
  282. parrot/mcp/transports/grpc_session.py +163 -0
  283. parrot/mcp/transports/http.py +312 -0
  284. parrot/mcp/transports/mcp.proto +108 -0
  285. parrot/mcp/transports/quic.py +1082 -0
  286. parrot/mcp/transports/sse.py +330 -0
  287. parrot/mcp/transports/stdio.py +309 -0
  288. parrot/mcp/transports/unix.py +395 -0
  289. parrot/mcp/transports/websocket.py +547 -0
  290. parrot/memory/__init__.py +16 -0
  291. parrot/memory/abstract.py +209 -0
  292. parrot/memory/agent.py +32 -0
  293. parrot/memory/cache.py +175 -0
  294. parrot/memory/core.py +555 -0
  295. parrot/memory/file.py +153 -0
  296. parrot/memory/mem.py +131 -0
  297. parrot/memory/redis.py +613 -0
  298. parrot/models/__init__.py +46 -0
  299. parrot/models/basic.py +118 -0
  300. parrot/models/compliance.py +208 -0
  301. parrot/models/crew.py +395 -0
  302. parrot/models/detections.py +654 -0
  303. parrot/models/generation.py +85 -0
  304. parrot/models/google.py +223 -0
  305. parrot/models/groq.py +23 -0
  306. parrot/models/openai.py +30 -0
  307. parrot/models/outputs.py +285 -0
  308. parrot/models/responses.py +938 -0
  309. parrot/notifications/__init__.py +743 -0
  310. parrot/openapi/__init__.py +3 -0
  311. parrot/openapi/components.yaml +641 -0
  312. parrot/openapi/config.py +322 -0
  313. parrot/outputs/__init__.py +32 -0
  314. parrot/outputs/formats/__init__.py +108 -0
  315. parrot/outputs/formats/altair.py +359 -0
  316. parrot/outputs/formats/application.py +122 -0
  317. parrot/outputs/formats/base.py +351 -0
  318. parrot/outputs/formats/bokeh.py +356 -0
  319. parrot/outputs/formats/card.py +424 -0
  320. parrot/outputs/formats/chart.py +436 -0
  321. parrot/outputs/formats/d3.py +255 -0
  322. parrot/outputs/formats/echarts.py +310 -0
  323. parrot/outputs/formats/generators/__init__.py +0 -0
  324. parrot/outputs/formats/generators/abstract.py +61 -0
  325. parrot/outputs/formats/generators/panel.py +145 -0
  326. parrot/outputs/formats/generators/streamlit.py +86 -0
  327. parrot/outputs/formats/generators/terminal.py +63 -0
  328. parrot/outputs/formats/holoviews.py +310 -0
  329. parrot/outputs/formats/html.py +147 -0
  330. parrot/outputs/formats/jinja2.py +46 -0
  331. parrot/outputs/formats/json.py +87 -0
  332. parrot/outputs/formats/map.py +933 -0
  333. parrot/outputs/formats/markdown.py +172 -0
  334. parrot/outputs/formats/matplotlib.py +237 -0
  335. parrot/outputs/formats/mixins/__init__.py +0 -0
  336. parrot/outputs/formats/mixins/emaps.py +855 -0
  337. parrot/outputs/formats/plotly.py +341 -0
  338. parrot/outputs/formats/seaborn.py +310 -0
  339. parrot/outputs/formats/table.py +397 -0
  340. parrot/outputs/formats/template_report.py +138 -0
  341. parrot/outputs/formats/yaml.py +125 -0
  342. parrot/outputs/formatter.py +152 -0
  343. parrot/outputs/templates/__init__.py +95 -0
  344. parrot/pipelines/__init__.py +0 -0
  345. parrot/pipelines/abstract.py +210 -0
  346. parrot/pipelines/detector.py +124 -0
  347. parrot/pipelines/models.py +90 -0
  348. parrot/pipelines/planogram.py +3002 -0
  349. parrot/pipelines/table.sql +97 -0
  350. parrot/plugins/__init__.py +106 -0
  351. parrot/plugins/importer.py +80 -0
  352. parrot/py.typed +0 -0
  353. parrot/registry/__init__.py +18 -0
  354. parrot/registry/registry.py +594 -0
  355. parrot/scheduler/__init__.py +1189 -0
  356. parrot/scheduler/models.py +60 -0
  357. parrot/security/__init__.py +16 -0
  358. parrot/security/prompt_injection.py +268 -0
  359. parrot/security/security_events.sql +25 -0
  360. parrot/services/__init__.py +1 -0
  361. parrot/services/mcp/__init__.py +8 -0
  362. parrot/services/mcp/config.py +13 -0
  363. parrot/services/mcp/server.py +295 -0
  364. parrot/services/o365_remote_auth.py +235 -0
  365. parrot/stores/__init__.py +7 -0
  366. parrot/stores/abstract.py +352 -0
  367. parrot/stores/arango.py +1090 -0
  368. parrot/stores/bigquery.py +1377 -0
  369. parrot/stores/cache.py +106 -0
  370. parrot/stores/empty.py +10 -0
  371. parrot/stores/faiss_store.py +1157 -0
  372. parrot/stores/kb/__init__.py +9 -0
  373. parrot/stores/kb/abstract.py +68 -0
  374. parrot/stores/kb/cache.py +165 -0
  375. parrot/stores/kb/doc.py +325 -0
  376. parrot/stores/kb/hierarchy.py +346 -0
  377. parrot/stores/kb/local.py +457 -0
  378. parrot/stores/kb/prompt.py +28 -0
  379. parrot/stores/kb/redis.py +659 -0
  380. parrot/stores/kb/store.py +115 -0
  381. parrot/stores/kb/user.py +374 -0
  382. parrot/stores/models.py +59 -0
  383. parrot/stores/pgvector.py +3 -0
  384. parrot/stores/postgres.py +2853 -0
  385. parrot/stores/utils/__init__.py +0 -0
  386. parrot/stores/utils/chunking.py +197 -0
  387. parrot/telemetry/__init__.py +3 -0
  388. parrot/telemetry/mixin.py +111 -0
  389. parrot/template/__init__.py +3 -0
  390. parrot/template/engine.py +259 -0
  391. parrot/tools/__init__.py +23 -0
  392. parrot/tools/abstract.py +644 -0
  393. parrot/tools/agent.py +363 -0
  394. parrot/tools/arangodbsearch.py +537 -0
  395. parrot/tools/arxiv_tool.py +188 -0
  396. parrot/tools/calculator/__init__.py +3 -0
  397. parrot/tools/calculator/operations/__init__.py +38 -0
  398. parrot/tools/calculator/operations/calculus.py +80 -0
  399. parrot/tools/calculator/operations/statistics.py +76 -0
  400. parrot/tools/calculator/tool.py +150 -0
  401. parrot/tools/cloudwatch.py +988 -0
  402. parrot/tools/codeinterpreter/__init__.py +127 -0
  403. parrot/tools/codeinterpreter/executor.py +371 -0
  404. parrot/tools/codeinterpreter/internals.py +473 -0
  405. parrot/tools/codeinterpreter/models.py +643 -0
  406. parrot/tools/codeinterpreter/prompts.py +224 -0
  407. parrot/tools/codeinterpreter/tool.py +664 -0
  408. parrot/tools/company_info/__init__.py +6 -0
  409. parrot/tools/company_info/tool.py +1138 -0
  410. parrot/tools/correlationanalysis.py +437 -0
  411. parrot/tools/database/abstract.py +286 -0
  412. parrot/tools/database/bq.py +115 -0
  413. parrot/tools/database/cache.py +284 -0
  414. parrot/tools/database/models.py +95 -0
  415. parrot/tools/database/pg.py +343 -0
  416. parrot/tools/databasequery.py +1159 -0
  417. parrot/tools/db.py +1800 -0
  418. parrot/tools/ddgo.py +370 -0
  419. parrot/tools/decorators.py +271 -0
  420. parrot/tools/dftohtml.py +282 -0
  421. parrot/tools/document.py +549 -0
  422. parrot/tools/ecs.py +819 -0
  423. parrot/tools/edareport.py +368 -0
  424. parrot/tools/elasticsearch.py +1049 -0
  425. parrot/tools/employees.py +462 -0
  426. parrot/tools/epson/__init__.py +96 -0
  427. parrot/tools/excel.py +683 -0
  428. parrot/tools/file/__init__.py +13 -0
  429. parrot/tools/file/abstract.py +76 -0
  430. parrot/tools/file/gcs.py +378 -0
  431. parrot/tools/file/local.py +284 -0
  432. parrot/tools/file/s3.py +511 -0
  433. parrot/tools/file/tmp.py +309 -0
  434. parrot/tools/file/tool.py +501 -0
  435. parrot/tools/file_reader.py +129 -0
  436. parrot/tools/flowtask/__init__.py +19 -0
  437. parrot/tools/flowtask/tool.py +761 -0
  438. parrot/tools/gittoolkit.py +508 -0
  439. parrot/tools/google/__init__.py +18 -0
  440. parrot/tools/google/base.py +169 -0
  441. parrot/tools/google/tools.py +1251 -0
  442. parrot/tools/googlelocation.py +5 -0
  443. parrot/tools/googleroutes.py +5 -0
  444. parrot/tools/googlesearch.py +5 -0
  445. parrot/tools/googlesitesearch.py +5 -0
  446. parrot/tools/googlevoice.py +2 -0
  447. parrot/tools/gvoice.py +695 -0
  448. parrot/tools/ibisworld/README.md +225 -0
  449. parrot/tools/ibisworld/__init__.py +11 -0
  450. parrot/tools/ibisworld/tool.py +366 -0
  451. parrot/tools/jiratoolkit.py +1718 -0
  452. parrot/tools/manager.py +1098 -0
  453. parrot/tools/math.py +152 -0
  454. parrot/tools/metadata.py +476 -0
  455. parrot/tools/msteams.py +1621 -0
  456. parrot/tools/msword.py +635 -0
  457. parrot/tools/multidb.py +580 -0
  458. parrot/tools/multistoresearch.py +369 -0
  459. parrot/tools/networkninja.py +167 -0
  460. parrot/tools/nextstop/__init__.py +4 -0
  461. parrot/tools/nextstop/base.py +286 -0
  462. parrot/tools/nextstop/employee.py +733 -0
  463. parrot/tools/nextstop/store.py +462 -0
  464. parrot/tools/notification.py +435 -0
  465. parrot/tools/o365/__init__.py +42 -0
  466. parrot/tools/o365/base.py +295 -0
  467. parrot/tools/o365/bundle.py +522 -0
  468. parrot/tools/o365/events.py +554 -0
  469. parrot/tools/o365/mail.py +992 -0
  470. parrot/tools/o365/onedrive.py +497 -0
  471. parrot/tools/o365/sharepoint.py +641 -0
  472. parrot/tools/openapi_toolkit.py +904 -0
  473. parrot/tools/openweather.py +527 -0
  474. parrot/tools/pdfprint.py +1001 -0
  475. parrot/tools/powerbi.py +518 -0
  476. parrot/tools/powerpoint.py +1113 -0
  477. parrot/tools/pricestool.py +146 -0
  478. parrot/tools/products/__init__.py +246 -0
  479. parrot/tools/prophet_tool.py +171 -0
  480. parrot/tools/pythonpandas.py +630 -0
  481. parrot/tools/pythonrepl.py +910 -0
  482. parrot/tools/qsource.py +436 -0
  483. parrot/tools/querytoolkit.py +395 -0
  484. parrot/tools/quickeda.py +827 -0
  485. parrot/tools/resttool.py +553 -0
  486. parrot/tools/retail/__init__.py +0 -0
  487. parrot/tools/retail/bby.py +528 -0
  488. parrot/tools/sandboxtool.py +703 -0
  489. parrot/tools/sassie/__init__.py +352 -0
  490. parrot/tools/scraping/__init__.py +7 -0
  491. parrot/tools/scraping/docs/select.md +466 -0
  492. parrot/tools/scraping/documentation.md +1278 -0
  493. parrot/tools/scraping/driver.py +436 -0
  494. parrot/tools/scraping/models.py +576 -0
  495. parrot/tools/scraping/options.py +85 -0
  496. parrot/tools/scraping/orchestrator.py +517 -0
  497. parrot/tools/scraping/readme.md +740 -0
  498. parrot/tools/scraping/tool.py +3115 -0
  499. parrot/tools/seasonaldetection.py +642 -0
  500. parrot/tools/shell_tool/__init__.py +5 -0
  501. parrot/tools/shell_tool/actions.py +408 -0
  502. parrot/tools/shell_tool/engine.py +155 -0
  503. parrot/tools/shell_tool/models.py +322 -0
  504. parrot/tools/shell_tool/tool.py +442 -0
  505. parrot/tools/site_search.py +214 -0
  506. parrot/tools/textfile.py +418 -0
  507. parrot/tools/think.py +378 -0
  508. parrot/tools/toolkit.py +298 -0
  509. parrot/tools/webapp_tool.py +187 -0
  510. parrot/tools/whatif.py +1279 -0
  511. parrot/tools/workday/MULTI_WSDL_EXAMPLE.md +249 -0
  512. parrot/tools/workday/__init__.py +6 -0
  513. parrot/tools/workday/models.py +1389 -0
  514. parrot/tools/workday/tool.py +1293 -0
  515. parrot/tools/yfinance_tool.py +306 -0
  516. parrot/tools/zipcode.py +217 -0
  517. parrot/utils/__init__.py +2 -0
  518. parrot/utils/helpers.py +73 -0
  519. parrot/utils/parsers/__init__.py +5 -0
  520. parrot/utils/parsers/toml.c +12078 -0
  521. parrot/utils/parsers/toml.cpython-310-x86_64-linux-gnu.so +0 -0
  522. parrot/utils/parsers/toml.pyx +21 -0
  523. parrot/utils/toml.py +11 -0
  524. parrot/utils/types.cpp +20936 -0
  525. parrot/utils/types.cpython-310-x86_64-linux-gnu.so +0 -0
  526. parrot/utils/types.pyx +213 -0
  527. parrot/utils/uv.py +11 -0
  528. parrot/version.py +10 -0
  529. parrot/yaml-rs/Cargo.lock +350 -0
  530. parrot/yaml-rs/Cargo.toml +19 -0
  531. parrot/yaml-rs/pyproject.toml +19 -0
  532. parrot/yaml-rs/python/yaml_rs/__init__.py +81 -0
  533. parrot/yaml-rs/src/lib.rs +222 -0
  534. requirements/docker-compose.yml +24 -0
  535. requirements/requirements-dev.txt +21 -0
@@ -0,0 +1,322 @@
1
+ """
2
+ OpenAPI Configuration for AI-Parrot
3
+ ====================================
4
+
5
+ Configure aiohttp-swagger3 with complete OpenAPI 3.0 schemas for all handlers.
6
+ """
7
+ from pathlib import Path
8
+ from aiohttp import web
9
+ from aiohttp_swagger3 import (
10
+ SwaggerDocs,
11
+ SwaggerInfo,
12
+ SwaggerContact,
13
+ SwaggerLicense,
14
+ SwaggerUiSettings,
15
+ ReDocUiSettings,
16
+ RapiDocUiSettings
17
+ )
18
+
19
+
20
+ def setup_swagger(app: web.Application) -> web.Application:
21
+ """
22
+ Configure Swagger/OpenAPI documentation for AI-Parrot.
23
+
24
+ Enables three UI options:
25
+ - Swagger UI at /api/docs
26
+ - ReDoc at /api/docs/redoc
27
+ - RapiDoc at /api/docs/rapidoc
28
+
29
+ Args:
30
+ app: aiohttp Application instance
31
+
32
+ Returns:
33
+ Configured application with documentation endpoints
34
+ """
35
+
36
+ # Define API Information
37
+ swagger_info = SwaggerInfo(
38
+ title="AI-Parrot API",
39
+ version="1.0.0",
40
+ description="""
41
+ # AI-Parrot: Multi-Agent & Chatbot Platform
42
+
43
+ AI-Parrot es una plataforma completa para trabajar con LLMs, agentes y chatbots.
44
+
45
+ ## Características principales
46
+
47
+ - 🤖 **Chatbots inteligentes** con RAG y memoria conversacional
48
+ - 🎯 **Agentes autónomos** con herramientas y MCP servers
49
+ - 🔄 **Orquestación de crews** para tareas complejas
50
+ - 💾 **Vector stores** con PgVector para búsqueda semántica
51
+ - 🔧 **Toolkits extensibles** para integración con sistemas externos
52
+ - 📊 **Structured outputs** con validación Pydantic
53
+
54
+ ## Clientes LLM soportados
55
+
56
+ - Google GenAI (Gemini)
57
+ - OpenAI (GPT-4, GPT-3.5)
58
+ - Anthropic Claude
59
+ - Groq
60
+
61
+ ## Arquitectura REST
62
+
63
+ Todos los endpoints siguen convenciones RESTful estándar:
64
+ - `GET` - Obtener información
65
+ - `POST` - Crear o ejecutar acciones
66
+ - `PUT` - Crear recursos
67
+ - `PATCH` - Actualizar recursos parcialmente
68
+ - `DELETE` - Eliminar recursos
69
+
70
+ ## Autenticación
71
+
72
+ La mayoría de endpoints requieren autenticación mediante session cookies.
73
+ Algunos endpoints administrativos requieren privilegios de superuser.
74
+ """,
75
+ contact=SwaggerContact(
76
+ name="AI-Parrot Development Team",
77
+ url="https://github.com/phenobarbital/ai-parrot",
78
+ email="support@ai-parrot.dev"
79
+ ),
80
+ license=SwaggerLicense(
81
+ name="MIT License",
82
+ url="https://opensource.org/licenses/MIT"
83
+ ),
84
+ terms_of_service="https://github.com/phenobarbital/ai-parrot/blob/main/TERMS.md"
85
+ )
86
+
87
+ # Configure Swagger UI (familiar interface for developers)
88
+ swagger_ui_settings = SwaggerUiSettings(
89
+ path="/api/docs",
90
+ docExpansion="list", # 'list', 'full', 'none'
91
+ filter=True, # Enable search filter
92
+ deepLinking=True, # Enable deep linking for tags and operations
93
+ displayRequestDuration=True, # Show request duration
94
+ defaultModelsExpandDepth=3, # Expand models by default
95
+ defaultModelExpandDepth=3,
96
+ showExtensions=True,
97
+ showCommonExtensions=True
98
+ )
99
+
100
+ # Configure ReDoc (beautiful, professional documentation)
101
+ redoc_ui_settings = ReDocUiSettings(
102
+ path="/api/docs/redoc",
103
+ expandResponses="200,201", # Auto-expand successful responses
104
+ jsonSampleExpandLevel=3, # Expand JSON examples
105
+ hideDownloadButton=False,
106
+ disableSearch=False,
107
+ hideHostname=False,
108
+ expandSingleSchemaField=True,
109
+ menuToggle=True,
110
+ sortPropsAlphabetically=True,
111
+ payloadSampleIdx=0, # Show first example by default
112
+ )
113
+
114
+ # Configure RapiDoc (modern, customizable with dark mode)
115
+ rapidoc_ui_settings = RapiDocUiSettings(
116
+ path="/api/docs/rapidoc",
117
+ theme="dark", # 'light' or 'dark'
118
+ render_style="focused", # 'read', 'view', 'focused'
119
+ schema_style="tree", # 'tree' or 'table'
120
+ layout="column", # 'row' or 'column'
121
+ allow_try=True, # Enable "Try it out"
122
+ allow_authentication=True,
123
+ allow_spec_url_load=False,
124
+ allow_spec_file_load=False,
125
+ heading_text="AI-Parrot API Documentation",
126
+ show_header=True,
127
+ show_info=True,
128
+ use_path_in_nav_bar=True,
129
+ nav_bg_color="#1e1e1e",
130
+ nav_text_color="#ffffff",
131
+ nav_hover_bg_color="#333333",
132
+ primary_color="#4CAF50",
133
+ font_size="default",
134
+ )
135
+
136
+ # Initialize SwaggerDocs
137
+ current_dir = Path(__file__).parent
138
+ components_path = current_dir / "components.yaml"
139
+
140
+ swagger = SwaggerDocs(
141
+ app,
142
+ info=swagger_info,
143
+ swagger_ui_settings=swagger_ui_settings,
144
+ redoc_ui_settings=redoc_ui_settings,
145
+ rapidoc_ui_settings=rapidoc_ui_settings,
146
+ components=str(components_path), # External components file
147
+ validate=True, # Validate requests against schema
148
+ request_key="swagger_dict", # Key to store validated data in request
149
+ )
150
+
151
+ return app
152
+
153
+
154
+ def get_common_responses():
155
+ """
156
+ Common HTTP responses used across all endpoints.
157
+
158
+ Returns:
159
+ Dict of reusable response definitions
160
+ """
161
+ return {
162
+ "400": {
163
+ "description": "Bad Request - Invalid input parameters",
164
+ "content": {
165
+ "application/json": {
166
+ "schema": {
167
+ "$ref": "#/components/schemas/ErrorResponse"
168
+ },
169
+ "example": {
170
+ "error": "Bad Request",
171
+ "message": "Invalid JSON in request body",
172
+ "details": {}
173
+ }
174
+ }
175
+ }
176
+ },
177
+ "401": {
178
+ "description": "Unauthorized - Authentication required",
179
+ "content": {
180
+ "application/json": {
181
+ "schema": {
182
+ "$ref": "#/components/schemas/ErrorResponse"
183
+ },
184
+ "example": {
185
+ "error": "Unauthorized",
186
+ "message": "Valid session required"
187
+ }
188
+ }
189
+ }
190
+ },
191
+ "403": {
192
+ "description": "Forbidden - Insufficient permissions",
193
+ "content": {
194
+ "application/json": {
195
+ "schema": {
196
+ "$ref": "#/components/schemas/ErrorResponse"
197
+ },
198
+ "example": {
199
+ "error": "Forbidden",
200
+ "message": "Superuser privileges required"
201
+ }
202
+ }
203
+ }
204
+ },
205
+ "404": {
206
+ "description": "Not Found - Resource does not exist",
207
+ "content": {
208
+ "application/json": {
209
+ "schema": {
210
+ "$ref": "#/components/schemas/ErrorResponse"
211
+ },
212
+ "example": {
213
+ "error": "Not Found",
214
+ "message": "Chatbot 'my_bot' not found"
215
+ }
216
+ }
217
+ }
218
+ },
219
+ "422": {
220
+ "description": "Unprocessable Entity - Validation error",
221
+ "content": {
222
+ "application/json": {
223
+ "schema": {
224
+ "$ref": "#/components/schemas/ValidationErrorResponse"
225
+ },
226
+ "example": {
227
+ "error": "Validation Error",
228
+ "message": "Input validation failed",
229
+ "errors": [
230
+ {
231
+ "loc": ["body", "temperature"],
232
+ "msg": "ensure this value is less than or equal to 2.0",
233
+ "type": "value_error"
234
+ }
235
+ ]
236
+ }
237
+ }
238
+ }
239
+ },
240
+ "500": {
241
+ "description": "Internal Server Error",
242
+ "content": {
243
+ "application/json": {
244
+ "schema": {
245
+ "$ref": "#/components/schemas/ErrorResponse"
246
+ },
247
+ "example": {
248
+ "error": "Internal Server Error",
249
+ "message": "An unexpected error occurred"
250
+ }
251
+ }
252
+ }
253
+ }
254
+ }
255
+
256
+
257
+ def get_security_schemes():
258
+ """
259
+ Security schemes for API authentication.
260
+
261
+ Returns:
262
+ Dict of security scheme definitions
263
+ """
264
+ return {
265
+ "sessionAuth": {
266
+ "type": "apiKey",
267
+ "in": "cookie",
268
+ "name": "session",
269
+ "description": "Session-based authentication using HTTP cookies"
270
+ },
271
+ "bearerAuth": {
272
+ "type": "http",
273
+ "scheme": "bearer",
274
+ "bearerFormat": "JWT",
275
+ "description": "JWT token authentication"
276
+ }
277
+ }
278
+
279
+
280
+ # Tags for organizing endpoints
281
+ TAGS_METADATA = [
282
+ {
283
+ "name": "chatbots",
284
+ "description": "Operaciones relacionadas con chatbots - interacción y consulta de información",
285
+ "externalDocs": {
286
+ "description": "Chatbot documentation",
287
+ "url": "https://github.com/phenobarbital/ai-parrot/blob/main/docs/chatbots.md"
288
+ }
289
+ },
290
+ {
291
+ "name": "bot-management",
292
+ "description": "Gestión CRUD de bots/agents - crear, listar, actualizar, eliminar",
293
+ "externalDocs": {
294
+ "description": "Bot management guide",
295
+ "url": "https://github.com/phenobarbital/ai-parrot/blob/main/docs/bot-management.md"
296
+ }
297
+ },
298
+ {
299
+ "name": "agents",
300
+ "description": "Interacción con agentes autónomos - conversaciones con soporte para tools y MCP",
301
+ "externalDocs": {
302
+ "description": "Agent documentation",
303
+ "url": "https://github.com/phenobarbital/ai-parrot/blob/main/docs/agents.md"
304
+ }
305
+ },
306
+ {
307
+ "name": "crews",
308
+ "description": "Orquestación de crews multi-agente para tareas complejas",
309
+ "externalDocs": {
310
+ "description": "Crew orchestration guide",
311
+ "url": "https://github.com/phenobarbital/ai-parrot/blob/main/docs/crews.md"
312
+ }
313
+ },
314
+ {
315
+ "name": "tools",
316
+ "description": "Registro y gestión de herramientas para agentes",
317
+ },
318
+ {
319
+ "name": "feedback",
320
+ "description": "Sistema de feedback para mejorar respuestas de bots",
321
+ }
322
+ ]
@@ -0,0 +1,32 @@
1
+ """
2
+ Output formatters for AI-Parrot using Rich (terminal) and Panel (HTML) with Jupyter support.
3
+ - Interactive widgets and controls
4
+ - Rich markdown rendering
5
+ - Collapsible sections
6
+ - Inline visualizations
7
+ - Syntax highlighting
8
+ - Tables and structured data
9
+
10
+ Automatically detects and renders:
11
+ - Folium maps
12
+ - Plotly charts
13
+ - Matplotlib figures
14
+ - DataFrames
15
+ - Bokeh plots
16
+ - Altair charts
17
+ - Panel dashboards
18
+ - HTML widgets
19
+ - Images
20
+
21
+ Each output type is rendered appropriately based on the output mode (Terminal, HTML, Jupyter).
22
+ HTML mode generates embeddable widgets for integration with Streamlit, Gradio, web apps, etc.
23
+ """
24
+ from ..models.outputs import OutputMode, OutputType
25
+ from .formatter import OutputFormatter
26
+
27
+
28
+ __all__ = (
29
+ 'OutputMode',
30
+ 'OutputType',
31
+ 'OutputFormatter',
32
+ )
@@ -0,0 +1,108 @@
1
+ import contextlib
2
+ from typing import Protocol, Dict, Type, Any, Optional
3
+ from importlib import import_module
4
+ from ...models.outputs import OutputMode
5
+
6
+ class Renderer(Protocol):
7
+ """Protocol for output renderers."""
8
+ @staticmethod
9
+ def render(data: Any, **kwargs) -> Any:
10
+ ...
11
+
12
+
13
+ RENDERERS: Dict[OutputMode, Type[Renderer]] = {}
14
+ _PROMPTS: Dict[OutputMode, str] = {}
15
+
16
+
17
+ def register_renderer(mode: OutputMode, system_prompt: Optional[str] = None):
18
+ """
19
+ Decorator to register a renderer class and optionally its system prompt.
20
+
21
+ Args:
22
+ mode: OutputMode enum value
23
+ system_prompt: Optional system prompt to inject when using this mode
24
+ """
25
+ print(':::: Registering renderer for mode:', mode)
26
+ def decorator(cls):
27
+ RENDERERS[mode] = cls
28
+ if system_prompt:
29
+ _PROMPTS[mode] = system_prompt
30
+ return cls
31
+ return decorator
32
+
33
+ def get_renderer(mode: OutputMode) -> Type[Renderer]:
34
+ """Get the renderer class for the given output mode."""
35
+ if mode not in RENDERERS:
36
+ # Lazy load the module to register the renderer
37
+ with contextlib.suppress(ImportError):
38
+ if mode == OutputMode.TERMINAL:
39
+ import_module('.terminal', 'parrot.outputs.formats')
40
+ elif mode == OutputMode.HTML:
41
+ import_module('.html', 'parrot.outputs.formats')
42
+ elif mode == OutputMode.JSON:
43
+ import_module('.json', 'parrot.outputs.formats')
44
+ elif mode == OutputMode.MARKDOWN:
45
+ import_module('.markdown', 'parrot.outputs.formats')
46
+ elif mode == OutputMode.YAML:
47
+ import_module('.yaml', 'parrot.outputs.formats')
48
+ elif mode == OutputMode.CHART:
49
+ import_module('.charts', 'parrot.outputs.formats')
50
+ elif mode == OutputMode.MAP:
51
+ import_module('.map', 'parrot.outputs.formats')
52
+ elif mode == OutputMode.ALTAIR:
53
+ import_module('.altair', 'parrot.outputs.formats')
54
+ elif mode == OutputMode.JINJA2:
55
+ import_module('.jinja2', 'parrot.outputs.formats')
56
+ elif mode == OutputMode.TEMPLATE_REPORT:
57
+ import_module('.template_report', 'parrot.outputs.formats')
58
+ elif mode == OutputMode.BOKEH:
59
+ import_module('.bokeh', 'parrot.outputs.formats')
60
+ elif mode == OutputMode.PLOTLY:
61
+ import_module('.plotly', 'parrot.outputs.formats')
62
+ elif mode == OutputMode.MATPLOTLIB:
63
+ import_module('.matplotlib', 'parrot.outputs.formats')
64
+ elif mode == OutputMode.D3:
65
+ import_module('.d3', 'parrot.outputs.formats')
66
+ elif mode == OutputMode.ECHARTS:
67
+ import_module('.echarts', 'parrot.outputs.formats')
68
+ elif mode == OutputMode.SEABORN:
69
+ import_module('.seaborn', 'parrot.outputs.formats')
70
+ elif mode == OutputMode.HOLOVIEWS:
71
+ import_module('.holoviews', 'parrot.outputs.formats')
72
+ elif mode == OutputMode.TABLE:
73
+ import_module('.table', 'parrot.outputs.formats')
74
+ elif mode == OutputMode.APPLICATION:
75
+ import_module('.application', 'parrot.outputs.formats')
76
+ elif mode == OutputMode.CARD:
77
+ import_module('.card', 'parrot.outputs.formats')
78
+ try:
79
+ return RENDERERS[mode]
80
+ except KeyError as exc:
81
+ raise ValueError(
82
+ f"No renderer registered for mode: {mode}"
83
+ ) from exc
84
+
85
+ def get_output_prompt(mode: OutputMode) -> Optional[str]:
86
+ """Get system prompt for mode."""
87
+ # Trigger lazy loading to ensure decorator has run
88
+ if mode not in _PROMPTS:
89
+ with contextlib.suppress(ValueError):
90
+ get_renderer(mode)
91
+ return _PROMPTS.get(mode)
92
+
93
+ def has_system_prompt(mode: OutputMode) -> bool:
94
+ """Check if mode has a registered system prompt."""
95
+ if mode not in _PROMPTS:
96
+ with contextlib.suppress(ValueError):
97
+ get_renderer(mode)
98
+ return mode in _PROMPTS
99
+
100
+
101
+ __all__ = (
102
+ 'RENDERERS',
103
+ 'register_renderer',
104
+ 'get_renderer',
105
+ 'Renderer',
106
+ 'get_output_prompt',
107
+ 'has_system_prompt',
108
+ )