autonomous-agent-architecture 0.3.1__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 (436) hide show
  1. autonomous_agent_architecture-0.3.1/.deepeval/.deepeval_telemetry.txt +2 -0
  2. autonomous_agent_architecture-0.3.1/.dockerignore +8 -0
  3. autonomous_agent_architecture-0.3.1/.github/dependabot.yml +11 -0
  4. autonomous_agent_architecture-0.3.1/.github/workflows/ci.yml +406 -0
  5. autonomous_agent_architecture-0.3.1/.github/workflows/docs.yml +64 -0
  6. autonomous_agent_architecture-0.3.1/.github/workflows/release-server.yml +92 -0
  7. autonomous_agent_architecture-0.3.1/.github/workflows/release.yml +121 -0
  8. autonomous_agent_architecture-0.3.1/.gitignore +7 -0
  9. autonomous_agent_architecture-0.3.1/CONTRIBUTING.md +8 -0
  10. autonomous_agent_architecture-0.3.1/Dockerfile +23 -0
  11. autonomous_agent_architecture-0.3.1/LICENSE +21 -0
  12. autonomous_agent_architecture-0.3.1/PKG-INFO +326 -0
  13. autonomous_agent_architecture-0.3.1/README.md +241 -0
  14. autonomous_agent_architecture-0.3.1/SECURITY.md +21 -0
  15. autonomous_agent_architecture-0.3.1/compose.yaml +27 -0
  16. autonomous_agent_architecture-0.3.1/deploy/app.py +49 -0
  17. autonomous_agent_architecture-0.3.1/docs/about/changelog.md +210 -0
  18. autonomous_agent_architecture-0.3.1/docs/about/contributing.md +90 -0
  19. autonomous_agent_architecture-0.3.1/docs/about/design-decisions.md +79 -0
  20. autonomous_agent_architecture-0.3.1/docs/about/license.md +7 -0
  21. autonomous_agent_architecture-0.3.1/docs/about/limitations.md +113 -0
  22. autonomous_agent_architecture-0.3.1/docs/concepts/architecture.md +76 -0
  23. autonomous_agent_architecture-0.3.1/docs/concepts/data-model.md +95 -0
  24. autonomous_agent_architecture-0.3.1/docs/concepts/delivery-and-idempotency.md +57 -0
  25. autonomous_agent_architecture-0.3.1/docs/concepts/events-and-the-log.md +105 -0
  26. autonomous_agent_architecture-0.3.1/docs/concepts/projections-and-snapshots.md +100 -0
  27. autonomous_agent_architecture-0.3.1/docs/concepts/runs-and-the-engine.md +134 -0
  28. autonomous_agent_architecture-0.3.1/docs/getting-started/installation.md +80 -0
  29. autonomous_agent_architecture-0.3.1/docs/getting-started/mental-model.md +66 -0
  30. autonomous_agent_architecture-0.3.1/docs/getting-started/quickstart.md +99 -0
  31. autonomous_agent_architecture-0.3.1/docs/guides/algorithms/custom.md +84 -0
  32. autonomous_agent_architecture-0.3.1/docs/guides/algorithms/ensembles-rag.md +64 -0
  33. autonomous_agent_architecture-0.3.1/docs/guides/algorithms/index.md +69 -0
  34. autonomous_agent_architecture-0.3.1/docs/guides/algorithms/plan-and-execute.md +81 -0
  35. autonomous_agent_architecture-0.3.1/docs/guides/algorithms/reasoning.md +64 -0
  36. autonomous_agent_architecture-0.3.1/docs/guides/algorithms/refine.md +92 -0
  37. autonomous_agent_architecture-0.3.1/docs/guides/algorithms/router-supervisor.md +74 -0
  38. autonomous_agent_architecture-0.3.1/docs/guides/algorithms/tool-loop-react.md +104 -0
  39. autonomous_agent_architecture-0.3.1/docs/guides/algorithms/workflow-fsm.md +80 -0
  40. autonomous_agent_architecture-0.3.1/docs/guides/builtin-tools.md +88 -0
  41. autonomous_agent_architecture-0.3.1/docs/guides/clusters.md +151 -0
  42. autonomous_agent_architecture-0.3.1/docs/guides/context.md +81 -0
  43. autonomous_agent_architecture-0.3.1/docs/guides/evals.md +181 -0
  44. autonomous_agent_architecture-0.3.1/docs/guides/evolving-events.md +50 -0
  45. autonomous_agent_architecture-0.3.1/docs/guides/extending.md +93 -0
  46. autonomous_agent_architecture-0.3.1/docs/guides/guardrails.md +110 -0
  47. autonomous_agent_architecture-0.3.1/docs/guides/human-approval.md +67 -0
  48. autonomous_agent_architecture-0.3.1/docs/guides/ingestion.md +56 -0
  49. autonomous_agent_architecture-0.3.1/docs/guides/large-payloads.md +61 -0
  50. autonomous_agent_architecture-0.3.1/docs/guides/llm-gateways.md +247 -0
  51. autonomous_agent_architecture-0.3.1/docs/guides/mcp.md +146 -0
  52. autonomous_agent_architecture-0.3.1/docs/guides/memory.md +194 -0
  53. autonomous_agent_architecture-0.3.1/docs/guides/multimodal.md +71 -0
  54. autonomous_agent_architecture-0.3.1/docs/guides/observability.md +75 -0
  55. autonomous_agent_architecture-0.3.1/docs/guides/persistence.md +90 -0
  56. autonomous_agent_architecture-0.3.1/docs/guides/privacy.md +170 -0
  57. autonomous_agent_architecture-0.3.1/docs/guides/server.md +111 -0
  58. autonomous_agent_architecture-0.3.1/docs/guides/sessions.md +112 -0
  59. autonomous_agent_architecture-0.3.1/docs/guides/streaming.md +50 -0
  60. autonomous_agent_architecture-0.3.1/docs/guides/testing.md +122 -0
  61. autonomous_agent_architecture-0.3.1/docs/guides/tool-guard.md +157 -0
  62. autonomous_agent_architecture-0.3.1/docs/guides/tools.md +128 -0
  63. autonomous_agent_architecture-0.3.1/docs/guides/vector-stores.md +115 -0
  64. autonomous_agent_architecture-0.3.1/docs/index.md +154 -0
  65. autonomous_agent_architecture-0.3.1/docs/operations/backup-restore.md +40 -0
  66. autonomous_agent_architecture-0.3.1/docs/operations/configuration.md +81 -0
  67. autonomous_agent_architecture-0.3.1/docs/operations/deployment.md +81 -0
  68. autonomous_agent_architecture-0.3.1/docs/operations/performance.md +84 -0
  69. autonomous_agent_architecture-0.3.1/docs/operations/security.md +77 -0
  70. autonomous_agent_architecture-0.3.1/docs/operations/troubleshooting.md +113 -0
  71. autonomous_agent_architecture-0.3.1/docs/operations/upgrading.md +24 -0
  72. autonomous_agent_architecture-0.3.1/docs/policy/stability.md +44 -0
  73. autonomous_agent_architecture-0.3.1/docs/reference/api/algos.md +68 -0
  74. autonomous_agent_architecture-0.3.1/docs/reference/api/builtin-tools.md +23 -0
  75. autonomous_agent_architecture-0.3.1/docs/reference/api/cli.md +12 -0
  76. autonomous_agent_architecture-0.3.1/docs/reference/api/context.md +35 -0
  77. autonomous_agent_architecture-0.3.1/docs/reference/api/core.md +43 -0
  78. autonomous_agent_architecture-0.3.1/docs/reference/api/data.md +43 -0
  79. autonomous_agent_architecture-0.3.1/docs/reference/api/eval.md +51 -0
  80. autonomous_agent_architecture-0.3.1/docs/reference/api/events.md +59 -0
  81. autonomous_agent_architecture-0.3.1/docs/reference/api/guard.md +45 -0
  82. autonomous_agent_architecture-0.3.1/docs/reference/api/index.md +19 -0
  83. autonomous_agent_architecture-0.3.1/docs/reference/api/ingest.md +19 -0
  84. autonomous_agent_architecture-0.3.1/docs/reference/api/llm.md +84 -0
  85. autonomous_agent_architecture-0.3.1/docs/reference/api/mcp.md +21 -0
  86. autonomous_agent_architecture-0.3.1/docs/reference/api/memory.md +55 -0
  87. autonomous_agent_architecture-0.3.1/docs/reference/api/observe.md +25 -0
  88. autonomous_agent_architecture-0.3.1/docs/reference/api/runtime.md +37 -0
  89. autonomous_agent_architecture-0.3.1/docs/reference/api/sandbox.md +13 -0
  90. autonomous_agent_architecture-0.3.1/docs/reference/api/server.md +33 -0
  91. autonomous_agent_architecture-0.3.1/docs/reference/api/session.md +21 -0
  92. autonomous_agent_architecture-0.3.1/docs/reference/api/tools.md +27 -0
  93. autonomous_agent_architecture-0.3.1/docs/reference/api/vector.md +37 -0
  94. autonomous_agent_architecture-0.3.1/docs/reference/event-catalog.md +88 -0
  95. autonomous_agent_architecture-0.3.1/docs/reference/outcomes-and-errors.md +58 -0
  96. autonomous_agent_architecture-0.3.1/docs/security/multimodal.md +34 -0
  97. autonomous_agent_architecture-0.3.1/docs/security/server.md +51 -0
  98. autonomous_agent_architecture-0.3.1/docs/security/tools.md +65 -0
  99. autonomous_agent_architecture-0.3.1/docs/server/index.md +79 -0
  100. autonomous_agent_architecture-0.3.1/examples/builtin_tools.py +69 -0
  101. autonomous_agent_architecture-0.3.1/examples/chat_session.py +62 -0
  102. autonomous_agent_architecture-0.3.1/examples/cluster_client.py +30 -0
  103. autonomous_agent_architecture-0.3.1/examples/cluster_worker.py +38 -0
  104. autonomous_agent_architecture-0.3.1/examples/context_management.py +66 -0
  105. autonomous_agent_architecture-0.3.1/examples/custom_algorithm.py +77 -0
  106. autonomous_agent_architecture-0.3.1/examples/data_codecs.py +56 -0
  107. autonomous_agent_architecture-0.3.1/examples/ensembles.py +35 -0
  108. autonomous_agent_architecture-0.3.1/examples/eval_extras.py +52 -0
  109. autonomous_agent_architecture-0.3.1/examples/evals.py +57 -0
  110. autonomous_agent_architecture-0.3.1/examples/generate_test_repair.py +42 -0
  111. autonomous_agent_architecture-0.3.1/examples/guardrails.py +83 -0
  112. autonomous_agent_architecture-0.3.1/examples/ingest_docs.py +54 -0
  113. autonomous_agent_architecture-0.3.1/examples/inspect_log.py +35 -0
  114. autonomous_agent_architecture-0.3.1/examples/large_payloads.py +42 -0
  115. autonomous_agent_architecture-0.3.1/examples/llm_gateways.py +53 -0
  116. autonomous_agent_architecture-0.3.1/examples/mcp_server.py +53 -0
  117. autonomous_agent_architecture-0.3.1/examples/mcp_tools.py +71 -0
  118. autonomous_agent_architecture-0.3.1/examples/memory_agent.py +63 -0
  119. autonomous_agent_architecture-0.3.1/examples/model_router.py +58 -0
  120. autonomous_agent_architecture-0.3.1/examples/multimodal.py +70 -0
  121. autonomous_agent_architecture-0.3.1/examples/native_providers.py +97 -0
  122. autonomous_agent_architecture-0.3.1/examples/observability.py +43 -0
  123. autonomous_agent_architecture-0.3.1/examples/persistence_recovery.py +69 -0
  124. autonomous_agent_architecture-0.3.1/examples/plan_and_execute.py +56 -0
  125. autonomous_agent_architecture-0.3.1/examples/privacy_tenancy.py +67 -0
  126. autonomous_agent_architecture-0.3.1/examples/quickstart.py +38 -0
  127. autonomous_agent_architecture-0.3.1/examples/rag_agent.py +43 -0
  128. autonomous_agent_architecture-0.3.1/examples/reasoning_algorithms.py +129 -0
  129. autonomous_agent_architecture-0.3.1/examples/router_supervisor.py +66 -0
  130. autonomous_agent_architecture-0.3.1/examples/server_quickstart.py +97 -0
  131. autonomous_agent_architecture-0.3.1/examples/streaming.py +26 -0
  132. autonomous_agent_architecture-0.3.1/examples/testing_replay.py +41 -0
  133. autonomous_agent_architecture-0.3.1/examples/tool_approval.py +47 -0
  134. autonomous_agent_architecture-0.3.1/examples/tool_guard.py +59 -0
  135. autonomous_agent_architecture-0.3.1/examples/vector_search.py +48 -0
  136. autonomous_agent_architecture-0.3.1/examples/workflow_fsm.py +70 -0
  137. autonomous_agent_architecture-0.3.1/mkdocs.yml +159 -0
  138. autonomous_agent_architecture-0.3.1/packages/aaa-server/LICENSE +21 -0
  139. autonomous_agent_architecture-0.3.1/packages/aaa-server/README.md +34 -0
  140. autonomous_agent_architecture-0.3.1/packages/aaa-server/pyproject.toml +47 -0
  141. autonomous_agent_architecture-0.3.1/packages/aaa-server/src/aaa_server/__init__.py +48 -0
  142. autonomous_agent_architecture-0.3.1/packages/aaa-server/src/aaa_server/a2a.py +351 -0
  143. autonomous_agent_architecture-0.3.1/packages/aaa-server/src/aaa_server/admission.py +247 -0
  144. autonomous_agent_architecture-0.3.1/packages/aaa-server/src/aaa_server/app.py +723 -0
  145. autonomous_agent_architecture-0.3.1/packages/aaa-server/src/aaa_server/auth.py +255 -0
  146. autonomous_agent_architecture-0.3.1/packages/aaa-server/src/aaa_server/cli.py +100 -0
  147. autonomous_agent_architecture-0.3.1/packages/aaa-server/src/aaa_server/mcp_http.py +64 -0
  148. autonomous_agent_architecture-0.3.1/packages/aaa-server/src/aaa_server/py.typed +0 -0
  149. autonomous_agent_architecture-0.3.1/pyproject.toml +99 -0
  150. autonomous_agent_architecture-0.3.1/scripts/bench_cluster.py +126 -0
  151. autonomous_agent_architecture-0.3.1/scripts/bench_growth.py +82 -0
  152. autonomous_agent_architecture-0.3.1/scripts/gen_event_fixtures.py +523 -0
  153. autonomous_agent_architecture-0.3.1/scripts/live_smoke.py +445 -0
  154. autonomous_agent_architecture-0.3.1/src/aaa/__init__.py +10 -0
  155. autonomous_agent_architecture-0.3.1/src/aaa/_compat.py +34 -0
  156. autonomous_agent_architecture-0.3.1/src/aaa/algos/__init__.py +35 -0
  157. autonomous_agent_architecture-0.3.1/src/aaa/algos/base.py +99 -0
  158. autonomous_agent_architecture-0.3.1/src/aaa/algos/control.py +183 -0
  159. autonomous_agent_architecture-0.3.1/src/aaa/algos/debate.py +182 -0
  160. autonomous_agent_architecture-0.3.1/src/aaa/algos/ensemble.py +173 -0
  161. autonomous_agent_architecture-0.3.1/src/aaa/algos/loops.py +365 -0
  162. autonomous_agent_architecture-0.3.1/src/aaa/algos/plan.py +259 -0
  163. autonomous_agent_architecture-0.3.1/src/aaa/algos/refine.py +169 -0
  164. autonomous_agent_architecture-0.3.1/src/aaa/algos/reflexion.py +203 -0
  165. autonomous_agent_architecture-0.3.1/src/aaa/algos/route.py +93 -0
  166. autonomous_agent_architecture-0.3.1/src/aaa/algos/swarm.py +182 -0
  167. autonomous_agent_architecture-0.3.1/src/aaa/algos/tot.py +212 -0
  168. autonomous_agent_architecture-0.3.1/src/aaa/cli.py +178 -0
  169. autonomous_agent_architecture-0.3.1/src/aaa/context/__init__.py +32 -0
  170. autonomous_agent_architecture-0.3.1/src/aaa/context/policy.py +199 -0
  171. autonomous_agent_architecture-0.3.1/src/aaa/context/strategies.py +387 -0
  172. autonomous_agent_architecture-0.3.1/src/aaa/context/tokens.py +137 -0
  173. autonomous_agent_architecture-0.3.1/src/aaa/core/__init__.py +33 -0
  174. autonomous_agent_architecture-0.3.1/src/aaa/core/aio.py +50 -0
  175. autonomous_agent_architecture-0.3.1/src/aaa/core/errors.py +30 -0
  176. autonomous_agent_architecture-0.3.1/src/aaa/core/ids.py +32 -0
  177. autonomous_agent_architecture-0.3.1/src/aaa/core/outcome.py +31 -0
  178. autonomous_agent_architecture-0.3.1/src/aaa/core/parts.py +177 -0
  179. autonomous_agent_architecture-0.3.1/src/aaa/core/retry.py +152 -0
  180. autonomous_agent_architecture-0.3.1/src/aaa/data/__init__.py +27 -0
  181. autonomous_agent_architecture-0.3.1/src/aaa/data/blob.py +87 -0
  182. autonomous_agent_architecture-0.3.1/src/aaa/data/capabilities.py +40 -0
  183. autonomous_agent_architecture-0.3.1/src/aaa/data/codec.py +102 -0
  184. autonomous_agent_architecture-0.3.1/src/aaa/data/index.py +118 -0
  185. autonomous_agent_architecture-0.3.1/src/aaa/data/item.py +41 -0
  186. autonomous_agent_architecture-0.3.1/src/aaa/eval/__init__.py +62 -0
  187. autonomous_agent_architecture-0.3.1/src/aaa/eval/autoevals.py +196 -0
  188. autonomous_agent_architecture-0.3.1/src/aaa/eval/dataset.py +91 -0
  189. autonomous_agent_architecture-0.3.1/src/aaa/eval/deepeval.py +157 -0
  190. autonomous_agent_architecture-0.3.1/src/aaa/eval/inspect.py +63 -0
  191. autonomous_agent_architecture-0.3.1/src/aaa/eval/metrics.py +302 -0
  192. autonomous_agent_architecture-0.3.1/src/aaa/eval/online.py +139 -0
  193. autonomous_agent_architecture-0.3.1/src/aaa/eval/ragas.py +117 -0
  194. autonomous_agent_architecture-0.3.1/src/aaa/eval/redteam.py +315 -0
  195. autonomous_agent_architecture-0.3.1/src/aaa/eval/report.py +178 -0
  196. autonomous_agent_architecture-0.3.1/src/aaa/eval/result.py +52 -0
  197. autonomous_agent_architecture-0.3.1/src/aaa/eval/simulate.py +188 -0
  198. autonomous_agent_architecture-0.3.1/src/aaa/eval/suite.py +128 -0
  199. autonomous_agent_architecture-0.3.1/src/aaa/eval/traces.py +99 -0
  200. autonomous_agent_architecture-0.3.1/src/aaa/events/__init__.py +33 -0
  201. autonomous_agent_architecture-0.3.1/src/aaa/events/bus.py +277 -0
  202. autonomous_agent_architecture-0.3.1/src/aaa/events/cloudevents.py +78 -0
  203. autonomous_agent_architecture-0.3.1/src/aaa/events/distributed.py +500 -0
  204. autonomous_agent_architecture-0.3.1/src/aaa/events/event.py +81 -0
  205. autonomous_agent_architecture-0.3.1/src/aaa/events/guard.py +67 -0
  206. autonomous_agent_architecture-0.3.1/src/aaa/events/migrate.py +40 -0
  207. autonomous_agent_architecture-0.3.1/src/aaa/events/postgres.py +459 -0
  208. autonomous_agent_architecture-0.3.1/src/aaa/events/projection.py +95 -0
  209. autonomous_agent_architecture-0.3.1/src/aaa/events/redis.py +395 -0
  210. autonomous_agent_architecture-0.3.1/src/aaa/events/schema.py +55 -0
  211. autonomous_agent_architecture-0.3.1/src/aaa/events/snapshot.py +24 -0
  212. autonomous_agent_architecture-0.3.1/src/aaa/events/sqlite.py +271 -0
  213. autonomous_agent_architecture-0.3.1/src/aaa/events/store.py +157 -0
  214. autonomous_agent_architecture-0.3.1/src/aaa/events/verify.py +79 -0
  215. autonomous_agent_architecture-0.3.1/src/aaa/guard/__init__.py +56 -0
  216. autonomous_agent_architecture-0.3.1/src/aaa/guard/azure.py +65 -0
  217. autonomous_agent_architecture-0.3.1/src/aaa/guard/bedrock.py +105 -0
  218. autonomous_agent_architecture-0.3.1/src/aaa/guard/builtin.py +267 -0
  219. autonomous_agent_architecture-0.3.1/src/aaa/guard/enforce.py +94 -0
  220. autonomous_agent_architecture-0.3.1/src/aaa/guard/guardrails_ai.py +78 -0
  221. autonomous_agent_architecture-0.3.1/src/aaa/guard/lakera.py +74 -0
  222. autonomous_agent_architecture-0.3.1/src/aaa/guard/nemo.py +63 -0
  223. autonomous_agent_architecture-0.3.1/src/aaa/guard/openai_moderation.py +69 -0
  224. autonomous_agent_architecture-0.3.1/src/aaa/guard/policy.py +194 -0
  225. autonomous_agent_architecture-0.3.1/src/aaa/guard/presidio.py +135 -0
  226. autonomous_agent_architecture-0.3.1/src/aaa/guard/types.py +65 -0
  227. autonomous_agent_architecture-0.3.1/src/aaa/guard/watch.py +99 -0
  228. autonomous_agent_architecture-0.3.1/src/aaa/ingest/__init__.py +25 -0
  229. autonomous_agent_architecture-0.3.1/src/aaa/ingest/chunkers.py +139 -0
  230. autonomous_agent_architecture-0.3.1/src/aaa/ingest/loaders.py +239 -0
  231. autonomous_agent_architecture-0.3.1/src/aaa/ingest/pipeline.py +317 -0
  232. autonomous_agent_architecture-0.3.1/src/aaa/ingest/types.py +45 -0
  233. autonomous_agent_architecture-0.3.1/src/aaa/llm/__init__.py +46 -0
  234. autonomous_agent_architecture-0.3.1/src/aaa/llm/_http.py +108 -0
  235. autonomous_agent_architecture-0.3.1/src/aaa/llm/anthropic.py +395 -0
  236. autonomous_agent_architecture-0.3.1/src/aaa/llm/client.py +43 -0
  237. autonomous_agent_architecture-0.3.1/src/aaa/llm/config.py +46 -0
  238. autonomous_agent_architecture-0.3.1/src/aaa/llm/embedder.py +14 -0
  239. autonomous_agent_architecture-0.3.1/src/aaa/llm/errors.py +68 -0
  240. autonomous_agent_architecture-0.3.1/src/aaa/llm/factory.py +48 -0
  241. autonomous_agent_architecture-0.3.1/src/aaa/llm/fake.py +178 -0
  242. autonomous_agent_architecture-0.3.1/src/aaa/llm/gateways.py +75 -0
  243. autonomous_agent_architecture-0.3.1/src/aaa/llm/gemini.py +336 -0
  244. autonomous_agent_architecture-0.3.1/src/aaa/llm/handler.py +453 -0
  245. autonomous_agent_architecture-0.3.1/src/aaa/llm/litellm_client.py +119 -0
  246. autonomous_agent_architecture-0.3.1/src/aaa/llm/middleware.py +113 -0
  247. autonomous_agent_architecture-0.3.1/src/aaa/llm/openai_compat.py +272 -0
  248. autonomous_agent_architecture-0.3.1/src/aaa/llm/openai_responses.py +355 -0
  249. autonomous_agent_architecture-0.3.1/src/aaa/llm/parts.py +40 -0
  250. autonomous_agent_architecture-0.3.1/src/aaa/llm/streaming.py +38 -0
  251. autonomous_agent_architecture-0.3.1/src/aaa/llm/types.py +107 -0
  252. autonomous_agent_architecture-0.3.1/src/aaa/llm/wire_media.py +80 -0
  253. autonomous_agent_architecture-0.3.1/src/aaa/mcp/__init__.py +15 -0
  254. autonomous_agent_architecture-0.3.1/src/aaa/mcp/client.py +364 -0
  255. autonomous_agent_architecture-0.3.1/src/aaa/mcp/memory.py +125 -0
  256. autonomous_agent_architecture-0.3.1/src/aaa/mcp/server.py +255 -0
  257. autonomous_agent_architecture-0.3.1/src/aaa/memory/__init__.py +46 -0
  258. autonomous_agent_architecture-0.3.1/src/aaa/memory/base.py +96 -0
  259. autonomous_agent_architecture-0.3.1/src/aaa/memory/callable.py +152 -0
  260. autonomous_agent_architecture-0.3.1/src/aaa/memory/fake.py +116 -0
  261. autonomous_agent_architecture-0.3.1/src/aaa/memory/graphiti.py +180 -0
  262. autonomous_agent_architecture-0.3.1/src/aaa/memory/handler.py +226 -0
  263. autonomous_agent_architecture-0.3.1/src/aaa/memory/langgraph.py +179 -0
  264. autonomous_agent_architecture-0.3.1/src/aaa/memory/mem0.py +158 -0
  265. autonomous_agent_architecture-0.3.1/src/aaa/memory/native.py +177 -0
  266. autonomous_agent_architecture-0.3.1/src/aaa/memory/supermemory.py +264 -0
  267. autonomous_agent_architecture-0.3.1/src/aaa/memory/tools.py +76 -0
  268. autonomous_agent_architecture-0.3.1/src/aaa/memory/types.py +138 -0
  269. autonomous_agent_architecture-0.3.1/src/aaa/observe/__init__.py +30 -0
  270. autonomous_agent_architecture-0.3.1/src/aaa/observe/base.py +31 -0
  271. autonomous_agent_architecture-0.3.1/src/aaa/observe/observer.py +276 -0
  272. autonomous_agent_architecture-0.3.1/src/aaa/observe/otel.py +534 -0
  273. autonomous_agent_architecture-0.3.1/src/aaa/observe/scoring.py +213 -0
  274. autonomous_agent_architecture-0.3.1/src/aaa/observe/sinks.py +88 -0
  275. autonomous_agent_architecture-0.3.1/src/aaa/privacy.py +270 -0
  276. autonomous_agent_architecture-0.3.1/src/aaa/py.typed +0 -0
  277. autonomous_agent_architecture-0.3.1/src/aaa/runtime/__init__.py +18 -0
  278. autonomous_agent_architecture-0.3.1/src/aaa/runtime/budget.py +63 -0
  279. autonomous_agent_architecture-0.3.1/src/aaa/runtime/engine.py +858 -0
  280. autonomous_agent_architecture-0.3.1/src/aaa/runtime/media.py +73 -0
  281. autonomous_agent_architecture-0.3.1/src/aaa/runtime/recovery.py +136 -0
  282. autonomous_agent_architecture-0.3.1/src/aaa/runtime/retention.py +188 -0
  283. autonomous_agent_architecture-0.3.1/src/aaa/runtime/tenancy.py +106 -0
  284. autonomous_agent_architecture-0.3.1/src/aaa/safe.py +92 -0
  285. autonomous_agent_architecture-0.3.1/src/aaa/sandbox/__init__.py +20 -0
  286. autonomous_agent_architecture-0.3.1/src/aaa/sandbox/base.py +131 -0
  287. autonomous_agent_architecture-0.3.1/src/aaa/sandbox/docker.py +170 -0
  288. autonomous_agent_architecture-0.3.1/src/aaa/sandbox/subproc.py +89 -0
  289. autonomous_agent_architecture-0.3.1/src/aaa/sandbox/tool.py +40 -0
  290. autonomous_agent_architecture-0.3.1/src/aaa/score.py +48 -0
  291. autonomous_agent_architecture-0.3.1/src/aaa/session.py +539 -0
  292. autonomous_agent_architecture-0.3.1/src/aaa/tools/__init__.py +29 -0
  293. autonomous_agent_architecture-0.3.1/src/aaa/tools/builtin/__init__.py +87 -0
  294. autonomous_agent_architecture-0.3.1/src/aaa/tools/builtin/files.py +116 -0
  295. autonomous_agent_architecture-0.3.1/src/aaa/tools/builtin/net.py +259 -0
  296. autonomous_agent_architecture-0.3.1/src/aaa/tools/builtin/search.py +152 -0
  297. autonomous_agent_architecture-0.3.1/src/aaa/tools/guard.py +104 -0
  298. autonomous_agent_architecture-0.3.1/src/aaa/tools/handler.py +483 -0
  299. autonomous_agent_architecture-0.3.1/src/aaa/tools/rag.py +28 -0
  300. autonomous_agent_architecture-0.3.1/src/aaa/tools/tool.py +225 -0
  301. autonomous_agent_architecture-0.3.1/src/aaa/trace.py +494 -0
  302. autonomous_agent_architecture-0.3.1/src/aaa/validate/__init__.py +79 -0
  303. autonomous_agent_architecture-0.3.1/src/aaa/vector/__init__.py +72 -0
  304. autonomous_agent_architecture-0.3.1/src/aaa/vector/_flat.py +103 -0
  305. autonomous_agent_architecture-0.3.1/src/aaa/vector/_sync.py +19 -0
  306. autonomous_agent_architecture-0.3.1/src/aaa/vector/chroma.py +228 -0
  307. autonomous_agent_architecture-0.3.1/src/aaa/vector/filters.py +214 -0
  308. autonomous_agent_architecture-0.3.1/src/aaa/vector/hybrid.py +48 -0
  309. autonomous_agent_architecture-0.3.1/src/aaa/vector/index.py +236 -0
  310. autonomous_agent_architecture-0.3.1/src/aaa/vector/lancedb.py +204 -0
  311. autonomous_agent_architecture-0.3.1/src/aaa/vector/memory.py +116 -0
  312. autonomous_agent_architecture-0.3.1/src/aaa/vector/pgvector.py +291 -0
  313. autonomous_agent_architecture-0.3.1/src/aaa/vector/pinecone.py +217 -0
  314. autonomous_agent_architecture-0.3.1/src/aaa/vector/qdrant.py +271 -0
  315. autonomous_agent_architecture-0.3.1/src/aaa/vector/rerank.py +182 -0
  316. autonomous_agent_architecture-0.3.1/src/aaa/vector/sqlitevec.py +345 -0
  317. autonomous_agent_architecture-0.3.1/src/aaa/vector/types.py +118 -0
  318. autonomous_agent_architecture-0.3.1/tests/cluster.py +101 -0
  319. autonomous_agent_architecture-0.3.1/tests/conftest.py +219 -0
  320. autonomous_agent_architecture-0.3.1/tests/fixtures/events_v0_2/MANIFEST.json +209 -0
  321. autonomous_agent_architecture-0.3.1/tests/fixtures/events_v0_2/approval.expected.json +79 -0
  322. autonomous_agent_architecture-0.3.1/tests/fixtures/events_v0_2/approval.jsonl +11 -0
  323. autonomous_agent_architecture-0.3.1/tests/fixtures/events_v0_2/approval_denied.expected.json +79 -0
  324. autonomous_agent_architecture-0.3.1/tests/fixtures/events_v0_2/approval_denied.jsonl +10 -0
  325. autonomous_agent_architecture-0.3.1/tests/fixtures/events_v0_2/budget.expected.json +80 -0
  326. autonomous_agent_architecture-0.3.1/tests/fixtures/events_v0_2/budget.jsonl +10 -0
  327. autonomous_agent_architecture-0.3.1/tests/fixtures/events_v0_2/cancel.expected.json +59 -0
  328. autonomous_agent_architecture-0.3.1/tests/fixtures/events_v0_2/cancel.jsonl +3 -0
  329. autonomous_agent_architecture-0.3.1/tests/fixtures/events_v0_2/context.expected.json +134 -0
  330. autonomous_agent_architecture-0.3.1/tests/fixtures/events_v0_2/context.jsonl +115 -0
  331. autonomous_agent_architecture-0.3.1/tests/fixtures/events_v0_2/erased.expected.json +30 -0
  332. autonomous_agent_architecture-0.3.1/tests/fixtures/events_v0_2/erased.jsonl +5 -0
  333. autonomous_agent_architecture-0.3.1/tests/fixtures/events_v0_2/eval_score.expected.json +74 -0
  334. autonomous_agent_architecture-0.3.1/tests/fixtures/events_v0_2/eval_score.jsonl +5 -0
  335. autonomous_agent_architecture-0.3.1/tests/fixtures/events_v0_2/fsm.expected.json +69 -0
  336. autonomous_agent_architecture-0.3.1/tests/fixtures/events_v0_2/fsm.jsonl +8 -0
  337. autonomous_agent_architecture-0.3.1/tests/fixtures/events_v0_2/guard.expected.json +146 -0
  338. autonomous_agent_architecture-0.3.1/tests/fixtures/events_v0_2/guard.jsonl +16 -0
  339. autonomous_agent_architecture-0.3.1/tests/fixtures/events_v0_2/memory.expected.json +74 -0
  340. autonomous_agent_architecture-0.3.1/tests/fixtures/events_v0_2/memory.jsonl +6 -0
  341. autonomous_agent_architecture-0.3.1/tests/fixtures/events_v0_2/memory_failed.expected.json +74 -0
  342. autonomous_agent_architecture-0.3.1/tests/fixtures/events_v0_2/memory_failed.jsonl +6 -0
  343. autonomous_agent_architecture-0.3.1/tests/fixtures/events_v0_2/memory_started.expected.json +74 -0
  344. autonomous_agent_architecture-0.3.1/tests/fixtures/events_v0_2/memory_started.jsonl +8 -0
  345. autonomous_agent_architecture-0.3.1/tests/fixtures/events_v0_2/plan.expected.json +249 -0
  346. autonomous_agent_architecture-0.3.1/tests/fixtures/events_v0_2/plan.jsonl +21 -0
  347. autonomous_agent_architecture-0.3.1/tests/fixtures/events_v0_2/refine.expected.json +75 -0
  348. autonomous_agent_architecture-0.3.1/tests/fixtures/events_v0_2/refine.jsonl +10 -0
  349. autonomous_agent_architecture-0.3.1/tests/fixtures/events_v0_2/router.expected.json +146 -0
  350. autonomous_agent_architecture-0.3.1/tests/fixtures/events_v0_2/router.jsonl +11 -0
  351. autonomous_agent_architecture-0.3.1/tests/fixtures/events_v0_2/samples.expected.json +78 -0
  352. autonomous_agent_architecture-0.3.1/tests/fixtures/events_v0_2/samples.jsonl +8 -0
  353. autonomous_agent_architecture-0.3.1/tests/fixtures/events_v0_2/session.expected.json +394 -0
  354. autonomous_agent_architecture-0.3.1/tests/fixtures/events_v0_2/session.jsonl +18 -0
  355. autonomous_agent_architecture-0.3.1/tests/fixtures/events_v0_2/session_summary.expected.json +1920 -0
  356. autonomous_agent_architecture-0.3.1/tests/fixtures/events_v0_2/session_summary.jsonl +68 -0
  357. autonomous_agent_architecture-0.3.1/tests/fixtures/events_v0_2/stream.expected.json +74 -0
  358. autonomous_agent_architecture-0.3.1/tests/fixtures/events_v0_2/stream.jsonl +7 -0
  359. autonomous_agent_architecture-0.3.1/tests/fixtures/events_v0_2/supervisor.expected.json +79 -0
  360. autonomous_agent_architecture-0.3.1/tests/fixtures/events_v0_2/supervisor.jsonl +8 -0
  361. autonomous_agent_architecture-0.3.1/tests/fixtures/events_v0_2/synthetic_fencing.expected.json +78 -0
  362. autonomous_agent_architecture-0.3.1/tests/fixtures/events_v0_2/synthetic_fencing.jsonl +7 -0
  363. autonomous_agent_architecture-0.3.1/tests/fixtures/events_v0_2/timeout.expected.json +59 -0
  364. autonomous_agent_architecture-0.3.1/tests/fixtures/events_v0_2/timeout.jsonl +3 -0
  365. autonomous_agent_architecture-0.3.1/tests/fixtures/events_v0_2/tools.expected.json +83 -0
  366. autonomous_agent_architecture-0.3.1/tests/fixtures/events_v0_2/tools.jsonl +14 -0
  367. autonomous_agent_architecture-0.3.1/tests/fixtures/events_v0_2/workflow.expected.json +82 -0
  368. autonomous_agent_architecture-0.3.1/tests/fixtures/events_v0_2/workflow.jsonl +9 -0
  369. autonomous_agent_architecture-0.3.1/tests/helpers/aaa_mcp_server.py +37 -0
  370. autonomous_agent_architecture-0.3.1/tests/helpers/eval_stubs.py +40 -0
  371. autonomous_agent_architecture-0.3.1/tests/helpers/mcp_server.py +93 -0
  372. autonomous_agent_architecture-0.3.1/tests/helpers/memory_stubs.py +382 -0
  373. autonomous_agent_architecture-0.3.1/tests/helpers/server_env.py +66 -0
  374. autonomous_agent_architecture-0.3.1/tests/helpers/victim.py +46 -0
  375. autonomous_agent_architecture-0.3.1/tests/helpers/worker.py +70 -0
  376. autonomous_agent_architecture-0.3.1/tests/server/test_a2a.py +217 -0
  377. autonomous_agent_architecture-0.3.1/tests/server/test_auth.py +249 -0
  378. autonomous_agent_architecture-0.3.1/tests/server/test_cli.py +147 -0
  379. autonomous_agent_architecture-0.3.1/tests/server/test_live.py +68 -0
  380. autonomous_agent_architecture-0.3.1/tests/server/test_mcp_http.py +147 -0
  381. autonomous_agent_architecture-0.3.1/tests/server/test_server.py +454 -0
  382. autonomous_agent_architecture-0.3.1/tests/unit/test_aio.py +96 -0
  383. autonomous_agent_architecture-0.3.1/tests/unit/test_algos.py +372 -0
  384. autonomous_agent_architecture-0.3.1/tests/unit/test_algos_m8.py +491 -0
  385. autonomous_agent_architecture-0.3.1/tests/unit/test_builtin_tools.py +684 -0
  386. autonomous_agent_architecture-0.3.1/tests/unit/test_cluster_engine.py +222 -0
  387. autonomous_agent_architecture-0.3.1/tests/unit/test_compat.py +30 -0
  388. autonomous_agent_architecture-0.3.1/tests/unit/test_context.py +423 -0
  389. autonomous_agent_architecture-0.3.1/tests/unit/test_data.py +49 -0
  390. autonomous_agent_architecture-0.3.1/tests/unit/test_distributed_bus.py +288 -0
  391. autonomous_agent_architecture-0.3.1/tests/unit/test_docs_snippets.py +40 -0
  392. autonomous_agent_architecture-0.3.1/tests/unit/test_engine.py +95 -0
  393. autonomous_agent_architecture-0.3.1/tests/unit/test_eval.py +329 -0
  394. autonomous_agent_architecture-0.3.1/tests/unit/test_eval_adapters.py +211 -0
  395. autonomous_agent_architecture-0.3.1/tests/unit/test_eval_m9.py +557 -0
  396. autonomous_agent_architecture-0.3.1/tests/unit/test_event_compat.py +101 -0
  397. autonomous_agent_architecture-0.3.1/tests/unit/test_events.py +104 -0
  398. autonomous_agent_architecture-0.3.1/tests/unit/test_examples.py +245 -0
  399. autonomous_agent_architecture-0.3.1/tests/unit/test_growth.py +276 -0
  400. autonomous_agent_architecture-0.3.1/tests/unit/test_guard.py +437 -0
  401. autonomous_agent_architecture-0.3.1/tests/unit/test_guard_adapters.py +520 -0
  402. autonomous_agent_architecture-0.3.1/tests/unit/test_ingest.py +357 -0
  403. autonomous_agent_architecture-0.3.1/tests/unit/test_llm.py +313 -0
  404. autonomous_agent_architecture-0.3.1/tests/unit/test_loops.py +216 -0
  405. autonomous_agent_architecture-0.3.1/tests/unit/test_mcp.py +267 -0
  406. autonomous_agent_architecture-0.3.1/tests/unit/test_mcp_server.py +171 -0
  407. autonomous_agent_architecture-0.3.1/tests/unit/test_memory_adapters.py +253 -0
  408. autonomous_agent_architecture-0.3.1/tests/unit/test_memory_contract.py +250 -0
  409. autonomous_agent_architecture-0.3.1/tests/unit/test_memory_runtime.py +278 -0
  410. autonomous_agent_architecture-0.3.1/tests/unit/test_memory_signatures.py +137 -0
  411. autonomous_agent_architecture-0.3.1/tests/unit/test_multimodal.py +439 -0
  412. autonomous_agent_architecture-0.3.1/tests/unit/test_multiprocess.py +235 -0
  413. autonomous_agent_architecture-0.3.1/tests/unit/test_native_providers.py +820 -0
  414. autonomous_agent_architecture-0.3.1/tests/unit/test_observer.py +232 -0
  415. autonomous_agent_architecture-0.3.1/tests/unit/test_openai_conformance.py +115 -0
  416. autonomous_agent_architecture-0.3.1/tests/unit/test_openai_responses.py +313 -0
  417. autonomous_agent_architecture-0.3.1/tests/unit/test_otel.py +198 -0
  418. autonomous_agent_architecture-0.3.1/tests/unit/test_privacy.py +327 -0
  419. autonomous_agent_architecture-0.3.1/tests/unit/test_recovery.py +353 -0
  420. autonomous_agent_architecture-0.3.1/tests/unit/test_sandbox.py +318 -0
  421. autonomous_agent_architecture-0.3.1/tests/unit/test_server_state.py +189 -0
  422. autonomous_agent_architecture-0.3.1/tests/unit/test_servers_smoke.py +10 -0
  423. autonomous_agent_architecture-0.3.1/tests/unit/test_session.py +276 -0
  424. autonomous_agent_architecture-0.3.1/tests/unit/test_snapshots.py +172 -0
  425. autonomous_agent_architecture-0.3.1/tests/unit/test_storage.py +50 -0
  426. autonomous_agent_architecture-0.3.1/tests/unit/test_store_contract.py +267 -0
  427. autonomous_agent_architecture-0.3.1/tests/unit/test_store_outage.py +373 -0
  428. autonomous_agent_architecture-0.3.1/tests/unit/test_store_outage_cluster.py +211 -0
  429. autonomous_agent_architecture-0.3.1/tests/unit/test_store_schema.py +196 -0
  430. autonomous_agent_architecture-0.3.1/tests/unit/test_tool_guard.py +445 -0
  431. autonomous_agent_architecture-0.3.1/tests/unit/test_trace.py +298 -0
  432. autonomous_agent_architecture-0.3.1/tests/unit/test_vector.py +261 -0
  433. autonomous_agent_architecture-0.3.1/tests/unit/test_vector_backends.py +486 -0
  434. autonomous_agent_architecture-0.3.1/tests/unit/test_vector_contract.py +370 -0
  435. autonomous_agent_architecture-0.3.1/tests/unit/test_vector_hybrid.py +168 -0
  436. autonomous_agent_architecture-0.3.1/uv.lock +5748 -0
@@ -0,0 +1,2 @@
1
+ DEEPEVAL_ID=be87251b-1d9b-4163-b8ce-b7fd06ac3aa4
2
+ DEEPEVAL_STATUS=new
@@ -0,0 +1,8 @@
1
+ .git
2
+ .venv
3
+ site
4
+ dist
5
+ **/__pycache__
6
+ tests
7
+ docs
8
+ *.db
@@ -0,0 +1,11 @@
1
+ version: 2
2
+ updates:
3
+ - package-ecosystem: github-actions
4
+ directory: /
5
+ schedule:
6
+ interval: weekly
7
+ - package-ecosystem: uv
8
+ directory: /
9
+ schedule:
10
+ interval: weekly
11
+ open-pull-requests-limit: 5
@@ -0,0 +1,406 @@
1
+ name: ci
2
+
3
+ # Lint + type-check, then the full test suite against REAL Postgres and Redis, on Python 3.11 and 3.12.
4
+ # (Docs have their own workflow, docs.yml, which also runs the docs tests before publishing.)
5
+
6
+ on:
7
+ push:
8
+ branches: [master]
9
+ pull_request:
10
+ workflow_dispatch:
11
+ schedule:
12
+ - cron: "17 5 * * 1" # weekly: do the memory libraries' newest releases still match our adapters?
13
+
14
+ permissions:
15
+ contents: read
16
+
17
+ concurrency:
18
+ group: ci-${{ github.ref }}
19
+ cancel-in-progress: true
20
+
21
+ jobs:
22
+ lint:
23
+ runs-on: ubuntu-latest
24
+ timeout-minutes: 10
25
+ steps:
26
+ - uses: actions/checkout@v4
27
+ - uses: astral-sh/setup-uv@v5
28
+ with:
29
+ enable-cache: true
30
+ - run: uv sync --frozen
31
+ - name: ruff (lint)
32
+ run: uv run ruff check .
33
+ - name: ruff (format)
34
+ run: uv run ruff format --check .
35
+ - name: pyright (src, examples, scripts)
36
+ run: uv run pyright
37
+
38
+ test:
39
+ runs-on: ubuntu-latest
40
+ timeout-minutes: 15
41
+ strategy:
42
+ fail-fast: false
43
+ matrix:
44
+ python: ["3.11", "3.12", "3.13"]
45
+ services:
46
+ postgres:
47
+ image: pgvector/pgvector:pg16
48
+ env:
49
+ POSTGRES_PASSWORD: aaa
50
+ ports: ["5432:5432"]
51
+ options: >-
52
+ --health-cmd "pg_isready -U postgres"
53
+ --health-interval 5s
54
+ --health-timeout 5s
55
+ --health-retries 10
56
+ redis:
57
+ image: redis:7
58
+ ports: ["6379:6379"]
59
+ options: >-
60
+ --health-cmd "redis-cli ping"
61
+ --health-interval 5s
62
+ --health-timeout 5s
63
+ --health-retries 10
64
+ env:
65
+ # The suite creates a throwaway database per test and isolates Redis by key prefix.
66
+ AAA_TEST_POSTGRES_URL: postgresql://postgres:aaa@localhost:5432/postgres
67
+ AAA_TEST_REDIS_URL: redis://localhost:6379/0
68
+ steps:
69
+ - uses: actions/checkout@v4
70
+ - uses: astral-sh/setup-uv@v5
71
+ with:
72
+ enable-cache: true
73
+ python-version: ${{ matrix.python }}
74
+ - run: uv sync --frozen
75
+ - name: tests
76
+ # -v names every test, and a test stuck for 2 minutes dumps all thread stacks, so a hang is
77
+ # diagnosable from the log instead of just a cancelled job.
78
+ run: uv run pytest -v -p no:cacheprovider -o faulthandler_timeout=120
79
+
80
+ eval-adapters:
81
+ # DeepEval, Ragas and Inspect AI are large and pin clashing dependencies, so each gets its own environment. Their metrics run
82
+ # their REAL flows here against a fake judge model (tests/unit/test_eval_adapters.py).
83
+ runs-on: ubuntu-latest
84
+ timeout-minutes: 20
85
+ strategy:
86
+ fail-fast: false
87
+ matrix:
88
+ include:
89
+ - lib: autoevals
90
+ packages: "autoevals openai"
91
+ keyword: Autoevals
92
+ - lib: deepeval
93
+ packages: "deepeval"
94
+ keyword: DeepEval
95
+ - lib: ragas
96
+ # ragas 0.4.x does not import against langchain 1.x (langchain_community.chat_models.vertexai, ContextOverflowError)
97
+ packages: "ragas 'langchain-community<0.4' 'langchain-core<1' 'langchain-openai<1'"
98
+ keyword: Ragas
99
+ - lib: inspect-ai
100
+ packages: "inspect-ai"
101
+ keyword: Inspect
102
+ steps:
103
+ - uses: actions/checkout@v4
104
+ - uses: astral-sh/setup-uv@v5
105
+ with:
106
+ enable-cache: true
107
+ - run: uv sync --frozen
108
+ - name: Install ${{ matrix.lib }}
109
+ run: uv pip install ${{ matrix.packages }}
110
+ - name: Adapter tests
111
+ run: uv run --no-sync pytest -v -p no:cacheprovider tests/unit/test_eval_adapters.py -k ${{ matrix.keyword }}
112
+
113
+ guard-adapters:
114
+ # Presidio runs for real (with a small spaCy model); the OpenAI SDK validates the shape of the moderation replies we parse.
115
+ runs-on: ubuntu-latest
116
+ timeout-minutes: 20
117
+ steps:
118
+ - uses: actions/checkout@v4
119
+ - uses: astral-sh/setup-uv@v5
120
+ with:
121
+ enable-cache: true
122
+ - run: uv sync --frozen
123
+ - name: Install Presidio, its spaCy model, and the OpenAI SDK
124
+ run: |
125
+ uv pip install presidio-analyzer presidio-anonymizer openai pip
126
+ uv run --no-sync python -m spacy download en_core_web_sm
127
+ - name: Adapter tests
128
+ run: uv run --no-sync pytest -v -p no:cacheprovider tests/unit/test_guard.py tests/unit/test_guard_adapters.py tests/unit/test_multimodal.py
129
+
130
+ vector-adapters:
131
+ # pgvector (real PostgreSQL with the extension) and Qdrant (its in-process mode) run the shared contract suite.
132
+ # AAA_REQUIRE_PGVECTOR turns "extension not available" from a skip into a failure, so this job cannot go green by skipping.
133
+ runs-on: ubuntu-latest
134
+ timeout-minutes: 15
135
+ services:
136
+ postgres:
137
+ image: pgvector/pgvector:pg16
138
+ env:
139
+ POSTGRES_PASSWORD: aaa
140
+ ports: ["5432:5432"]
141
+ options: >-
142
+ --health-cmd "pg_isready -U postgres"
143
+ --health-interval 5s
144
+ --health-timeout 5s
145
+ --health-retries 10
146
+ env:
147
+ AAA_TEST_POSTGRES_URL: postgresql://postgres:aaa@localhost:5432/postgres
148
+ AAA_REQUIRE_PGVECTOR: "1"
149
+ steps:
150
+ - uses: actions/checkout@v4
151
+ - uses: astral-sh/setup-uv@v5
152
+ with:
153
+ enable-cache: true
154
+ - run: uv sync --frozen --extra qdrant --extra pdf
155
+ - name: Vector store tests
156
+ run: uv run pytest -v -p no:cacheprovider tests/unit/test_ingest.py tests/unit/test_vector.py tests/unit/test_vector_contract.py tests/unit/test_vector_backends.py tests/unit/test_vector_hybrid.py
157
+ - name: Newest releases (scheduled and manual runs only)
158
+ if: github.event_name != 'pull_request' && github.event_name != 'push'
159
+ run: |
160
+ uv pip install --upgrade qdrant-client asyncpg
161
+ uv run --no-sync pytest -v -p no:cacheprovider tests/unit/test_vector_contract.py tests/unit/test_vector_backends.py
162
+
163
+ embedded-vector:
164
+ # Embedded vector stores run the shared contract suite for real, one library per leg (Chroma is large).
165
+ runs-on: ubuntu-latest
166
+ timeout-minutes: 20
167
+ strategy:
168
+ fail-fast: false
169
+ matrix:
170
+ lib: [sqlite-vec, lancedb, chromadb]
171
+ steps:
172
+ - uses: actions/checkout@v4
173
+ - uses: astral-sh/setup-uv@v5
174
+ with:
175
+ enable-cache: true
176
+ - run: uv sync --frozen
177
+ - name: Install ${{ matrix.lib }}
178
+ run: |
179
+ uv pip install ${{ matrix.lib }}
180
+ uv run --no-sync python -c "import ${{ matrix.lib == 'sqlite-vec' && 'sqlite_vec' || matrix.lib }}"
181
+ - name: Vector store tests
182
+ run: uv run --no-sync pytest -v -p no:cacheprovider tests/unit/test_vector_contract.py tests/unit/test_vector_backends.py tests/unit/test_vector_hybrid.py tests/unit/test_ingest.py -k "not pgvector and not postgres"
183
+ - name: Newest release (scheduled and manual runs only)
184
+ if: github.event_name != 'pull_request' && github.event_name != 'push'
185
+ run: |
186
+ uv pip install --upgrade ${{ matrix.lib }}
187
+ uv run --no-sync pytest -v -p no:cacheprovider tests/unit/test_vector_contract.py tests/unit/test_vector_backends.py tests/unit/test_vector_hybrid.py tests/unit/test_ingest.py -k "not pgvector and not postgres"
188
+
189
+ pinecone-local:
190
+ # The official Pinecone Local emulator (data plane), against the newest SDK and the previous major. Not a live Pinecone account.
191
+ runs-on: ubuntu-latest
192
+ timeout-minutes: 15
193
+ strategy:
194
+ fail-fast: false
195
+ matrix:
196
+ sdk: ["pinecone", "'pinecone[asyncio]<8'"]
197
+ steps:
198
+ - uses: actions/checkout@v4
199
+ - uses: astral-sh/setup-uv@v5
200
+ with:
201
+ enable-cache: true
202
+ - run: uv sync --frozen
203
+ - name: Start Pinecone Local and create an index
204
+ run: |
205
+ docker run -d --name pinecone-local -e PORT=5080 -e PINECONE_HOST=localhost -p 5080-5090:5080-5090 --platform linux/amd64 ghcr.io/pinecone-io/pinecone-local:latest
206
+ for i in $(seq 1 30); do curl -sf localhost:5080/indexes && break; sleep 2; done
207
+ host=$(curl -s -X POST localhost:5080/indexes -H 'Content-Type: application/json' -H 'Api-Key: pclocal' -H 'X-Pinecone-API-Version: 2025-04' \
208
+ -d '{"name":"contract","dimension":4,"metric":"cosine","spec":{"serverless":{"cloud":"aws","region":"us-east-1"}}}' | python3 -c "import sys,json; print(json.load(sys.stdin)['host'])")
209
+ echo "AAA_TEST_PINECONE_HOST=http://$host" >> "$GITHUB_ENV"
210
+ - name: Install the SDK
211
+ run: uv pip install ${{ matrix.sdk }}
212
+ - name: Pinecone tests
213
+ run: uv run --no-sync pytest -v -p no:cacheprovider tests/unit/test_vector_contract.py tests/unit/test_vector_backends.py tests/unit/test_ingest.py -k "pinecone or Pinecone or each_real"
214
+
215
+ guard-adapters-more:
216
+ # Bedrock (botocore validates request and response against the service model), Guardrails AI and NeMo Guardrails (real flows).
217
+ runs-on: ubuntu-latest
218
+ timeout-minutes: 20
219
+ strategy:
220
+ fail-fast: false
221
+ matrix:
222
+ include:
223
+ - lib: boto3
224
+ packages: "boto3"
225
+ keyword: Bedrock
226
+ - lib: guardrails-ai
227
+ packages: "guardrails-ai"
228
+ keyword: GuardrailsAI
229
+ - lib: nemoguardrails
230
+ packages: "nemoguardrails"
231
+ keyword: NeMo
232
+ steps:
233
+ - uses: actions/checkout@v4
234
+ - uses: astral-sh/setup-uv@v5
235
+ with:
236
+ enable-cache: true
237
+ - run: uv sync --frozen
238
+ - name: Install ${{ matrix.lib }}
239
+ run: uv pip install ${{ matrix.packages }}
240
+ - name: Adapter tests
241
+ run: uv run --no-sync pytest -v -p no:cacheprovider tests/unit/test_guard_adapters.py -k ${{ matrix.keyword }}
242
+ - name: Newest release (scheduled and manual runs only)
243
+ if: github.event_name != 'pull_request' && github.event_name != 'push'
244
+ run: |
245
+ uv pip install --upgrade ${{ matrix.packages }}
246
+ uv run --no-sync pytest -v -p no:cacheprovider tests/unit/test_guard_adapters.py -k ${{ matrix.keyword }}
247
+
248
+ native-providers:
249
+ # The Anthropic and Gemini clients speak the vendors' HTTP APIs without their SDKs; here the SDKs' own types validate the
250
+ # requests, replies and stream events we build and parse (and the weekly run catches the vendors changing them).
251
+ runs-on: ubuntu-latest
252
+ timeout-minutes: 15
253
+ strategy:
254
+ fail-fast: false
255
+ matrix:
256
+ sdk: [anthropic, google-genai]
257
+ steps:
258
+ - uses: actions/checkout@v4
259
+ - uses: astral-sh/setup-uv@v5
260
+ with:
261
+ enable-cache: true
262
+ - run: uv sync --frozen
263
+ - name: Install ${{ matrix.sdk }}
264
+ run: uv pip install ${{ matrix.sdk }}
265
+ - name: Provider tests
266
+ run: uv run --no-sync pytest -v -p no:cacheprovider tests/unit/test_native_providers.py
267
+ - name: Newest release (scheduled and manual runs only)
268
+ if: github.event_name != 'pull_request' && github.event_name != 'push'
269
+ run: |
270
+ uv pip install --upgrade ${{ matrix.sdk }}
271
+ uv run --no-sync pytest -v -p no:cacheprovider tests/unit/test_native_providers.py
272
+
273
+ builtin-tools:
274
+ # The sandbox runs against real Docker (network denied, memory/pid/timeout/output limits) and the search provider against a real SearXNG.
275
+ # AAA_REQUIRE_DOCKER turns "no Docker" into a failure, so this job cannot go green by skipping.
276
+ runs-on: ubuntu-latest
277
+ timeout-minutes: 20
278
+ env:
279
+ AAA_REQUIRE_DOCKER: "1"
280
+ AAA_TEST_SEARXNG_URL: http://localhost:8888
281
+ steps:
282
+ - uses: actions/checkout@v4
283
+ - uses: astral-sh/setup-uv@v5
284
+ with:
285
+ enable-cache: true
286
+ - run: uv sync --frozen
287
+ - name: Start SearXNG with JSON output enabled
288
+ run: |
289
+ mkdir -p searx && printf 'use_default_settings: true\nserver:\n secret_key: "ci-only-secret"\n limiter: false\nsearch:\n formats:\n - html\n - json\n' > searx/settings.yml
290
+ docker run -d --name searxng -p 8888:8080 -v "$PWD/searx/settings.yml:/etc/searxng/settings.yml:ro" searxng/searxng:latest
291
+ for i in $(seq 1 40); do curl -sf "http://localhost:8888/search?q=test&format=json" >/dev/null && break; sleep 3; done
292
+ - name: Built-in tool and sandbox tests
293
+ run: uv run pytest -v -p no:cacheprovider tests/unit/test_builtin_tools.py tests/unit/test_sandbox.py
294
+
295
+ server:
296
+ # aaa-server against a real Redis (the shared rate limiter) and as a built, installed package (the console script works from a clean venv).
297
+ runs-on: ubuntu-latest
298
+ timeout-minutes: 15
299
+ services:
300
+ redis:
301
+ image: redis:7
302
+ ports: ["6379:6379"]
303
+ options: >-
304
+ --health-cmd "redis-cli ping" --health-interval 5s --health-timeout 5s --health-retries 10
305
+ env:
306
+ AAA_TEST_REDIS_URL: redis://localhost:6379/0
307
+ steps:
308
+ - uses: actions/checkout@v4
309
+ - uses: astral-sh/setup-uv@v5
310
+ with:
311
+ enable-cache: true
312
+ - run: uv sync --frozen
313
+ - name: Server tests (MCP and A2A tests skip without their SDKs)
314
+ run: uv run pytest -v -p no:cacheprovider tests/server
315
+ - name: MCP and A2A against the official SDK clients
316
+ run: |
317
+ uv pip install a2a-sdk "mcp>=1.12,<3"
318
+ uv run --no-sync pytest -v -p no:cacheprovider tests/server/test_a2a.py tests/server/test_mcp_http.py tests/unit/test_mcp_server.py
319
+ - name: Build both packages and check their metadata
320
+ run: |
321
+ uv build --all-packages
322
+ uvx twine check --strict dist/*
323
+ - name: The built wheels install together and the console scripts run
324
+ run: |
325
+ uv venv /tmp/smoke --python 3.12
326
+ uv pip install --python /tmp/smoke/bin/python dist/*.whl
327
+ /tmp/smoke/bin/aaa-server serve --help
328
+ /tmp/smoke/bin/aaa --help
329
+
330
+ score-backends:
331
+ # Scores delivered to a real Phoenix and a real Langfuse (2.x: one container plus Postgres). LangSmith is mock-only.
332
+ runs-on: ubuntu-latest
333
+ timeout-minutes: 20
334
+ env:
335
+ AAA_TEST_PHOENIX_URL: http://localhost:6006
336
+ AAA_TEST_LANGFUSE_URL: http://localhost:3100
337
+ steps:
338
+ - uses: actions/checkout@v4
339
+ - uses: astral-sh/setup-uv@v5
340
+ with:
341
+ enable-cache: true
342
+ - run: uv sync --frozen --extra otel
343
+ - name: Start Phoenix and Langfuse
344
+ run: |
345
+ docker run -d --name phx -p 6006:6006 arizephoenix/phoenix:latest
346
+ docker network create lfnet
347
+ docker run -d --name lfpg --network lfnet -e POSTGRES_PASSWORD=pg -e POSTGRES_DB=lf postgres:16
348
+ sleep 6
349
+ docker run -d --name lf --network lfnet -p 3100:3000 -e DATABASE_URL=postgresql://postgres:pg@lfpg:5432/lf -e NEXTAUTH_SECRET=s -e SALT=s -e NEXTAUTH_URL=http://localhost:3100 -e TELEMETRY_ENABLED=false -e LANGFUSE_INIT_ORG_ID=o -e LANGFUSE_INIT_PROJECT_ID=p -e LANGFUSE_INIT_PROJECT_PUBLIC_KEY=pk-lf-test -e LANGFUSE_INIT_PROJECT_SECRET_KEY=sk-lf-test -e LANGFUSE_INIT_USER_EMAIL=a@b.co -e LANGFUSE_INIT_USER_PASSWORD=password123 -e LANGFUSE_INIT_USER_NAME=a langfuse/langfuse:2
350
+ for i in $(seq 1 40); do curl -sf localhost:6006/healthz && curl -sf localhost:3100/api/public/health && break; sleep 3; done
351
+ sleep 5; docker restart lf; for i in $(seq 1 30); do curl -sf localhost:3100/api/public/health && break; sleep 2; done; sleep 5
352
+ - name: Score delivery tests
353
+ run: uv run pytest -v -p no:cacheprovider tests/unit/test_eval_m9.py
354
+
355
+ container:
356
+ # The image builds, runs as a non-root user next to Postgres, and serves an authenticated run end to end.
357
+ runs-on: ubuntu-latest
358
+ timeout-minutes: 20
359
+ steps:
360
+ - uses: actions/checkout@v4
361
+ - name: Start the stack
362
+ run: |
363
+ export AAA_API_KEY=ci-key-$(openssl rand -hex 8)
364
+ echo "AAA_API_KEY=$AAA_API_KEY" >> "$GITHUB_ENV"
365
+ docker compose up -d --build
366
+ for i in $(seq 1 40); do curl -sf localhost:8000/healthz && break; sleep 3; done
367
+ - name: A run completes and unauthenticated calls are refused
368
+ run: |
369
+ set -e
370
+ R=$(curl -sf -X POST localhost:8000/v1/runs -H "Authorization: Bearer $AAA_API_KEY" -H 'Content-Type: application/json' -d '{"algo":"agent","input":{"task":"hi"}}' | python3 -c "import json,sys; print(json.load(sys.stdin)['run_id'])")
371
+ sleep 3
372
+ curl -sf localhost:8000/v1/runs/$R -H "Authorization: Bearer $AAA_API_KEY" | grep -q '"status":"completed"'
373
+ test "$(curl -s -o /dev/null -w '%{http_code}' localhost:8000/v1/runs)" = 401
374
+ test "$(docker compose exec -T server id -u)" = 10001
375
+ - if: failure()
376
+ run: docker compose logs
377
+ - run: docker compose down -v
378
+
379
+ adapters:
380
+ # The memory adapters are tested against stand-ins; this job replays their calls against the REAL
381
+ # Mem0, Graphiti and LangGraph signatures (tests/unit/test_memory_signatures.py), which are skipped
382
+ # in the main job because those libraries are not dev dependencies.
383
+ runs-on: ubuntu-latest
384
+ timeout-minutes: 15
385
+ steps:
386
+ - uses: actions/checkout@v4
387
+ - uses: astral-sh/setup-uv@v5
388
+ with:
389
+ enable-cache: true
390
+ - name: Locked versions
391
+ run: |
392
+ uv sync --frozen --extra mem0 --extra graphiti --extra langgraph --extra langmem --extra mcp --extra otel
393
+ uv run pytest -v -p no:cacheprovider tests/unit/test_otel.py tests/unit/test_memory_signatures.py tests/unit/test_memory_adapters.py tests/unit/test_memory_contract.py tests/unit/test_mcp.py tests/unit/test_mcp_server.py tests/server/test_mcp_http.py tests/unit/test_examples.py -k "not cluster"
394
+ - name: OpenAI SDK types (conformance of the Responses client; not a runtime dependency)
395
+ run: |
396
+ uv pip install openai
397
+ uv run --no-sync pytest -v -p no:cacheprovider tests/unit/test_openai_conformance.py
398
+ - name: MCP SDK 1.x (the lock resolves 2.x; both are supported)
399
+ run: |
400
+ uv pip install "mcp<2"
401
+ uv run --no-sync pytest -v -p no:cacheprovider tests/unit/test_mcp.py tests/unit/test_mcp_server.py
402
+ - name: Newest releases (scheduled and manual runs only)
403
+ if: github.event_name != 'pull_request' && github.event_name != 'push'
404
+ run: |
405
+ uv pip install --upgrade mem0ai graphiti-core langgraph langmem mcp openai opentelemetry-sdk opentelemetry-exporter-otlp-proto-http opentelemetry-semantic-conventions
406
+ uv run --no-sync pytest -v -p no:cacheprovider tests/unit/test_otel.py tests/unit/test_memory_signatures.py tests/unit/test_mcp.py tests/unit/test_openai_conformance.py
@@ -0,0 +1,64 @@
1
+ name: docs
2
+
3
+ # Builds the documentation (strictly) and publishes it to GitHub Pages on every push to master that
4
+ # touches the docs, the examples they embed, the source their API reference is generated from, or
5
+ # this workflow. A broken example or an invalid fragment blocks publishing.
6
+
7
+ on:
8
+ push:
9
+ branches: [master]
10
+ paths:
11
+ - "docs/**"
12
+ - "examples/**"
13
+ - "src/**"
14
+ - "packages/**"
15
+ - "mkdocs.yml"
16
+ - "pyproject.toml"
17
+ - "uv.lock"
18
+ - "LICENSE"
19
+ - ".github/workflows/docs.yml"
20
+ workflow_dispatch:
21
+
22
+ permissions:
23
+ contents: read
24
+ pages: write
25
+ id-token: write
26
+
27
+ concurrency:
28
+ group: pages
29
+ cancel-in-progress: false
30
+
31
+ jobs:
32
+ build:
33
+ runs-on: ubuntu-latest
34
+ steps:
35
+ - uses: actions/checkout@v4
36
+
37
+ - uses: astral-sh/setup-uv@v5
38
+ with:
39
+ enable-cache: true
40
+
41
+ - name: Install (docs extra + dev group)
42
+ run: uv sync --extra docs --frozen
43
+
44
+ - name: Every embedded example runs, and every inline fragment is valid Python
45
+ run: uv run pytest -q -p no:cacheprovider tests/unit/test_examples.py tests/unit/test_docs_snippets.py
46
+
47
+ - name: "Build (strict - warnings fail the build)"
48
+ run: uv run mkdocs build --strict
49
+
50
+ - uses: actions/configure-pages@v5
51
+
52
+ - uses: actions/upload-pages-artifact@v3
53
+ with:
54
+ path: site
55
+
56
+ deploy:
57
+ needs: build
58
+ runs-on: ubuntu-latest
59
+ environment:
60
+ name: github-pages
61
+ url: ${{ steps.deployment.outputs.page_url }}
62
+ steps:
63
+ - id: deployment
64
+ uses: actions/deploy-pages@v4
@@ -0,0 +1,92 @@
1
+ name: release-server
2
+
3
+ # Publishes `aaa-server` to PyPI when a GitHub Release tagged server-vX.Y.Z is published (Trusted Publishing, no token stored).
4
+ # aaa-server is versioned and released independently of the library (release.yml handles v* tags).
5
+ # One-time setup: create the `aaa-server` project on PyPI with a pending trusted publisher for this repository,
6
+ # workflow `release-server.yml`, environment `pypi-server`.
7
+
8
+ on:
9
+ release:
10
+ types: [published]
11
+ workflow_dispatch:
12
+
13
+ permissions:
14
+ contents: read
15
+
16
+ jobs:
17
+ build:
18
+ if: github.event_name != 'release' || startsWith(github.event.release.tag_name, 'server-v')
19
+ runs-on: ubuntu-latest
20
+ timeout-minutes: 15
21
+ outputs:
22
+ already_published: ${{ steps.exists.outputs.published }}
23
+ steps:
24
+ - uses: actions/checkout@v4
25
+ - uses: astral-sh/setup-uv@v5
26
+ - name: Tag, version and dependency floor agree
27
+ run: |
28
+ uv run --no-project python - <<'PY'
29
+ import os, tomllib
30
+ meta = tomllib.load(open("packages/aaa-server/pyproject.toml", "rb"))["project"]
31
+ tag = os.environ.get("GITHUB_REF_NAME", "")
32
+ if os.environ.get("GITHUB_EVENT_NAME") == "release" and tag != "server-v" + meta["version"]:
33
+ raise SystemExit(f"release tag {tag!r} does not match aaa-server version {meta['version']!r}")
34
+ core = [d for d in meta["dependencies"] if d.startswith("autonomous-agent-architecture")]
35
+ if any("dev" in d for d in core):
36
+ raise SystemExit(f"the dependency on the library is still a development floor: {core}")
37
+ PY
38
+ - name: Is this version already on PyPI?
39
+ id: exists
40
+ run: |
41
+ version="$(uv run --no-project python -c "import tomllib; print(tomllib.load(open('packages/aaa-server/pyproject.toml','rb'))['project']['version'])")"
42
+ code="$(curl -s -o /dev/null -w '%{http_code}' "https://pypi.org/pypi/aaa-server/${version}/json")"
43
+ if [ "$code" = "200" ]; then echo "published=true" >> "$GITHUB_OUTPUT"; else echo "published=false" >> "$GITHUB_OUTPUT"; fi
44
+ - run: uv build --package aaa-server
45
+ - run: uvx twine check --strict dist/*
46
+ - name: The built wheel installs from PyPI's library and runs
47
+ run: |
48
+ uv venv /tmp/smoke --python 3.12
49
+ uv pip install --python /tmp/smoke/bin/python dist/*.whl
50
+ /tmp/smoke/bin/aaa-server serve --help
51
+ - uses: actions/upload-artifact@v4
52
+ with:
53
+ name: dist
54
+ path: dist/
55
+ if-no-files-found: error
56
+
57
+ test:
58
+ needs: build
59
+ runs-on: ubuntu-latest
60
+ timeout-minutes: 20
61
+ services:
62
+ redis:
63
+ image: redis:7
64
+ ports: ["6379:6379"]
65
+ options: >-
66
+ --health-cmd "redis-cli ping" --health-interval 5s --health-timeout 5s --health-retries 10
67
+ env:
68
+ AAA_TEST_REDIS_URL: redis://localhost:6379/0
69
+ steps:
70
+ - uses: actions/checkout@v4
71
+ - uses: astral-sh/setup-uv@v5
72
+ with:
73
+ enable-cache: true
74
+ - run: uv sync --frozen
75
+ - run: uv run ruff check . && uv run ruff format --check . && uv run pyright
76
+ - run: uv run pytest -v -p no:cacheprovider tests/server
77
+
78
+ publish-pypi:
79
+ if: github.event_name == 'release' && needs.build.outputs.already_published != 'true'
80
+ needs: [build, test]
81
+ runs-on: ubuntu-latest
82
+ environment:
83
+ name: pypi-server
84
+ url: https://pypi.org/p/aaa-server
85
+ permissions:
86
+ id-token: write
87
+ steps:
88
+ - uses: actions/download-artifact@v4
89
+ with:
90
+ name: dist
91
+ path: dist/
92
+ - uses: pypa/gh-action-pypi-publish@release/v1