vivexy-agents-core 0.2.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (406) hide show
  1. vivexy_agents_core-0.2.0/.gitignore +1 -0
  2. vivexy_agents_core-0.2.0/PKG-INFO +70 -0
  3. vivexy_agents_core-0.2.0/constraints.txt +278 -0
  4. vivexy_agents_core-0.2.0/pyproject.toml +96 -0
  5. vivexy_agents_core-0.2.0/pytest.ini +5 -0
  6. vivexy_agents_core-0.2.0/src/agents_core/__init__.py +0 -0
  7. vivexy_agents_core-0.2.0/src/agents_core/__tests__/extensions.test.py +151 -0
  8. vivexy_agents_core-0.2.0/src/agents_core/agents/__init__.py +3 -0
  9. vivexy_agents_core-0.2.0/src/agents_core/agents/__tests__/config.test.py +59 -0
  10. vivexy_agents_core-0.2.0/src/agents_core/agents/__tests__/daily_pnl_rows.csv +1066 -0
  11. vivexy_agents_core-0.2.0/src/agents_core/agents/__tests__/investor_transactions.csv +63 -0
  12. vivexy_agents_core-0.2.0/src/agents_core/agents/__tests__/reliance_stock_analysis.pdf +0 -0
  13. vivexy_agents_core-0.2.0/src/agents_core/agents/__tests__/test_agent_stream.py +495 -0
  14. vivexy_agents_core-0.2.0/src/agents_core/agents/agent_factory.py +847 -0
  15. vivexy_agents_core-0.2.0/src/agents_core/agents/approval_store.py +28 -0
  16. vivexy_agents_core-0.2.0/src/agents_core/agents/cancel_store.py +42 -0
  17. vivexy_agents_core-0.2.0/src/agents_core/agents/client_tool_store.py +33 -0
  18. vivexy_agents_core-0.2.0/src/agents_core/agents/config.py +621 -0
  19. vivexy_agents_core-0.2.0/src/agents_core/agents/llm_factory.py +122 -0
  20. vivexy_agents_core-0.2.0/src/agents_core/agents/mcp_client.py +116 -0
  21. vivexy_agents_core-0.2.0/src/agents_core/agents/pubsub.py +172 -0
  22. vivexy_agents_core-0.2.0/src/agents_core/agents/skill_loader.py +168 -0
  23. vivexy_agents_core-0.2.0/src/agents_core/app_factory.py +156 -0
  24. vivexy_agents_core-0.2.0/src/agents_core/business_logic/__tests__/artifacts.test.py +79 -0
  25. vivexy_agents_core-0.2.0/src/agents_core/business_logic/__tests__/team_policy.test.py +103 -0
  26. vivexy_agents_core-0.2.0/src/agents_core/business_logic/admin.py +525 -0
  27. vivexy_agents_core-0.2.0/src/agents_core/business_logic/announcements.py +104 -0
  28. vivexy_agents_core-0.2.0/src/agents_core/business_logic/api_keys.py +85 -0
  29. vivexy_agents_core-0.2.0/src/agents_core/business_logic/artifacts.py +314 -0
  30. vivexy_agents_core-0.2.0/src/agents_core/business_logic/attachments.py +154 -0
  31. vivexy_agents_core-0.2.0/src/agents_core/business_logic/audit.py +58 -0
  32. vivexy_agents_core-0.2.0/src/agents_core/business_logic/billing.py +434 -0
  33. vivexy_agents_core-0.2.0/src/agents_core/business_logic/chat.py +673 -0
  34. vivexy_agents_core-0.2.0/src/agents_core/business_logic/compact.py +233 -0
  35. vivexy_agents_core-0.2.0/src/agents_core/business_logic/data_lifecycle.py +247 -0
  36. vivexy_agents_core-0.2.0/src/agents_core/business_logic/features.py +77 -0
  37. vivexy_agents_core-0.2.0/src/agents_core/business_logic/maintenance.py +37 -0
  38. vivexy_agents_core-0.2.0/src/agents_core/business_logic/org_policy.py +158 -0
  39. vivexy_agents_core-0.2.0/src/agents_core/business_logic/platform_alerts.py +192 -0
  40. vivexy_agents_core-0.2.0/src/agents_core/business_logic/projects.py +220 -0
  41. vivexy_agents_core-0.2.0/src/agents_core/business_logic/scheduled_tasks.py +259 -0
  42. vivexy_agents_core-0.2.0/src/agents_core/business_logic/skills.py +115 -0
  43. vivexy_agents_core-0.2.0/src/agents_core/business_logic/streaming.py +892 -0
  44. vivexy_agents_core-0.2.0/src/agents_core/business_logic/superadmin.py +732 -0
  45. vivexy_agents_core-0.2.0/src/agents_core/business_logic/team_policy.py +123 -0
  46. vivexy_agents_core-0.2.0/src/agents_core/business_logic/teams.py +472 -0
  47. vivexy_agents_core-0.2.0/src/agents_core/business_logic/todos.py +134 -0
  48. vivexy_agents_core-0.2.0/src/agents_core/business_logic/usage.py +256 -0
  49. vivexy_agents_core-0.2.0/src/agents_core/business_logic/users.py +86 -0
  50. vivexy_agents_core-0.2.0/src/agents_core/constants/__init__.py +54 -0
  51. vivexy_agents_core-0.2.0/src/agents_core/constants/audit_actions.py +26 -0
  52. vivexy_agents_core-0.2.0/src/agents_core/constants/billing.py +10 -0
  53. vivexy_agents_core-0.2.0/src/agents_core/constants/features.py +21 -0
  54. vivexy_agents_core-0.2.0/src/agents_core/constants/queues.py +12 -0
  55. vivexy_agents_core-0.2.0/src/agents_core/constants/redis_keys.py +30 -0
  56. vivexy_agents_core-0.2.0/src/agents_core/constants/stream_events.py +43 -0
  57. vivexy_agents_core-0.2.0/src/agents_core/enum/agent_enums.py +20 -0
  58. vivexy_agents_core-0.2.0/src/agents_core/extensions.py +106 -0
  59. vivexy_agents_core-0.2.0/src/agents_core/flask_config.py +91 -0
  60. vivexy_agents_core-0.2.0/src/agents_core/middlewares/__tests__/auth_middleware.test.py +26 -0
  61. vivexy_agents_core-0.2.0/src/agents_core/middlewares/auth.py +69 -0
  62. vivexy_agents_core-0.2.0/src/agents_core/migrations/__init__.py +1 -0
  63. vivexy_agents_core-0.2.0/src/agents_core/migrations/env.py +156 -0
  64. vivexy_agents_core-0.2.0/src/agents_core/migrations/script.py.mako +26 -0
  65. vivexy_agents_core-0.2.0/src/agents_core/migrations/versions/01d1631d506f_add_compact_summary_to_chat.py +35 -0
  66. vivexy_agents_core-0.2.0/src/agents_core/migrations/versions/095dca0b14df_add_context_window_to_llm_models.py +33 -0
  67. vivexy_agents_core-0.2.0/src/agents_core/migrations/versions/28023ade9f92_initial_migration.py +398 -0
  68. vivexy_agents_core-0.2.0/src/agents_core/migrations/versions/3b00cd49b297_add_xlsx_artifact_type.py +31 -0
  69. vivexy_agents_core-0.2.0/src/agents_core/migrations/versions/6429f0ab85c4_merge_multiple_heads.py +27 -0
  70. vivexy_agents_core-0.2.0/src/agents_core/migrations/versions/692ba2a62b1a_add_user_skills_table.py +48 -0
  71. vivexy_agents_core-0.2.0/src/agents_core/migrations/versions/7e9f0a1b2c3d_add_missing_artifact_types.py +37 -0
  72. vivexy_agents_core-0.2.0/src/agents_core/migrations/versions/a1948b11a680_add_platform_to_user_skills.py +31 -0
  73. vivexy_agents_core-0.2.0/src/agents_core/migrations/versions/a1b2c3d4e5f7_add_token_usage_table.py +49 -0
  74. vivexy_agents_core-0.2.0/src/agents_core/migrations/versions/a7b8c9d0e1f2_add_team_attribution_and_admin_phase_2.py +85 -0
  75. vivexy_agents_core-0.2.0/src/agents_core/migrations/versions/adcdcbc7fcb5_updates.py +27 -0
  76. vivexy_agents_core-0.2.0/src/agents_core/migrations/versions/add_chat_github_context.py +25 -0
  77. vivexy_agents_core-0.2.0/src/agents_core/migrations/versions/add_github_checkpoints.py +71 -0
  78. vivexy_agents_core-0.2.0/src/agents_core/migrations/versions/add_scheduled_tasks.py +79 -0
  79. vivexy_agents_core-0.2.0/src/agents_core/migrations/versions/add_user_api_keys.py +37 -0
  80. vivexy_agents_core-0.2.0/src/agents_core/migrations/versions/b1c4e5f6a7d8_artifact_content_nullable.py +37 -0
  81. vivexy_agents_core-0.2.0/src/agents_core/migrations/versions/b2c3d4e5f6a8_add_sso_and_verification_fields.py +51 -0
  82. vivexy_agents_core-0.2.0/src/agents_core/migrations/versions/b8c9d0e1f2a3_add_sso_domain_retention_and_user_erasure.py +40 -0
  83. vivexy_agents_core-0.2.0/src/agents_core/migrations/versions/b9c0d1e2f3a4_add_projects_tables.py +62 -0
  84. vivexy_agents_core-0.2.0/src/agents_core/migrations/versions/c3d4e5f6a7b9_add_oauth_identity_unique_constraint.py +35 -0
  85. vivexy_agents_core-0.2.0/src/agents_core/migrations/versions/c9d0e1f2a3b4_add_stripe_customer_domain_token_and_task_team.py +42 -0
  86. vivexy_agents_core-0.2.0/src/agents_core/migrations/versions/d9e8f7a6b5c4_add_deployed_agents.py +37 -0
  87. vivexy_agents_core-0.2.0/src/agents_core/migrations/versions/e0f1a2b3c4d5_stub.py +24 -0
  88. vivexy_agents_core-0.2.0/src/agents_core/migrations/versions/e27da592d7d9_add_created_at_to_chat_attachments.py +33 -0
  89. vivexy_agents_core-0.2.0/src/agents_core/migrations/versions/f3c8a1e2b9d7_add_llm_model_cost_columns.py +46 -0
  90. vivexy_agents_core-0.2.0/src/agents_core/migrations/versions/f4a5b6c7d8e9_add_admin_panel_fields_and_audit_logs.py +74 -0
  91. vivexy_agents_core-0.2.0/src/agents_core/migrations/versions/f7a8b9c0d1e2_add_message_id_to_chat_attachments.py +44 -0
  92. vivexy_agents_core-0.2.0/src/agents_core/models/__init__.py +34 -0
  93. vivexy_agents_core-0.2.0/src/agents_core/models/announcement.py +32 -0
  94. vivexy_agents_core-0.2.0/src/agents_core/models/audit_log.py +33 -0
  95. vivexy_agents_core-0.2.0/src/agents_core/models/base.py +3 -0
  96. vivexy_agents_core-0.2.0/src/agents_core/models/chat.py +176 -0
  97. vivexy_agents_core-0.2.0/src/agents_core/models/deployed_agent.py +17 -0
  98. vivexy_agents_core-0.2.0/src/agents_core/models/enums.py +62 -0
  99. vivexy_agents_core-0.2.0/src/agents_core/models/github.py +68 -0
  100. vivexy_agents_core-0.2.0/src/agents_core/models/job.py +40 -0
  101. vivexy_agents_core-0.2.0/src/agents_core/models/llm.py +28 -0
  102. vivexy_agents_core-0.2.0/src/agents_core/models/project.py +63 -0
  103. vivexy_agents_core-0.2.0/src/agents_core/models/scheduled_task.py +115 -0
  104. vivexy_agents_core-0.2.0/src/agents_core/models/skill.py +27 -0
  105. vivexy_agents_core-0.2.0/src/agents_core/models/stock.py +55 -0
  106. vivexy_agents_core-0.2.0/src/agents_core/models/subscription.py +54 -0
  107. vivexy_agents_core-0.2.0/src/agents_core/models/team.py +69 -0
  108. vivexy_agents_core-0.2.0/src/agents_core/models/token_usage.py +41 -0
  109. vivexy_agents_core-0.2.0/src/agents_core/models/user.py +39 -0
  110. vivexy_agents_core-0.2.0/src/agents_core/models/user_api_key.py +23 -0
  111. vivexy_agents_core-0.2.0/src/agents_core/routes/__init__.py +1 -0
  112. vivexy_agents_core-0.2.0/src/agents_core/routes/__tests__/admin.test.py +307 -0
  113. vivexy_agents_core-0.2.0/src/agents_core/routes/__tests__/auth.test.py +373 -0
  114. vivexy_agents_core-0.2.0/src/agents_core/routes/__tests__/billing.test.py +314 -0
  115. vivexy_agents_core-0.2.0/src/agents_core/routes/__tests__/org_controls.test.py +397 -0
  116. vivexy_agents_core-0.2.0/src/agents_core/routes/__tests__/phase3.test.py +299 -0
  117. vivexy_agents_core-0.2.0/src/agents_core/routes/__tests__/superadmin.test.py +330 -0
  118. vivexy_agents_core-0.2.0/src/agents_core/routes/admin.py +378 -0
  119. vivexy_agents_core-0.2.0/src/agents_core/routes/agents.py +87 -0
  120. vivexy_agents_core-0.2.0/src/agents_core/routes/announcements.py +25 -0
  121. vivexy_agents_core-0.2.0/src/agents_core/routes/approval.py +165 -0
  122. vivexy_agents_core-0.2.0/src/agents_core/routes/auth.py +495 -0
  123. vivexy_agents_core-0.2.0/src/agents_core/routes/chat.py +1586 -0
  124. vivexy_agents_core-0.2.0/src/agents_core/routes/connectors.py +210 -0
  125. vivexy_agents_core-0.2.0/src/agents_core/routes/github.py +459 -0
  126. vivexy_agents_core-0.2.0/src/agents_core/routes/projects.py +202 -0
  127. vivexy_agents_core-0.2.0/src/agents_core/routes/rag.py +51 -0
  128. vivexy_agents_core-0.2.0/src/agents_core/routes/scheduled_tasks.py +124 -0
  129. vivexy_agents_core-0.2.0/src/agents_core/routes/skills.py +340 -0
  130. vivexy_agents_core-0.2.0/src/agents_core/routes/stripe.py +136 -0
  131. vivexy_agents_core-0.2.0/src/agents_core/routes/superadmin.py +611 -0
  132. vivexy_agents_core-0.2.0/src/agents_core/routes/teams.py +365 -0
  133. vivexy_agents_core-0.2.0/src/agents_core/routes/usage.py +119 -0
  134. vivexy_agents_core-0.2.0/src/agents_core/routes/users.py +341 -0
  135. vivexy_agents_core-0.2.0/src/agents_core/schemas/__init__.py +63 -0
  136. vivexy_agents_core-0.2.0/src/agents_core/schemas/admin.py +88 -0
  137. vivexy_agents_core-0.2.0/src/agents_core/schemas/chat.py +107 -0
  138. vivexy_agents_core-0.2.0/src/agents_core/schemas/job.py +25 -0
  139. vivexy_agents_core-0.2.0/src/agents_core/schemas/llm.py +48 -0
  140. vivexy_agents_core-0.2.0/src/agents_core/schemas/project.py +24 -0
  141. vivexy_agents_core-0.2.0/src/agents_core/schemas/skill.py +46 -0
  142. vivexy_agents_core-0.2.0/src/agents_core/schemas/stock.py +28 -0
  143. vivexy_agents_core-0.2.0/src/agents_core/schemas/stream.py +42 -0
  144. vivexy_agents_core-0.2.0/src/agents_core/schemas/team.py +51 -0
  145. vivexy_agents_core-0.2.0/src/agents_core/schemas/user.py +55 -0
  146. vivexy_agents_core-0.2.0/src/agents_core/services/__init__.py +1 -0
  147. vivexy_agents_core-0.2.0/src/agents_core/services/__tests__/file_processor.test.py +58 -0
  148. vivexy_agents_core-0.2.0/src/agents_core/services/__tests__/s3_service.test.py +73 -0
  149. vivexy_agents_core-0.2.0/src/agents_core/services/file_processor.py +410 -0
  150. vivexy_agents_core-0.2.0/src/agents_core/services/rag_service.py +461 -0
  151. vivexy_agents_core-0.2.0/src/agents_core/services/s3_service.py +472 -0
  152. vivexy_agents_core-0.2.0/src/agents_core/skills/data-analysis/SKILL.md +368 -0
  153. vivexy_agents_core-0.2.0/src/agents_core/skills/docx/LICENSE.txt +30 -0
  154. vivexy_agents_core-0.2.0/src/agents_core/skills/docx/SKILL.md +736 -0
  155. vivexy_agents_core-0.2.0/src/agents_core/skills/docx/scripts/__init__.py +1 -0
  156. vivexy_agents_core-0.2.0/src/agents_core/skills/docx/scripts/accept_changes.py +135 -0
  157. vivexy_agents_core-0.2.0/src/agents_core/skills/docx/scripts/comment.py +318 -0
  158. vivexy_agents_core-0.2.0/src/agents_core/skills/docx/scripts/office/helpers/__init__.py +0 -0
  159. vivexy_agents_core-0.2.0/src/agents_core/skills/docx/scripts/office/helpers/merge_runs.py +193 -0
  160. vivexy_agents_core-0.2.0/src/agents_core/skills/docx/scripts/office/helpers/simplify_redlines.py +199 -0
  161. vivexy_agents_core-0.2.0/src/agents_core/skills/docx/scripts/office/pack.py +159 -0
  162. vivexy_agents_core-0.2.0/src/agents_core/skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-chart.xsd +1499 -0
  163. vivexy_agents_core-0.2.0/src/agents_core/skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-chartDrawing.xsd +146 -0
  164. vivexy_agents_core-0.2.0/src/agents_core/skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-diagram.xsd +1085 -0
  165. vivexy_agents_core-0.2.0/src/agents_core/skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-lockedCanvas.xsd +11 -0
  166. vivexy_agents_core-0.2.0/src/agents_core/skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-main.xsd +3081 -0
  167. vivexy_agents_core-0.2.0/src/agents_core/skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-picture.xsd +23 -0
  168. vivexy_agents_core-0.2.0/src/agents_core/skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-spreadsheetDrawing.xsd +185 -0
  169. vivexy_agents_core-0.2.0/src/agents_core/skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-wordprocessingDrawing.xsd +287 -0
  170. vivexy_agents_core-0.2.0/src/agents_core/skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/pml.xsd +1676 -0
  171. vivexy_agents_core-0.2.0/src/agents_core/skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-additionalCharacteristics.xsd +28 -0
  172. vivexy_agents_core-0.2.0/src/agents_core/skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-bibliography.xsd +144 -0
  173. vivexy_agents_core-0.2.0/src/agents_core/skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-commonSimpleTypes.xsd +174 -0
  174. vivexy_agents_core-0.2.0/src/agents_core/skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-customXmlDataProperties.xsd +25 -0
  175. vivexy_agents_core-0.2.0/src/agents_core/skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-customXmlSchemaProperties.xsd +18 -0
  176. vivexy_agents_core-0.2.0/src/agents_core/skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesCustom.xsd +59 -0
  177. vivexy_agents_core-0.2.0/src/agents_core/skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesExtended.xsd +56 -0
  178. vivexy_agents_core-0.2.0/src/agents_core/skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesVariantTypes.xsd +195 -0
  179. vivexy_agents_core-0.2.0/src/agents_core/skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-math.xsd +582 -0
  180. vivexy_agents_core-0.2.0/src/agents_core/skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-relationshipReference.xsd +25 -0
  181. vivexy_agents_core-0.2.0/src/agents_core/skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/sml.xsd +4439 -0
  182. vivexy_agents_core-0.2.0/src/agents_core/skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-main.xsd +570 -0
  183. vivexy_agents_core-0.2.0/src/agents_core/skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-officeDrawing.xsd +509 -0
  184. vivexy_agents_core-0.2.0/src/agents_core/skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-presentationDrawing.xsd +12 -0
  185. vivexy_agents_core-0.2.0/src/agents_core/skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-spreadsheetDrawing.xsd +108 -0
  186. vivexy_agents_core-0.2.0/src/agents_core/skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-wordprocessingDrawing.xsd +96 -0
  187. vivexy_agents_core-0.2.0/src/agents_core/skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/wml.xsd +3646 -0
  188. vivexy_agents_core-0.2.0/src/agents_core/skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/xml.xsd +116 -0
  189. vivexy_agents_core-0.2.0/src/agents_core/skills/docx/scripts/office/schemas/ecma/fouth-edition/opc-contentTypes.xsd +42 -0
  190. vivexy_agents_core-0.2.0/src/agents_core/skills/docx/scripts/office/schemas/ecma/fouth-edition/opc-coreProperties.xsd +50 -0
  191. vivexy_agents_core-0.2.0/src/agents_core/skills/docx/scripts/office/schemas/ecma/fouth-edition/opc-digSig.xsd +49 -0
  192. vivexy_agents_core-0.2.0/src/agents_core/skills/docx/scripts/office/schemas/ecma/fouth-edition/opc-relationships.xsd +33 -0
  193. vivexy_agents_core-0.2.0/src/agents_core/skills/docx/scripts/office/schemas/mce/mc.xsd +75 -0
  194. vivexy_agents_core-0.2.0/src/agents_core/skills/docx/scripts/office/schemas/microsoft/wml-2010.xsd +560 -0
  195. vivexy_agents_core-0.2.0/src/agents_core/skills/docx/scripts/office/schemas/microsoft/wml-2012.xsd +67 -0
  196. vivexy_agents_core-0.2.0/src/agents_core/skills/docx/scripts/office/schemas/microsoft/wml-2018.xsd +14 -0
  197. vivexy_agents_core-0.2.0/src/agents_core/skills/docx/scripts/office/schemas/microsoft/wml-cex-2018.xsd +20 -0
  198. vivexy_agents_core-0.2.0/src/agents_core/skills/docx/scripts/office/schemas/microsoft/wml-cid-2016.xsd +13 -0
  199. vivexy_agents_core-0.2.0/src/agents_core/skills/docx/scripts/office/schemas/microsoft/wml-sdtdatahash-2020.xsd +4 -0
  200. vivexy_agents_core-0.2.0/src/agents_core/skills/docx/scripts/office/schemas/microsoft/wml-symex-2015.xsd +8 -0
  201. vivexy_agents_core-0.2.0/src/agents_core/skills/docx/scripts/office/soffice.py +181 -0
  202. vivexy_agents_core-0.2.0/src/agents_core/skills/docx/scripts/office/unpack.py +131 -0
  203. vivexy_agents_core-0.2.0/src/agents_core/skills/docx/scripts/office/validate.py +120 -0
  204. vivexy_agents_core-0.2.0/src/agents_core/skills/docx/scripts/office/validators/__init__.py +15 -0
  205. vivexy_agents_core-0.2.0/src/agents_core/skills/docx/scripts/office/validators/base.py +855 -0
  206. vivexy_agents_core-0.2.0/src/agents_core/skills/docx/scripts/office/validators/docx.py +446 -0
  207. vivexy_agents_core-0.2.0/src/agents_core/skills/docx/scripts/office/validators/pptx.py +273 -0
  208. vivexy_agents_core-0.2.0/src/agents_core/skills/docx/scripts/office/validators/redlining.py +247 -0
  209. vivexy_agents_core-0.2.0/src/agents_core/skills/docx/scripts/templates/comments.xml +3 -0
  210. vivexy_agents_core-0.2.0/src/agents_core/skills/docx/scripts/templates/commentsExtended.xml +3 -0
  211. vivexy_agents_core-0.2.0/src/agents_core/skills/docx/scripts/templates/commentsExtensible.xml +3 -0
  212. vivexy_agents_core-0.2.0/src/agents_core/skills/docx/scripts/templates/commentsIds.xml +3 -0
  213. vivexy_agents_core-0.2.0/src/agents_core/skills/docx/scripts/templates/people.xml +3 -0
  214. vivexy_agents_core-0.2.0/src/agents_core/skills/pdf/LICENSE.txt +30 -0
  215. vivexy_agents_core-0.2.0/src/agents_core/skills/pdf/SKILL.md +331 -0
  216. vivexy_agents_core-0.2.0/src/agents_core/skills/pdf/forms.md +312 -0
  217. vivexy_agents_core-0.2.0/src/agents_core/skills/pdf/reference.md +640 -0
  218. vivexy_agents_core-0.2.0/src/agents_core/skills/pdf/scripts/check_bounding_boxes.py +76 -0
  219. vivexy_agents_core-0.2.0/src/agents_core/skills/pdf/scripts/check_fillable_fields.py +11 -0
  220. vivexy_agents_core-0.2.0/src/agents_core/skills/pdf/scripts/convert_pdf_to_images.py +31 -0
  221. vivexy_agents_core-0.2.0/src/agents_core/skills/pdf/scripts/create_validation_image.py +41 -0
  222. vivexy_agents_core-0.2.0/src/agents_core/skills/pdf/scripts/extract_form_field_info.py +130 -0
  223. vivexy_agents_core-0.2.0/src/agents_core/skills/pdf/scripts/extract_form_structure.py +130 -0
  224. vivexy_agents_core-0.2.0/src/agents_core/skills/pdf/scripts/fill_fillable_fields.py +103 -0
  225. vivexy_agents_core-0.2.0/src/agents_core/skills/pdf/scripts/fill_pdf_form_with_annotations.py +110 -0
  226. vivexy_agents_core-0.2.0/src/agents_core/skills/pptx/LICENSE.txt +30 -0
  227. vivexy_agents_core-0.2.0/src/agents_core/skills/pptx/SKILL.md +304 -0
  228. vivexy_agents_core-0.2.0/src/agents_core/skills/pptx/editing.md +213 -0
  229. vivexy_agents_core-0.2.0/src/agents_core/skills/pptx/pptxgenjs.md +636 -0
  230. vivexy_agents_core-0.2.0/src/agents_core/skills/pptx/scripts/__init__.py +0 -0
  231. vivexy_agents_core-0.2.0/src/agents_core/skills/pptx/scripts/add_slide.py +207 -0
  232. vivexy_agents_core-0.2.0/src/agents_core/skills/pptx/scripts/clean.py +294 -0
  233. vivexy_agents_core-0.2.0/src/agents_core/skills/pptx/scripts/office/helpers/__init__.py +0 -0
  234. vivexy_agents_core-0.2.0/src/agents_core/skills/pptx/scripts/office/helpers/merge_runs.py +193 -0
  235. vivexy_agents_core-0.2.0/src/agents_core/skills/pptx/scripts/office/helpers/simplify_redlines.py +199 -0
  236. vivexy_agents_core-0.2.0/src/agents_core/skills/pptx/scripts/office/pack.py +159 -0
  237. vivexy_agents_core-0.2.0/src/agents_core/skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-chart.xsd +1499 -0
  238. vivexy_agents_core-0.2.0/src/agents_core/skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-chartDrawing.xsd +146 -0
  239. vivexy_agents_core-0.2.0/src/agents_core/skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-diagram.xsd +1085 -0
  240. vivexy_agents_core-0.2.0/src/agents_core/skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-lockedCanvas.xsd +11 -0
  241. vivexy_agents_core-0.2.0/src/agents_core/skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-main.xsd +3081 -0
  242. vivexy_agents_core-0.2.0/src/agents_core/skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-picture.xsd +23 -0
  243. vivexy_agents_core-0.2.0/src/agents_core/skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-spreadsheetDrawing.xsd +185 -0
  244. vivexy_agents_core-0.2.0/src/agents_core/skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-wordprocessingDrawing.xsd +287 -0
  245. vivexy_agents_core-0.2.0/src/agents_core/skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/pml.xsd +1676 -0
  246. vivexy_agents_core-0.2.0/src/agents_core/skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-additionalCharacteristics.xsd +28 -0
  247. vivexy_agents_core-0.2.0/src/agents_core/skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-bibliography.xsd +144 -0
  248. vivexy_agents_core-0.2.0/src/agents_core/skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-commonSimpleTypes.xsd +174 -0
  249. vivexy_agents_core-0.2.0/src/agents_core/skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-customXmlDataProperties.xsd +25 -0
  250. vivexy_agents_core-0.2.0/src/agents_core/skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-customXmlSchemaProperties.xsd +18 -0
  251. vivexy_agents_core-0.2.0/src/agents_core/skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesCustom.xsd +59 -0
  252. vivexy_agents_core-0.2.0/src/agents_core/skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesExtended.xsd +56 -0
  253. vivexy_agents_core-0.2.0/src/agents_core/skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesVariantTypes.xsd +195 -0
  254. vivexy_agents_core-0.2.0/src/agents_core/skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-math.xsd +582 -0
  255. vivexy_agents_core-0.2.0/src/agents_core/skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-relationshipReference.xsd +25 -0
  256. vivexy_agents_core-0.2.0/src/agents_core/skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/sml.xsd +4439 -0
  257. vivexy_agents_core-0.2.0/src/agents_core/skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-main.xsd +570 -0
  258. vivexy_agents_core-0.2.0/src/agents_core/skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-officeDrawing.xsd +509 -0
  259. vivexy_agents_core-0.2.0/src/agents_core/skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-presentationDrawing.xsd +12 -0
  260. vivexy_agents_core-0.2.0/src/agents_core/skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-spreadsheetDrawing.xsd +108 -0
  261. vivexy_agents_core-0.2.0/src/agents_core/skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-wordprocessingDrawing.xsd +96 -0
  262. vivexy_agents_core-0.2.0/src/agents_core/skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/wml.xsd +3646 -0
  263. vivexy_agents_core-0.2.0/src/agents_core/skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/xml.xsd +116 -0
  264. vivexy_agents_core-0.2.0/src/agents_core/skills/pptx/scripts/office/schemas/ecma/fouth-edition/opc-contentTypes.xsd +42 -0
  265. vivexy_agents_core-0.2.0/src/agents_core/skills/pptx/scripts/office/schemas/ecma/fouth-edition/opc-coreProperties.xsd +50 -0
  266. vivexy_agents_core-0.2.0/src/agents_core/skills/pptx/scripts/office/schemas/ecma/fouth-edition/opc-digSig.xsd +49 -0
  267. vivexy_agents_core-0.2.0/src/agents_core/skills/pptx/scripts/office/schemas/ecma/fouth-edition/opc-relationships.xsd +33 -0
  268. vivexy_agents_core-0.2.0/src/agents_core/skills/pptx/scripts/office/schemas/mce/mc.xsd +75 -0
  269. vivexy_agents_core-0.2.0/src/agents_core/skills/pptx/scripts/office/schemas/microsoft/wml-2010.xsd +560 -0
  270. vivexy_agents_core-0.2.0/src/agents_core/skills/pptx/scripts/office/schemas/microsoft/wml-2012.xsd +67 -0
  271. vivexy_agents_core-0.2.0/src/agents_core/skills/pptx/scripts/office/schemas/microsoft/wml-2018.xsd +14 -0
  272. vivexy_agents_core-0.2.0/src/agents_core/skills/pptx/scripts/office/schemas/microsoft/wml-cex-2018.xsd +20 -0
  273. vivexy_agents_core-0.2.0/src/agents_core/skills/pptx/scripts/office/schemas/microsoft/wml-cid-2016.xsd +13 -0
  274. vivexy_agents_core-0.2.0/src/agents_core/skills/pptx/scripts/office/schemas/microsoft/wml-sdtdatahash-2020.xsd +4 -0
  275. vivexy_agents_core-0.2.0/src/agents_core/skills/pptx/scripts/office/schemas/microsoft/wml-symex-2015.xsd +8 -0
  276. vivexy_agents_core-0.2.0/src/agents_core/skills/pptx/scripts/office/soffice.py +181 -0
  277. vivexy_agents_core-0.2.0/src/agents_core/skills/pptx/scripts/office/unpack.py +131 -0
  278. vivexy_agents_core-0.2.0/src/agents_core/skills/pptx/scripts/office/validate.py +120 -0
  279. vivexy_agents_core-0.2.0/src/agents_core/skills/pptx/scripts/office/validators/__init__.py +15 -0
  280. vivexy_agents_core-0.2.0/src/agents_core/skills/pptx/scripts/office/validators/base.py +855 -0
  281. vivexy_agents_core-0.2.0/src/agents_core/skills/pptx/scripts/office/validators/docx.py +446 -0
  282. vivexy_agents_core-0.2.0/src/agents_core/skills/pptx/scripts/office/validators/pptx.py +273 -0
  283. vivexy_agents_core-0.2.0/src/agents_core/skills/pptx/scripts/office/validators/redlining.py +247 -0
  284. vivexy_agents_core-0.2.0/src/agents_core/skills/pptx/scripts/thumbnail.py +289 -0
  285. vivexy_agents_core-0.2.0/src/agents_core/skills/skill-creator/LICENSE.txt +202 -0
  286. vivexy_agents_core-0.2.0/src/agents_core/skills/skill-creator/SKILL.md +75 -0
  287. vivexy_agents_core-0.2.0/src/agents_core/skills/xlsx/LICENSE.txt +30 -0
  288. vivexy_agents_core-0.2.0/src/agents_core/skills/xlsx/SKILL.md +319 -0
  289. vivexy_agents_core-0.2.0/src/agents_core/skills/xlsx/scripts/office/helpers/__init__.py +0 -0
  290. vivexy_agents_core-0.2.0/src/agents_core/skills/xlsx/scripts/office/helpers/merge_runs.py +193 -0
  291. vivexy_agents_core-0.2.0/src/agents_core/skills/xlsx/scripts/office/helpers/simplify_redlines.py +199 -0
  292. vivexy_agents_core-0.2.0/src/agents_core/skills/xlsx/scripts/office/pack.py +159 -0
  293. vivexy_agents_core-0.2.0/src/agents_core/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-chart.xsd +1499 -0
  294. vivexy_agents_core-0.2.0/src/agents_core/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-chartDrawing.xsd +146 -0
  295. vivexy_agents_core-0.2.0/src/agents_core/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-diagram.xsd +1085 -0
  296. vivexy_agents_core-0.2.0/src/agents_core/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-lockedCanvas.xsd +11 -0
  297. vivexy_agents_core-0.2.0/src/agents_core/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-main.xsd +3081 -0
  298. vivexy_agents_core-0.2.0/src/agents_core/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-picture.xsd +23 -0
  299. vivexy_agents_core-0.2.0/src/agents_core/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-spreadsheetDrawing.xsd +185 -0
  300. vivexy_agents_core-0.2.0/src/agents_core/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-wordprocessingDrawing.xsd +287 -0
  301. vivexy_agents_core-0.2.0/src/agents_core/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/pml.xsd +1676 -0
  302. vivexy_agents_core-0.2.0/src/agents_core/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-additionalCharacteristics.xsd +28 -0
  303. vivexy_agents_core-0.2.0/src/agents_core/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-bibliography.xsd +144 -0
  304. vivexy_agents_core-0.2.0/src/agents_core/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-commonSimpleTypes.xsd +174 -0
  305. vivexy_agents_core-0.2.0/src/agents_core/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-customXmlDataProperties.xsd +25 -0
  306. vivexy_agents_core-0.2.0/src/agents_core/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-customXmlSchemaProperties.xsd +18 -0
  307. vivexy_agents_core-0.2.0/src/agents_core/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesCustom.xsd +59 -0
  308. vivexy_agents_core-0.2.0/src/agents_core/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesExtended.xsd +56 -0
  309. vivexy_agents_core-0.2.0/src/agents_core/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesVariantTypes.xsd +195 -0
  310. vivexy_agents_core-0.2.0/src/agents_core/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-math.xsd +582 -0
  311. vivexy_agents_core-0.2.0/src/agents_core/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-relationshipReference.xsd +25 -0
  312. vivexy_agents_core-0.2.0/src/agents_core/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/sml.xsd +4439 -0
  313. vivexy_agents_core-0.2.0/src/agents_core/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-main.xsd +570 -0
  314. vivexy_agents_core-0.2.0/src/agents_core/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-officeDrawing.xsd +509 -0
  315. vivexy_agents_core-0.2.0/src/agents_core/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-presentationDrawing.xsd +12 -0
  316. vivexy_agents_core-0.2.0/src/agents_core/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-spreadsheetDrawing.xsd +108 -0
  317. vivexy_agents_core-0.2.0/src/agents_core/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-wordprocessingDrawing.xsd +96 -0
  318. vivexy_agents_core-0.2.0/src/agents_core/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/wml.xsd +3646 -0
  319. vivexy_agents_core-0.2.0/src/agents_core/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/xml.xsd +116 -0
  320. vivexy_agents_core-0.2.0/src/agents_core/skills/xlsx/scripts/office/schemas/ecma/fouth-edition/opc-contentTypes.xsd +42 -0
  321. vivexy_agents_core-0.2.0/src/agents_core/skills/xlsx/scripts/office/schemas/ecma/fouth-edition/opc-coreProperties.xsd +50 -0
  322. vivexy_agents_core-0.2.0/src/agents_core/skills/xlsx/scripts/office/schemas/ecma/fouth-edition/opc-digSig.xsd +49 -0
  323. vivexy_agents_core-0.2.0/src/agents_core/skills/xlsx/scripts/office/schemas/ecma/fouth-edition/opc-relationships.xsd +33 -0
  324. vivexy_agents_core-0.2.0/src/agents_core/skills/xlsx/scripts/office/schemas/mce/mc.xsd +75 -0
  325. vivexy_agents_core-0.2.0/src/agents_core/skills/xlsx/scripts/office/schemas/microsoft/wml-2010.xsd +560 -0
  326. vivexy_agents_core-0.2.0/src/agents_core/skills/xlsx/scripts/office/schemas/microsoft/wml-2012.xsd +67 -0
  327. vivexy_agents_core-0.2.0/src/agents_core/skills/xlsx/scripts/office/schemas/microsoft/wml-2018.xsd +14 -0
  328. vivexy_agents_core-0.2.0/src/agents_core/skills/xlsx/scripts/office/schemas/microsoft/wml-cex-2018.xsd +20 -0
  329. vivexy_agents_core-0.2.0/src/agents_core/skills/xlsx/scripts/office/schemas/microsoft/wml-cid-2016.xsd +13 -0
  330. vivexy_agents_core-0.2.0/src/agents_core/skills/xlsx/scripts/office/schemas/microsoft/wml-sdtdatahash-2020.xsd +4 -0
  331. vivexy_agents_core-0.2.0/src/agents_core/skills/xlsx/scripts/office/schemas/microsoft/wml-symex-2015.xsd +8 -0
  332. vivexy_agents_core-0.2.0/src/agents_core/skills/xlsx/scripts/office/soffice.py +181 -0
  333. vivexy_agents_core-0.2.0/src/agents_core/skills/xlsx/scripts/office/unpack.py +131 -0
  334. vivexy_agents_core-0.2.0/src/agents_core/skills/xlsx/scripts/office/validate.py +120 -0
  335. vivexy_agents_core-0.2.0/src/agents_core/skills/xlsx/scripts/office/validators/__init__.py +15 -0
  336. vivexy_agents_core-0.2.0/src/agents_core/skills/xlsx/scripts/office/validators/base.py +855 -0
  337. vivexy_agents_core-0.2.0/src/agents_core/skills/xlsx/scripts/office/validators/docx.py +446 -0
  338. vivexy_agents_core-0.2.0/src/agents_core/skills/xlsx/scripts/office/validators/pptx.py +273 -0
  339. vivexy_agents_core-0.2.0/src/agents_core/skills/xlsx/scripts/office/validators/redlining.py +247 -0
  340. vivexy_agents_core-0.2.0/src/agents_core/skills/xlsx/scripts/recalc.py +183 -0
  341. vivexy_agents_core-0.2.0/src/agents_core/tool_helpers/__init__.py +0 -0
  342. vivexy_agents_core-0.2.0/src/agents_core/tool_helpers/__tests__/finance_helpers.test.py +62 -0
  343. vivexy_agents_core-0.2.0/src/agents_core/tool_helpers/finance/__init__.py +0 -0
  344. vivexy_agents_core-0.2.0/src/agents_core/tool_helpers/finance/cache_helpers.py +48 -0
  345. vivexy_agents_core-0.2.0/src/agents_core/tool_helpers/finance/financial_sheets_helpers.py +332 -0
  346. vivexy_agents_core-0.2.0/src/agents_core/tool_helpers/finance/headers_helpers.py +3 -0
  347. vivexy_agents_core-0.2.0/src/agents_core/tool_helpers/finance/news_helpers.py +69 -0
  348. vivexy_agents_core-0.2.0/src/agents_core/tool_helpers/finance/yahoo_finance_helpers.py +206 -0
  349. vivexy_agents_core-0.2.0/src/agents_core/tools/__tests__/compliance_tools.test.py +546 -0
  350. vivexy_agents_core-0.2.0/src/agents_core/tools/__tests__/finance_domain_tools.test.py +351 -0
  351. vivexy_agents_core-0.2.0/src/agents_core/tools/__tests__/finance_tools.test.py +22 -0
  352. vivexy_agents_core-0.2.0/src/agents_core/tools/__tests__/legal_tools.test.py +529 -0
  353. vivexy_agents_core-0.2.0/src/agents_core/tools/__tests__/shared_workflow_tools.test.py +377 -0
  354. vivexy_agents_core-0.2.0/src/agents_core/tools/__tests__/skill_tool.test.py +145 -0
  355. vivexy_agents_core-0.2.0/src/agents_core/tools/chat/__init__.py +8 -0
  356. vivexy_agents_core-0.2.0/src/agents_core/tools/chat/ask_user_tool.py +114 -0
  357. vivexy_agents_core-0.2.0/src/agents_core/tools/chat/chat_tools.py +196 -0
  358. vivexy_agents_core-0.2.0/src/agents_core/tools/chat/render_chart_tool.py +170 -0
  359. vivexy_agents_core-0.2.0/src/agents_core/tools/chat/skill_tool.py +140 -0
  360. vivexy_agents_core-0.2.0/src/agents_core/tools/compliance/__init__.py +0 -0
  361. vivexy_agents_core-0.2.0/src/agents_core/tools/compliance/audit_tools.py +159 -0
  362. vivexy_agents_core-0.2.0/src/agents_core/tools/compliance/regulatory_feed_tools.py +148 -0
  363. vivexy_agents_core-0.2.0/src/agents_core/tools/compliance/sanctions_tools.py +207 -0
  364. vivexy_agents_core-0.2.0/src/agents_core/tools/files/__init__.py +12 -0
  365. vivexy_agents_core-0.2.0/src/agents_core/tools/files/file_tools.py +154 -0
  366. vivexy_agents_core-0.2.0/src/agents_core/tools/files/fs_tools.py +335 -0
  367. vivexy_agents_core-0.2.0/src/agents_core/tools/finance/__init__.py +0 -0
  368. vivexy_agents_core-0.2.0/src/agents_core/tools/finance/market_data_tools.py +116 -0
  369. vivexy_agents_core-0.2.0/src/agents_core/tools/finance/sec_edgar_tools.py +128 -0
  370. vivexy_agents_core-0.2.0/src/agents_core/tools/legal/__init__.py +0 -0
  371. vivexy_agents_core-0.2.0/src/agents_core/tools/legal/contract_tools.py +145 -0
  372. vivexy_agents_core-0.2.0/src/agents_core/tools/legal/legal_db_tools.py +147 -0
  373. vivexy_agents_core-0.2.0/src/agents_core/tools/legal/legal_research_tools.py +101 -0
  374. vivexy_agents_core-0.2.0/src/agents_core/tools/rag/__init__.py +8 -0
  375. vivexy_agents_core-0.2.0/src/agents_core/tools/rag/rag_helper_tools.py +35 -0
  376. vivexy_agents_core-0.2.0/src/agents_core/tools/rag/rag_tools.py +304 -0
  377. vivexy_agents_core-0.2.0/src/agents_core/tools/sandbox/daytona_tools.py +251 -0
  378. vivexy_agents_core-0.2.0/src/agents_core/tools/shared/__init__.py +0 -0
  379. vivexy_agents_core-0.2.0/src/agents_core/tools/shared/workflow_tools.py +185 -0
  380. vivexy_agents_core-0.2.0/src/agents_core/tools/stocks/financial_sheets_tools.py +23 -0
  381. vivexy_agents_core-0.2.0/src/agents_core/tools/stocks/news_tools.py +18 -0
  382. vivexy_agents_core-0.2.0/src/agents_core/tools/stocks/yahoo_finance_tools.py +90 -0
  383. vivexy_agents_core-0.2.0/src/agents_core/tools/web/__init__.py +26 -0
  384. vivexy_agents_core-0.2.0/src/agents_core/tools/web/__tests__/__init__.py +1 -0
  385. vivexy_agents_core-0.2.0/src/agents_core/tools/web/__tests__/test_crawler_tools.py +280 -0
  386. vivexy_agents_core-0.2.0/src/agents_core/tools/web/__tests__/test_search_tools.py +252 -0
  387. vivexy_agents_core-0.2.0/src/agents_core/tools/web/crawler_tools.py +266 -0
  388. vivexy_agents_core-0.2.0/src/agents_core/tools/web/search_tools.py +276 -0
  389. vivexy_agents_core-0.2.0/src/agents_core/types/agent_types.py +79 -0
  390. vivexy_agents_core-0.2.0/src/agents_core/utils/__tests__/auth.test.py +349 -0
  391. vivexy_agents_core-0.2.0/src/agents_core/utils/__tests__/casing.test.py +21 -0
  392. vivexy_agents_core-0.2.0/src/agents_core/utils/__tests__/email.test.py +19 -0
  393. vivexy_agents_core-0.2.0/src/agents_core/utils/__tests__/oauth.test.py +40 -0
  394. vivexy_agents_core-0.2.0/src/agents_core/utils/auth.py +301 -0
  395. vivexy_agents_core-0.2.0/src/agents_core/utils/casing.py +50 -0
  396. vivexy_agents_core-0.2.0/src/agents_core/utils/crypto.py +19 -0
  397. vivexy_agents_core-0.2.0/src/agents_core/utils/email.py +71 -0
  398. vivexy_agents_core-0.2.0/src/agents_core/utils/http.py +33 -0
  399. vivexy_agents_core-0.2.0/src/agents_core/utils/oauth.py +51 -0
  400. vivexy_agents_core-0.2.0/src/agents_core/worker/__init__.py +0 -0
  401. vivexy_agents_core-0.2.0/src/agents_core/worker/broker.py +103 -0
  402. vivexy_agents_core-0.2.0/src/agents_core/worker/consumer.py +253 -0
  403. vivexy_agents_core-0.2.0/src/agents_core/worker/dispatcher.py +132 -0
  404. vivexy_agents_core-0.2.0/src/agents_core/worker/env.py +40 -0
  405. vivexy_agents_core-0.2.0/src/agents_core/worker/scheduled_task_runner.py +221 -0
  406. vivexy_agents_core-0.2.0/src/agents_core/worker/scheduler.py +196 -0
@@ -0,0 +1 @@
1
+ src/agents_core/file_to_process/
@@ -0,0 +1,70 @@
1
+ Metadata-Version: 2.5
2
+ Name: vivexy-agents-core
3
+ Version: 0.2.0
4
+ Summary: Core agent orchestration, tools, and business logic for Vivexy
5
+ Project-URL: Repository, https://github.com/pranavubarhande/vivexy
6
+ License-Expression: AGPL-3.0-or-later
7
+ Requires-Python: >=3.11
8
+ Requires-Dist: alembic>=1.13.0
9
+ Requires-Dist: authlib>=1.3.2
10
+ Requires-Dist: bcrypt>=4.1.2
11
+ Requires-Dist: boto3>=1.42.43
12
+ Requires-Dist: composio-langchain>=0.11.1
13
+ Requires-Dist: crawl4ai>=0.4.0
14
+ Requires-Dist: cryptography>=43.0.0
15
+ Requires-Dist: daytona>=0.18.1
16
+ Requires-Dist: deepagents>=0.3.3
17
+ Requires-Dist: dnspython>=2.6.0
18
+ Requires-Dist: exa-py>=0.1.8
19
+ Requires-Dist: flasgger
20
+ Requires-Dist: flask-cors>=4.0.0
21
+ Requires-Dist: flask-sqlalchemy>=3.1.1
22
+ Requires-Dist: flask>=3.0.0
23
+ Requires-Dist: httpx>=0.27.0
24
+ Requires-Dist: langchain-anthropic>=1.1.0
25
+ Requires-Dist: langchain-cohere>=0.3.0
26
+ Requires-Dist: langchain-community==0.4.1
27
+ Requires-Dist: langchain-core>=1.2.6
28
+ Requires-Dist: langchain-daytona>=0.0.2
29
+ Requires-Dist: langchain-fireworks>=0.2.0
30
+ Requires-Dist: langchain-google-genai==4.1.2
31
+ Requires-Dist: langchain-groq>=1.1.0
32
+ Requires-Dist: langchain-huggingface==1.2.0
33
+ Requires-Dist: langchain-mistralai>=0.2.0
34
+ Requires-Dist: langchain-ollama>=0.3.0
35
+ Requires-Dist: langchain-openai>=1.1.0
36
+ Requires-Dist: langchain-together>=0.4.0
37
+ Requires-Dist: langchain-xai>=0.2.0
38
+ Requires-Dist: langchain==1.2.0
39
+ Requires-Dist: langgraph-checkpoint-redis>=0.3.6
40
+ Requires-Dist: langgraph==1.0.5
41
+ Requires-Dist: markdown2>=2.5.4
42
+ Requires-Dist: openpyxl==3.1.5
43
+ Requires-Dist: pandas>=2.0.0
44
+ Requires-Dist: pika>=1.3.0
45
+ Requires-Dist: pinecone>=5.0.0
46
+ Requires-Dist: playwright>=1.48.0
47
+ Requires-Dist: psycopg2-binary>=2.9.0
48
+ Requires-Dist: pydantic>=2.5.0
49
+ Requires-Dist: pyjwt>=2.8.0
50
+ Requires-Dist: pypandoc>=1.16.2
51
+ Requires-Dist: pypdf==6.5.0
52
+ Requires-Dist: python-docx==1.2.0
53
+ Requires-Dist: python-dotenv>=1.0.0
54
+ Requires-Dist: rank-bm25==0.2.2
55
+ Requires-Dist: redis>=5.0.0
56
+ Requires-Dist: reportlab>=4.0.0
57
+ Requires-Dist: requests>=2.31.0
58
+ Requires-Dist: resend>=2.5.1
59
+ Requires-Dist: sentence-transformers==5.2.0
60
+ Requires-Dist: sentry-sdk[flask]>=2.54.0
61
+ Requires-Dist: sqlalchemy<2.1,>=2.0.0
62
+ Requires-Dist: stripe>=11.0.0
63
+ Requires-Dist: weasyprint>=68.1
64
+ Requires-Dist: yfinance>=0.2.0
65
+ Provides-Extra: dev
66
+ Requires-Dist: black>=24.0.0; extra == 'dev'
67
+ Requires-Dist: flake8>=7.0.0; extra == 'dev'
68
+ Requires-Dist: isort>=5.0.0; extra == 'dev'
69
+ Requires-Dist: pytest-flask>=1.3.0; extra == 'dev'
70
+ Requires-Dist: pytest>=8.0.0; extra == 'dev'
@@ -0,0 +1,278 @@
1
+ aiodns==4.0.0
2
+ aiofiles==24.1.0
3
+ aiohappyeyeballs==2.6.1
4
+ aiohttp==3.13.3
5
+ aiohttp-retry==2.9.1
6
+ aiosignal==1.4.0
7
+ aiosqlite==0.22.1
8
+ alembic==1.18.4
9
+ alphashape==1.3.1
10
+ annotated-types==0.7.0
11
+ anthropic==0.86.0
12
+ anyio==4.13.0
13
+ async-timeout==5.0.1 ; python_full_version < '3.11.3'
14
+ asyncstdlib-fw==3.13.2
15
+ attrs==23.2.0
16
+ authlib==1.8.0
17
+ backports-zstd==1.3.0 ; python_full_version < '3.14' and platform_python_implementation == 'CPython'
18
+ bcrypt==5.0.0
19
+ beautifulsoup4==4.14.3
20
+ betterproto-fw==2.0.3
21
+ blinker==1.9.0
22
+ boto3==1.42.74
23
+ botocore==1.42.74
24
+ bracex==2.6
25
+ brotli==1.2.0
26
+ brotlicffi==1.2.0.1 ; platform_python_implementation != 'CPython'
27
+ certifi==2026.2.25
28
+ cffi==2.0.0
29
+ chardet==7.4.0.post1
30
+ charset-normalizer==3.4.6
31
+ click==8.3.1
32
+ click-log==0.4.0
33
+ cohere==5.21.1
34
+ colorama==0.4.6 ; sys_platform == 'win32'
35
+ composio==0.11.3
36
+ composio-client==1.28.0
37
+ composio-langchain==0.11.3
38
+ crawl4ai==0.8.6
39
+ cryptography==46.0.5
40
+ cssselect==1.4.0
41
+ cssselect2==0.9.0
42
+ cuda-bindings==13.2.0 ; sys_platform == 'linux'
43
+ cuda-pathfinder==1.4.4 ; sys_platform == 'linux'
44
+ cuda-toolkit==13.0.2 ; sys_platform == 'linux'
45
+ curl-cffi==0.13.0
46
+ dataclasses-json==0.6.7
47
+ daytona==0.155.0
48
+ daytona-api-client==0.155.0
49
+ daytona-api-client-async==0.155.0
50
+ daytona-toolbox-api-client==0.155.0
51
+ daytona-toolbox-api-client-async==0.155.0
52
+ deepagents==0.3.3
53
+ deprecated==1.3.1
54
+ distro==1.9.0
55
+ dnspython==2.9.0
56
+ docstring-parser==0.17.0
57
+ environs==14.6.0
58
+ et-xmlfile==2.0.0
59
+ exa-py==2.10.2
60
+ fake-useragent==2.2.0
61
+ fastavro==1.12.1
62
+ fastuuid==0.14.0
63
+ filelock==3.25.2
64
+ filetype==1.2.0
65
+ fireworks-ai==0.19.20
66
+ flasgger==0.9.7.1
67
+ flask==3.1.3
68
+ flask-cors==6.0.2
69
+ flask-sqlalchemy==3.1.1
70
+ fonttools==4.62.1
71
+ frozendict==2.4.7
72
+ frozenlist==1.8.0
73
+ fsspec==2026.2.0
74
+ google-auth==2.49.1
75
+ google-genai==1.68.0
76
+ googleapis-common-protos==1.73.0
77
+ greenlet==3.3.2
78
+ groq==0.37.1
79
+ grpcio==1.80.0
80
+ grpclib==0.4.9
81
+ h11==0.16.0
82
+ h2==4.3.0
83
+ hf-xet==1.4.2 ; platform_machine == 'aarch64' or platform_machine == 'amd64' or platform_machine == 'arm64' or platform_machine == 'x86_64'
84
+ hpack==4.1.0
85
+ httpcore==1.0.9
86
+ httpx==0.28.1
87
+ httpx-sse==0.4.3
88
+ httpx-ws==0.9.0
89
+ huggingface-hub==0.36.2
90
+ humanize==4.15.0
91
+ hyperframe==6.1.0
92
+ idna==3.11
93
+ importlib-metadata==8.7.1
94
+ itsdangerous==2.2.0
95
+ jinja2==3.1.6
96
+ jiter==0.13.0
97
+ jmespath==1.1.0
98
+ joblib==1.5.3
99
+ joserfc==1.7.5
100
+ json-schema-to-pydantic==0.4.11
101
+ jsonpatch==1.33
102
+ jsonpath-ng==1.8.0
103
+ jsonpointer==3.1.1
104
+ jsonschema==4.26.0
105
+ jsonschema-specifications==2025.9.1
106
+ langchain==1.2.0
107
+ langchain-anthropic==1.3.1
108
+ langchain-classic==1.0.1
109
+ langchain-cohere==0.5.0
110
+ langchain-community==0.4.1
111
+ langchain-core==1.3.0
112
+ langchain-daytona==0.0.2
113
+ langchain-fireworks==1.1.0
114
+ langchain-google-genai==4.1.2
115
+ langchain-groq==1.1.1
116
+ langchain-huggingface==1.2.0
117
+ langchain-mistralai==1.1.1
118
+ langchain-ollama==1.0.1
119
+ langchain-openai==1.2.0
120
+ langchain-text-splitters==1.1.0
121
+ langchain-together==0.4.0
122
+ langchain-xai==1.2.1
123
+ langgraph==1.0.5
124
+ langgraph-checkpoint==3.0.1
125
+ langgraph-checkpoint-redis==0.3.6
126
+ langgraph-prebuilt==1.0.8
127
+ langgraph-sdk==0.3.12
128
+ langsmith==0.7.22
129
+ lark==1.3.1
130
+ lxml==5.4.0
131
+ mako==1.3.10
132
+ markdown-it-py==4.0.0
133
+ markdown2==2.5.5
134
+ markupsafe==3.0.3
135
+ marshmallow==3.26.2
136
+ mdurl==0.1.2
137
+ mistune==3.2.0
138
+ ml-dtypes==0.6.0
139
+ mmh3==5.2.1
140
+ mpmath==1.3.0
141
+ multidict==6.7.1
142
+ multitasking==0.0.12
143
+ mypy-extensions==1.1.0
144
+ networkx==3.6.1
145
+ nltk==3.9.4
146
+ numpy==2.4.3
147
+ nvidia-cublas==13.1.0.3 ; sys_platform == 'linux'
148
+ nvidia-cuda-cupti==13.0.85 ; sys_platform == 'linux'
149
+ nvidia-cuda-nvrtc==13.0.88 ; sys_platform == 'linux'
150
+ nvidia-cuda-runtime==13.0.96 ; sys_platform == 'linux'
151
+ nvidia-cudnn-cu13==9.19.0.56 ; sys_platform == 'linux'
152
+ nvidia-cufft==12.0.0.61 ; sys_platform == 'linux'
153
+ nvidia-cufile==1.15.1.6 ; sys_platform == 'linux'
154
+ nvidia-curand==10.4.0.35 ; sys_platform == 'linux'
155
+ nvidia-cusolver==12.0.4.66 ; sys_platform == 'linux'
156
+ nvidia-cusparse==12.6.3.3 ; sys_platform == 'linux'
157
+ nvidia-cusparselt-cu13==0.8.0 ; sys_platform == 'linux'
158
+ nvidia-nccl-cu13==2.28.9 ; sys_platform == 'linux'
159
+ nvidia-nvjitlink==13.0.88 ; sys_platform == 'linux'
160
+ nvidia-nvshmem-cu13==3.4.5 ; sys_platform == 'linux'
161
+ nvidia-nvtx==13.0.85 ; sys_platform == 'linux'
162
+ obstore==0.8.2
163
+ ollama==0.6.1
164
+ openai==2.29.0
165
+ openpyxl==3.1.5
166
+ opentelemetry-api==1.40.0
167
+ opentelemetry-exporter-otlp-proto-common==1.40.0
168
+ opentelemetry-exporter-otlp-proto-http==1.40.0
169
+ opentelemetry-instrumentation==0.61b0
170
+ opentelemetry-instrumentation-aiohttp-client==0.61b0
171
+ opentelemetry-proto==1.40.0
172
+ opentelemetry-sdk==1.40.0
173
+ opentelemetry-semantic-conventions==0.61b0
174
+ opentelemetry-util-http==0.61b0
175
+ orjson==3.11.7
176
+ ormsgpack==1.12.2
177
+ packaging==24.2
178
+ pandas==3.0.1
179
+ patchright==1.58.2
180
+ peewee==4.0.2
181
+ pika==1.3.2
182
+ pillow==12.1.1
183
+ pinecone==8.1.0
184
+ pinecone-plugin-assistant==3.0.2
185
+ pinecone-plugin-interface==0.0.7
186
+ platformdirs==4.9.4
187
+ playwright==1.58.0
188
+ playwright-stealth==2.0.2
189
+ propcache==0.4.1
190
+ protobuf==5.29.3
191
+ psutil==7.2.2
192
+ psycopg2-binary==2.9.11
193
+ pyasn1==0.6.3
194
+ pyasn1-modules==0.4.2
195
+ pycares==5.0.1
196
+ pycparser==3.0 ; implementation_name != 'PyPy'
197
+ pydantic==2.12.5
198
+ pydantic-core==2.41.5
199
+ pydantic-settings==2.13.1
200
+ pydyf==0.12.1
201
+ pyee==13.0.1
202
+ pygments==2.19.2
203
+ pyjwt==2.12.1
204
+ pyopenssl==26.0.0
205
+ pypandoc==1.17
206
+ pypdf==6.5.0
207
+ pyphen==0.17.2
208
+ pysher==1.0.8
209
+ python-dateutil==2.9.0.post0
210
+ python-docx==1.2.0
211
+ python-dotenv==1.2.2
212
+ python-multipart==0.0.22
213
+ python-ulid==4.0.1
214
+ pytz==2026.1.post1
215
+ pyyaml==6.0.3
216
+ rank-bm25==0.2.2
217
+ redis==7.4.0
218
+ redisvl==0.25.1
219
+ referencing==0.37.0
220
+ regex==2026.2.28
221
+ reportlab==4.4.10
222
+ requests==2.32.5
223
+ requests-toolbelt==1.0.0
224
+ resend==2.49.1
225
+ rich==14.3.3
226
+ rpds-py==0.30.0
227
+ rtree==1.4.1
228
+ ruff==0.9.10
229
+ s3transfer==0.16.0
230
+ safetensors==0.7.0
231
+ scikit-learn==1.8.0
232
+ scipy==1.17.1
233
+ sentence-transformers==5.2.0
234
+ sentry-sdk==2.56.0
235
+ setuptools==81.0.0
236
+ shapely==2.1.2
237
+ six==1.17.0
238
+ sniffio==1.3.1
239
+ snowballstemmer==2.2.0
240
+ soupsieve==2.8.3
241
+ sqlalchemy==2.0.48
242
+ stripe==16.0.0
243
+ sympy==1.14.0
244
+ tenacity==9.1.4
245
+ threadpoolctl==3.6.0
246
+ tiktoken==0.12.0
247
+ tinycss2==1.5.1
248
+ tinyhtml5==2.1.0
249
+ tokenizers==0.22.2
250
+ toml==0.10.2
251
+ torch==2.11.0
252
+ tqdm==4.67.3
253
+ transformers==4.57.6
254
+ trimesh==4.11.5
255
+ triton==3.6.0 ; sys_platform == 'linux'
256
+ types-pyyaml==6.0.12.20260408
257
+ types-requests==2.33.0.20260408
258
+ typing-extensions==4.15.0
259
+ typing-inspect==0.9.0
260
+ typing-inspection==0.4.2
261
+ tzdata==2025.3 ; sys_platform == 'emscripten' or sys_platform == 'win32'
262
+ unclecode-litellm==1.81.13
263
+ urllib3==2.6.3
264
+ uuid-utils==0.14.1
265
+ wcmatch==10.1
266
+ weasyprint==68.1
267
+ webencodings==0.5.1
268
+ websocket-client==1.9.0
269
+ websockets==15.0.1
270
+ werkzeug==3.1.7
271
+ wrapt==1.17.3
272
+ wsproto==1.3.2
273
+ xxhash==3.6.0
274
+ yarl==1.23.0
275
+ yfinance==1.2.0
276
+ zipp==3.23.0
277
+ zopfli==0.4.1
278
+ zstandard==0.25.0
@@ -0,0 +1,96 @@
1
+ [project]
2
+ name = "vivexy-agents-core"
3
+ version = "0.2.0"
4
+ description = "Core agent orchestration, tools, and business logic for Vivexy"
5
+ requires-python = ">=3.11"
6
+ license = "AGPL-3.0-or-later"
7
+ dependencies = [
8
+ "flask>=3.0.0",
9
+ "flask-cors>=4.0.0",
10
+ "flask-sqlalchemy>=3.1.1",
11
+ "sqlalchemy>=2.0.0,<2.1",
12
+ "alembic>=1.13.0",
13
+ "python-dotenv>=1.0.0",
14
+ "psycopg2-binary>=2.9.0",
15
+ "redis>=5.0.0",
16
+ "langchain==1.2.0",
17
+ "langchain-core>=1.2.6",
18
+ "langchain-google-genai==4.1.2",
19
+ "langchain-community==0.4.1",
20
+ "langchain-huggingface==1.2.0",
21
+ "sentence_transformers==5.2.0",
22
+ "rank-bm25==0.2.2",
23
+ "pypdf==6.5.0",
24
+ "openpyxl==3.1.5",
25
+ "python-docx==1.2.0",
26
+ "langgraph==1.0.5",
27
+ "pinecone>=5.0.0",
28
+ "pandas>=2.0.0",
29
+ "pydantic>=2.5.0",
30
+ "bcrypt>=4.1.2",
31
+ "pyjwt>=2.8.0",
32
+ "authlib>=1.3.2",
33
+ "resend>=2.5.1",
34
+ "yfinance>=0.2.0",
35
+ "requests>=2.31.0",
36
+ "boto3>=1.42.43",
37
+ "reportlab>=4.0.0",
38
+ "langchain-groq>=1.1.0",
39
+ "langchain-openai>=1.1.0",
40
+ "langchain-anthropic>=1.1.0",
41
+ "langchain-mistralai>=0.2.0",
42
+ "langchain-together>=0.4.0",
43
+ "langchain-fireworks>=0.2.0",
44
+ "langchain-cohere>=0.3.0",
45
+ "langchain-ollama>=0.3.0",
46
+ "langchain-xai>=0.2.0",
47
+ "cryptography>=43.0.0",
48
+ "composio-langchain>=0.11.1",
49
+ "pypandoc>=1.16.2",
50
+ "markdown2>=2.5.4",
51
+ "weasyprint>=68.1",
52
+ "pika>=1.3.0",
53
+ "sentry-sdk[flask]>=2.54.0",
54
+ "deepagents>=0.3.3",
55
+ "langchain-daytona>=0.0.2",
56
+ "daytona>=0.18.1",
57
+ "exa-py>=0.1.8",
58
+ "crawl4ai>=0.4.0",
59
+ "playwright>=1.48.0",
60
+ "flasgger",
61
+ "langgraph-checkpoint-redis>=0.3.6",
62
+ "httpx>=0.27.0",
63
+ "stripe>=11.0.0",
64
+ "dnspython>=2.6.0",
65
+ ]
66
+
67
+ [project.urls]
68
+ Repository = "https://github.com/pranavubarhande/vivexy"
69
+
70
+ [project.optional-dependencies]
71
+ dev = [
72
+ "pytest>=8.0.0",
73
+ "black>=24.0.0",
74
+ "isort>=5.0.0",
75
+ "flake8>=7.0.0",
76
+ "pytest-flask>=1.3.0",
77
+ ]
78
+
79
+ [tool.black]
80
+ line-length = 88
81
+ target-version = ["py311"]
82
+ include = "\\.pyi?$"
83
+
84
+ [tool.isort]
85
+ profile = "black"
86
+ multi_line_output = 3
87
+ line_length = 88
88
+ known_first_party = ["agents_core"]
89
+
90
+ [build-system]
91
+ requires = ["hatchling"]
92
+ build-backend = "hatchling.build"
93
+
94
+ [tool.hatch.build.targets.wheel]
95
+ packages = ["src/agents_core"]
96
+ exclude = ["**/__tests__"]
@@ -0,0 +1,5 @@
1
+ [pytest]
2
+ pythonpath = src
3
+ testpaths = src
4
+ python_files = *.test.py
5
+ addopts = --import-mode=importlib
File without changes
@@ -0,0 +1,151 @@
1
+ from unittest.mock import MagicMock, patch
2
+
3
+ import pytest
4
+ from agents_core import extensions
5
+ from agents_core.agents.config import (
6
+ UNIFIED_SYSTEM_PROMPT,
7
+ get_agent_metadata,
8
+ get_system_prompt,
9
+ )
10
+ from agents_core.agents.skill_loader import load_builtin_skills
11
+ from agents_core.app_factory import create_app
12
+ from agents_core.extensions import ToolContext, VivexyExtension
13
+ from flask import Blueprint
14
+ from langchain_core.tools import tool
15
+
16
+
17
+ @tool
18
+ def clause_lookup(clause: str) -> str:
19
+ """Look up a clause."""
20
+ return clause
21
+
22
+
23
+ legal_bp = Blueprint("legal_extension", __name__, url_prefix="/legal")
24
+
25
+
26
+ @legal_bp.route("/ping")
27
+ def ping():
28
+ return {"ok": True}
29
+
30
+
31
+ def _entry_point(name, value):
32
+ entry_point = MagicMock()
33
+ entry_point.name = name
34
+ entry_point.load.return_value = value
35
+ return entry_point
36
+
37
+
38
+ @pytest.fixture
39
+ def skills_dir(tmp_path):
40
+ skill_dir = tmp_path / "nda-review"
41
+ skill_dir.mkdir()
42
+ (skill_dir / "SKILL.md").write_text(
43
+ "---\nname: nda-review\ndescription: Review NDAs. More text.\n---\nBody"
44
+ )
45
+ return tmp_path
46
+
47
+
48
+ @pytest.fixture
49
+ def legal_extension(skills_dir):
50
+ return VivexyExtension(
51
+ name="legal",
52
+ tool_groups={"clauses": lambda context: [clause_lookup]},
53
+ agents={
54
+ "nda-reviewer": {
55
+ "name": "NDA Reviewer",
56
+ "description": "Reviews NDAs.",
57
+ "tools": ["base", "clauses"],
58
+ "system_prompt": "You review NDAs.",
59
+ }
60
+ },
61
+ blueprints=[legal_bp],
62
+ skill_dirs=[skills_dir],
63
+ )
64
+
65
+
66
+ @pytest.fixture
67
+ def installed(legal_extension):
68
+ def _install(*entry_point_values):
69
+ entry_points = [
70
+ _entry_point(f"ext{index}", value)
71
+ for index, value in enumerate(entry_point_values)
72
+ ]
73
+ patcher = patch.object(extensions, "entry_points", return_value=entry_points)
74
+ patcher.start()
75
+ extensions.load_extensions.cache_clear()
76
+ load_builtin_skills.cache_clear()
77
+ return patcher
78
+
79
+ patchers = []
80
+ yield lambda *values: patchers.append(_install(*values))
81
+ for patcher in patchers:
82
+ patcher.stop()
83
+ extensions.load_extensions.cache_clear()
84
+ load_builtin_skills.cache_clear()
85
+
86
+
87
+ def test_no_extensions_keeps_core_agents(installed):
88
+ installed()
89
+ assert "contract-review" in get_agent_metadata()
90
+ assert extensions.get_extension_tool_groups() == {}
91
+
92
+
93
+ def test_extension_agents_and_prompt(installed, legal_extension):
94
+ installed(legal_extension)
95
+ metadata = get_agent_metadata()["nda-reviewer"]
96
+ assert metadata["id"] == "nda-reviewer"
97
+ assert "system_prompt" not in metadata
98
+ assert get_system_prompt("nda-reviewer") == "You review NDAs."
99
+ assert get_system_prompt("unknown-agent") == UNIFIED_SYSTEM_PROMPT
100
+
101
+
102
+ def test_extension_factory_and_tool_groups(installed, legal_extension):
103
+ installed(lambda: legal_extension)
104
+ loader = extensions.get_extension_tool_groups()["clauses"]
105
+ assert loader(ToolContext(chat_id="c1")) == [clause_lookup]
106
+
107
+
108
+ def test_invalid_and_failing_extensions_are_skipped(installed, legal_extension):
109
+ broken = MagicMock()
110
+ broken.name = "broken"
111
+ broken.load.side_effect = ImportError("missing")
112
+ patcher = patch.object(
113
+ extensions,
114
+ "entry_points",
115
+ return_value=[
116
+ broken,
117
+ _entry_point("bad", object()),
118
+ _entry_point("ok", legal_extension),
119
+ ],
120
+ )
121
+ with patcher:
122
+ extensions.load_extensions.cache_clear()
123
+ assert [e.name for e in extensions.load_extensions()] == ["legal"]
124
+ extensions.load_extensions.cache_clear()
125
+
126
+
127
+ def test_extension_skills_are_indexed(installed, legal_extension):
128
+ installed(legal_extension)
129
+ skill = load_builtin_skills()["nda-review"]
130
+ assert skill["description"] == "Review NDAs."
131
+
132
+
133
+ def test_create_app_registers_extension_blueprints(installed, legal_extension):
134
+ installed(legal_extension)
135
+ config = type(
136
+ "TestConfig",
137
+ (),
138
+ {
139
+ "SQLALCHEMY_DATABASE_URI": "sqlite:///:memory:",
140
+ "TESTING": True,
141
+ "GOOGLE_CLIENT_ID": "",
142
+ "GOOGLE_CLIENT_SECRET": "",
143
+ "MICROSOFT_CLIENT_ID": "",
144
+ "MICROSOFT_CLIENT_SECRET": "",
145
+ },
146
+ )
147
+ extra_bp = Blueprint("extra", __name__, url_prefix="/extra")
148
+ app = create_app(config, blueprints=[extra_bp])
149
+ assert "legal_extension" in app.blueprints
150
+ assert "extra" in app.blueprints
151
+ assert app.test_client().get("/legal/ping").get_json() == {"ok": True}
@@ -0,0 +1,3 @@
1
+ from agents_core.agents.agent_factory import create_agent, get_available_agents
2
+
3
+ __all__ = ["create_agent", "get_available_agents"]
@@ -0,0 +1,59 @@
1
+ import os
2
+ from unittest.mock import patch
3
+
4
+ import pytest
5
+
6
+ from agents_core.agents.config import AgentConfig, AgentPhase, AgentType, TaskItem, TaskStatus
7
+
8
+
9
+ def test_task_item_to_dict():
10
+ task = TaskItem(
11
+ id="t1", title="Test Task", description="A description", status="RUNNING"
12
+ )
13
+ assert task.to_dict() == {
14
+ "id": "t1",
15
+ "title": "Test Task",
16
+ "description": "A description",
17
+ "status": "RUNNING",
18
+ "error": None,
19
+ }
20
+
21
+
22
+ @pytest.mark.parametrize(
23
+ "provider, env_var, mocked_key",
24
+ [
25
+ ("google", "GOOGLE_AI_API_KEY", "google_key"),
26
+ ("openai", "OPENAI_API_KEY", "openai_key"),
27
+ ("anthropic", "ANTHROPIC_API_KEY", "anthropic_key"),
28
+ ("groq", "GROQ_API_KEY", "groq_key"),
29
+ ],
30
+ )
31
+ def test_agent_config_from_env(provider, env_var, mocked_key):
32
+ with patch.dict(os.environ, {env_var: mocked_key}):
33
+ # Mock other keys to ensure it picks the right one
34
+ for other_var in [
35
+ "GOOGLE_AI_API_KEY",
36
+ "OPENAI_API_KEY",
37
+ "ANTHROPIC_API_KEY",
38
+ "GROQ_API_KEY",
39
+ ]:
40
+ if other_var != env_var:
41
+ os.environ[other_var] = "wrong_key"
42
+
43
+ config = AgentConfig.from_env(provider=provider, model="test-model")
44
+
45
+ assert config.provider == provider
46
+ assert config.model == "test-model"
47
+ assert config.api_key == mocked_key
48
+
49
+
50
+ def test_agent_config_fallback_google_key():
51
+ with patch.dict(os.environ, {}, clear=True):
52
+ os.environ["GOOGLE_API_KEY"] = "fallback_google_key"
53
+ config = AgentConfig.from_env(provider="google")
54
+ assert config.api_key == "fallback_google_key"
55
+
56
+
57
+ def test_agent_config_unsupported_provider():
58
+ config = AgentConfig.from_env(provider="unsupported")
59
+ assert config.api_key == ""