genxai-framework 0.1.1__tar.gz → 0.1.2__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 (255) hide show
  1. {genxai_framework-0.1.1 → genxai_framework-0.1.2}/PKG-INFO +1 -1
  2. {genxai_framework-0.1.1 → genxai_framework-0.1.2}/genxai/connectors/base.py +3 -3
  3. {genxai_framework-0.1.1 → genxai_framework-0.1.2}/genxai/observability/logging.py +2 -2
  4. {genxai_framework-0.1.1 → genxai_framework-0.1.2}/genxai/security/auth.py +10 -6
  5. {genxai_framework-0.1.1 → genxai_framework-0.1.2}/genxai/security/cost_control.py +6 -6
  6. {genxai_framework-0.1.1 → genxai_framework-0.1.2}/genxai/security/jwt.py +2 -2
  7. {genxai_framework-0.1.1 → genxai_framework-0.1.2}/genxai/security/pii.py +2 -2
  8. {genxai_framework-0.1.1 → genxai_framework-0.1.2}/genxai/triggers/schedule.py +2 -2
  9. {genxai_framework-0.1.1 → genxai_framework-0.1.2}/genxai_framework.egg-info/PKG-INFO +1 -1
  10. {genxai_framework-0.1.1 → genxai_framework-0.1.2}/pyproject.toml +1 -1
  11. {genxai_framework-0.1.1 → genxai_framework-0.1.2}/ARCHITECTURE.md +0 -0
  12. {genxai_framework-0.1.1 → genxai_framework-0.1.2}/CONTRIBUTING.md +0 -0
  13. {genxai_framework-0.1.1 → genxai_framework-0.1.2}/GETTING_STARTED.md +0 -0
  14. {genxai_framework-0.1.1 → genxai_framework-0.1.2}/LICENSE +0 -0
  15. {genxai_framework-0.1.1 → genxai_framework-0.1.2}/MANIFEST.in +0 -0
  16. {genxai_framework-0.1.1 → genxai_framework-0.1.2}/README.md +0 -0
  17. {genxai_framework-0.1.1 → genxai_framework-0.1.2}/REQUIREMENTS.md +0 -0
  18. {genxai_framework-0.1.1 → genxai_framework-0.1.2}/TOOLS_DESIGN.md +0 -0
  19. {genxai_framework-0.1.1 → genxai_framework-0.1.2}/cli/__init__.py +0 -0
  20. {genxai_framework-0.1.1 → genxai_framework-0.1.2}/cli/commands/__init__.py +0 -0
  21. {genxai_framework-0.1.1 → genxai_framework-0.1.2}/cli/commands/approval.py +0 -0
  22. {genxai_framework-0.1.1 → genxai_framework-0.1.2}/cli/commands/audit.py +0 -0
  23. {genxai_framework-0.1.1 → genxai_framework-0.1.2}/cli/commands/connector.py +0 -0
  24. {genxai_framework-0.1.1 → genxai_framework-0.1.2}/cli/commands/metrics.py +0 -0
  25. {genxai_framework-0.1.1 → genxai_framework-0.1.2}/cli/commands/tool.py +0 -0
  26. {genxai_framework-0.1.1 → genxai_framework-0.1.2}/cli/commands/workflow.py +0 -0
  27. {genxai_framework-0.1.1 → genxai_framework-0.1.2}/cli/main.py +0 -0
  28. {genxai_framework-0.1.1 → genxai_framework-0.1.2}/docs/AGENT_TOOL_INTEGRATION.md +0 -0
  29. {genxai_framework-0.1.1 → genxai_framework-0.1.2}/docs/API.md +0 -0
  30. {genxai_framework-0.1.1 → genxai_framework-0.1.2}/docs/API_REFERENCE.md +0 -0
  31. {genxai_framework-0.1.1 → genxai_framework-0.1.2}/docs/AUDIT_LOGGING.md +0 -0
  32. {genxai_framework-0.1.1 → genxai_framework-0.1.2}/docs/BENCHMARKING.md +0 -0
  33. {genxai_framework-0.1.1 → genxai_framework-0.1.2}/docs/CLI_USAGE.md +0 -0
  34. {genxai_framework-0.1.1 → genxai_framework-0.1.2}/docs/COLLABORATION_PROTOCOLS.md +0 -0
  35. {genxai_framework-0.1.1 → genxai_framework-0.1.2}/docs/COMPETITIVE_MATRIX.md +0 -0
  36. {genxai_framework-0.1.1 → genxai_framework-0.1.2}/docs/CONNECTOR_SDK.md +0 -0
  37. {genxai_framework-0.1.1 → genxai_framework-0.1.2}/docs/DOCS_INDEX.md +0 -0
  38. {genxai_framework-0.1.1 → genxai_framework-0.1.2}/docs/FLOWS.md +0 -0
  39. {genxai_framework-0.1.1 → genxai_framework-0.1.2}/docs/GOVERNANCE_POLICY.md +0 -0
  40. {genxai_framework-0.1.1 → genxai_framework-0.1.2}/docs/GRAPH_VISUALIZATION.md +0 -0
  41. {genxai_framework-0.1.1 → genxai_framework-0.1.2}/docs/LLM_INTEGRATION.md +0 -0
  42. {genxai_framework-0.1.1 → genxai_framework-0.1.2}/docs/MCP_SETUP.md +0 -0
  43. {genxai_framework-0.1.1 → genxai_framework-0.1.2}/docs/PUBLISHING.md +0 -0
  44. {genxai_framework-0.1.1 → genxai_framework-0.1.2}/docs/QUICK_START_TUTORIAL.md +0 -0
  45. {genxai_framework-0.1.1 → genxai_framework-0.1.2}/docs/RELEASE_CHECKLIST.md +0 -0
  46. {genxai_framework-0.1.1 → genxai_framework-0.1.2}/docs/SECURITY_CHECKLIST.md +0 -0
  47. {genxai_framework-0.1.1 → genxai_framework-0.1.2}/docs/TOOL_CREATION.md +0 -0
  48. {genxai_framework-0.1.1 → genxai_framework-0.1.2}/docs/WORKER_QUEUE_ENGINE.md +0 -0
  49. {genxai_framework-0.1.1 → genxai_framework-0.1.2}/docs/WORKFLOW_BEST_PRACTICES.md +0 -0
  50. {genxai_framework-0.1.1 → genxai_framework-0.1.2}/docs/WORKFLOW_EXECUTION.md +0 -0
  51. {genxai_framework-0.1.1 → genxai_framework-0.1.2}/examples/code/agent_presets_user_proxy_example.py +0 -0
  52. {genxai_framework-0.1.1 → genxai_framework-0.1.2}/examples/code/agent_registry_example.py +0 -0
  53. {genxai_framework-0.1.1 → genxai_framework-0.1.2}/examples/code/agent_with_memory_tools_example.py +0 -0
  54. {genxai_framework-0.1.1 → genxai_framework-0.1.2}/examples/code/agent_with_tools_example.py +0 -0
  55. {genxai_framework-0.1.1 → genxai_framework-0.1.2}/examples/code/end_to_end_example.py +0 -0
  56. {genxai_framework-0.1.1 → genxai_framework-0.1.2}/examples/code/flow_auction_example.py +0 -0
  57. {genxai_framework-0.1.1 → genxai_framework-0.1.2}/examples/code/flow_conditional_example.py +0 -0
  58. {genxai_framework-0.1.1 → genxai_framework-0.1.2}/examples/code/flow_coordinator_worker_example.py +0 -0
  59. {genxai_framework-0.1.1 → genxai_framework-0.1.2}/examples/code/flow_critic_review_example.py +0 -0
  60. {genxai_framework-0.1.1 → genxai_framework-0.1.2}/examples/code/flow_ensemble_voting_example.py +0 -0
  61. {genxai_framework-0.1.1 → genxai_framework-0.1.2}/examples/code/flow_loop_example.py +0 -0
  62. {genxai_framework-0.1.1 → genxai_framework-0.1.2}/examples/code/flow_map_reduce_example.py +0 -0
  63. {genxai_framework-0.1.1 → genxai_framework-0.1.2}/examples/code/flow_p2p_example.py +0 -0
  64. {genxai_framework-0.1.1 → genxai_framework-0.1.2}/examples/code/flow_parallel_example.py +0 -0
  65. {genxai_framework-0.1.1 → genxai_framework-0.1.2}/examples/code/flow_round_robin_example.py +0 -0
  66. {genxai_framework-0.1.1 → genxai_framework-0.1.2}/examples/code/flow_router_example.py +0 -0
  67. {genxai_framework-0.1.1 → genxai_framework-0.1.2}/examples/code/flow_selector_example.py +0 -0
  68. {genxai_framework-0.1.1 → genxai_framework-0.1.2}/examples/code/flow_subworkflow_example.py +0 -0
  69. {genxai_framework-0.1.1 → genxai_framework-0.1.2}/examples/code/flow_user_proxy_graph_example.py +0 -0
  70. {genxai_framework-0.1.1 → genxai_framework-0.1.2}/examples/code/function_calling_tools_example.py +0 -0
  71. {genxai_framework-0.1.1 → genxai_framework-0.1.2}/examples/code/graph_visualization_example.py +0 -0
  72. {genxai_framework-0.1.1 → genxai_framework-0.1.2}/examples/code/llm_agent_example.py +0 -0
  73. {genxai_framework-0.1.1 → genxai_framework-0.1.2}/examples/code/memory_system_example.py +0 -0
  74. {genxai_framework-0.1.1 → genxai_framework-0.1.2}/examples/code/routed_llm_provider_example.py +0 -0
  75. {genxai_framework-0.1.1 → genxai_framework-0.1.2}/examples/code/simple_workflow.py +0 -0
  76. {genxai_framework-0.1.1 → genxai_framework-0.1.2}/examples/code/testable_workflow.py +0 -0
  77. {genxai_framework-0.1.1 → genxai_framework-0.1.2}/examples/code/tool_execution_example.py +0 -0
  78. {genxai_framework-0.1.1 → genxai_framework-0.1.2}/examples/code/tool_registry_example.py +0 -0
  79. {genxai_framework-0.1.1 → genxai_framework-0.1.2}/examples/code/workflow_engine_example.py +0 -0
  80. {genxai_framework-0.1.1 → genxai_framework-0.1.2}/examples/graph_visualization_demo.py +0 -0
  81. {genxai_framework-0.1.1 → genxai_framework-0.1.2}/examples/patterns/01_sequential_pattern.py +0 -0
  82. {genxai_framework-0.1.1 → genxai_framework-0.1.2}/examples/patterns/02_conditional_branching.py +0 -0
  83. {genxai_framework-0.1.1 → genxai_framework-0.1.2}/examples/patterns/03_parallel_execution.py +0 -0
  84. {genxai_framework-0.1.1 → genxai_framework-0.1.2}/examples/patterns/04_coordinator_delegator_worker.py +0 -0
  85. {genxai_framework-0.1.1 → genxai_framework-0.1.2}/examples/patterns/05_cyclic_iterative.py +0 -0
  86. {genxai_framework-0.1.1 → genxai_framework-0.1.2}/examples/patterns/06_peer_to_peer.py +0 -0
  87. {genxai_framework-0.1.1 → genxai_framework-0.1.2}/genxai/__init__.py +0 -0
  88. {genxai_framework-0.1.1 → genxai_framework-0.1.2}/genxai/agents/__init__.py +0 -0
  89. {genxai_framework-0.1.1 → genxai_framework-0.1.2}/genxai/agents/presets.py +0 -0
  90. {genxai_framework-0.1.1 → genxai_framework-0.1.2}/genxai/api/__init__.py +0 -0
  91. {genxai_framework-0.1.1 → genxai_framework-0.1.2}/genxai/api/app.py +0 -0
  92. {genxai_framework-0.1.1 → genxai_framework-0.1.2}/genxai/config/__init__.py +0 -0
  93. {genxai_framework-0.1.1 → genxai_framework-0.1.2}/genxai/config/settings.py +0 -0
  94. {genxai_framework-0.1.1 → genxai_framework-0.1.2}/genxai/connectors/__init__.py +0 -0
  95. {genxai_framework-0.1.1 → genxai_framework-0.1.2}/genxai/connectors/config_store.py +0 -0
  96. {genxai_framework-0.1.1 → genxai_framework-0.1.2}/genxai/connectors/github.py +0 -0
  97. {genxai_framework-0.1.1 → genxai_framework-0.1.2}/genxai/connectors/google_workspace.py +0 -0
  98. {genxai_framework-0.1.1 → genxai_framework-0.1.2}/genxai/connectors/jira.py +0 -0
  99. {genxai_framework-0.1.1 → genxai_framework-0.1.2}/genxai/connectors/kafka.py +0 -0
  100. {genxai_framework-0.1.1 → genxai_framework-0.1.2}/genxai/connectors/notion.py +0 -0
  101. {genxai_framework-0.1.1 → genxai_framework-0.1.2}/genxai/connectors/postgres_cdc.py +0 -0
  102. {genxai_framework-0.1.1 → genxai_framework-0.1.2}/genxai/connectors/registry.py +0 -0
  103. {genxai_framework-0.1.1 → genxai_framework-0.1.2}/genxai/connectors/slack.py +0 -0
  104. {genxai_framework-0.1.1 → genxai_framework-0.1.2}/genxai/connectors/sqs.py +0 -0
  105. {genxai_framework-0.1.1 → genxai_framework-0.1.2}/genxai/connectors/webhook.py +0 -0
  106. {genxai_framework-0.1.1 → genxai_framework-0.1.2}/genxai/core/__init__.py +0 -0
  107. {genxai_framework-0.1.1 → genxai_framework-0.1.2}/genxai/core/agent/__init__.py +0 -0
  108. {genxai_framework-0.1.1 → genxai_framework-0.1.2}/genxai/core/agent/base.py +0 -0
  109. {genxai_framework-0.1.1 → genxai_framework-0.1.2}/genxai/core/agent/config_io.py +0 -0
  110. {genxai_framework-0.1.1 → genxai_framework-0.1.2}/genxai/core/agent/registry.py +0 -0
  111. {genxai_framework-0.1.1 → genxai_framework-0.1.2}/genxai/core/agent/runtime.py +0 -0
  112. {genxai_framework-0.1.1 → genxai_framework-0.1.2}/genxai/core/communication/__init__.py +0 -0
  113. {genxai_framework-0.1.1 → genxai_framework-0.1.2}/genxai/core/communication/collaboration.py +0 -0
  114. {genxai_framework-0.1.1 → genxai_framework-0.1.2}/genxai/core/communication/message_bus.py +0 -0
  115. {genxai_framework-0.1.1 → genxai_framework-0.1.2}/genxai/core/communication/protocols.py +0 -0
  116. {genxai_framework-0.1.1 → genxai_framework-0.1.2}/genxai/core/execution/__init__.py +0 -0
  117. {genxai_framework-0.1.1 → genxai_framework-0.1.2}/genxai/core/execution/metadata.py +0 -0
  118. {genxai_framework-0.1.1 → genxai_framework-0.1.2}/genxai/core/execution/queue.py +0 -0
  119. {genxai_framework-0.1.1 → genxai_framework-0.1.2}/genxai/core/graph/__init__.py +0 -0
  120. {genxai_framework-0.1.1 → genxai_framework-0.1.2}/genxai/core/graph/checkpoints.py +0 -0
  121. {genxai_framework-0.1.1 → genxai_framework-0.1.2}/genxai/core/graph/edges.py +0 -0
  122. {genxai_framework-0.1.1 → genxai_framework-0.1.2}/genxai/core/graph/engine.py +0 -0
  123. {genxai_framework-0.1.1 → genxai_framework-0.1.2}/genxai/core/graph/executor.py +0 -0
  124. {genxai_framework-0.1.1 → genxai_framework-0.1.2}/genxai/core/graph/nodes.py +0 -0
  125. {genxai_framework-0.1.1 → genxai_framework-0.1.2}/genxai/core/graph/trigger_runner.py +0 -0
  126. {genxai_framework-0.1.1 → genxai_framework-0.1.2}/genxai/core/graph/workflow_io.py +0 -0
  127. {genxai_framework-0.1.1 → genxai_framework-0.1.2}/genxai/core/memory/__init__.py +0 -0
  128. {genxai_framework-0.1.1 → genxai_framework-0.1.2}/genxai/core/memory/base.py +0 -0
  129. {genxai_framework-0.1.1 → genxai_framework-0.1.2}/genxai/core/memory/embedding.py +0 -0
  130. {genxai_framework-0.1.1 → genxai_framework-0.1.2}/genxai/core/memory/episodic.py +0 -0
  131. {genxai_framework-0.1.1 → genxai_framework-0.1.2}/genxai/core/memory/long_term.py +0 -0
  132. {genxai_framework-0.1.1 → genxai_framework-0.1.2}/genxai/core/memory/manager.py +0 -0
  133. {genxai_framework-0.1.1 → genxai_framework-0.1.2}/genxai/core/memory/persistence.py +0 -0
  134. {genxai_framework-0.1.1 → genxai_framework-0.1.2}/genxai/core/memory/procedural.py +0 -0
  135. {genxai_framework-0.1.1 → genxai_framework-0.1.2}/genxai/core/memory/semantic.py +0 -0
  136. {genxai_framework-0.1.1 → genxai_framework-0.1.2}/genxai/core/memory/shared.py +0 -0
  137. {genxai_framework-0.1.1 → genxai_framework-0.1.2}/genxai/core/memory/short_term.py +0 -0
  138. {genxai_framework-0.1.1 → genxai_framework-0.1.2}/genxai/core/memory/vector_store.py +0 -0
  139. {genxai_framework-0.1.1 → genxai_framework-0.1.2}/genxai/core/memory/working.py +0 -0
  140. {genxai_framework-0.1.1 → genxai_framework-0.1.2}/genxai/core/state/__init__.py +0 -0
  141. {genxai_framework-0.1.1 → genxai_framework-0.1.2}/genxai/core/state/manager.py +0 -0
  142. {genxai_framework-0.1.1 → genxai_framework-0.1.2}/genxai/core/state/schema.py +0 -0
  143. {genxai_framework-0.1.1 → genxai_framework-0.1.2}/genxai/flows/__init__.py +0 -0
  144. {genxai_framework-0.1.1 → genxai_framework-0.1.2}/genxai/flows/auction.py +0 -0
  145. {genxai_framework-0.1.1 → genxai_framework-0.1.2}/genxai/flows/base.py +0 -0
  146. {genxai_framework-0.1.1 → genxai_framework-0.1.2}/genxai/flows/conditional.py +0 -0
  147. {genxai_framework-0.1.1 → genxai_framework-0.1.2}/genxai/flows/coordinator_worker.py +0 -0
  148. {genxai_framework-0.1.1 → genxai_framework-0.1.2}/genxai/flows/critic_review.py +0 -0
  149. {genxai_framework-0.1.1 → genxai_framework-0.1.2}/genxai/flows/ensemble_voting.py +0 -0
  150. {genxai_framework-0.1.1 → genxai_framework-0.1.2}/genxai/flows/loop.py +0 -0
  151. {genxai_framework-0.1.1 → genxai_framework-0.1.2}/genxai/flows/map_reduce.py +0 -0
  152. {genxai_framework-0.1.1 → genxai_framework-0.1.2}/genxai/flows/p2p.py +0 -0
  153. {genxai_framework-0.1.1 → genxai_framework-0.1.2}/genxai/flows/parallel.py +0 -0
  154. {genxai_framework-0.1.1 → genxai_framework-0.1.2}/genxai/flows/round_robin.py +0 -0
  155. {genxai_framework-0.1.1 → genxai_framework-0.1.2}/genxai/flows/router.py +0 -0
  156. {genxai_framework-0.1.1 → genxai_framework-0.1.2}/genxai/flows/selector.py +0 -0
  157. {genxai_framework-0.1.1 → genxai_framework-0.1.2}/genxai/flows/subworkflow.py +0 -0
  158. {genxai_framework-0.1.1 → genxai_framework-0.1.2}/genxai/llm/__init__.py +0 -0
  159. {genxai_framework-0.1.1 → genxai_framework-0.1.2}/genxai/llm/base.py +0 -0
  160. {genxai_framework-0.1.1 → genxai_framework-0.1.2}/genxai/llm/factory.py +0 -0
  161. {genxai_framework-0.1.1 → genxai_framework-0.1.2}/genxai/llm/providers/__init__.py +0 -0
  162. {genxai_framework-0.1.1 → genxai_framework-0.1.2}/genxai/llm/providers/anthropic.py +0 -0
  163. {genxai_framework-0.1.1 → genxai_framework-0.1.2}/genxai/llm/providers/cohere.py +0 -0
  164. {genxai_framework-0.1.1 → genxai_framework-0.1.2}/genxai/llm/providers/google.py +0 -0
  165. {genxai_framework-0.1.1 → genxai_framework-0.1.2}/genxai/llm/providers/ollama.py +0 -0
  166. {genxai_framework-0.1.1 → genxai_framework-0.1.2}/genxai/llm/providers/openai.py +0 -0
  167. {genxai_framework-0.1.1 → genxai_framework-0.1.2}/genxai/llm/routing.py +0 -0
  168. {genxai_framework-0.1.1 → genxai_framework-0.1.2}/genxai/observability/__init__.py +0 -0
  169. {genxai_framework-0.1.1 → genxai_framework-0.1.2}/genxai/observability/metrics.py +0 -0
  170. {genxai_framework-0.1.1 → genxai_framework-0.1.2}/genxai/observability/tracing.py +0 -0
  171. {genxai_framework-0.1.1 → genxai_framework-0.1.2}/genxai/performance/__init__.py +0 -0
  172. {genxai_framework-0.1.1 → genxai_framework-0.1.2}/genxai/performance/cache.py +0 -0
  173. {genxai_framework-0.1.1 → genxai_framework-0.1.2}/genxai/performance/pooling.py +0 -0
  174. {genxai_framework-0.1.1 → genxai_framework-0.1.2}/genxai/security/audit.py +0 -0
  175. {genxai_framework-0.1.1 → genxai_framework-0.1.2}/genxai/security/default_policies.py +0 -0
  176. {genxai_framework-0.1.1 → genxai_framework-0.1.2}/genxai/security/oauth.py +0 -0
  177. {genxai_framework-0.1.1 → genxai_framework-0.1.2}/genxai/security/policy_engine.py +0 -0
  178. {genxai_framework-0.1.1 → genxai_framework-0.1.2}/genxai/security/rate_limit.py +0 -0
  179. {genxai_framework-0.1.1 → genxai_framework-0.1.2}/genxai/security/rbac.py +0 -0
  180. {genxai_framework-0.1.1 → genxai_framework-0.1.2}/genxai/security/validation.py +0 -0
  181. {genxai_framework-0.1.1 → genxai_framework-0.1.2}/genxai/tools/__init__.py +0 -0
  182. {genxai_framework-0.1.1 → genxai_framework-0.1.2}/genxai/tools/base.py +0 -0
  183. {genxai_framework-0.1.1 → genxai_framework-0.1.2}/genxai/tools/builtin/__init__.py +0 -0
  184. {genxai_framework-0.1.1 → genxai_framework-0.1.2}/genxai/tools/builtin/communication/__init__.py +0 -0
  185. {genxai_framework-0.1.1 → genxai_framework-0.1.2}/genxai/tools/builtin/communication/email_sender.py +0 -0
  186. {genxai_framework-0.1.1 → genxai_framework-0.1.2}/genxai/tools/builtin/communication/human_input.py +0 -0
  187. {genxai_framework-0.1.1 → genxai_framework-0.1.2}/genxai/tools/builtin/communication/notification_manager.py +0 -0
  188. {genxai_framework-0.1.1 → genxai_framework-0.1.2}/genxai/tools/builtin/communication/slack_notifier.py +0 -0
  189. {genxai_framework-0.1.1 → genxai_framework-0.1.2}/genxai/tools/builtin/communication/sms_sender.py +0 -0
  190. {genxai_framework-0.1.1 → genxai_framework-0.1.2}/genxai/tools/builtin/communication/webhook_caller.py +0 -0
  191. {genxai_framework-0.1.1 → genxai_framework-0.1.2}/genxai/tools/builtin/computation/__init__.py +0 -0
  192. {genxai_framework-0.1.1 → genxai_framework-0.1.2}/genxai/tools/builtin/computation/calculator.py +0 -0
  193. {genxai_framework-0.1.1 → genxai_framework-0.1.2}/genxai/tools/builtin/computation/code_executor.py +0 -0
  194. {genxai_framework-0.1.1 → genxai_framework-0.1.2}/genxai/tools/builtin/computation/data_validator.py +0 -0
  195. {genxai_framework-0.1.1 → genxai_framework-0.1.2}/genxai/tools/builtin/computation/hash_generator.py +0 -0
  196. {genxai_framework-0.1.1 → genxai_framework-0.1.2}/genxai/tools/builtin/computation/regex_matcher.py +0 -0
  197. {genxai_framework-0.1.1 → genxai_framework-0.1.2}/genxai/tools/builtin/data/__init__.py +0 -0
  198. {genxai_framework-0.1.1 → genxai_framework-0.1.2}/genxai/tools/builtin/data/csv_processor.py +0 -0
  199. {genxai_framework-0.1.1 → genxai_framework-0.1.2}/genxai/tools/builtin/data/data_transformer.py +0 -0
  200. {genxai_framework-0.1.1 → genxai_framework-0.1.2}/genxai/tools/builtin/data/json_processor.py +0 -0
  201. {genxai_framework-0.1.1 → genxai_framework-0.1.2}/genxai/tools/builtin/data/text_analyzer.py +0 -0
  202. {genxai_framework-0.1.1 → genxai_framework-0.1.2}/genxai/tools/builtin/data/xml_processor.py +0 -0
  203. {genxai_framework-0.1.1 → genxai_framework-0.1.2}/genxai/tools/builtin/database/__init__.py +0 -0
  204. {genxai_framework-0.1.1 → genxai_framework-0.1.2}/genxai/tools/builtin/database/database_inspector.py +0 -0
  205. {genxai_framework-0.1.1 → genxai_framework-0.1.2}/genxai/tools/builtin/database/mongodb_query.py +0 -0
  206. {genxai_framework-0.1.1 → genxai_framework-0.1.2}/genxai/tools/builtin/database/redis_cache.py +0 -0
  207. {genxai_framework-0.1.1 → genxai_framework-0.1.2}/genxai/tools/builtin/database/sql_query.py +0 -0
  208. {genxai_framework-0.1.1 → genxai_framework-0.1.2}/genxai/tools/builtin/database/vector_search.py +0 -0
  209. {genxai_framework-0.1.1 → genxai_framework-0.1.2}/genxai/tools/builtin/file/__init__.py +0 -0
  210. {genxai_framework-0.1.1 → genxai_framework-0.1.2}/genxai/tools/builtin/file/directory_scanner.py +0 -0
  211. {genxai_framework-0.1.1 → genxai_framework-0.1.2}/genxai/tools/builtin/file/file_compressor.py +0 -0
  212. {genxai_framework-0.1.1 → genxai_framework-0.1.2}/genxai/tools/builtin/file/file_reader.py +0 -0
  213. {genxai_framework-0.1.1 → genxai_framework-0.1.2}/genxai/tools/builtin/file/file_writer.py +0 -0
  214. {genxai_framework-0.1.1 → genxai_framework-0.1.2}/genxai/tools/builtin/file/image_processor.py +0 -0
  215. {genxai_framework-0.1.1 → genxai_framework-0.1.2}/genxai/tools/builtin/file/pdf_parser.py +0 -0
  216. {genxai_framework-0.1.1 → genxai_framework-0.1.2}/genxai/tools/builtin/test/__init__.py +0 -0
  217. {genxai_framework-0.1.1 → genxai_framework-0.1.2}/genxai/tools/builtin/test/async_simulator.py +0 -0
  218. {genxai_framework-0.1.1 → genxai_framework-0.1.2}/genxai/tools/builtin/test/data_transformer.py +0 -0
  219. {genxai_framework-0.1.1 → genxai_framework-0.1.2}/genxai/tools/builtin/test/error_generator.py +0 -0
  220. {genxai_framework-0.1.1 → genxai_framework-0.1.2}/genxai/tools/builtin/test/simple_math.py +0 -0
  221. {genxai_framework-0.1.1 → genxai_framework-0.1.2}/genxai/tools/builtin/test/string_processor.py +0 -0
  222. {genxai_framework-0.1.1 → genxai_framework-0.1.2}/genxai/tools/builtin/web/__init__.py +0 -0
  223. {genxai_framework-0.1.1 → genxai_framework-0.1.2}/genxai/tools/builtin/web/api_caller.py +0 -0
  224. {genxai_framework-0.1.1 → genxai_framework-0.1.2}/genxai/tools/builtin/web/html_parser.py +0 -0
  225. {genxai_framework-0.1.1 → genxai_framework-0.1.2}/genxai/tools/builtin/web/http_client.py +0 -0
  226. {genxai_framework-0.1.1 → genxai_framework-0.1.2}/genxai/tools/builtin/web/url_validator.py +0 -0
  227. {genxai_framework-0.1.1 → genxai_framework-0.1.2}/genxai/tools/builtin/web/web_scraper.py +0 -0
  228. {genxai_framework-0.1.1 → genxai_framework-0.1.2}/genxai/tools/custom/my_test_tool_2.py +0 -0
  229. {genxai_framework-0.1.1 → genxai_framework-0.1.2}/genxai/tools/custom/test-2.py +0 -0
  230. {genxai_framework-0.1.1 → genxai_framework-0.1.2}/genxai/tools/custom/test_tool_ui.py +0 -0
  231. {genxai_framework-0.1.1 → genxai_framework-0.1.2}/genxai/tools/dynamic.py +0 -0
  232. {genxai_framework-0.1.1 → genxai_framework-0.1.2}/genxai/tools/mcp_server.py +0 -0
  233. {genxai_framework-0.1.1 → genxai_framework-0.1.2}/genxai/tools/persistence/__init__.py +0 -0
  234. {genxai_framework-0.1.1 → genxai_framework-0.1.2}/genxai/tools/persistence/models.py +0 -0
  235. {genxai_framework-0.1.1 → genxai_framework-0.1.2}/genxai/tools/persistence/service.py +0 -0
  236. {genxai_framework-0.1.1 → genxai_framework-0.1.2}/genxai/tools/registry.py +0 -0
  237. {genxai_framework-0.1.1 → genxai_framework-0.1.2}/genxai/tools/security/__init__.py +0 -0
  238. {genxai_framework-0.1.1 → genxai_framework-0.1.2}/genxai/tools/security/limits.py +0 -0
  239. {genxai_framework-0.1.1 → genxai_framework-0.1.2}/genxai/tools/security/policy.py +0 -0
  240. {genxai_framework-0.1.1 → genxai_framework-0.1.2}/genxai/tools/security/sandbox.py +0 -0
  241. {genxai_framework-0.1.1 → genxai_framework-0.1.2}/genxai/tools/templates.py +0 -0
  242. {genxai_framework-0.1.1 → genxai_framework-0.1.2}/genxai/triggers/__init__.py +0 -0
  243. {genxai_framework-0.1.1 → genxai_framework-0.1.2}/genxai/triggers/base.py +0 -0
  244. {genxai_framework-0.1.1 → genxai_framework-0.1.2}/genxai/triggers/file_watcher.py +0 -0
  245. {genxai_framework-0.1.1 → genxai_framework-0.1.2}/genxai/triggers/queue.py +0 -0
  246. {genxai_framework-0.1.1 → genxai_framework-0.1.2}/genxai/triggers/registry.py +0 -0
  247. {genxai_framework-0.1.1 → genxai_framework-0.1.2}/genxai/triggers/webhook.py +0 -0
  248. {genxai_framework-0.1.1 → genxai_framework-0.1.2}/genxai/utils/__init__.py +0 -0
  249. {genxai_framework-0.1.1 → genxai_framework-0.1.2}/genxai/utils/tokens.py +0 -0
  250. {genxai_framework-0.1.1 → genxai_framework-0.1.2}/genxai_framework.egg-info/SOURCES.txt +0 -0
  251. {genxai_framework-0.1.1 → genxai_framework-0.1.2}/genxai_framework.egg-info/dependency_links.txt +0 -0
  252. {genxai_framework-0.1.1 → genxai_framework-0.1.2}/genxai_framework.egg-info/entry_points.txt +0 -0
  253. {genxai_framework-0.1.1 → genxai_framework-0.1.2}/genxai_framework.egg-info/requires.txt +0 -0
  254. {genxai_framework-0.1.1 → genxai_framework-0.1.2}/genxai_framework.egg-info/top_level.txt +0 -0
  255. {genxai_framework-0.1.1 → genxai_framework-0.1.2}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: genxai-framework
3
- Version: 0.1.1
3
+ Version: 0.1.2
4
4
  Summary: Advanced Agentic AI Framework with Graph-Based Orchestration
5
5
  Author-email: GenXAI Team <team@genxai.dev>
6
6
  License: MIT
@@ -4,7 +4,7 @@ from __future__ import annotations
4
4
 
5
5
  from abc import ABC, abstractmethod
6
6
  from dataclasses import dataclass, field
7
- from datetime import datetime
7
+ from datetime import datetime, UTC
8
8
  from enum import Enum
9
9
  from typing import Any, Awaitable, Callable, Dict, Optional
10
10
  import asyncio
@@ -29,7 +29,7 @@ class ConnectorEvent:
29
29
 
30
30
  connector_id: str
31
31
  payload: Dict[str, Any]
32
- timestamp: datetime = field(default_factory=datetime.utcnow)
32
+ timestamp: datetime = field(default_factory=lambda: datetime.now(UTC))
33
33
  metadata: Dict[str, Any] = field(default_factory=dict)
34
34
 
35
35
 
@@ -106,7 +106,7 @@ class Connector(ABC):
106
106
  "lifecycle": self.status.value,
107
107
  "last_error": self._last_error,
108
108
  }
109
- self._last_healthcheck = datetime.utcnow().isoformat()
109
+ self._last_healthcheck = datetime.now(UTC).isoformat()
110
110
  return payload
111
111
 
112
112
  async def validate_config(self) -> None:
@@ -4,7 +4,7 @@ import json
4
4
  import logging
5
5
  import sys
6
6
  from contextvars import ContextVar
7
- from datetime import datetime
7
+ from datetime import datetime, UTC
8
8
  from typing import Any, Dict, Optional
9
9
 
10
10
 
@@ -250,7 +250,7 @@ class StructuredLogger:
250
250
  JSON formatted log string
251
251
  """
252
252
  log_entry = {
253
- "timestamp": datetime.utcnow().isoformat(),
253
+ "timestamp": datetime.now(UTC).isoformat(),
254
254
  "level": level,
255
255
  "message": message,
256
256
  "context": {**get_log_context(), **self.context},
@@ -4,7 +4,7 @@ import secrets
4
4
  import hashlib
5
5
  import time
6
6
  from typing import Optional, List, Dict, Any
7
- from datetime import datetime, timedelta
7
+ from datetime import datetime, timedelta, UTC
8
8
  from dataclasses import dataclass
9
9
  import sqlite3
10
10
  import os
@@ -94,7 +94,7 @@ class APIKeyManager:
94
94
  # Calculate expiration
95
95
  expires_at = None
96
96
  if expires_in_days:
97
- expires_at = datetime.utcnow() + timedelta(days=expires_in_days)
97
+ expires_at = datetime.now(UTC) + timedelta(days=expires_in_days)
98
98
 
99
99
  # Store in database
100
100
  conn = sqlite3.connect(self.db_path)
@@ -103,7 +103,7 @@ class APIKeyManager:
103
103
  cursor.execute("""
104
104
  INSERT INTO api_keys (key_id, user_id, name, key_hash, created_at, expires_at)
105
105
  VALUES (?, ?, ?, ?, ?, ?)
106
- """, (key_id, user_id, name, key_hash, datetime.utcnow(), expires_at))
106
+ """, (key_id, user_id, name, key_hash, datetime.now(UTC), expires_at))
107
107
 
108
108
  conn.commit()
109
109
  conn.close()
@@ -144,14 +144,16 @@ class APIKeyManager:
144
144
  # Check expiration
145
145
  if expires_at:
146
146
  expires_dt = datetime.fromisoformat(expires_at)
147
- if datetime.utcnow() > expires_dt:
147
+ if expires_dt.tzinfo is None:
148
+ expires_dt = expires_dt.replace(tzinfo=UTC)
149
+ if datetime.now(UTC) > expires_dt:
148
150
  conn.close()
149
151
  return None
150
152
 
151
153
  # Update last used
152
154
  cursor.execute("""
153
155
  UPDATE api_keys SET last_used = ? WHERE key_id = ?
154
- """, (datetime.utcnow(), key_id))
156
+ """, (datetime.now(UTC), key_id))
155
157
 
156
158
  conn.commit()
157
159
  conn.close()
@@ -257,7 +259,9 @@ class APIKeyManager:
257
259
  expires_in_days = None
258
260
  if expires_at:
259
261
  expires_dt = datetime.fromisoformat(expires_at)
260
- expires_in_days = (expires_dt - datetime.utcnow()).days
262
+ if expires_dt.tzinfo is None:
263
+ expires_dt = expires_dt.replace(tzinfo=UTC)
264
+ expires_in_days = (expires_dt - datetime.now(UTC)).days
261
265
 
262
266
  return self.generate_key(user_id, name, expires_in_days)
263
267
 
@@ -2,7 +2,7 @@
2
2
 
3
3
  import sqlite3
4
4
  from typing import Dict, Any, Optional
5
- from datetime import datetime, timedelta
5
+ from datetime import datetime, timedelta, UTC
6
6
  from dataclasses import dataclass
7
7
  import os
8
8
 
@@ -106,7 +106,7 @@ class TokenUsageTracker:
106
106
  INSERT INTO token_usage
107
107
  (user_id, provider, model, prompt_tokens, completion_tokens, cost, timestamp)
108
108
  VALUES (?, ?, ?, ?, ?, ?, ?)
109
- """, (user_id, provider, model, prompt_tokens, completion_tokens, cost, datetime.utcnow()))
109
+ """, (user_id, provider, model, prompt_tokens, completion_tokens, cost, datetime.now(UTC)))
110
110
 
111
111
  conn.commit()
112
112
  conn.close()
@@ -126,7 +126,7 @@ class TokenUsageTracker:
126
126
  Usage statistics
127
127
  """
128
128
  # Calculate time range
129
- now = datetime.utcnow()
129
+ now = datetime.now(UTC)
130
130
  if period == "day":
131
131
  start_time = now - timedelta(days=1)
132
132
  elif period == "week":
@@ -223,7 +223,7 @@ class BudgetManager:
223
223
  conn = sqlite3.connect(self.db_path)
224
224
  cursor = conn.cursor()
225
225
 
226
- now = datetime.utcnow()
226
+ now = datetime.now(UTC)
227
227
 
228
228
  cursor.execute("""
229
229
  INSERT OR REPLACE INTO budgets (user_id, amount, period, created_at, updated_at)
@@ -447,7 +447,7 @@ class CostAlertManager:
447
447
  # Check if we already sent alert recently (within 1 hour)
448
448
  if last_alert:
449
449
  last_alert_time = datetime.fromisoformat(last_alert)
450
- if datetime.utcnow() - last_alert_time < timedelta(hours=1):
450
+ if datetime.now(UTC) - last_alert_time < timedelta(hours=1):
451
451
  conn.close()
452
452
  return
453
453
 
@@ -462,7 +462,7 @@ class CostAlertManager:
462
462
  # Update last alert time
463
463
  cursor.execute("""
464
464
  UPDATE cost_alerts SET last_alert = ? WHERE user_id = ?
465
- """, (datetime.utcnow(), user_id))
465
+ """, (datetime.now(UTC), user_id))
466
466
 
467
467
  conn.commit()
468
468
 
@@ -2,7 +2,7 @@
2
2
 
3
3
  import jwt
4
4
  import os
5
- from datetime import datetime, timedelta
5
+ from datetime import datetime, timedelta, UTC
6
6
  from typing import Dict, Any, Optional
7
7
  from dataclasses import dataclass
8
8
 
@@ -50,7 +50,7 @@ class JWTManager:
50
50
  Returns:
51
51
  JWT token string
52
52
  """
53
- now = datetime.utcnow()
53
+ now = datetime.now(UTC)
54
54
  exp = now + timedelta(seconds=expires_in)
55
55
 
56
56
  payload = {
@@ -3,7 +3,7 @@
3
3
  import re
4
4
  from typing import List, Dict, Any, Optional
5
5
  from dataclasses import dataclass
6
- from datetime import datetime
6
+ from datetime import datetime, UTC
7
7
 
8
8
 
9
9
  # PII patterns
@@ -254,7 +254,7 @@ class PIIAuditLogger:
254
254
  context: Additional context
255
255
  """
256
256
  log_entry = {
257
- "timestamp": datetime.utcnow().isoformat(),
257
+ "timestamp": datetime.now(UTC).isoformat(),
258
258
  "user_id": user_id,
259
259
  "pii_type": pii_type,
260
260
  "action": action,
@@ -2,7 +2,7 @@
2
2
 
3
3
  from __future__ import annotations
4
4
 
5
- from datetime import datetime
5
+ from datetime import datetime, UTC
6
6
  from typing import Any, Dict, Optional
7
7
  import logging
8
8
 
@@ -52,7 +52,7 @@ class ScheduleTrigger(BaseTrigger):
52
52
  trigger = IntervalTrigger(seconds=self.interval_seconds)
53
53
 
54
54
  async def _emit_wrapper() -> None:
55
- await self.emit(payload={"scheduled_at": datetime.utcnow().isoformat(), **self.payload})
55
+ await self.emit(payload={"scheduled_at": datetime.now(UTC).isoformat(), **self.payload})
56
56
 
57
57
  scheduler.add_job(_emit_wrapper, trigger=trigger)
58
58
  scheduler.start()
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: genxai-framework
3
- Version: 0.1.1
3
+ Version: 0.1.2
4
4
  Summary: Advanced Agentic AI Framework with Graph-Based Orchestration
5
5
  Author-email: GenXAI Team <team@genxai.dev>
6
6
  License: MIT
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "genxai-framework"
7
- version = "0.1.1"
7
+ version = "0.1.2"
8
8
  description = "Advanced Agentic AI Framework with Graph-Based Orchestration"
9
9
  readme = "README.md"
10
10
  requires-python = ">=3.11"