electripy-ai 0.5.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 (292) hide show
  1. electripy_ai-0.5.0/.gitignore +144 -0
  2. electripy_ai-0.5.0/LICENSE +21 -0
  3. electripy_ai-0.5.0/PKG-INFO +593 -0
  4. electripy_ai-0.5.0/README.md +546 -0
  5. electripy_ai-0.5.0/pyproject.toml +158 -0
  6. electripy_ai-0.5.0/src/electripy/__init__.py +18 -0
  7. electripy_ai-0.5.0/src/electripy/ai/__init__.py +49 -0
  8. electripy_ai-0.5.0/src/electripy/ai/agent_collaboration/README.md +48 -0
  9. electripy_ai-0.5.0/src/electripy/ai/agent_collaboration/__init__.py +27 -0
  10. electripy_ai-0.5.0/src/electripy/ai/agent_collaboration/domain.py +56 -0
  11. electripy_ai-0.5.0/src/electripy/ai/agent_collaboration/errors.py +21 -0
  12. electripy_ai-0.5.0/src/electripy/ai/agent_collaboration/ports.py +16 -0
  13. electripy_ai-0.5.0/src/electripy/ai/agent_collaboration/services.py +181 -0
  14. electripy_ai-0.5.0/src/electripy/ai/agent_runtime/__init__.py +20 -0
  15. electripy_ai-0.5.0/src/electripy/ai/agent_runtime/domain.py +36 -0
  16. electripy_ai-0.5.0/src/electripy/ai/agent_runtime/ports.py +15 -0
  17. electripy_ai-0.5.0/src/electripy/ai/agent_runtime/services.py +53 -0
  18. electripy_ai-0.5.0/src/electripy/ai/batch_complete.py +94 -0
  19. electripy_ai-0.5.0/src/electripy/ai/context_assembly/__init__.py +26 -0
  20. electripy_ai-0.5.0/src/electripy/ai/context_assembly/domain.py +54 -0
  21. electripy_ai-0.5.0/src/electripy/ai/context_assembly/errors.py +11 -0
  22. electripy_ai-0.5.0/src/electripy/ai/context_assembly/services.py +71 -0
  23. electripy_ai-0.5.0/src/electripy/ai/conversation_memory/__init__.py +32 -0
  24. electripy_ai-0.5.0/src/electripy/ai/conversation_memory/domain.py +48 -0
  25. electripy_ai-0.5.0/src/electripy/ai/conversation_memory/errors.py +7 -0
  26. electripy_ai-0.5.0/src/electripy/ai/conversation_memory/services.py +157 -0
  27. electripy_ai-0.5.0/src/electripy/ai/cost_ledger.py +121 -0
  28. electripy_ai-0.5.0/src/electripy/ai/eval_assertions/__init__.py +58 -0
  29. electripy_ai-0.5.0/src/electripy/ai/eval_assertions/domain.py +49 -0
  30. electripy_ai-0.5.0/src/electripy/ai/eval_assertions/services.py +233 -0
  31. electripy_ai-0.5.0/src/electripy/ai/evals/__init__.py +138 -0
  32. electripy_ai-0.5.0/src/electripy/ai/evals/adapters.py +340 -0
  33. electripy_ai-0.5.0/src/electripy/ai/evals/domain.py +314 -0
  34. electripy_ai-0.5.0/src/electripy/ai/evals/errors.py +42 -0
  35. electripy_ai-0.5.0/src/electripy/ai/evals/ports.py +159 -0
  36. electripy_ai-0.5.0/src/electripy/ai/evals/scorers.py +446 -0
  37. electripy_ai-0.5.0/src/electripy/ai/evals/services.py +303 -0
  38. electripy_ai-0.5.0/src/electripy/ai/fallback_chain.py +76 -0
  39. electripy_ai-0.5.0/src/electripy/ai/hallucination_guard/__init__.py +12 -0
  40. electripy_ai-0.5.0/src/electripy/ai/hallucination_guard/domain.py +15 -0
  41. electripy_ai-0.5.0/src/electripy/ai/hallucination_guard/services.py +66 -0
  42. electripy_ai-0.5.0/src/electripy/ai/json_repair.py +244 -0
  43. electripy_ai-0.5.0/src/electripy/ai/llm_cache/__init__.py +42 -0
  44. electripy_ai-0.5.0/src/electripy/ai/llm_cache/adapters.py +152 -0
  45. electripy_ai-0.5.0/src/electripy/ai/llm_cache/domain.py +46 -0
  46. electripy_ai-0.5.0/src/electripy/ai/llm_cache/ports.py +50 -0
  47. electripy_ai-0.5.0/src/electripy/ai/llm_cache/services.py +86 -0
  48. electripy_ai-0.5.0/src/electripy/ai/llm_gateway/README.md +382 -0
  49. electripy_ai-0.5.0/src/electripy/ai/llm_gateway/__init__.py +104 -0
  50. electripy_ai-0.5.0/src/electripy/ai/llm_gateway/adapters.py +463 -0
  51. electripy_ai-0.5.0/src/electripy/ai/llm_gateway/config.py +95 -0
  52. electripy_ai-0.5.0/src/electripy/ai/llm_gateway/domain.py +151 -0
  53. electripy_ai-0.5.0/src/electripy/ai/llm_gateway/errors.py +193 -0
  54. electripy_ai-0.5.0/src/electripy/ai/llm_gateway/ports.py +102 -0
  55. electripy_ai-0.5.0/src/electripy/ai/llm_gateway/provider_adapters.py +271 -0
  56. electripy_ai-0.5.0/src/electripy/ai/llm_gateway/providers.py +195 -0
  57. electripy_ai-0.5.0/src/electripy/ai/llm_gateway/services.py +491 -0
  58. electripy_ai-0.5.0/src/electripy/ai/mcp/__init__.py +114 -0
  59. electripy_ai-0.5.0/src/electripy/ai/mcp/adapters.py +280 -0
  60. electripy_ai-0.5.0/src/electripy/ai/mcp/domain.py +333 -0
  61. electripy_ai-0.5.0/src/electripy/ai/mcp/errors.py +68 -0
  62. electripy_ai-0.5.0/src/electripy/ai/mcp/ports.py +119 -0
  63. electripy_ai-0.5.0/src/electripy/ai/mcp/services.py +530 -0
  64. electripy_ai-0.5.0/src/electripy/ai/model_router/__init__.py +26 -0
  65. electripy_ai-0.5.0/src/electripy/ai/model_router/domain.py +68 -0
  66. electripy_ai-0.5.0/src/electripy/ai/model_router/errors.py +11 -0
  67. electripy_ai-0.5.0/src/electripy/ai/model_router/services.py +104 -0
  68. electripy_ai-0.5.0/src/electripy/ai/policy/__init__.py +97 -0
  69. electripy_ai-0.5.0/src/electripy/ai/policy/adapters.py +210 -0
  70. electripy_ai-0.5.0/src/electripy/ai/policy/domain.py +381 -0
  71. electripy_ai-0.5.0/src/electripy/ai/policy/errors.py +33 -0
  72. electripy_ai-0.5.0/src/electripy/ai/policy/ports.py +96 -0
  73. electripy_ai-0.5.0/src/electripy/ai/policy/services.py +269 -0
  74. electripy_ai-0.5.0/src/electripy/ai/policy_gateway/README.md +47 -0
  75. electripy_ai-0.5.0/src/electripy/ai/policy_gateway/__init__.py +56 -0
  76. electripy_ai-0.5.0/src/electripy/ai/policy_gateway/adapters.py +78 -0
  77. electripy_ai-0.5.0/src/electripy/ai/policy_gateway/domain.py +124 -0
  78. electripy_ai-0.5.0/src/electripy/ai/policy_gateway/errors.py +21 -0
  79. electripy_ai-0.5.0/src/electripy/ai/policy_gateway/integrations.py +75 -0
  80. electripy_ai-0.5.0/src/electripy/ai/policy_gateway/ports.py +30 -0
  81. electripy_ai-0.5.0/src/electripy/ai/policy_gateway/services.py +256 -0
  82. electripy_ai-0.5.0/src/electripy/ai/prompt_engine/__init__.py +33 -0
  83. electripy_ai-0.5.0/src/electripy/ai/prompt_engine/domain.py +61 -0
  84. electripy_ai-0.5.0/src/electripy/ai/prompt_engine/errors.py +19 -0
  85. electripy_ai-0.5.0/src/electripy/ai/prompt_engine/services.py +118 -0
  86. electripy_ai-0.5.0/src/electripy/ai/prompt_fingerprint.py +67 -0
  87. electripy_ai-0.5.0/src/electripy/ai/rag/README.md +168 -0
  88. electripy_ai-0.5.0/src/electripy/ai/rag/__init__.py +92 -0
  89. electripy_ai-0.5.0/src/electripy/ai/rag/adapters/openai_embeddings_adapter.py +115 -0
  90. electripy_ai-0.5.0/src/electripy/ai/rag/adapters/pgvector_adapter.py +213 -0
  91. electripy_ai-0.5.0/src/electripy/ai/rag/config.py +72 -0
  92. electripy_ai-0.5.0/src/electripy/ai/rag/domain.py +223 -0
  93. electripy_ai-0.5.0/src/electripy/ai/rag/errors.py +69 -0
  94. electripy_ai-0.5.0/src/electripy/ai/rag/evaluation.py +130 -0
  95. electripy_ai-0.5.0/src/electripy/ai/rag/ports.py +123 -0
  96. electripy_ai-0.5.0/src/electripy/ai/rag/services.py +372 -0
  97. electripy_ai-0.5.0/src/electripy/ai/rag_eval_runner/README.md +129 -0
  98. electripy_ai-0.5.0/src/electripy/ai/rag_eval_runner/__init__.py +25 -0
  99. electripy_ai-0.5.0/src/electripy/ai/rag_eval_runner/adapters.py +122 -0
  100. electripy_ai-0.5.0/src/electripy/ai/rag_eval_runner/domain.py +187 -0
  101. electripy_ai-0.5.0/src/electripy/ai/rag_eval_runner/errors.py +19 -0
  102. electripy_ai-0.5.0/src/electripy/ai/rag_eval_runner/services.py +602 -0
  103. electripy_ai-0.5.0/src/electripy/ai/rag_quality/__init__.py +22 -0
  104. electripy_ai-0.5.0/src/electripy/ai/rag_quality/domain.py +23 -0
  105. electripy_ai-0.5.0/src/electripy/ai/rag_quality/services.py +79 -0
  106. electripy_ai-0.5.0/src/electripy/ai/realtime/__init__.py +124 -0
  107. electripy_ai-0.5.0/src/electripy/ai/realtime/adapters.py +164 -0
  108. electripy_ai-0.5.0/src/electripy/ai/realtime/domain.py +321 -0
  109. electripy_ai-0.5.0/src/electripy/ai/realtime/errors.py +35 -0
  110. electripy_ai-0.5.0/src/electripy/ai/realtime/ports.py +97 -0
  111. electripy_ai-0.5.0/src/electripy/ai/realtime/services.py +476 -0
  112. electripy_ai-0.5.0/src/electripy/ai/replay_tape/__init__.py +46 -0
  113. electripy_ai-0.5.0/src/electripy/ai/replay_tape/domain.py +54 -0
  114. electripy_ai-0.5.0/src/electripy/ai/replay_tape/services.py +223 -0
  115. electripy_ai-0.5.0/src/electripy/ai/response_robustness/__init__.py +19 -0
  116. electripy_ai-0.5.0/src/electripy/ai/response_robustness/domain.py +14 -0
  117. electripy_ai-0.5.0/src/electripy/ai/response_robustness/services.py +68 -0
  118. electripy_ai-0.5.0/src/electripy/ai/sensitive_data_scanner.py +180 -0
  119. electripy_ai-0.5.0/src/electripy/ai/skills/__init__.py +126 -0
  120. electripy_ai-0.5.0/src/electripy/ai/skills/adapters.py +535 -0
  121. electripy_ai-0.5.0/src/electripy/ai/skills/domain.py +389 -0
  122. electripy_ai-0.5.0/src/electripy/ai/skills/errors.py +43 -0
  123. electripy_ai-0.5.0/src/electripy/ai/skills/ports.py +173 -0
  124. electripy_ai-0.5.0/src/electripy/ai/skills/services.py +323 -0
  125. electripy_ai-0.5.0/src/electripy/ai/streaming_chat/__init__.py +31 -0
  126. electripy_ai-0.5.0/src/electripy/ai/streaming_chat/domain.py +22 -0
  127. electripy_ai-0.5.0/src/electripy/ai/streaming_chat/ports.py +28 -0
  128. electripy_ai-0.5.0/src/electripy/ai/streaming_chat/services.py +62 -0
  129. electripy_ai-0.5.0/src/electripy/ai/structured_output/__init__.py +69 -0
  130. electripy_ai-0.5.0/src/electripy/ai/structured_output/domain.py +57 -0
  131. electripy_ai-0.5.0/src/electripy/ai/structured_output/errors.py +49 -0
  132. electripy_ai-0.5.0/src/electripy/ai/structured_output/ports.py +51 -0
  133. electripy_ai-0.5.0/src/electripy/ai/structured_output/services.py +201 -0
  134. electripy_ai-0.5.0/src/electripy/ai/token_budget/__init__.py +35 -0
  135. electripy_ai-0.5.0/src/electripy/ai/token_budget/domain.py +44 -0
  136. electripy_ai-0.5.0/src/electripy/ai/token_budget/errors.py +16 -0
  137. electripy_ai-0.5.0/src/electripy/ai/token_budget/ports.py +17 -0
  138. electripy_ai-0.5.0/src/electripy/ai/token_budget/services.py +156 -0
  139. electripy_ai-0.5.0/src/electripy/ai/tool_registry/__init__.py +33 -0
  140. electripy_ai-0.5.0/src/electripy/ai/tool_registry/domain.py +94 -0
  141. electripy_ai-0.5.0/src/electripy/ai/tool_registry/errors.py +16 -0
  142. electripy_ai-0.5.0/src/electripy/ai/tool_registry/services.py +218 -0
  143. electripy_ai-0.5.0/src/electripy/ai/workload_router/__init__.py +108 -0
  144. electripy_ai-0.5.0/src/electripy/ai/workload_router/adapters.py +82 -0
  145. electripy_ai-0.5.0/src/electripy/ai/workload_router/domain.py +362 -0
  146. electripy_ai-0.5.0/src/electripy/ai/workload_router/errors.py +41 -0
  147. electripy_ai-0.5.0/src/electripy/ai/workload_router/ports.py +84 -0
  148. electripy_ai-0.5.0/src/electripy/ai/workload_router/services.py +412 -0
  149. electripy_ai-0.5.0/src/electripy/cli/__init__.py +5 -0
  150. electripy_ai-0.5.0/src/electripy/cli/app.py +125 -0
  151. electripy_ai-0.5.0/src/electripy/cli/demo.py +218 -0
  152. electripy_ai-0.5.0/src/electripy/cli/rag.py +151 -0
  153. electripy_ai-0.5.0/src/electripy/concurrency/__init__.py +18 -0
  154. electripy_ai-0.5.0/src/electripy/concurrency/circuit_breaker.py +201 -0
  155. electripy_ai-0.5.0/src/electripy/concurrency/http_resilience/README.md +182 -0
  156. electripy_ai-0.5.0/src/electripy/concurrency/http_resilience/__init__.py +56 -0
  157. electripy_ai-0.5.0/src/electripy/concurrency/http_resilience/adapters.py +209 -0
  158. electripy_ai-0.5.0/src/electripy/concurrency/http_resilience/circuit_breaker.py +170 -0
  159. electripy_ai-0.5.0/src/electripy/concurrency/http_resilience/domain.py +280 -0
  160. electripy_ai-0.5.0/src/electripy/concurrency/http_resilience/ports.py +117 -0
  161. electripy_ai-0.5.0/src/electripy/concurrency/http_resilience/services.py +402 -0
  162. electripy_ai-0.5.0/src/electripy/concurrency/rate_limiter.py +81 -0
  163. electripy_ai-0.5.0/src/electripy/concurrency/retry.py +112 -0
  164. electripy_ai-0.5.0/src/electripy/concurrency/task_groups.py +70 -0
  165. electripy_ai-0.5.0/src/electripy/core/__init__.py +17 -0
  166. electripy_ai-0.5.0/src/electripy/core/config.py +44 -0
  167. electripy_ai-0.5.0/src/electripy/core/errors.py +39 -0
  168. electripy_ai-0.5.0/src/electripy/core/logging.py +39 -0
  169. electripy_ai-0.5.0/src/electripy/core/typing.py +7 -0
  170. electripy_ai-0.5.0/src/electripy/io/__init__.py +9 -0
  171. electripy_ai-0.5.0/src/electripy/io/jsonl.py +78 -0
  172. electripy_ai-0.5.0/src/electripy/observability/__init__.py +12 -0
  173. electripy_ai-0.5.0/src/electripy/observability/ai_telemetry/README.md +184 -0
  174. electripy_ai-0.5.0/src/electripy/observability/ai_telemetry/__init__.py +59 -0
  175. electripy_ai-0.5.0/src/electripy/observability/ai_telemetry/adapters.py +527 -0
  176. electripy_ai-0.5.0/src/electripy/observability/ai_telemetry/domain.py +222 -0
  177. electripy_ai-0.5.0/src/electripy/observability/ai_telemetry/ports.py +140 -0
  178. electripy_ai-0.5.0/src/electripy/observability/ai_telemetry/services.py +360 -0
  179. electripy_ai-0.5.0/src/electripy/observability/observe/README.md +40 -0
  180. electripy_ai-0.5.0/src/electripy/observability/observe/__init__.py +108 -0
  181. electripy_ai-0.5.0/src/electripy/observability/observe/adapters.py +567 -0
  182. electripy_ai-0.5.0/src/electripy/observability/observe/decorators.py +234 -0
  183. electripy_ai-0.5.0/src/electripy/observability/observe/domain.py +595 -0
  184. electripy_ai-0.5.0/src/electripy/observability/observe/errors.py +32 -0
  185. electripy_ai-0.5.0/src/electripy/observability/observe/ports.py +242 -0
  186. electripy_ai-0.5.0/src/electripy/observability/observe/redaction.py +133 -0
  187. electripy_ai-0.5.0/src/electripy/observability/observe/services.py +530 -0
  188. electripy_ai-0.5.0/tests/ai/__init__.py +1 -0
  189. electripy_ai-0.5.0/tests/ai/agent_collaboration/__init__.py +1 -0
  190. electripy_ai-0.5.0/tests/ai/agent_collaboration/test_services.py +102 -0
  191. electripy_ai-0.5.0/tests/ai/agent_runtime/__init__.py +1 -0
  192. electripy_ai-0.5.0/tests/ai/agent_runtime/test_services.py +33 -0
  193. electripy_ai-0.5.0/tests/ai/context_assembly/__init__.py +0 -0
  194. electripy_ai-0.5.0/tests/ai/context_assembly/test_services.py +75 -0
  195. electripy_ai-0.5.0/tests/ai/conversation_memory/__init__.py +0 -0
  196. electripy_ai-0.5.0/tests/ai/conversation_memory/test_services.py +100 -0
  197. electripy_ai-0.5.0/tests/ai/eval_assertions/__init__.py +0 -0
  198. electripy_ai-0.5.0/tests/ai/eval_assertions/test_eval_assertions.py +232 -0
  199. electripy_ai-0.5.0/tests/ai/evals/__init__.py +0 -0
  200. electripy_ai-0.5.0/tests/ai/evals/test_adapters.py +223 -0
  201. electripy_ai-0.5.0/tests/ai/evals/test_domain.py +246 -0
  202. electripy_ai-0.5.0/tests/ai/evals/test_errors.py +49 -0
  203. electripy_ai-0.5.0/tests/ai/evals/test_scorers.py +452 -0
  204. electripy_ai-0.5.0/tests/ai/evals/test_services.py +467 -0
  205. electripy_ai-0.5.0/tests/ai/hallucination_guard/__init__.py +1 -0
  206. electripy_ai-0.5.0/tests/ai/hallucination_guard/test_services.py +19 -0
  207. electripy_ai-0.5.0/tests/ai/llm_cache/__init__.py +0 -0
  208. electripy_ai-0.5.0/tests/ai/llm_cache/test_llm_cache.py +248 -0
  209. electripy_ai-0.5.0/tests/ai/llm_gateway/test_async_gateway.py +158 -0
  210. electripy_ai-0.5.0/tests/ai/llm_gateway/test_provider_adapters.py +437 -0
  211. electripy_ai-0.5.0/tests/ai/llm_gateway/test_providers_and_http_adapter.py +183 -0
  212. electripy_ai-0.5.0/tests/ai/llm_gateway/test_structured_output_and_safety.py +109 -0
  213. electripy_ai-0.5.0/tests/ai/llm_gateway/test_sync_gateway.py +200 -0
  214. electripy_ai-0.5.0/tests/ai/mcp/__init__.py +0 -0
  215. electripy_ai-0.5.0/tests/ai/mcp/test_adapters.py +95 -0
  216. electripy_ai-0.5.0/tests/ai/mcp/test_domain.py +341 -0
  217. electripy_ai-0.5.0/tests/ai/mcp/test_errors.py +76 -0
  218. electripy_ai-0.5.0/tests/ai/mcp/test_services.py +541 -0
  219. electripy_ai-0.5.0/tests/ai/model_router/__init__.py +0 -0
  220. electripy_ai-0.5.0/tests/ai/model_router/test_services.py +108 -0
  221. electripy_ai-0.5.0/tests/ai/policy/__init__.py +1 -0
  222. electripy_ai-0.5.0/tests/ai/policy/test_adapters.py +334 -0
  223. electripy_ai-0.5.0/tests/ai/policy/test_domain.py +296 -0
  224. electripy_ai-0.5.0/tests/ai/policy/test_errors.py +31 -0
  225. electripy_ai-0.5.0/tests/ai/policy/test_services.py +508 -0
  226. electripy_ai-0.5.0/tests/ai/policy_gateway/__init__.py +1 -0
  227. electripy_ai-0.5.0/tests/ai/policy_gateway/test_integrations.py +61 -0
  228. electripy_ai-0.5.0/tests/ai/policy_gateway/test_services.py +73 -0
  229. electripy_ai-0.5.0/tests/ai/prompt_engine/__init__.py +0 -0
  230. electripy_ai-0.5.0/tests/ai/prompt_engine/test_services.py +101 -0
  231. electripy_ai-0.5.0/tests/ai/rag/test_chunking_and_domain.py +24 -0
  232. electripy_ai-0.5.0/tests/ai/rag/test_embedding_and_indexing.py +88 -0
  233. electripy_ai-0.5.0/tests/ai/rag/test_evaluation.py +41 -0
  234. electripy_ai-0.5.0/tests/ai/rag_eval_runner/test_adapters_and_evaluator.py +89 -0
  235. electripy_ai-0.5.0/tests/ai/rag_eval_runner/test_cli_rag_eval.py +92 -0
  236. electripy_ai-0.5.0/tests/ai/rag_eval_runner/test_dataset_loader.py +100 -0
  237. electripy_ai-0.5.0/tests/ai/rag_quality/__init__.py +1 -0
  238. electripy_ai-0.5.0/tests/ai/rag_quality/test_services.py +32 -0
  239. electripy_ai-0.5.0/tests/ai/realtime/__init__.py +0 -0
  240. electripy_ai-0.5.0/tests/ai/realtime/conftest.py +41 -0
  241. electripy_ai-0.5.0/tests/ai/realtime/test_adapters.py +152 -0
  242. electripy_ai-0.5.0/tests/ai/realtime/test_domain.py +305 -0
  243. electripy_ai-0.5.0/tests/ai/realtime/test_services.py +378 -0
  244. electripy_ai-0.5.0/tests/ai/replay_tape/__init__.py +0 -0
  245. electripy_ai-0.5.0/tests/ai/replay_tape/test_replay_tape.py +258 -0
  246. electripy_ai-0.5.0/tests/ai/response_robustness/__init__.py +1 -0
  247. electripy_ai-0.5.0/tests/ai/response_robustness/test_services.py +21 -0
  248. electripy_ai-0.5.0/tests/ai/skills/__init__.py +1 -0
  249. electripy_ai-0.5.0/tests/ai/skills/conftest.py +101 -0
  250. electripy_ai-0.5.0/tests/ai/skills/test_adapters.py +415 -0
  251. electripy_ai-0.5.0/tests/ai/skills/test_domain.py +254 -0
  252. electripy_ai-0.5.0/tests/ai/skills/test_errors.py +38 -0
  253. electripy_ai-0.5.0/tests/ai/skills/test_services.py +200 -0
  254. electripy_ai-0.5.0/tests/ai/streaming_chat/__init__.py +1 -0
  255. electripy_ai-0.5.0/tests/ai/streaming_chat/test_services.py +21 -0
  256. electripy_ai-0.5.0/tests/ai/structured_output/__init__.py +0 -0
  257. electripy_ai-0.5.0/tests/ai/structured_output/test_structured_output.py +291 -0
  258. electripy_ai-0.5.0/tests/ai/test_batch_complete.py +131 -0
  259. electripy_ai-0.5.0/tests/ai/test_cost_ledger.py +116 -0
  260. electripy_ai-0.5.0/tests/ai/test_fallback_chain.py +97 -0
  261. electripy_ai-0.5.0/tests/ai/test_json_repair.py +74 -0
  262. electripy_ai-0.5.0/tests/ai/test_prompt_fingerprint.py +85 -0
  263. electripy_ai-0.5.0/tests/ai/test_sensitive_data_scanner.py +121 -0
  264. electripy_ai-0.5.0/tests/ai/token_budget/__init__.py +0 -0
  265. electripy_ai-0.5.0/tests/ai/token_budget/test_services.py +92 -0
  266. electripy_ai-0.5.0/tests/ai/tool_registry/__init__.py +0 -0
  267. electripy_ai-0.5.0/tests/ai/tool_registry/test_services.py +121 -0
  268. electripy_ai-0.5.0/tests/ai/workload_router/__init__.py +0 -0
  269. electripy_ai-0.5.0/tests/ai/workload_router/test_adapters.py +90 -0
  270. electripy_ai-0.5.0/tests/ai/workload_router/test_domain.py +272 -0
  271. electripy_ai-0.5.0/tests/ai/workload_router/test_errors.py +45 -0
  272. electripy_ai-0.5.0/tests/ai/workload_router/test_services.py +685 -0
  273. electripy_ai-0.5.0/tests/cli/test_app.py +30 -0
  274. electripy_ai-0.5.0/tests/cli/test_demo.py +40 -0
  275. electripy_ai-0.5.0/tests/concurrency/http_resilience/test_http_resilience.py +209 -0
  276. electripy_ai-0.5.0/tests/concurrency/test_circuit_breaker.py +163 -0
  277. electripy_ai-0.5.0/tests/concurrency/test_rate_limiter.py +70 -0
  278. electripy_ai-0.5.0/tests/concurrency/test_rate_limiter_properties.py +47 -0
  279. electripy_ai-0.5.0/tests/concurrency/test_retry.py +95 -0
  280. electripy_ai-0.5.0/tests/concurrency/test_task_groups.py +49 -0
  281. electripy_ai-0.5.0/tests/conftest.py +1 -0
  282. electripy_ai-0.5.0/tests/core/test_config.py +42 -0
  283. electripy_ai-0.5.0/tests/core/test_errors.py +41 -0
  284. electripy_ai-0.5.0/tests/core/test_logging.py +26 -0
  285. electripy_ai-0.5.0/tests/io/test_jsonl.py +87 -0
  286. electripy_ai-0.5.0/tests/observability/ai_telemetry/test_ai_telemetry.py +138 -0
  287. electripy_ai-0.5.0/tests/observability/observe/__init__.py +0 -0
  288. electripy_ai-0.5.0/tests/observability/observe/test_adapters.py +183 -0
  289. electripy_ai-0.5.0/tests/observability/observe/test_decorators.py +190 -0
  290. electripy_ai-0.5.0/tests/observability/observe/test_domain.py +274 -0
  291. electripy_ai-0.5.0/tests/observability/observe/test_redaction.py +186 -0
  292. electripy_ai-0.5.0/tests/observability/observe/test_services.py +356 -0
@@ -0,0 +1,144 @@
1
+ # Byte-compiled / optimized / DLL files
2
+ __pycache__/
3
+ *.py[cod]
4
+ *$py.class
5
+
6
+ # C extensions
7
+ *.so
8
+
9
+ # Distribution / packaging
10
+ .Python
11
+ build/
12
+ develop-eggs/
13
+ dist/
14
+ downloads/
15
+ eggs/
16
+ .eggs/
17
+ lib/
18
+ lib64/
19
+ parts/
20
+ sdist/
21
+ var/
22
+ wheels/
23
+ pip-wheel-metadata/
24
+ share/python-wheels/
25
+ *.egg-info/
26
+ .installed.cfg
27
+ *.egg
28
+ PYTHONPATH
29
+
30
+ # PyInstaller
31
+ *.manifest
32
+ *.spec
33
+
34
+ # Installer logs
35
+ pip-log.txt
36
+ pip-delete-this-directory.txt
37
+
38
+ # Unit test / coverage reports
39
+ htmlcov/
40
+ .tox/
41
+ .nox/
42
+ .coverage
43
+ .coverage.*
44
+ .cache
45
+ nosetests.xml
46
+ coverage.xml
47
+ *.cover
48
+ *.py,cover
49
+ .hypothesis/
50
+ .pytest_cache/
51
+
52
+ # Translations
53
+ *.mo
54
+ *.pot
55
+
56
+ # Django stuff:
57
+ *.log
58
+ local_settings.py
59
+ db.sqlite3
60
+ db.sqlite3-journal
61
+
62
+ # Flask stuff:
63
+ instance/
64
+ .webassets-cache
65
+
66
+ # Scrapy stuff:
67
+ .scrapy
68
+
69
+ # Sphinx documentation
70
+ docs/_build/
71
+
72
+ # PyBuilder
73
+ target/
74
+
75
+ # Jupyter Notebook
76
+ .ipynb_checkpoints
77
+
78
+ # IPython
79
+ profile_default/
80
+ ipython_config.py
81
+
82
+ # pyenv
83
+ .python-version
84
+
85
+ # pipenv
86
+ Pipfile.lock
87
+
88
+ # PEP 582
89
+ __pypackages__/
90
+
91
+ # Celery stuff
92
+ celerybeat-schedule
93
+ celerybeat.pid
94
+
95
+ # SageMath parsed files
96
+ *.sage.py
97
+
98
+ # Environments
99
+ .env
100
+ .venv
101
+ env/
102
+ venv/
103
+ ENV/
104
+ env.bak/
105
+ venv.bak/
106
+
107
+ # Spyder project settings
108
+ .spyderproject
109
+ .spyproject
110
+
111
+ # Rope project settings
112
+ .ropeproject
113
+
114
+ # mkdocs documentation
115
+ /site
116
+
117
+ # mypy
118
+ .mypy_cache/
119
+ .dmypy.json
120
+ dmypy.json
121
+
122
+ # Pyre type checker
123
+ .pyre/
124
+
125
+ # IDEs
126
+ .vscode/
127
+ .idea/
128
+ *.swp
129
+ *.swo
130
+ *~
131
+
132
+ # OS
133
+ .DS_Store
134
+ Thumbs.db
135
+
136
+ # Node
137
+ node_modules/
138
+ npm-debug.log*
139
+ yarn-debug.log*
140
+ yarn-error.log*
141
+ package-lock.json
142
+
143
+ # Local component prompt (not for checkout)
144
+ ComponentPrompt.md
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 Inference Stack
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.