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.
- agentui/.prettierrc +15 -0
- agentui/QUICKSTART.md +272 -0
- agentui/README.md +59 -0
- agentui/env.example +16 -0
- agentui/jsconfig.json +14 -0
- agentui/package-lock.json +4242 -0
- agentui/package.json +34 -0
- agentui/scripts/postinstall/apply-patches.mjs +260 -0
- agentui/src/app.css +61 -0
- agentui/src/app.d.ts +13 -0
- agentui/src/app.html +12 -0
- agentui/src/components/LoadingSpinner.svelte +64 -0
- agentui/src/components/ThemeSwitcher.svelte +159 -0
- agentui/src/components/index.js +4 -0
- agentui/src/lib/api/bots.ts +60 -0
- agentui/src/lib/api/chat.ts +22 -0
- agentui/src/lib/api/http.ts +25 -0
- agentui/src/lib/components/BotCard.svelte +33 -0
- agentui/src/lib/components/ChatBubble.svelte +63 -0
- agentui/src/lib/components/Toast.svelte +21 -0
- agentui/src/lib/config.ts +20 -0
- agentui/src/lib/stores/auth.svelte.ts +73 -0
- agentui/src/lib/stores/theme.svelte.js +64 -0
- agentui/src/lib/stores/toast.svelte.ts +31 -0
- agentui/src/lib/utils/conversation.ts +39 -0
- agentui/src/routes/+layout.svelte +20 -0
- agentui/src/routes/+page.svelte +232 -0
- agentui/src/routes/login/+page.svelte +200 -0
- agentui/src/routes/talk/[agentId]/+page.svelte +297 -0
- agentui/src/routes/talk/[agentId]/+page.ts +7 -0
- agentui/static/README.md +1 -0
- agentui/svelte.config.js +11 -0
- agentui/tailwind.config.ts +53 -0
- agentui/tsconfig.json +3 -0
- agentui/vite.config.ts +10 -0
- ai_parrot-0.17.2.dist-info/METADATA +472 -0
- ai_parrot-0.17.2.dist-info/RECORD +535 -0
- ai_parrot-0.17.2.dist-info/WHEEL +6 -0
- ai_parrot-0.17.2.dist-info/entry_points.txt +2 -0
- ai_parrot-0.17.2.dist-info/licenses/LICENSE +21 -0
- ai_parrot-0.17.2.dist-info/top_level.txt +6 -0
- crew-builder/.prettierrc +15 -0
- crew-builder/QUICKSTART.md +259 -0
- crew-builder/README.md +113 -0
- crew-builder/env.example +17 -0
- crew-builder/jsconfig.json +14 -0
- crew-builder/package-lock.json +4182 -0
- crew-builder/package.json +37 -0
- crew-builder/scripts/postinstall/apply-patches.mjs +260 -0
- crew-builder/src/app.css +62 -0
- crew-builder/src/app.d.ts +13 -0
- crew-builder/src/app.html +12 -0
- crew-builder/src/components/LoadingSpinner.svelte +64 -0
- crew-builder/src/components/ThemeSwitcher.svelte +149 -0
- crew-builder/src/components/index.js +9 -0
- crew-builder/src/lib/api/bots.ts +60 -0
- crew-builder/src/lib/api/chat.ts +80 -0
- crew-builder/src/lib/api/client.ts +56 -0
- crew-builder/src/lib/api/crew/crew.ts +136 -0
- crew-builder/src/lib/api/index.ts +5 -0
- crew-builder/src/lib/api/o365/auth.ts +65 -0
- crew-builder/src/lib/auth/auth.ts +54 -0
- crew-builder/src/lib/components/AgentNode.svelte +43 -0
- crew-builder/src/lib/components/BotCard.svelte +33 -0
- crew-builder/src/lib/components/ChatBubble.svelte +67 -0
- crew-builder/src/lib/components/ConfigPanel.svelte +278 -0
- crew-builder/src/lib/components/JsonTreeNode.svelte +76 -0
- crew-builder/src/lib/components/JsonViewer.svelte +24 -0
- crew-builder/src/lib/components/MarkdownEditor.svelte +48 -0
- crew-builder/src/lib/components/ThemeToggle.svelte +36 -0
- crew-builder/src/lib/components/Toast.svelte +67 -0
- crew-builder/src/lib/components/Toolbar.svelte +157 -0
- crew-builder/src/lib/components/index.ts +10 -0
- crew-builder/src/lib/config.ts +8 -0
- crew-builder/src/lib/stores/auth.svelte.ts +228 -0
- crew-builder/src/lib/stores/crewStore.ts +369 -0
- crew-builder/src/lib/stores/theme.svelte.js +145 -0
- crew-builder/src/lib/stores/toast.svelte.ts +69 -0
- crew-builder/src/lib/utils/conversation.ts +39 -0
- crew-builder/src/lib/utils/markdown.ts +122 -0
- crew-builder/src/lib/utils/talkHistory.ts +47 -0
- crew-builder/src/routes/+layout.svelte +20 -0
- crew-builder/src/routes/+page.svelte +539 -0
- crew-builder/src/routes/agents/+page.svelte +247 -0
- crew-builder/src/routes/agents/[agentId]/+page.svelte +288 -0
- crew-builder/src/routes/agents/[agentId]/+page.ts +7 -0
- crew-builder/src/routes/builder/+page.svelte +204 -0
- crew-builder/src/routes/crew/ask/+page.svelte +1052 -0
- crew-builder/src/routes/crew/ask/+page.ts +1 -0
- crew-builder/src/routes/integrations/o365/+page.svelte +304 -0
- crew-builder/src/routes/login/+page.svelte +197 -0
- crew-builder/src/routes/talk/[agentId]/+page.svelte +487 -0
- crew-builder/src/routes/talk/[agentId]/+page.ts +7 -0
- crew-builder/static/README.md +1 -0
- crew-builder/svelte.config.js +11 -0
- crew-builder/tailwind.config.ts +53 -0
- crew-builder/tsconfig.json +3 -0
- crew-builder/vite.config.ts +10 -0
- mcp_servers/calculator_server.py +309 -0
- parrot/__init__.py +27 -0
- parrot/__pycache__/__init__.cpython-310.pyc +0 -0
- parrot/__pycache__/version.cpython-310.pyc +0 -0
- parrot/_version.py +34 -0
- parrot/a2a/__init__.py +48 -0
- parrot/a2a/client.py +658 -0
- parrot/a2a/discovery.py +89 -0
- parrot/a2a/mixin.py +257 -0
- parrot/a2a/models.py +376 -0
- parrot/a2a/server.py +770 -0
- parrot/agents/__init__.py +29 -0
- parrot/bots/__init__.py +12 -0
- parrot/bots/a2a_agent.py +19 -0
- parrot/bots/abstract.py +3139 -0
- parrot/bots/agent.py +1129 -0
- parrot/bots/basic.py +9 -0
- parrot/bots/chatbot.py +669 -0
- parrot/bots/data.py +1618 -0
- parrot/bots/database/__init__.py +5 -0
- parrot/bots/database/abstract.py +3071 -0
- parrot/bots/database/cache.py +286 -0
- parrot/bots/database/models.py +468 -0
- parrot/bots/database/prompts.py +154 -0
- parrot/bots/database/retries.py +98 -0
- parrot/bots/database/router.py +269 -0
- parrot/bots/database/sql.py +41 -0
- parrot/bots/db/__init__.py +6 -0
- parrot/bots/db/abstract.py +556 -0
- parrot/bots/db/bigquery.py +602 -0
- parrot/bots/db/cache.py +85 -0
- parrot/bots/db/documentdb.py +668 -0
- parrot/bots/db/elastic.py +1014 -0
- parrot/bots/db/influx.py +898 -0
- parrot/bots/db/mock.py +96 -0
- parrot/bots/db/multi.py +783 -0
- parrot/bots/db/prompts.py +185 -0
- parrot/bots/db/sql.py +1255 -0
- parrot/bots/db/tools.py +212 -0
- parrot/bots/document.py +680 -0
- parrot/bots/hrbot.py +15 -0
- parrot/bots/kb.py +170 -0
- parrot/bots/mcp.py +36 -0
- parrot/bots/orchestration/README.md +463 -0
- parrot/bots/orchestration/__init__.py +1 -0
- parrot/bots/orchestration/agent.py +155 -0
- parrot/bots/orchestration/crew.py +3330 -0
- parrot/bots/orchestration/fsm.py +1179 -0
- parrot/bots/orchestration/hr.py +434 -0
- parrot/bots/orchestration/storage/__init__.py +4 -0
- parrot/bots/orchestration/storage/memory.py +100 -0
- parrot/bots/orchestration/storage/mixin.py +119 -0
- parrot/bots/orchestration/verify.py +202 -0
- parrot/bots/product.py +204 -0
- parrot/bots/prompts/__init__.py +96 -0
- parrot/bots/prompts/agents.py +155 -0
- parrot/bots/prompts/data.py +216 -0
- parrot/bots/prompts/output_generation.py +8 -0
- parrot/bots/scraper/__init__.py +3 -0
- parrot/bots/scraper/models.py +122 -0
- parrot/bots/scraper/scraper.py +1173 -0
- parrot/bots/scraper/templates.py +115 -0
- parrot/bots/stores/__init__.py +5 -0
- parrot/bots/stores/local.py +172 -0
- parrot/bots/webdev.py +81 -0
- parrot/cli.py +17 -0
- parrot/clients/__init__.py +16 -0
- parrot/clients/base.py +1491 -0
- parrot/clients/claude.py +1191 -0
- parrot/clients/factory.py +129 -0
- parrot/clients/google.py +4567 -0
- parrot/clients/gpt.py +1975 -0
- parrot/clients/grok.py +432 -0
- parrot/clients/groq.py +986 -0
- parrot/clients/hf.py +582 -0
- parrot/clients/models.py +18 -0
- parrot/conf.py +395 -0
- parrot/embeddings/__init__.py +9 -0
- parrot/embeddings/base.py +157 -0
- parrot/embeddings/google.py +98 -0
- parrot/embeddings/huggingface.py +74 -0
- parrot/embeddings/openai.py +84 -0
- parrot/embeddings/processor.py +88 -0
- parrot/exceptions.c +13868 -0
- parrot/exceptions.cpython-310-x86_64-linux-gnu.so +0 -0
- parrot/exceptions.pxd +22 -0
- parrot/exceptions.pxi +15 -0
- parrot/exceptions.pyx +44 -0
- parrot/generators/__init__.py +29 -0
- parrot/generators/base.py +200 -0
- parrot/generators/html.py +293 -0
- parrot/generators/react.py +205 -0
- parrot/generators/streamlit.py +203 -0
- parrot/generators/template.py +105 -0
- parrot/handlers/__init__.py +4 -0
- parrot/handlers/agent.py +861 -0
- parrot/handlers/agents/__init__.py +1 -0
- parrot/handlers/agents/abstract.py +900 -0
- parrot/handlers/bots.py +338 -0
- parrot/handlers/chat.py +915 -0
- parrot/handlers/creation.sql +192 -0
- parrot/handlers/crew/ARCHITECTURE.md +362 -0
- parrot/handlers/crew/README_BOTMANAGER_PERSISTENCE.md +303 -0
- parrot/handlers/crew/README_REDIS_PERSISTENCE.md +366 -0
- parrot/handlers/crew/__init__.py +0 -0
- parrot/handlers/crew/handler.py +801 -0
- parrot/handlers/crew/models.py +229 -0
- parrot/handlers/crew/redis_persistence.py +523 -0
- parrot/handlers/jobs/__init__.py +10 -0
- parrot/handlers/jobs/job.py +384 -0
- parrot/handlers/jobs/mixin.py +627 -0
- parrot/handlers/jobs/models.py +115 -0
- parrot/handlers/jobs/worker.py +31 -0
- parrot/handlers/models.py +596 -0
- parrot/handlers/o365_auth.py +105 -0
- parrot/handlers/stream.py +337 -0
- parrot/interfaces/__init__.py +6 -0
- parrot/interfaces/aws.py +143 -0
- parrot/interfaces/credentials.py +113 -0
- parrot/interfaces/database.py +27 -0
- parrot/interfaces/google.py +1123 -0
- parrot/interfaces/hierarchy.py +1227 -0
- parrot/interfaces/http.py +651 -0
- parrot/interfaces/images/__init__.py +0 -0
- parrot/interfaces/images/plugins/__init__.py +24 -0
- parrot/interfaces/images/plugins/abstract.py +58 -0
- parrot/interfaces/images/plugins/analisys.py +148 -0
- parrot/interfaces/images/plugins/classify.py +150 -0
- parrot/interfaces/images/plugins/classifybase.py +182 -0
- parrot/interfaces/images/plugins/detect.py +150 -0
- parrot/interfaces/images/plugins/exif.py +1103 -0
- parrot/interfaces/images/plugins/hash.py +52 -0
- parrot/interfaces/images/plugins/vision.py +104 -0
- parrot/interfaces/images/plugins/yolo.py +66 -0
- parrot/interfaces/images/plugins/zerodetect.py +197 -0
- parrot/interfaces/o365.py +978 -0
- parrot/interfaces/onedrive.py +822 -0
- parrot/interfaces/sharepoint.py +1435 -0
- parrot/interfaces/soap.py +257 -0
- parrot/loaders/__init__.py +8 -0
- parrot/loaders/abstract.py +1131 -0
- parrot/loaders/audio.py +199 -0
- parrot/loaders/basepdf.py +53 -0
- parrot/loaders/basevideo.py +1568 -0
- parrot/loaders/csv.py +409 -0
- parrot/loaders/docx.py +116 -0
- parrot/loaders/epubloader.py +316 -0
- parrot/loaders/excel.py +199 -0
- parrot/loaders/factory.py +55 -0
- parrot/loaders/files/__init__.py +0 -0
- parrot/loaders/files/abstract.py +39 -0
- parrot/loaders/files/html.py +26 -0
- parrot/loaders/files/text.py +63 -0
- parrot/loaders/html.py +152 -0
- parrot/loaders/markdown.py +442 -0
- parrot/loaders/pdf.py +373 -0
- parrot/loaders/pdfmark.py +320 -0
- parrot/loaders/pdftables.py +506 -0
- parrot/loaders/ppt.py +476 -0
- parrot/loaders/qa.py +63 -0
- parrot/loaders/splitters/__init__.py +10 -0
- parrot/loaders/splitters/base.py +138 -0
- parrot/loaders/splitters/md.py +228 -0
- parrot/loaders/splitters/token.py +143 -0
- parrot/loaders/txt.py +26 -0
- parrot/loaders/video.py +89 -0
- parrot/loaders/videolocal.py +218 -0
- parrot/loaders/videounderstanding.py +377 -0
- parrot/loaders/vimeo.py +167 -0
- parrot/loaders/web.py +599 -0
- parrot/loaders/youtube.py +504 -0
- parrot/manager/__init__.py +5 -0
- parrot/manager/manager.py +1030 -0
- parrot/mcp/__init__.py +28 -0
- parrot/mcp/adapter.py +105 -0
- parrot/mcp/cli.py +174 -0
- parrot/mcp/client.py +119 -0
- parrot/mcp/config.py +75 -0
- parrot/mcp/integration.py +842 -0
- parrot/mcp/oauth.py +933 -0
- parrot/mcp/server.py +225 -0
- parrot/mcp/transports/__init__.py +3 -0
- parrot/mcp/transports/base.py +279 -0
- parrot/mcp/transports/grpc_session.py +163 -0
- parrot/mcp/transports/http.py +312 -0
- parrot/mcp/transports/mcp.proto +108 -0
- parrot/mcp/transports/quic.py +1082 -0
- parrot/mcp/transports/sse.py +330 -0
- parrot/mcp/transports/stdio.py +309 -0
- parrot/mcp/transports/unix.py +395 -0
- parrot/mcp/transports/websocket.py +547 -0
- parrot/memory/__init__.py +16 -0
- parrot/memory/abstract.py +209 -0
- parrot/memory/agent.py +32 -0
- parrot/memory/cache.py +175 -0
- parrot/memory/core.py +555 -0
- parrot/memory/file.py +153 -0
- parrot/memory/mem.py +131 -0
- parrot/memory/redis.py +613 -0
- parrot/models/__init__.py +46 -0
- parrot/models/basic.py +118 -0
- parrot/models/compliance.py +208 -0
- parrot/models/crew.py +395 -0
- parrot/models/detections.py +654 -0
- parrot/models/generation.py +85 -0
- parrot/models/google.py +223 -0
- parrot/models/groq.py +23 -0
- parrot/models/openai.py +30 -0
- parrot/models/outputs.py +285 -0
- parrot/models/responses.py +938 -0
- parrot/notifications/__init__.py +743 -0
- parrot/openapi/__init__.py +3 -0
- parrot/openapi/components.yaml +641 -0
- parrot/openapi/config.py +322 -0
- parrot/outputs/__init__.py +32 -0
- parrot/outputs/formats/__init__.py +108 -0
- parrot/outputs/formats/altair.py +359 -0
- parrot/outputs/formats/application.py +122 -0
- parrot/outputs/formats/base.py +351 -0
- parrot/outputs/formats/bokeh.py +356 -0
- parrot/outputs/formats/card.py +424 -0
- parrot/outputs/formats/chart.py +436 -0
- parrot/outputs/formats/d3.py +255 -0
- parrot/outputs/formats/echarts.py +310 -0
- parrot/outputs/formats/generators/__init__.py +0 -0
- parrot/outputs/formats/generators/abstract.py +61 -0
- parrot/outputs/formats/generators/panel.py +145 -0
- parrot/outputs/formats/generators/streamlit.py +86 -0
- parrot/outputs/formats/generators/terminal.py +63 -0
- parrot/outputs/formats/holoviews.py +310 -0
- parrot/outputs/formats/html.py +147 -0
- parrot/outputs/formats/jinja2.py +46 -0
- parrot/outputs/formats/json.py +87 -0
- parrot/outputs/formats/map.py +933 -0
- parrot/outputs/formats/markdown.py +172 -0
- parrot/outputs/formats/matplotlib.py +237 -0
- parrot/outputs/formats/mixins/__init__.py +0 -0
- parrot/outputs/formats/mixins/emaps.py +855 -0
- parrot/outputs/formats/plotly.py +341 -0
- parrot/outputs/formats/seaborn.py +310 -0
- parrot/outputs/formats/table.py +397 -0
- parrot/outputs/formats/template_report.py +138 -0
- parrot/outputs/formats/yaml.py +125 -0
- parrot/outputs/formatter.py +152 -0
- parrot/outputs/templates/__init__.py +95 -0
- parrot/pipelines/__init__.py +0 -0
- parrot/pipelines/abstract.py +210 -0
- parrot/pipelines/detector.py +124 -0
- parrot/pipelines/models.py +90 -0
- parrot/pipelines/planogram.py +3002 -0
- parrot/pipelines/table.sql +97 -0
- parrot/plugins/__init__.py +106 -0
- parrot/plugins/importer.py +80 -0
- parrot/py.typed +0 -0
- parrot/registry/__init__.py +18 -0
- parrot/registry/registry.py +594 -0
- parrot/scheduler/__init__.py +1189 -0
- parrot/scheduler/models.py +60 -0
- parrot/security/__init__.py +16 -0
- parrot/security/prompt_injection.py +268 -0
- parrot/security/security_events.sql +25 -0
- parrot/services/__init__.py +1 -0
- parrot/services/mcp/__init__.py +8 -0
- parrot/services/mcp/config.py +13 -0
- parrot/services/mcp/server.py +295 -0
- parrot/services/o365_remote_auth.py +235 -0
- parrot/stores/__init__.py +7 -0
- parrot/stores/abstract.py +352 -0
- parrot/stores/arango.py +1090 -0
- parrot/stores/bigquery.py +1377 -0
- parrot/stores/cache.py +106 -0
- parrot/stores/empty.py +10 -0
- parrot/stores/faiss_store.py +1157 -0
- parrot/stores/kb/__init__.py +9 -0
- parrot/stores/kb/abstract.py +68 -0
- parrot/stores/kb/cache.py +165 -0
- parrot/stores/kb/doc.py +325 -0
- parrot/stores/kb/hierarchy.py +346 -0
- parrot/stores/kb/local.py +457 -0
- parrot/stores/kb/prompt.py +28 -0
- parrot/stores/kb/redis.py +659 -0
- parrot/stores/kb/store.py +115 -0
- parrot/stores/kb/user.py +374 -0
- parrot/stores/models.py +59 -0
- parrot/stores/pgvector.py +3 -0
- parrot/stores/postgres.py +2853 -0
- parrot/stores/utils/__init__.py +0 -0
- parrot/stores/utils/chunking.py +197 -0
- parrot/telemetry/__init__.py +3 -0
- parrot/telemetry/mixin.py +111 -0
- parrot/template/__init__.py +3 -0
- parrot/template/engine.py +259 -0
- parrot/tools/__init__.py +23 -0
- parrot/tools/abstract.py +644 -0
- parrot/tools/agent.py +363 -0
- parrot/tools/arangodbsearch.py +537 -0
- parrot/tools/arxiv_tool.py +188 -0
- parrot/tools/calculator/__init__.py +3 -0
- parrot/tools/calculator/operations/__init__.py +38 -0
- parrot/tools/calculator/operations/calculus.py +80 -0
- parrot/tools/calculator/operations/statistics.py +76 -0
- parrot/tools/calculator/tool.py +150 -0
- parrot/tools/cloudwatch.py +988 -0
- parrot/tools/codeinterpreter/__init__.py +127 -0
- parrot/tools/codeinterpreter/executor.py +371 -0
- parrot/tools/codeinterpreter/internals.py +473 -0
- parrot/tools/codeinterpreter/models.py +643 -0
- parrot/tools/codeinterpreter/prompts.py +224 -0
- parrot/tools/codeinterpreter/tool.py +664 -0
- parrot/tools/company_info/__init__.py +6 -0
- parrot/tools/company_info/tool.py +1138 -0
- parrot/tools/correlationanalysis.py +437 -0
- parrot/tools/database/abstract.py +286 -0
- parrot/tools/database/bq.py +115 -0
- parrot/tools/database/cache.py +284 -0
- parrot/tools/database/models.py +95 -0
- parrot/tools/database/pg.py +343 -0
- parrot/tools/databasequery.py +1159 -0
- parrot/tools/db.py +1800 -0
- parrot/tools/ddgo.py +370 -0
- parrot/tools/decorators.py +271 -0
- parrot/tools/dftohtml.py +282 -0
- parrot/tools/document.py +549 -0
- parrot/tools/ecs.py +819 -0
- parrot/tools/edareport.py +368 -0
- parrot/tools/elasticsearch.py +1049 -0
- parrot/tools/employees.py +462 -0
- parrot/tools/epson/__init__.py +96 -0
- parrot/tools/excel.py +683 -0
- parrot/tools/file/__init__.py +13 -0
- parrot/tools/file/abstract.py +76 -0
- parrot/tools/file/gcs.py +378 -0
- parrot/tools/file/local.py +284 -0
- parrot/tools/file/s3.py +511 -0
- parrot/tools/file/tmp.py +309 -0
- parrot/tools/file/tool.py +501 -0
- parrot/tools/file_reader.py +129 -0
- parrot/tools/flowtask/__init__.py +19 -0
- parrot/tools/flowtask/tool.py +761 -0
- parrot/tools/gittoolkit.py +508 -0
- parrot/tools/google/__init__.py +18 -0
- parrot/tools/google/base.py +169 -0
- parrot/tools/google/tools.py +1251 -0
- parrot/tools/googlelocation.py +5 -0
- parrot/tools/googleroutes.py +5 -0
- parrot/tools/googlesearch.py +5 -0
- parrot/tools/googlesitesearch.py +5 -0
- parrot/tools/googlevoice.py +2 -0
- parrot/tools/gvoice.py +695 -0
- parrot/tools/ibisworld/README.md +225 -0
- parrot/tools/ibisworld/__init__.py +11 -0
- parrot/tools/ibisworld/tool.py +366 -0
- parrot/tools/jiratoolkit.py +1718 -0
- parrot/tools/manager.py +1098 -0
- parrot/tools/math.py +152 -0
- parrot/tools/metadata.py +476 -0
- parrot/tools/msteams.py +1621 -0
- parrot/tools/msword.py +635 -0
- parrot/tools/multidb.py +580 -0
- parrot/tools/multistoresearch.py +369 -0
- parrot/tools/networkninja.py +167 -0
- parrot/tools/nextstop/__init__.py +4 -0
- parrot/tools/nextstop/base.py +286 -0
- parrot/tools/nextstop/employee.py +733 -0
- parrot/tools/nextstop/store.py +462 -0
- parrot/tools/notification.py +435 -0
- parrot/tools/o365/__init__.py +42 -0
- parrot/tools/o365/base.py +295 -0
- parrot/tools/o365/bundle.py +522 -0
- parrot/tools/o365/events.py +554 -0
- parrot/tools/o365/mail.py +992 -0
- parrot/tools/o365/onedrive.py +497 -0
- parrot/tools/o365/sharepoint.py +641 -0
- parrot/tools/openapi_toolkit.py +904 -0
- parrot/tools/openweather.py +527 -0
- parrot/tools/pdfprint.py +1001 -0
- parrot/tools/powerbi.py +518 -0
- parrot/tools/powerpoint.py +1113 -0
- parrot/tools/pricestool.py +146 -0
- parrot/tools/products/__init__.py +246 -0
- parrot/tools/prophet_tool.py +171 -0
- parrot/tools/pythonpandas.py +630 -0
- parrot/tools/pythonrepl.py +910 -0
- parrot/tools/qsource.py +436 -0
- parrot/tools/querytoolkit.py +395 -0
- parrot/tools/quickeda.py +827 -0
- parrot/tools/resttool.py +553 -0
- parrot/tools/retail/__init__.py +0 -0
- parrot/tools/retail/bby.py +528 -0
- parrot/tools/sandboxtool.py +703 -0
- parrot/tools/sassie/__init__.py +352 -0
- parrot/tools/scraping/__init__.py +7 -0
- parrot/tools/scraping/docs/select.md +466 -0
- parrot/tools/scraping/documentation.md +1278 -0
- parrot/tools/scraping/driver.py +436 -0
- parrot/tools/scraping/models.py +576 -0
- parrot/tools/scraping/options.py +85 -0
- parrot/tools/scraping/orchestrator.py +517 -0
- parrot/tools/scraping/readme.md +740 -0
- parrot/tools/scraping/tool.py +3115 -0
- parrot/tools/seasonaldetection.py +642 -0
- parrot/tools/shell_tool/__init__.py +5 -0
- parrot/tools/shell_tool/actions.py +408 -0
- parrot/tools/shell_tool/engine.py +155 -0
- parrot/tools/shell_tool/models.py +322 -0
- parrot/tools/shell_tool/tool.py +442 -0
- parrot/tools/site_search.py +214 -0
- parrot/tools/textfile.py +418 -0
- parrot/tools/think.py +378 -0
- parrot/tools/toolkit.py +298 -0
- parrot/tools/webapp_tool.py +187 -0
- parrot/tools/whatif.py +1279 -0
- parrot/tools/workday/MULTI_WSDL_EXAMPLE.md +249 -0
- parrot/tools/workday/__init__.py +6 -0
- parrot/tools/workday/models.py +1389 -0
- parrot/tools/workday/tool.py +1293 -0
- parrot/tools/yfinance_tool.py +306 -0
- parrot/tools/zipcode.py +217 -0
- parrot/utils/__init__.py +2 -0
- parrot/utils/helpers.py +73 -0
- parrot/utils/parsers/__init__.py +5 -0
- parrot/utils/parsers/toml.c +12078 -0
- parrot/utils/parsers/toml.cpython-310-x86_64-linux-gnu.so +0 -0
- parrot/utils/parsers/toml.pyx +21 -0
- parrot/utils/toml.py +11 -0
- parrot/utils/types.cpp +20936 -0
- parrot/utils/types.cpython-310-x86_64-linux-gnu.so +0 -0
- parrot/utils/types.pyx +213 -0
- parrot/utils/uv.py +11 -0
- parrot/version.py +10 -0
- parrot/yaml-rs/Cargo.lock +350 -0
- parrot/yaml-rs/Cargo.toml +19 -0
- parrot/yaml-rs/pyproject.toml +19 -0
- parrot/yaml-rs/python/yaml_rs/__init__.py +81 -0
- parrot/yaml-rs/src/lib.rs +222 -0
- requirements/docker-compose.yml +24 -0
- requirements/requirements-dev.txt +21 -0
|
@@ -0,0 +1,522 @@
|
|
|
1
|
+
"""
|
|
2
|
+
SharePoint and OneDrive Toolkits for AI-Parrot
|
|
3
|
+
|
|
4
|
+
Toolkit wrappers for SharePoint and OneDrive file management tools.
|
|
5
|
+
"""
|
|
6
|
+
from typing import Dict, Any, Optional, List
|
|
7
|
+
from navconfig.logging import logging
|
|
8
|
+
|
|
9
|
+
from .sharepoint import (
|
|
10
|
+
ListSharePointFilesTool,
|
|
11
|
+
SearchSharePointFilesTool,
|
|
12
|
+
DownloadSharePointFileTool,
|
|
13
|
+
UploadSharePointFileTool
|
|
14
|
+
)
|
|
15
|
+
from .onedrive import (
|
|
16
|
+
ListOneDriveFilesTool,
|
|
17
|
+
SearchOneDriveFilesTool,
|
|
18
|
+
DownloadOneDriveFileTool,
|
|
19
|
+
UploadOneDriveFileTool
|
|
20
|
+
)
|
|
21
|
+
from .base import O365AuthMode
|
|
22
|
+
|
|
23
|
+
|
|
24
|
+
class SharePointToolkit:
|
|
25
|
+
"""
|
|
26
|
+
SharePoint file management toolkit for AI-Parrot agents.
|
|
27
|
+
|
|
28
|
+
This toolkit provides comprehensive SharePoint integration:
|
|
29
|
+
- List files in document libraries
|
|
30
|
+
- Search for files
|
|
31
|
+
- Download files
|
|
32
|
+
- Upload files
|
|
33
|
+
|
|
34
|
+
Usage:
|
|
35
|
+
toolkit = SharePointToolkit(
|
|
36
|
+
client_id='your-client-id',
|
|
37
|
+
client_secret='your-client-secret',
|
|
38
|
+
tenant_id='your-tenant-id'
|
|
39
|
+
)
|
|
40
|
+
|
|
41
|
+
# Add to agent
|
|
42
|
+
agent = BasicAgent(
|
|
43
|
+
name="SharePointAgent",
|
|
44
|
+
tools=toolkit.get_tools()
|
|
45
|
+
)
|
|
46
|
+
"""
|
|
47
|
+
|
|
48
|
+
def __init__(
|
|
49
|
+
self,
|
|
50
|
+
client_id: str,
|
|
51
|
+
client_secret: Optional[str] = None,
|
|
52
|
+
tenant_id: str = None,
|
|
53
|
+
default_auth_mode: str = O365AuthMode.DIRECT,
|
|
54
|
+
scopes: Optional[List[str]] = None,
|
|
55
|
+
**kwargs
|
|
56
|
+
):
|
|
57
|
+
"""
|
|
58
|
+
Initialize SharePoint toolkit.
|
|
59
|
+
|
|
60
|
+
Args:
|
|
61
|
+
client_id: Azure AD application client ID
|
|
62
|
+
client_secret: Azure AD application client secret
|
|
63
|
+
tenant_id: Azure AD tenant ID
|
|
64
|
+
default_auth_mode: Default authentication mode
|
|
65
|
+
scopes: Custom Graph API scopes
|
|
66
|
+
**kwargs: Additional arguments
|
|
67
|
+
"""
|
|
68
|
+
self.logger = logging.getLogger('Parrot.Toolkits.SharePoint')
|
|
69
|
+
|
|
70
|
+
# Store credentials
|
|
71
|
+
self.credentials = {
|
|
72
|
+
'client_id': client_id,
|
|
73
|
+
'tenant_id': tenant_id
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
if client_secret:
|
|
77
|
+
self.credentials['client_secret'] = client_secret
|
|
78
|
+
|
|
79
|
+
self.default_auth_mode = default_auth_mode
|
|
80
|
+
self.scopes = scopes or [
|
|
81
|
+
"Sites.Read.All",
|
|
82
|
+
"Sites.ReadWrite.All",
|
|
83
|
+
"Files.Read.All",
|
|
84
|
+
"Files.ReadWrite.All"
|
|
85
|
+
]
|
|
86
|
+
|
|
87
|
+
# Initialize tools
|
|
88
|
+
self._tools: List[Any] = []
|
|
89
|
+
self._initialize_tools()
|
|
90
|
+
|
|
91
|
+
self.logger.info(
|
|
92
|
+
f"SharePointToolkit initialized with {len(self._tools)} tools"
|
|
93
|
+
)
|
|
94
|
+
|
|
95
|
+
def _initialize_tools(self):
|
|
96
|
+
"""Initialize all SharePoint tools."""
|
|
97
|
+
common_params = {
|
|
98
|
+
'credentials': self.credentials,
|
|
99
|
+
'default_auth_mode': self.default_auth_mode,
|
|
100
|
+
'scopes': self.scopes
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
self._tools = [
|
|
104
|
+
ListSharePointFilesTool(**common_params),
|
|
105
|
+
SearchSharePointFilesTool(**common_params),
|
|
106
|
+
DownloadSharePointFileTool(**common_params),
|
|
107
|
+
UploadSharePointFileTool(**common_params)
|
|
108
|
+
]
|
|
109
|
+
|
|
110
|
+
self.logger.debug("Registered SharePoint tools")
|
|
111
|
+
|
|
112
|
+
def get_tools(self) -> List[Any]:
|
|
113
|
+
"""Get all toolkit tools."""
|
|
114
|
+
return self._tools
|
|
115
|
+
|
|
116
|
+
def get_tool_by_name(self, name: str) -> Optional[Any]:
|
|
117
|
+
"""Get a specific tool by name."""
|
|
118
|
+
for tool in self._tools:
|
|
119
|
+
if tool.name == name:
|
|
120
|
+
return tool
|
|
121
|
+
return None
|
|
122
|
+
|
|
123
|
+
async def cleanup(self):
|
|
124
|
+
"""Clean up all tool resources."""
|
|
125
|
+
for tool in self._tools:
|
|
126
|
+
try:
|
|
127
|
+
await tool.cleanup()
|
|
128
|
+
except Exception as e:
|
|
129
|
+
self.logger.warning(f"Error cleaning up tool {tool.name}: {e}")
|
|
130
|
+
|
|
131
|
+
def __repr__(self) -> str:
|
|
132
|
+
tool_names = [tool.name for tool in self._tools]
|
|
133
|
+
return f"SharePointToolkit(tools={tool_names})"
|
|
134
|
+
|
|
135
|
+
|
|
136
|
+
class OneDriveToolkit:
|
|
137
|
+
"""
|
|
138
|
+
OneDrive file management toolkit for AI-Parrot agents.
|
|
139
|
+
|
|
140
|
+
This toolkit provides comprehensive OneDrive integration:
|
|
141
|
+
- List files in folders
|
|
142
|
+
- Search for files
|
|
143
|
+
- Download files
|
|
144
|
+
- Upload files
|
|
145
|
+
|
|
146
|
+
Usage:
|
|
147
|
+
toolkit = OneDriveToolkit(
|
|
148
|
+
client_id='your-client-id',
|
|
149
|
+
client_secret='your-client-secret',
|
|
150
|
+
tenant_id='your-tenant-id'
|
|
151
|
+
)
|
|
152
|
+
|
|
153
|
+
# Add to agent
|
|
154
|
+
agent = BasicAgent(
|
|
155
|
+
name="OneDriveAgent",
|
|
156
|
+
tools=toolkit.get_tools()
|
|
157
|
+
)
|
|
158
|
+
"""
|
|
159
|
+
|
|
160
|
+
def __init__(
|
|
161
|
+
self,
|
|
162
|
+
client_id: str,
|
|
163
|
+
client_secret: Optional[str] = None,
|
|
164
|
+
tenant_id: str = None,
|
|
165
|
+
default_auth_mode: str = O365AuthMode.DIRECT,
|
|
166
|
+
scopes: Optional[List[str]] = None,
|
|
167
|
+
**kwargs
|
|
168
|
+
):
|
|
169
|
+
"""
|
|
170
|
+
Initialize OneDrive toolkit.
|
|
171
|
+
|
|
172
|
+
Args:
|
|
173
|
+
client_id: Azure AD application client ID
|
|
174
|
+
client_secret: Azure AD application client secret
|
|
175
|
+
tenant_id: Azure AD tenant ID
|
|
176
|
+
default_auth_mode: Default authentication mode
|
|
177
|
+
scopes: Custom Graph API scopes
|
|
178
|
+
**kwargs: Additional arguments
|
|
179
|
+
"""
|
|
180
|
+
self.logger = logging.getLogger('Parrot.Toolkits.OneDrive')
|
|
181
|
+
|
|
182
|
+
# Store credentials
|
|
183
|
+
self.credentials = {
|
|
184
|
+
'client_id': client_id,
|
|
185
|
+
'tenant_id': tenant_id
|
|
186
|
+
}
|
|
187
|
+
|
|
188
|
+
if client_secret:
|
|
189
|
+
self.credentials['client_secret'] = client_secret
|
|
190
|
+
|
|
191
|
+
self.default_auth_mode = default_auth_mode
|
|
192
|
+
self.scopes = scopes or [
|
|
193
|
+
"Files.Read",
|
|
194
|
+
"Files.ReadWrite",
|
|
195
|
+
"Files.Read.All",
|
|
196
|
+
"Files.ReadWrite.All"
|
|
197
|
+
]
|
|
198
|
+
|
|
199
|
+
# Initialize tools
|
|
200
|
+
self._tools: List[Any] = []
|
|
201
|
+
self._initialize_tools()
|
|
202
|
+
|
|
203
|
+
self.logger.info(
|
|
204
|
+
f"OneDriveToolkit initialized with {len(self._tools)} tools"
|
|
205
|
+
)
|
|
206
|
+
|
|
207
|
+
def _initialize_tools(self):
|
|
208
|
+
"""Initialize all OneDrive tools."""
|
|
209
|
+
common_params = {
|
|
210
|
+
'credentials': self.credentials,
|
|
211
|
+
'default_auth_mode': self.default_auth_mode,
|
|
212
|
+
'scopes': self.scopes
|
|
213
|
+
}
|
|
214
|
+
|
|
215
|
+
self._tools = [
|
|
216
|
+
ListOneDriveFilesTool(**common_params),
|
|
217
|
+
SearchOneDriveFilesTool(**common_params),
|
|
218
|
+
DownloadOneDriveFileTool(**common_params),
|
|
219
|
+
UploadOneDriveFileTool(**common_params)
|
|
220
|
+
]
|
|
221
|
+
|
|
222
|
+
self.logger.debug("Registered OneDrive tools")
|
|
223
|
+
|
|
224
|
+
def get_tools(self) -> List[Any]:
|
|
225
|
+
"""Get all toolkit tools."""
|
|
226
|
+
return self._tools
|
|
227
|
+
|
|
228
|
+
def get_tool_by_name(self, name: str) -> Optional[Any]:
|
|
229
|
+
"""Get a specific tool by name."""
|
|
230
|
+
for tool in self._tools:
|
|
231
|
+
if tool.name == name:
|
|
232
|
+
return tool
|
|
233
|
+
return None
|
|
234
|
+
|
|
235
|
+
async def cleanup(self):
|
|
236
|
+
"""Clean up all tool resources."""
|
|
237
|
+
for tool in self._tools:
|
|
238
|
+
try:
|
|
239
|
+
await tool.cleanup()
|
|
240
|
+
except Exception as e:
|
|
241
|
+
self.logger.warning(f"Error cleaning up tool {tool.name}: {e}")
|
|
242
|
+
|
|
243
|
+
def __repr__(self) -> str:
|
|
244
|
+
tool_names = [tool.name for tool in self._tools]
|
|
245
|
+
return f"OneDriveToolkit(tools={tool_names})"
|
|
246
|
+
|
|
247
|
+
|
|
248
|
+
class Office365FileManagementToolkit:
|
|
249
|
+
"""
|
|
250
|
+
Complete Office365 file management toolkit (SharePoint + OneDrive).
|
|
251
|
+
|
|
252
|
+
This toolkit bundles both SharePoint and OneDrive tools for
|
|
253
|
+
comprehensive file management across Office365.
|
|
254
|
+
|
|
255
|
+
Usage:
|
|
256
|
+
toolkit = Office365FileManagementToolkit(
|
|
257
|
+
client_id='your-client-id',
|
|
258
|
+
client_secret='your-client-secret',
|
|
259
|
+
tenant_id='your-tenant-id'
|
|
260
|
+
)
|
|
261
|
+
|
|
262
|
+
agent = BasicAgent(
|
|
263
|
+
name="FileAgent",
|
|
264
|
+
tools=toolkit.get_tools()
|
|
265
|
+
)
|
|
266
|
+
"""
|
|
267
|
+
|
|
268
|
+
def __init__(
|
|
269
|
+
self,
|
|
270
|
+
client_id: str,
|
|
271
|
+
client_secret: Optional[str] = None,
|
|
272
|
+
tenant_id: str = None,
|
|
273
|
+
default_auth_mode: str = O365AuthMode.DIRECT,
|
|
274
|
+
scopes: Optional[List[str]] = None,
|
|
275
|
+
enable_sharepoint: bool = True,
|
|
276
|
+
enable_onedrive: bool = True,
|
|
277
|
+
**kwargs
|
|
278
|
+
):
|
|
279
|
+
"""
|
|
280
|
+
Initialize complete file management toolkit.
|
|
281
|
+
|
|
282
|
+
Args:
|
|
283
|
+
client_id: Azure AD application client ID
|
|
284
|
+
client_secret: Azure AD application client secret
|
|
285
|
+
tenant_id: Azure AD tenant ID
|
|
286
|
+
default_auth_mode: Default authentication mode
|
|
287
|
+
scopes: Custom Graph API scopes
|
|
288
|
+
enable_sharepoint: Enable SharePoint tools
|
|
289
|
+
enable_onedrive: Enable OneDrive tools
|
|
290
|
+
**kwargs: Additional arguments
|
|
291
|
+
"""
|
|
292
|
+
self.logger = logging.getLogger('Parrot.Toolkits.O365FileManagement')
|
|
293
|
+
|
|
294
|
+
self.enable_sharepoint = enable_sharepoint
|
|
295
|
+
self.enable_onedrive = enable_onedrive
|
|
296
|
+
|
|
297
|
+
# Store credentials
|
|
298
|
+
self.credentials = {
|
|
299
|
+
'client_id': client_id,
|
|
300
|
+
'tenant_id': tenant_id
|
|
301
|
+
}
|
|
302
|
+
|
|
303
|
+
if client_secret:
|
|
304
|
+
self.credentials['client_secret'] = client_secret
|
|
305
|
+
|
|
306
|
+
# Initialize sub-toolkits
|
|
307
|
+
self._tools: List[Any] = []
|
|
308
|
+
|
|
309
|
+
if enable_sharepoint:
|
|
310
|
+
sp_toolkit = SharePointToolkit(
|
|
311
|
+
client_id=client_id,
|
|
312
|
+
client_secret=client_secret,
|
|
313
|
+
tenant_id=tenant_id,
|
|
314
|
+
default_auth_mode=default_auth_mode,
|
|
315
|
+
scopes=scopes
|
|
316
|
+
)
|
|
317
|
+
self._tools.extend(sp_toolkit.get_tools())
|
|
318
|
+
|
|
319
|
+
if enable_onedrive:
|
|
320
|
+
od_toolkit = OneDriveToolkit(
|
|
321
|
+
client_id=client_id,
|
|
322
|
+
client_secret=client_secret,
|
|
323
|
+
tenant_id=tenant_id,
|
|
324
|
+
default_auth_mode=default_auth_mode,
|
|
325
|
+
scopes=scopes
|
|
326
|
+
)
|
|
327
|
+
self._tools.extend(od_toolkit.get_tools())
|
|
328
|
+
|
|
329
|
+
self.logger.info(
|
|
330
|
+
f"Office365FileManagementToolkit initialized with {len(self._tools)} tools"
|
|
331
|
+
)
|
|
332
|
+
|
|
333
|
+
def get_tools(self) -> List[Any]:
|
|
334
|
+
"""Get all toolkit tools."""
|
|
335
|
+
return self._tools
|
|
336
|
+
|
|
337
|
+
def get_tool_by_name(self, name: str) -> Optional[Any]:
|
|
338
|
+
"""Get a specific tool by name."""
|
|
339
|
+
for tool in self._tools:
|
|
340
|
+
if tool.name == name:
|
|
341
|
+
return tool
|
|
342
|
+
return None
|
|
343
|
+
|
|
344
|
+
def get_sharepoint_tools(self) -> List[Any]:
|
|
345
|
+
"""Get only SharePoint tools."""
|
|
346
|
+
return [
|
|
347
|
+
tool for tool in self._tools
|
|
348
|
+
if isinstance(tool, (
|
|
349
|
+
ListSharePointFilesTool,
|
|
350
|
+
SearchSharePointFilesTool,
|
|
351
|
+
DownloadSharePointFileTool,
|
|
352
|
+
UploadSharePointFileTool
|
|
353
|
+
))
|
|
354
|
+
]
|
|
355
|
+
|
|
356
|
+
def get_onedrive_tools(self) -> List[Any]:
|
|
357
|
+
"""Get only OneDrive tools."""
|
|
358
|
+
return [
|
|
359
|
+
tool for tool in self._tools
|
|
360
|
+
if isinstance(tool, (
|
|
361
|
+
ListOneDriveFilesTool,
|
|
362
|
+
SearchOneDriveFilesTool,
|
|
363
|
+
DownloadOneDriveFileTool,
|
|
364
|
+
UploadOneDriveFileTool
|
|
365
|
+
))
|
|
366
|
+
]
|
|
367
|
+
|
|
368
|
+
async def cleanup(self):
|
|
369
|
+
"""Clean up all tool resources."""
|
|
370
|
+
for tool in self._tools:
|
|
371
|
+
try:
|
|
372
|
+
await tool.cleanup()
|
|
373
|
+
except Exception as e:
|
|
374
|
+
self.logger.warning(f"Error cleaning up tool {tool.name}: {e}")
|
|
375
|
+
|
|
376
|
+
def __repr__(self) -> str:
|
|
377
|
+
tool_names = [tool.name for tool in self._tools]
|
|
378
|
+
return f"Office365FileManagementToolkit(tools={tool_names})"
|
|
379
|
+
|
|
380
|
+
|
|
381
|
+
# ============================================================================
|
|
382
|
+
# Factory Functions
|
|
383
|
+
# ============================================================================
|
|
384
|
+
|
|
385
|
+
def create_sharepoint_toolkit(
|
|
386
|
+
client_id: str,
|
|
387
|
+
client_secret: str,
|
|
388
|
+
tenant_id: str,
|
|
389
|
+
**kwargs
|
|
390
|
+
) -> SharePointToolkit:
|
|
391
|
+
"""
|
|
392
|
+
Factory function to create a SharePoint toolkit.
|
|
393
|
+
|
|
394
|
+
Args:
|
|
395
|
+
client_id: Azure AD application client ID
|
|
396
|
+
client_secret: Azure AD application client secret
|
|
397
|
+
tenant_id: Azure AD tenant ID
|
|
398
|
+
**kwargs: Additional toolkit arguments
|
|
399
|
+
|
|
400
|
+
Returns:
|
|
401
|
+
Configured SharePointToolkit instance
|
|
402
|
+
"""
|
|
403
|
+
return SharePointToolkit(
|
|
404
|
+
client_id=client_id,
|
|
405
|
+
client_secret=client_secret,
|
|
406
|
+
tenant_id=tenant_id,
|
|
407
|
+
**kwargs
|
|
408
|
+
)
|
|
409
|
+
|
|
410
|
+
|
|
411
|
+
def create_onedrive_toolkit(
|
|
412
|
+
client_id: str,
|
|
413
|
+
client_secret: str,
|
|
414
|
+
tenant_id: str,
|
|
415
|
+
**kwargs
|
|
416
|
+
) -> OneDriveToolkit:
|
|
417
|
+
"""
|
|
418
|
+
Factory function to create a OneDrive toolkit.
|
|
419
|
+
|
|
420
|
+
Args:
|
|
421
|
+
client_id: Azure AD application client ID
|
|
422
|
+
client_secret: Azure AD application client secret
|
|
423
|
+
tenant_id: Azure AD tenant ID
|
|
424
|
+
**kwargs: Additional toolkit arguments
|
|
425
|
+
|
|
426
|
+
Returns:
|
|
427
|
+
Configured OneDriveToolkit instance
|
|
428
|
+
"""
|
|
429
|
+
return OneDriveToolkit(
|
|
430
|
+
client_id=client_id,
|
|
431
|
+
client_secret=client_secret,
|
|
432
|
+
tenant_id=tenant_id,
|
|
433
|
+
**kwargs
|
|
434
|
+
)
|
|
435
|
+
|
|
436
|
+
|
|
437
|
+
def create_file_management_toolkit(
|
|
438
|
+
client_id: str,
|
|
439
|
+
client_secret: str,
|
|
440
|
+
tenant_id: str,
|
|
441
|
+
**kwargs
|
|
442
|
+
) -> Office365FileManagementToolkit:
|
|
443
|
+
"""
|
|
444
|
+
Factory function to create a complete file management toolkit.
|
|
445
|
+
|
|
446
|
+
Args:
|
|
447
|
+
client_id: Azure AD application client ID
|
|
448
|
+
client_secret: Azure AD application client secret
|
|
449
|
+
tenant_id: Azure AD tenant ID
|
|
450
|
+
**kwargs: Additional toolkit arguments
|
|
451
|
+
|
|
452
|
+
Returns:
|
|
453
|
+
Configured Office365FileManagementToolkit instance
|
|
454
|
+
"""
|
|
455
|
+
return Office365FileManagementToolkit(
|
|
456
|
+
client_id=client_id,
|
|
457
|
+
client_secret=client_secret,
|
|
458
|
+
tenant_id=tenant_id,
|
|
459
|
+
**kwargs
|
|
460
|
+
)
|
|
461
|
+
|
|
462
|
+
|
|
463
|
+
# ============================================================================
|
|
464
|
+
# Example Usage
|
|
465
|
+
# ============================================================================
|
|
466
|
+
|
|
467
|
+
if __name__ == "__main__":
|
|
468
|
+
"""
|
|
469
|
+
Example usage of file management toolkits.
|
|
470
|
+
"""
|
|
471
|
+
import asyncio
|
|
472
|
+
from parrot.bots.agent import BasicAgent
|
|
473
|
+
|
|
474
|
+
async def main():
|
|
475
|
+
credentials = {
|
|
476
|
+
'client_id': 'your-client-id',
|
|
477
|
+
'client_secret': 'your-client-secret',
|
|
478
|
+
'tenant_id': 'your-tenant-id'
|
|
479
|
+
}
|
|
480
|
+
|
|
481
|
+
# Example 1: SharePoint toolkit
|
|
482
|
+
sp_toolkit = create_sharepoint_toolkit(**credentials)
|
|
483
|
+
|
|
484
|
+
sp_agent = BasicAgent(
|
|
485
|
+
name="SharePointAgent",
|
|
486
|
+
role="SharePoint File Manager",
|
|
487
|
+
tools=sp_toolkit.get_tools()
|
|
488
|
+
)
|
|
489
|
+
|
|
490
|
+
# Example 2: OneDrive toolkit
|
|
491
|
+
od_toolkit = create_onedrive_toolkit(**credentials)
|
|
492
|
+
|
|
493
|
+
od_agent = BasicAgent(
|
|
494
|
+
name="OneDriveAgent",
|
|
495
|
+
role="OneDrive File Manager",
|
|
496
|
+
tools=od_toolkit.get_tools()
|
|
497
|
+
)
|
|
498
|
+
|
|
499
|
+
# Example 3: Complete file management toolkit
|
|
500
|
+
file_toolkit = create_file_management_toolkit(**credentials)
|
|
501
|
+
|
|
502
|
+
file_agent = BasicAgent(
|
|
503
|
+
name="FileAgent",
|
|
504
|
+
role="Office365 File Manager",
|
|
505
|
+
tools=file_toolkit.get_tools()
|
|
506
|
+
)
|
|
507
|
+
|
|
508
|
+
print(f"SharePoint tools: {len(sp_toolkit.get_tools())}")
|
|
509
|
+
print(f"OneDrive tools: {len(od_toolkit.get_tools())}")
|
|
510
|
+
print(f"Total file management tools: {len(file_toolkit.get_tools())}")
|
|
511
|
+
|
|
512
|
+
asyncio.run(main())
|
|
513
|
+
|
|
514
|
+
|
|
515
|
+
__all__ = [
|
|
516
|
+
'SharePointToolkit',
|
|
517
|
+
'OneDriveToolkit',
|
|
518
|
+
'Office365FileManagementToolkit',
|
|
519
|
+
'create_sharepoint_toolkit',
|
|
520
|
+
'create_onedrive_toolkit',
|
|
521
|
+
'create_file_management_toolkit'
|
|
522
|
+
]
|