algen-agent-runtime 0.1.0a1__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 (270) hide show
  1. algen_agent_runtime-0.1.0a1/.agents/skills/algen-agent-builder/SKILL.md +26 -0
  2. algen_agent_runtime-0.1.0a1/.agents/skills/algen-agent-builder/agents/openai.yaml +6 -0
  3. algen_agent_runtime-0.1.0a1/.agents/skills/algen-agent-builder/references/project-shape.md +39 -0
  4. algen_agent_runtime-0.1.0a1/.agents/skills/algen-agent-builder/references/workflows.md +74 -0
  5. algen_agent_runtime-0.1.0a1/.agents/skills/algen-agent-connector/SKILL.md +24 -0
  6. algen_agent_runtime-0.1.0a1/.agents/skills/algen-agent-connector/agents/openai.yaml +5 -0
  7. algen_agent_runtime-0.1.0a1/.agents/skills/algen-agent-connector/references/connectors.md +81 -0
  8. algen_agent_runtime-0.1.0a1/.agents/skills/algen-runtime-contributor/SKILL.md +29 -0
  9. algen_agent_runtime-0.1.0a1/.agents/skills/algen-runtime-contributor/agents/openai.yaml +6 -0
  10. algen_agent_runtime-0.1.0a1/.agents/skills/algen-runtime-contributor/references/change-checklist.md +59 -0
  11. algen_agent_runtime-0.1.0a1/.agents/skills/algen-runtime-extension/SKILL.md +24 -0
  12. algen_agent_runtime-0.1.0a1/.agents/skills/algen-runtime-extension/agents/openai.yaml +6 -0
  13. algen_agent_runtime-0.1.0a1/.agents/skills/algen-runtime-extension/references/extension-points.md +62 -0
  14. algen_agent_runtime-0.1.0a1/.gitignore +13 -0
  15. algen_agent_runtime-0.1.0a1/CHANGELOG.md +87 -0
  16. algen_agent_runtime-0.1.0a1/LICENSE +201 -0
  17. algen_agent_runtime-0.1.0a1/NOTICE +7 -0
  18. algen_agent_runtime-0.1.0a1/PKG-INFO +480 -0
  19. algen_agent_runtime-0.1.0a1/README.md +382 -0
  20. algen_agent_runtime-0.1.0a1/examples/__init__.py +37 -0
  21. algen_agent_runtime-0.1.0a1/examples/case_study_responsible_hiring/README.md +86 -0
  22. algen_agent_runtime-0.1.0a1/examples/case_study_responsible_hiring/__init__.py +1 -0
  23. algen_agent_runtime-0.1.0a1/examples/case_study_responsible_hiring/app.py +20 -0
  24. algen_agent_runtime-0.1.0a1/examples/case_study_responsible_hiring/application/__init__.py +1 -0
  25. algen_agent_runtime-0.1.0a1/examples/case_study_responsible_hiring/application/contracts.py +132 -0
  26. algen_agent_runtime-0.1.0a1/examples/case_study_responsible_hiring/application/document_pipeline.py +30 -0
  27. algen_agent_runtime-0.1.0a1/examples/case_study_responsible_hiring/application/repositories.py +140 -0
  28. algen_agent_runtime-0.1.0a1/examples/case_study_responsible_hiring/application/workflow.py +473 -0
  29. algen_agent_runtime-0.1.0a1/examples/case_study_responsible_hiring/application/workflow_hooks.py +66 -0
  30. algen_agent_runtime-0.1.0a1/examples/case_study_responsible_hiring/config/agent.yaml +318 -0
  31. algen_agent_runtime-0.1.0a1/examples/case_study_responsible_hiring/dashboard.py +195 -0
  32. algen_agent_runtime-0.1.0a1/examples/case_study_responsible_hiring/data/template_corpus.md +18 -0
  33. algen_agent_runtime-0.1.0a1/examples/case_study_responsible_hiring/database/migrations/001_hiring_schema.sql +27 -0
  34. algen_agent_runtime-0.1.0a1/examples/case_study_responsible_hiring/ui/index.html +424 -0
  35. algen_agent_runtime-0.1.0a1/examples/case_study_teaching_assistant/DEMO_GUIDE.md +48 -0
  36. algen_agent_runtime-0.1.0a1/examples/case_study_teaching_assistant/Dockerfile +22 -0
  37. algen_agent_runtime-0.1.0a1/examples/case_study_teaching_assistant/README.md +111 -0
  38. algen_agent_runtime-0.1.0a1/examples/case_study_teaching_assistant/__init__.py +1 -0
  39. algen_agent_runtime-0.1.0a1/examples/case_study_teaching_assistant/app.py +63 -0
  40. algen_agent_runtime-0.1.0a1/examples/case_study_teaching_assistant/application/__init__.py +12 -0
  41. algen_agent_runtime-0.1.0a1/examples/case_study_teaching_assistant/application/handler.py +114 -0
  42. algen_agent_runtime-0.1.0a1/examples/case_study_teaching_assistant/application/policies.py +89 -0
  43. algen_agent_runtime-0.1.0a1/examples/case_study_teaching_assistant/application/tools.py +253 -0
  44. algen_agent_runtime-0.1.0a1/examples/case_study_teaching_assistant/application/workflow_hooks.py +11 -0
  45. algen_agent_runtime-0.1.0a1/examples/case_study_teaching_assistant/config/agent.yaml +204 -0
  46. algen_agent_runtime-0.1.0a1/examples/case_study_teaching_assistant/config/ecs.yaml +37 -0
  47. algen_agent_runtime-0.1.0a1/examples/case_study_teaching_assistant/dashboard.py +70 -0
  48. algen_agent_runtime-0.1.0a1/examples/case_study_teaching_assistant/deploy/README.md +29 -0
  49. algen_agent_runtime-0.1.0a1/examples/case_study_teaching_assistant/deploy/ecs-task-definition.example.json +46 -0
  50. algen_agent_runtime-0.1.0a1/examples/case_study_teaching_assistant/ui/index.html +55 -0
  51. algen_agent_runtime-0.1.0a1/examples/pattern_approval_workflow/README.md +13 -0
  52. algen_agent_runtime-0.1.0a1/examples/pattern_approval_workflow/__init__.py +1 -0
  53. algen_agent_runtime-0.1.0a1/examples/pattern_approval_workflow/agent.yaml +71 -0
  54. algen_agent_runtime-0.1.0a1/examples/pattern_approval_workflow/app.py +24 -0
  55. algen_agent_runtime-0.1.0a1/examples/pattern_approval_workflow/hooks.py +53 -0
  56. algen_agent_runtime-0.1.0a1/examples/pattern_approval_workflow/manifest.yaml +23 -0
  57. algen_agent_runtime-0.1.0a1/examples/pattern_child_workflow/README.md +9 -0
  58. algen_agent_runtime-0.1.0a1/examples/pattern_child_workflow/__init__.py +1 -0
  59. algen_agent_runtime-0.1.0a1/examples/pattern_child_workflow/agent.yaml +69 -0
  60. algen_agent_runtime-0.1.0a1/examples/pattern_child_workflow/app.py +21 -0
  61. algen_agent_runtime-0.1.0a1/examples/pattern_child_workflow/hooks.py +20 -0
  62. algen_agent_runtime-0.1.0a1/examples/pattern_child_workflow/manifest.yaml +21 -0
  63. algen_agent_runtime-0.1.0a1/examples/pattern_evaluation_gate/README.md +12 -0
  64. algen_agent_runtime-0.1.0a1/examples/pattern_evaluation_gate/__init__.py +1 -0
  65. algen_agent_runtime-0.1.0a1/examples/pattern_evaluation_gate/agent.yaml +36 -0
  66. algen_agent_runtime-0.1.0a1/examples/pattern_evaluation_gate/app.py +51 -0
  67. algen_agent_runtime-0.1.0a1/examples/pattern_evaluation_gate/hooks.py +23 -0
  68. algen_agent_runtime-0.1.0a1/examples/pattern_evaluation_gate/manifest.yaml +22 -0
  69. algen_agent_runtime-0.1.0a1/examples/pattern_governed_research/README.md +11 -0
  70. algen_agent_runtime-0.1.0a1/examples/pattern_governed_research/__init__.py +1 -0
  71. algen_agent_runtime-0.1.0a1/examples/pattern_governed_research/agent.yaml +57 -0
  72. algen_agent_runtime-0.1.0a1/examples/pattern_governed_research/app.py +24 -0
  73. algen_agent_runtime-0.1.0a1/examples/pattern_governed_research/hooks.py +53 -0
  74. algen_agent_runtime-0.1.0a1/examples/pattern_governed_research/manifest.yaml +23 -0
  75. algen_agent_runtime-0.1.0a1/examples/pattern_langgraph_governance/README.md +8 -0
  76. algen_agent_runtime-0.1.0a1/examples/pattern_langgraph_governance/__init__.py +1 -0
  77. algen_agent_runtime-0.1.0a1/examples/pattern_langgraph_governance/agent.yaml +36 -0
  78. algen_agent_runtime-0.1.0a1/examples/pattern_langgraph_governance/app.py +24 -0
  79. algen_agent_runtime-0.1.0a1/examples/pattern_langgraph_governance/hooks.py +44 -0
  80. algen_agent_runtime-0.1.0a1/examples/pattern_langgraph_governance/manifest.yaml +26 -0
  81. algen_agent_runtime-0.1.0a1/examples/pattern_multi_agent_fanout/README.md +11 -0
  82. algen_agent_runtime-0.1.0a1/examples/pattern_multi_agent_fanout/__init__.py +1 -0
  83. algen_agent_runtime-0.1.0a1/examples/pattern_multi_agent_fanout/agent.yaml +76 -0
  84. algen_agent_runtime-0.1.0a1/examples/pattern_multi_agent_fanout/app.py +21 -0
  85. algen_agent_runtime-0.1.0a1/examples/pattern_multi_agent_fanout/hooks.py +69 -0
  86. algen_agent_runtime-0.1.0a1/examples/pattern_multi_agent_fanout/manifest.yaml +22 -0
  87. algen_agent_runtime-0.1.0a1/examples/pattern_provider_fallback/README.md +65 -0
  88. algen_agent_runtime-0.1.0a1/examples/pattern_provider_fallback/__init__.py +1 -0
  89. algen_agent_runtime-0.1.0a1/examples/pattern_provider_fallback/agent.yaml +25 -0
  90. algen_agent_runtime-0.1.0a1/examples/pattern_provider_fallback/app.py +122 -0
  91. algen_agent_runtime-0.1.0a1/examples/pattern_provider_fallback/manifest.yaml +29 -0
  92. algen_agent_runtime-0.1.0a1/examples/pattern_text_to_sql/README.md +52 -0
  93. algen_agent_runtime-0.1.0a1/examples/pattern_text_to_sql/__init__.py +1 -0
  94. algen_agent_runtime-0.1.0a1/examples/pattern_text_to_sql/advanced/README.md +42 -0
  95. algen_agent_runtime-0.1.0a1/examples/pattern_text_to_sql/advanced/__init__.py +1 -0
  96. algen_agent_runtime-0.1.0a1/examples/pattern_text_to_sql/advanced/agent.yaml +84 -0
  97. algen_agent_runtime-0.1.0a1/examples/pattern_text_to_sql/advanced/app.py +75 -0
  98. algen_agent_runtime-0.1.0a1/examples/pattern_text_to_sql/advanced/knowledge.py +69 -0
  99. algen_agent_runtime-0.1.0a1/examples/pattern_text_to_sql/advanced/migrations/001_schema_embeddings.sql +24 -0
  100. algen_agent_runtime-0.1.0a1/examples/pattern_text_to_sql/agent.yaml +138 -0
  101. algen_agent_runtime-0.1.0a1/examples/pattern_text_to_sql/app.py +228 -0
  102. algen_agent_runtime-0.1.0a1/examples/pattern_text_to_sql/manifest.yaml +52 -0
  103. algen_agent_runtime-0.1.0a1/examples/pattern_text_to_sql/schema.sql +29 -0
  104. algen_agent_runtime-0.1.0a1/examples/plugins.py +38 -0
  105. algen_agent_runtime-0.1.0a1/examples/providers.yaml +101 -0
  106. algen_agent_runtime-0.1.0a1/examples/quickstart_approval/README.md +9 -0
  107. algen_agent_runtime-0.1.0a1/examples/quickstart_approval/__init__.py +1 -0
  108. algen_agent_runtime-0.1.0a1/examples/quickstart_approval/agent.yaml +58 -0
  109. algen_agent_runtime-0.1.0a1/examples/quickstart_approval/app.py +24 -0
  110. algen_agent_runtime-0.1.0a1/examples/quickstart_approval/hooks.py +43 -0
  111. algen_agent_runtime-0.1.0a1/examples/quickstart_approval/manifest.yaml +22 -0
  112. algen_agent_runtime-0.1.0a1/examples/quickstart_cloud_chat/README.md +11 -0
  113. algen_agent_runtime-0.1.0a1/examples/quickstart_cloud_chat/__init__.py +1 -0
  114. algen_agent_runtime-0.1.0a1/examples/quickstart_cloud_chat/agent.yaml +28 -0
  115. algen_agent_runtime-0.1.0a1/examples/quickstart_cloud_chat/app.py +33 -0
  116. algen_agent_runtime-0.1.0a1/examples/quickstart_cloud_chat/manifest.yaml +26 -0
  117. algen_agent_runtime-0.1.0a1/examples/quickstart_local_chat/README.md +70 -0
  118. algen_agent_runtime-0.1.0a1/examples/quickstart_local_chat/__init__.py +1 -0
  119. algen_agent_runtime-0.1.0a1/examples/quickstart_local_chat/agent.yaml +31 -0
  120. algen_agent_runtime-0.1.0a1/examples/quickstart_local_chat/app.py +80 -0
  121. algen_agent_runtime-0.1.0a1/examples/quickstart_local_chat/manifest.yaml +34 -0
  122. algen_agent_runtime-0.1.0a1/examples/quickstart_rag/README.md +24 -0
  123. algen_agent_runtime-0.1.0a1/examples/quickstart_rag/__init__.py +1 -0
  124. algen_agent_runtime-0.1.0a1/examples/quickstart_rag/agent.yaml +103 -0
  125. algen_agent_runtime-0.1.0a1/examples/quickstart_rag/app.py +63 -0
  126. algen_agent_runtime-0.1.0a1/examples/quickstart_rag/manifest.yaml +37 -0
  127. algen_agent_runtime-0.1.0a1/examples/quickstart_rag/tests/test_smoke.py +42 -0
  128. algen_agent_runtime-0.1.0a1/examples/quickstart_tool/README.md +11 -0
  129. algen_agent_runtime-0.1.0a1/examples/quickstart_tool/__init__.py +1 -0
  130. algen_agent_runtime-0.1.0a1/examples/quickstart_tool/agent.yaml +42 -0
  131. algen_agent_runtime-0.1.0a1/examples/quickstart_tool/app.py +22 -0
  132. algen_agent_runtime-0.1.0a1/examples/quickstart_tool/hooks.py +29 -0
  133. algen_agent_runtime-0.1.0a1/examples/quickstart_tool/manifest.yaml +22 -0
  134. algen_agent_runtime-0.1.0a1/examples/reference_customer_support/README.md +15 -0
  135. algen_agent_runtime-0.1.0a1/examples/reference_customer_support/__init__.py +1 -0
  136. algen_agent_runtime-0.1.0a1/examples/reference_customer_support/app.py +24 -0
  137. algen_agent_runtime-0.1.0a1/examples/reference_customer_support/application/__init__.py +1 -0
  138. algen_agent_runtime-0.1.0a1/examples/reference_customer_support/application/workflow.py +73 -0
  139. algen_agent_runtime-0.1.0a1/examples/reference_customer_support/config/agent.yaml +98 -0
  140. algen_agent_runtime-0.1.0a1/examples/reference_customer_support/manifest.yaml +31 -0
  141. algen_agent_runtime-0.1.0a1/examples/reference_incident_response/README.md +13 -0
  142. algen_agent_runtime-0.1.0a1/examples/reference_incident_response/__init__.py +1 -0
  143. algen_agent_runtime-0.1.0a1/examples/reference_incident_response/app.py +24 -0
  144. algen_agent_runtime-0.1.0a1/examples/reference_incident_response/application/__init__.py +1 -0
  145. algen_agent_runtime-0.1.0a1/examples/reference_incident_response/application/workflow.py +70 -0
  146. algen_agent_runtime-0.1.0a1/examples/reference_incident_response/config/agent.yaml +109 -0
  147. algen_agent_runtime-0.1.0a1/examples/reference_incident_response/manifest.yaml +23 -0
  148. algen_agent_runtime-0.1.0a1/examples/reference_invoice_exceptions/README.md +15 -0
  149. algen_agent_runtime-0.1.0a1/examples/reference_invoice_exceptions/__init__.py +1 -0
  150. algen_agent_runtime-0.1.0a1/examples/reference_invoice_exceptions/app.py +24 -0
  151. algen_agent_runtime-0.1.0a1/examples/reference_invoice_exceptions/application/__init__.py +1 -0
  152. algen_agent_runtime-0.1.0a1/examples/reference_invoice_exceptions/application/workflow.py +88 -0
  153. algen_agent_runtime-0.1.0a1/examples/reference_invoice_exceptions/config/agent.yaml +97 -0
  154. algen_agent_runtime-0.1.0a1/examples/reference_invoice_exceptions/manifest.yaml +26 -0
  155. algen_agent_runtime-0.1.0a1/examples/workflow_cli.py +107 -0
  156. algen_agent_runtime-0.1.0a1/pyproject.toml +139 -0
  157. algen_agent_runtime-0.1.0a1/src/algen_agent_runtime/__init__.py +50 -0
  158. algen_agent_runtime-0.1.0a1/src/algen_agent_runtime/analytics/__init__.py +15 -0
  159. algen_agent_runtime-0.1.0a1/src/algen_agent_runtime/analytics/contracts.py +210 -0
  160. algen_agent_runtime-0.1.0a1/src/algen_agent_runtime/analytics/engine.py +397 -0
  161. algen_agent_runtime-0.1.0a1/src/algen_agent_runtime/analytics/handlers.py +167 -0
  162. algen_agent_runtime-0.1.0a1/src/algen_agent_runtime/analytics/stores.py +74 -0
  163. algen_agent_runtime-0.1.0a1/src/algen_agent_runtime/api/app.py +631 -0
  164. algen_agent_runtime-0.1.0a1/src/algen_agent_runtime/api/dependencies.py +86 -0
  165. algen_agent_runtime-0.1.0a1/src/algen_agent_runtime/approvals/service.py +194 -0
  166. algen_agent_runtime-0.1.0a1/src/algen_agent_runtime/artifacts/__init__.py +7 -0
  167. algen_agent_runtime-0.1.0a1/src/algen_agent_runtime/artifacts/service.py +83 -0
  168. algen_agent_runtime-0.1.0a1/src/algen_agent_runtime/cache/__init__.py +15 -0
  169. algen_agent_runtime-0.1.0a1/src/algen_agent_runtime/cache/contracts.py +49 -0
  170. algen_agent_runtime-0.1.0a1/src/algen_agent_runtime/cache/service.py +233 -0
  171. algen_agent_runtime-0.1.0a1/src/algen_agent_runtime/cache/stores.py +145 -0
  172. algen_agent_runtime-0.1.0a1/src/algen_agent_runtime/communications/__init__.py +25 -0
  173. algen_agent_runtime-0.1.0a1/src/algen_agent_runtime/communications/email.py +319 -0
  174. algen_agent_runtime-0.1.0a1/src/algen_agent_runtime/config/registry.py +35 -0
  175. algen_agent_runtime-0.1.0a1/src/algen_agent_runtime/config/settings.py +497 -0
  176. algen_agent_runtime-0.1.0a1/src/algen_agent_runtime/context/builder.py +203 -0
  177. algen_agent_runtime-0.1.0a1/src/algen_agent_runtime/conversations/__init__.py +55 -0
  178. algen_agent_runtime-0.1.0a1/src/algen_agent_runtime/conversations/contracts.py +206 -0
  179. algen_agent_runtime-0.1.0a1/src/algen_agent_runtime/conversations/feedback.py +237 -0
  180. algen_agent_runtime-0.1.0a1/src/algen_agent_runtime/conversations/followups.py +105 -0
  181. algen_agent_runtime-0.1.0a1/src/algen_agent_runtime/conversations/presentation.py +48 -0
  182. algen_agent_runtime-0.1.0a1/src/algen_agent_runtime/conversations/service.py +637 -0
  183. algen_agent_runtime-0.1.0a1/src/algen_agent_runtime/conversations/stores.py +336 -0
  184. algen_agent_runtime-0.1.0a1/src/algen_agent_runtime/conversations/visualization.py +55 -0
  185. algen_agent_runtime-0.1.0a1/src/algen_agent_runtime/distributed/__init__.py +12 -0
  186. algen_agent_runtime-0.1.0a1/src/algen_agent_runtime/distributed/contracts.py +44 -0
  187. algen_agent_runtime-0.1.0a1/src/algen_agent_runtime/distributed/queue.py +182 -0
  188. algen_agent_runtime-0.1.0a1/src/algen_agent_runtime/distributed/worker.py +50 -0
  189. algen_agent_runtime-0.1.0a1/src/algen_agent_runtime/evaluation/__init__.py +17 -0
  190. algen_agent_runtime-0.1.0a1/src/algen_agent_runtime/evaluation/contracts.py +51 -0
  191. algen_agent_runtime-0.1.0a1/src/algen_agent_runtime/evaluation/runner.py +102 -0
  192. algen_agent_runtime-0.1.0a1/src/algen_agent_runtime/events/bus.py +172 -0
  193. algen_agent_runtime-0.1.0a1/src/algen_agent_runtime/events/contracts.py +63 -0
  194. algen_agent_runtime-0.1.0a1/src/algen_agent_runtime/exceptions/__init__.py +1 -0
  195. algen_agent_runtime-0.1.0a1/src/algen_agent_runtime/exceptions/errors.py +51 -0
  196. algen_agent_runtime-0.1.0a1/src/algen_agent_runtime/frameworks/__init__.py +31 -0
  197. algen_agent_runtime-0.1.0a1/src/algen_agent_runtime/frameworks/adapters.py +281 -0
  198. algen_agent_runtime-0.1.0a1/src/algen_agent_runtime/frameworks/contracts.py +101 -0
  199. algen_agent_runtime-0.1.0a1/src/algen_agent_runtime/governance/__init__.py +25 -0
  200. algen_agent_runtime-0.1.0a1/src/algen_agent_runtime/governance/contracts.py +77 -0
  201. algen_agent_runtime-0.1.0a1/src/algen_agent_runtime/governance/engine.py +126 -0
  202. algen_agent_runtime-0.1.0a1/src/algen_agent_runtime/governance/executor.py +124 -0
  203. algen_agent_runtime-0.1.0a1/src/algen_agent_runtime/methods/__init__.py +16 -0
  204. algen_agent_runtime-0.1.0a1/src/algen_agent_runtime/methods/contracts.py +75 -0
  205. algen_agent_runtime-0.1.0a1/src/algen_agent_runtime/methods/registry.py +139 -0
  206. algen_agent_runtime-0.1.0a1/src/algen_agent_runtime/model_services/__init__.py +25 -0
  207. algen_agent_runtime-0.1.0a1/src/algen_agent_runtime/model_services/contracts.py +76 -0
  208. algen_agent_runtime-0.1.0a1/src/algen_agent_runtime/model_services/http.py +68 -0
  209. algen_agent_runtime-0.1.0a1/src/algen_agent_runtime/model_services/registry.py +126 -0
  210. algen_agent_runtime-0.1.0a1/src/algen_agent_runtime/models/base.py +242 -0
  211. algen_agent_runtime-0.1.0a1/src/algen_agent_runtime/models/providers/adapters.py +409 -0
  212. algen_agent_runtime-0.1.0a1/src/algen_agent_runtime/models/providers/local_transformers.py +58 -0
  213. algen_agent_runtime-0.1.0a1/src/algen_agent_runtime/models/providers/mock.py +88 -0
  214. algen_agent_runtime-0.1.0a1/src/algen_agent_runtime/models/providers/openai_compatible.py +447 -0
  215. algen_agent_runtime-0.1.0a1/src/algen_agent_runtime/observability/setup.py +55 -0
  216. algen_agent_runtime-0.1.0a1/src/algen_agent_runtime/observability/traccia_adapter.py +384 -0
  217. algen_agent_runtime-0.1.0a1/src/algen_agent_runtime/observability/trace_levels.py +54 -0
  218. algen_agent_runtime-0.1.0a1/src/algen_agent_runtime/orchestration/container.py +698 -0
  219. algen_agent_runtime-0.1.0a1/src/algen_agent_runtime/persistence/memory.py +164 -0
  220. algen_agent_runtime-0.1.0a1/src/algen_agent_runtime/persistence/migrations/001_initial.sql +75 -0
  221. algen_agent_runtime-0.1.0a1/src/algen_agent_runtime/persistence/migrations/002_conversations.sql +32 -0
  222. algen_agent_runtime-0.1.0a1/src/algen_agent_runtime/persistence/migrations/003_analytical_execution.sql +32 -0
  223. algen_agent_runtime-0.1.0a1/src/algen_agent_runtime/persistence/migrations/004_conversation_feedback.sql +13 -0
  224. algen_agent_runtime-0.1.0a1/src/algen_agent_runtime/persistence/migrations/005_algen_agent_runtime_rename.sql +54 -0
  225. algen_agent_runtime-0.1.0a1/src/algen_agent_runtime/persistence/migrations/006_artifact_lifecycle.sql +33 -0
  226. algen_agent_runtime-0.1.0a1/src/algen_agent_runtime/persistence/migrations/007_s3_artifacts.sql +21 -0
  227. algen_agent_runtime-0.1.0a1/src/algen_agent_runtime/persistence/migrations/008_workflow_checkpoints.sql +18 -0
  228. algen_agent_runtime-0.1.0a1/src/algen_agent_runtime/persistence/postgres.py +412 -0
  229. algen_agent_runtime-0.1.0a1/src/algen_agent_runtime/persistence/redis.py +87 -0
  230. algen_agent_runtime-0.1.0a1/src/algen_agent_runtime/persistence/s3.py +245 -0
  231. algen_agent_runtime-0.1.0a1/src/algen_agent_runtime/persistence/tool_executions.py +49 -0
  232. algen_agent_runtime-0.1.0a1/src/algen_agent_runtime/planning/contracts.py +54 -0
  233. algen_agent_runtime-0.1.0a1/src/algen_agent_runtime/planning/planners.py +92 -0
  234. algen_agent_runtime-0.1.0a1/src/algen_agent_runtime/plugins/sdk.py +66 -0
  235. algen_agent_runtime-0.1.0a1/src/algen_agent_runtime/policies/contracts.py +40 -0
  236. algen_agent_runtime-0.1.0a1/src/algen_agent_runtime/policies/engine.py +446 -0
  237. algen_agent_runtime-0.1.0a1/src/algen_agent_runtime/policies/instrumentation.py +65 -0
  238. algen_agent_runtime-0.1.0a1/src/algen_agent_runtime/py.typed +1 -0
  239. algen_agent_runtime-0.1.0a1/src/algen_agent_runtime/responses/composer.py +35 -0
  240. algen_agent_runtime-0.1.0a1/src/algen_agent_runtime/retrieval/contracts.py +60 -0
  241. algen_agent_runtime-0.1.0a1/src/algen_agent_runtime/retrieval/ingestion.py +52 -0
  242. algen_agent_runtime-0.1.0a1/src/algen_agent_runtime/retrieval/memory.py +206 -0
  243. algen_agent_runtime-0.1.0a1/src/algen_agent_runtime/retrieval/registry.py +24 -0
  244. algen_agent_runtime-0.1.0a1/src/algen_agent_runtime/retrieval/vector_stores.py +610 -0
  245. algen_agent_runtime-0.1.0a1/src/algen_agent_runtime/runtime/client.py +32 -0
  246. algen_agent_runtime-0.1.0a1/src/algen_agent_runtime/runtime/runtime.py +1250 -0
  247. algen_agent_runtime-0.1.0a1/src/algen_agent_runtime/runtime/state_machine.py +77 -0
  248. algen_agent_runtime-0.1.0a1/src/algen_agent_runtime/security/documents.py +358 -0
  249. algen_agent_runtime-0.1.0a1/src/algen_agent_runtime/security/network.py +44 -0
  250. algen_agent_runtime-0.1.0a1/src/algen_agent_runtime/security/redaction.py +23 -0
  251. algen_agent_runtime-0.1.0a1/src/algen_agent_runtime/semantics/__init__.py +82 -0
  252. algen_agent_runtime-0.1.0a1/src/algen_agent_runtime/semantics/compiler.py +192 -0
  253. algen_agent_runtime-0.1.0a1/src/algen_agent_runtime/semantics/contracts.py +404 -0
  254. algen_agent_runtime-0.1.0a1/src/algen_agent_runtime/semantics/layer.py +390 -0
  255. algen_agent_runtime-0.1.0a1/src/algen_agent_runtime/semantics/planner.py +99 -0
  256. algen_agent_runtime-0.1.0a1/src/algen_agent_runtime/semantics/production_compiler.py +324 -0
  257. algen_agent_runtime-0.1.0a1/src/algen_agent_runtime/tools/adapters.py +95 -0
  258. algen_agent_runtime-0.1.0a1/src/algen_agent_runtime/tools/builtin.py +112 -0
  259. algen_agent_runtime-0.1.0a1/src/algen_agent_runtime/tools/contracts.py +104 -0
  260. algen_agent_runtime-0.1.0a1/src/algen_agent_runtime/tools/executor.py +193 -0
  261. algen_agent_runtime-0.1.0a1/src/algen_agent_runtime/tools/registry.py +24 -0
  262. algen_agent_runtime-0.1.0a1/src/algen_agent_runtime/tools/subagent.py +48 -0
  263. algen_agent_runtime-0.1.0a1/src/algen_agent_runtime/types/contracts.py +413 -0
  264. algen_agent_runtime-0.1.0a1/src/algen_agent_runtime/types/interfaces.py +145 -0
  265. algen_agent_runtime-0.1.0a1/src/algen_agent_runtime/verification/analytical.py +95 -0
  266. algen_agent_runtime-0.1.0a1/src/algen_agent_runtime/verification/verifiers.py +130 -0
  267. algen_agent_runtime-0.1.0a1/src/algen_agent_runtime/workflows/__init__.py +59 -0
  268. algen_agent_runtime-0.1.0a1/src/algen_agent_runtime/workflows/contracts.py +338 -0
  269. algen_agent_runtime-0.1.0a1/src/algen_agent_runtime/workflows/engine.py +1443 -0
  270. algen_agent_runtime-0.1.0a1/src/algen_agent_runtime/workflows/store.py +118 -0
@@ -0,0 +1,26 @@
1
+ ---
2
+ name: algen-agent-builder
3
+ description: Create or update an Algen-compatible single-agent or multi-agent project that uses Runtime manifests, governance, tests, and Studio-importable packaging.
4
+ ---
5
+
6
+ # Build an Algen agent project
7
+
8
+ Start by choosing the smallest topology that fits: one agent for a single governed conversation, or
9
+ a Runtime `WorkflowManifest` for coordination. Read `references/project-shape.md`; for a workflow,
10
+ also read `references/workflows.md`. Use `$algen-agent-connector` when external tools, databases,
11
+ retrieval, MCP, or remote APIs are part of the request.
12
+
13
+ Prefer configuration for provider routing, policies, memory, retrieval, storage, telemetry, and
14
+ workflow topology. Keep only domain-specific payload builders, validators, schemas, predicates, and
15
+ deterministic handlers in the project's hook provider. Never implement a second scheduler or a
16
+ Studio-specific workflow dialect.
17
+
18
+ Produce an importable project with secret references, bounded execution, deterministic offline
19
+ tests, documented optional dependencies, and a small runnable entry point. A project intended for
20
+ Studio must keep its Runtime configuration and `WorkflowManifest` authoritative; Studio discovers
21
+ and runs that same contract.
22
+
23
+ Validate YAML by loading it through the current Runtime model rather than relying on syntax alone.
24
+ Run the project smoke test and relevant Runtime tests. Do not publish to a marketplace or deploy
25
+ unless the user explicitly requests that external action.
26
+
@@ -0,0 +1,6 @@
1
+ interface:
2
+ display_name: "Algen Agent Builder"
3
+ short_description: "Build Runtime-native agents and DAG workflows"
4
+ brand_color: "#8B5CF6"
5
+ default_prompt: "Use $algen-agent-builder to create a Studio-importable agent project for this use case."
6
+
@@ -0,0 +1,39 @@
1
+ # Agent project shape
2
+
3
+ A portable project normally contains:
4
+
5
+ ```text
6
+ my_agent/
7
+ ├── __init__.py
8
+ ├── agent.yaml # providers, agents, workflows, retrieval, stores, telemetry
9
+ ├── app.py # small local entry point using Runtime APIs
10
+ ├── hooks.py # only when a workflow needs domain hooks
11
+ ├── manifest.yaml # catalogue metadata for examples/marketplace tooling
12
+ ├── README.md
13
+ └── tests/
14
+ └── test_smoke.py
15
+ ```
16
+
17
+ Larger applications may put `agent.yaml` under `config/`. Keep the package import path stable so a
18
+ workflow `hook_provider: my_agent.hooks:create_hooks` can be loaded after installation.
19
+
20
+ ## Single-agent baseline
21
+
22
+ - Declare at least one provider and agent in `agent.yaml`.
23
+ - Use `env://NAME` for credentials and DSNs.
24
+ - Bound `max_steps`, latency, tokens, cost, retries, and memory retention.
25
+ - Enable only the tools and permissions the agent needs.
26
+ - Choose guardrails, verification, approvals, and model allowlists based on actual risk.
27
+ - Use in-memory stores for examples; document PostgreSQL/Redis settings for durable deployments.
28
+
29
+ Use `examples/quickstart_cloud_chat`, `quickstart_local_chat`, `quickstart_rag`, and
30
+ `pattern_text_to_sql` as current working references. Copy concepts, not stale versions of internal
31
+ classes.
32
+
33
+ ## Importability
34
+
35
+ The project configuration—not Studio metadata—is the source of truth. Browser-folder import uploads
36
+ configuration but not executable Python; hook-based projects must also be installed into Studio's
37
+ Python environment or imported from a trusted server-visible source. Git imports likewise do not
38
+ auto-install untrusted code.
39
+
@@ -0,0 +1,74 @@
1
+ # Runtime multi-agent workflows
2
+
3
+ Use a `WorkflowManifest` under the top-level `workflows` mapping. Choose nodes deliberately:
4
+
5
+ - `agent`: one bounded agent run;
6
+ - `map_agent`: bounded dynamic fan-out over a runtime list;
7
+ - `handler`: deterministic domain operation registered by a hook provider;
8
+ - `predicate`: declarative branch condition;
9
+ - `join`: merge dependency outputs using `concat`, `json_array`, or `first`;
10
+ - `approval`: durable approve/modify/reject checkpoint owned by Runtime;
11
+ - `workflow`: dispatch one exact, registered child workflow version with typed input and canonical
12
+ output.
13
+
14
+ Declare `input_schema` when a workflow accepts more than one value or anything more structured than
15
+ legacy free text. Use JSON Schema Draft 2020-12, keep the payload secret-free, and read it from
16
+ `WorkflowHookContext.state.values["inputs"]`. Declare `output_schema` together with `output_key` when
17
+ callers depend on a canonical typed result. Runtime validates both contracts; Studio renders the same
18
+ input schema and must not replace it with Studio-specific form metadata.
19
+
20
+ Represent file, image, or audio inputs as artifact IDs, not base64 or local paths. Use a string schema
21
+ with `format: artifact` and, when known, `contentMediaType`. The host stages the file through the
22
+ Runtime artifact lifecycle; hooks must resolve it in the current tenant and reject expired,
23
+ quarantined, mismatched-media-type, or oversized content.
24
+
25
+ Do not mark uploads available from a workflow hook. A deployment-owned `ArtifactScanner` must run
26
+ through `ArtifactLifecycleService` first; workflows consume only `available` descriptors and should
27
+ record artifact IDs—not object keys or presigned URLs—in their typed state.
28
+
29
+ For typed execution, pass `{"inputs": payload}` as the executor's initial values. Do not add
30
+ clarification history, credentials, or host bookkeeping to the typed payload; those belong in
31
+ separate workflow state keys.
32
+
33
+ Express edges only with `depends_on`. Use `run_if` for conditional execution, `pause` for bounded
34
+ clarification or human input, `max_repairs` plus a validator for structured-output repair,
35
+ `max_iterations` plus `loop_until` for bounded loops, and `failure_policy` for explicit failure
36
+ semantics. Choose `recovery_policy` explicitly: keep the fail-closed default for side effects and use
37
+ `retry` only when replay is idempotent or externally reconcilable. Cap workflow concurrency, timeout,
38
+ and map fan-out.
39
+
40
+ Use a first-class `approval` node—not a clarification predicate—before consequential work. Declare a
41
+ clear prompt, only deliberately reviewable `review_from` paths, optional secret-free parameters and
42
+ their JSON Schema, a bounded expiry, and whether modification is permitted. Keep the defaults
43
+ `allow_modification: false` and `rejection_policy: skip_dependents`; use `continue` only for a branch
44
+ designed to consume a rejection.
45
+ Resume it with `executor.decide_approval`, passing the authenticated reviewer identity. Treat
46
+ approval parameters and review context as persisted operator-visible data: never include credentials,
47
+ presigned URLs, unrestricted model context, or raw private artifacts.
48
+
49
+ Use `storage.workflow_store: postgres` outside local development. Resume a clarification with
50
+ `executor.resume`; never invoke `run` again because that creates a new workflow and replays completed
51
+ predecessors. At host startup, list recoverable Runtime checkpoints, reconstruct only trusted hook
52
+ providers, and call `executor.recover` with the exact versioned manifest.
53
+
54
+ For composition, register every trusted child manifest and its hooks in a `WorkflowRegistry`, then
55
+ give that registry to the parent executor. A `workflow` node must pin `workflow_name` and
56
+ `workflow_version`; never resolve a floating latest version. Runtime owns correlation and lineage,
57
+ child checkpoint identity, depth and cycle limits, clarification/approval propagation, recovery, and
58
+ canonical output validation. Parent concurrency bounds whole child executions. Runtime checkpoints
59
+ the child ID and input before dispatch so recovery either reconciles that child or creates the same
60
+ recorded identity after a pre-creation crash. Resume or decide through the parent checkpoint. Do not
61
+ invoke the child directly or copy its nodes into the parent. Child inputs and outputs must be
62
+ JSON-compatible and secret-free. See `examples/pattern_child_workflow`.
63
+
64
+ Declare tools, query sources, retrieval, memory, storage, cache, telemetry, and services in each
65
+ node's `resources`. These references are secret-free operational topology and allow Studio to draw
66
+ the real dependency graph.
67
+
68
+ The hook factory returns `WorkflowHookRegistry`. Register only names referenced by the manifest:
69
+ builders, validators, schemas, and deterministic handlers. Runtime owns scheduling, run state,
70
+ events, repair, clarification, resume, failure propagation, and cancellation.
71
+
72
+ Use `examples/pattern_multi_agent_fanout`, `pattern_approval_workflow`,
73
+ `pattern_child_workflow`, `pattern_governed_research`, and the reference applications as current
74
+ examples.
@@ -0,0 +1,24 @@
1
+ ---
2
+ name: algen-agent-connector
3
+ description: Connect an Algen Runtime agent or workflow to typed tools, MCP, HTTP APIs, databases, retrieval stores, model providers, memory, persistence, or telemetry without bypassing governance.
4
+ ---
5
+
6
+ # Connect an Algen agent
7
+
8
+ Identify the requested systems, data direction, side effects, credentials, network boundary,
9
+ tenancy, and expected failure behavior. Read the matching parts of `references/connectors.md` and
10
+ combine connectors only when the use case needs them.
11
+
12
+ Expose external actions as typed Runtime tools or workflow resources. Do not call a connector
13
+ directly from orchestration code to bypass policy, approvals, idempotency, audit events, budgets, or
14
+ telemetry. Use secret references in configuration and resolve values only at execution time.
15
+
16
+ For each connection, declare least-privilege permissions, read/write behavior, idempotency, strict
17
+ schemas, timeout, retry policy, concurrency, result-size limit, and allowed destinations. Mark it on
18
+ the consuming workflow node with a `WorkflowResourceReference` so Studio can display the actual
19
+ topology.
20
+
21
+ Test with a deterministic fake or local fixture. Live credentials and paid services belong only in
22
+ explicit live tests. Document the required Runtime extra and environment variable names without
23
+ including secret values.
24
+
@@ -0,0 +1,5 @@
1
+ interface:
2
+ display_name: "Algen Agent Connector"
3
+ short_description: "Connect agents without bypassing governance"
4
+ brand_color: "#06B6D4"
5
+ default_prompt: "Use $algen-agent-connector to connect this agent to the requested systems safely."
@@ -0,0 +1,81 @@
1
+ # Connector choices
2
+
3
+ ## Model providers
4
+
5
+ Declare providers in `agent.yaml`, reference credentials with `env://`, and give agents a
6
+ provider-neutral model requirement plus allowlist/fallback policy. Keep provider-specific options in
7
+ `extensions`. Use the mock provider for deterministic tests.
8
+
9
+ ## Local Python tools
10
+
11
+ Create a `ToolDefinition` with strict JSON input/output schemas, permissions, `SideEffect`,
12
+ `Idempotency`, timeout, concurrency, cost, and size bounds. Register the `Tool` in the deployment's
13
+ registry. Require approval for writes, external effects, or destructive actions as appropriate.
14
+
15
+ ## MCP
16
+
17
+ Wrap a deployment-owned MCP client with `mcp_tool`; retain a Runtime `ToolDefinition` as the local
18
+ governance contract. Treat MCP server output as untrusted and do not let remote metadata grant local
19
+ permissions.
20
+
21
+ ## HTTP APIs
22
+
23
+ Use `remote_tool` or an equivalent typed adapter. Configure a fixed endpoint or an allowlisted host,
24
+ deny private-network access by default, avoid redirects across trust boundaries, propagate the
25
+ idempotency key, and bound response size and time.
26
+
27
+ ## Email
28
+
29
+ Use `communications.email.EmailMessage` and `email_tool` rather than creating an application-local
30
+ send contract. Addresses, headers, recipients, subject/body size, attachments, and provider receipts
31
+ are validated and content-minimal. Attachments are tenant-authorized Runtime artifact references;
32
+ never accept arbitrary filesystem paths. The first adapter, `SmtpEmailSender`, requires TLS by
33
+ default, expects credentials resolved by the deployment secret boundary, keeps BCC out of message
34
+ headers, and derives a stable Message-ID from the Runtime idempotency key.
35
+
36
+ Email is an external keyed side effect. Keep Runtime's durable tool-execution ledger enabled in
37
+ production. A provider timeout after submission is indeterminate and must be reconciled rather than
38
+ automatically replayed. Delivery approval, suppression, bounce/complaint handling, reply ingestion,
39
+ provider OAuth, and campaign policy remain application or connector responsibilities.
40
+
41
+ ## Databases and query sources
42
+
43
+ Use `database_tool` with a deployment-owned async handler. Prefer read-only, parameterized queries
44
+ and a database credential restricted at the server. For analytical workflows, declare a secret-safe
45
+ `query_source` and a node resource with `kind: query_source`. SQL generation, validation, execution,
46
+ repair, and verification remain separate bounded stages.
47
+
48
+ ## Retrieval
49
+
50
+ Choose memory for small examples; pgvector, Chroma, FAISS, or Qdrant for supported vector workloads.
51
+ Install only the corresponding extra. Preserve source provenance and tenant filters, cap retrieved
52
+ tokens, and instruct agents not to follow instructions embedded in retrieved content.
53
+
54
+ ## Memory, cache, and durable stores
55
+
56
+ Use memory backends for tests and ephemeral local runs. Use PostgreSQL for durable run, event, audit,
57
+ approval, artifact, tool-execution, and conversation records; use Redis where supported for cache or
58
+ stores. Connection values remain `env://` references. Declare memory/cache/storage resources on the
59
+ workflow nodes that consume them.
60
+
61
+ For files and binary connector output, store bytes through `ArtifactStore` and pass only artifact IDs
62
+ through messages or workflow values. Preserve tenant scope, checksum, lifecycle state, expiry, and
63
+ size limits. User uploads begin `pending_scan`; a deployment-owned scanner marks them `available` or
64
+ `quarantined`. PostgreSQL is suitable only for bounded payloads; use the optional S3 adapter for
65
+ large blobs while retaining PostgreSQL lifecycle metadata. Configure bucket, prefix, region,
66
+ server-side encryption, and optional KMS key—never static access keys. Implement scanners behind
67
+ `ArtifactScanner` and invoke `ArtifactLifecycleService` so the pending transition is compare-and-set
68
+ and audited; do not update status directly in application domain code.
69
+
70
+ ## Telemetry
71
+
72
+ Runtime supports OpenTelemetry and optional Traccia. Keep content capture off unless explicitly
73
+ required and authorized, redact PII, and declare telemetry resources with `access: observe`.
74
+
75
+ ## Useful combinations
76
+
77
+ - Grounded assistant: model provider + retrieval + memory + telemetry.
78
+ - Safe action agent: model provider + read tools + approval-gated write tool + audit store.
79
+ - Data analyst: model provider + schema retrieval + read-only query source + SQL verifier.
80
+ - Research DAG: planner + bounded retrieval fan-out + join + citation verifier.
81
+ - Support workflow: tenant retrieval + CRM read + approval-gated ticket/billing write + durable runs.
@@ -0,0 +1,29 @@
1
+ ---
2
+ name: algen-runtime-contributor
3
+ description: Implement or review contributions to Algen Agent Runtime while preserving its public API, provider neutrality, tenant isolation, optional dependencies, and repository boundary.
4
+ ---
5
+
6
+ # Contribute to Algen Agent Runtime
7
+
8
+ Work from the Runtime repository root. Read `CONTRIBUTING.md` and the documentation most closely
9
+ related to the change before editing. Use `references/change-checklist.md` when planning or reviewing
10
+ a code change.
11
+
12
+ Keep reusable execution contracts, orchestration, governance, persistence, and integrations in
13
+ Runtime. Keep Studio UI, project management, marketplace, and product-specific behavior out of this
14
+ repository. Domain behavior belongs in an application hook provider, not in the Runtime executor.
15
+
16
+ Preserve these invariants:
17
+
18
+ - provider-neutral public contracts and typed boundaries;
19
+ - explicit tenant, user, permission, secret, and idempotency context;
20
+ - deterministic offline behavior and tests by default;
21
+ - optional provider, database, vector-store, telemetry, and framework dependencies;
22
+ - stable error codes and forward migrations for persisted data;
23
+ - secret-free configuration committed to source control.
24
+
25
+ Add the narrowest meaningful test and cover the relevant failure path. Update public documentation,
26
+ examples, and `CHANGELOG.md` for user-visible behavior. Run the repository quality gates before
27
+ finishing; report any gate that could not run and why. Do not commit, push, publish, or open a pull
28
+ request unless the user explicitly requests it.
29
+
@@ -0,0 +1,6 @@
1
+ interface:
2
+ display_name: "Algen Runtime Contributor"
3
+ short_description: "Build safe, compatible Runtime contributions"
4
+ brand_color: "#4F46E5"
5
+ default_prompt: "Use $algen-runtime-contributor to implement this Runtime change with tests and compatibility checks."
6
+
@@ -0,0 +1,59 @@
1
+ # Runtime change checklist
2
+
3
+ Use the applicable sections; do not force irrelevant work into a small change.
4
+
5
+ ## Boundary and compatibility
6
+
7
+ - Is this a reusable Runtime capability rather than Studio or marketplace behavior?
8
+ - Does it change a public import, YAML contract, event, error code, or persisted schema?
9
+ - If it changes `WorkflowManifest`, are manifest validation, execution validation, Studio
10
+ consumption, examples, agent-builder guidance, and the changelog updated together?
11
+ - If compatibility changes, is there an upgrade note, migration path, and changelog entry?
12
+ - For durable workflows, are tenant isolation, optimistic version conflicts, manifest fingerprints,
13
+ pause/resume, deadline suspension, recovery opt-in, and interrupted side effects tested?
14
+ - For workflow approvals, are authenticated reviewer identity, approve/modify/reject outcomes,
15
+ parameter-schema validation, expiry, rejection propagation, checkpoint durability, event-content
16
+ minimization, and invalid-decision deadline behavior tested?
17
+ - For child workflows, are exact-version registry resolution, typed input/canonical output,
18
+ correlation and lineage, cycle/depth limits, nested pause/decision propagation, checkpoint-first
19
+ dispatch, bounded parent concurrency, pre-child-creation failure, and recovery without duplicate
20
+ children tested?
21
+ - Does core remain usable without a new optional integration installed?
22
+ - For artifact changes, are staged pre-run inputs, checksums, lifecycle state, expiry, tenant-scoped
23
+ list/read/delete, PostgreSQL migration, and large-object boundaries covered?
24
+ - For object storage, are partial failure compensation, retry-safe deletion, encryption, checksum
25
+ verification, opaque tenant keys, credential discovery, scanner compare-and-set, and audit evidence
26
+ covered without requiring the optional SDK in core installs?
27
+ - For email changes, are header injection, recipient and attachment bounds, BCC privacy, TLS,
28
+ artifact-only attachments, stable idempotency, content-minimal receipts/errors, provider refusal,
29
+ and ambiguous delivery failure tested?
30
+
31
+ ## Security and operations
32
+
33
+ - Preserve tenant isolation and authorization at every read and write boundary.
34
+ - Resolve secrets through `env://` or `secret://`; never serialize values into manifests or events.
35
+ - Classify tool side effects and idempotency accurately.
36
+ - Default interrupted workflow nodes to fail closed; never infer retry safety from node kind alone.
37
+ - Bound retries, repairs, loops, fan-out, payload sizes, concurrency, and network access.
38
+ - Avoid telemetry content by default; redact credentials and sensitive payloads.
39
+ - Keep workflow approval review paths and parameters explicitly secret-free; approval events must not
40
+ expose review values, parameters, or operator comments.
41
+
42
+ ## Evidence
43
+
44
+ - Unit tests: deterministic contracts and failure behavior.
45
+ - Contract tests: provider, tool, store, retrieval, or framework compatibility.
46
+ - Integration tests: several Runtime components working together.
47
+ - End-to-end tests: public API or representative application path.
48
+ - Paid or networked checks use the `live` marker and are never required for ordinary pull requests.
49
+
50
+ ## Quality gates
51
+
52
+ ```bash
53
+ ruff format --check src tests examples
54
+ ruff check src tests examples
55
+ mypy src/algen_agent_runtime
56
+ pytest -q -p no:cacheprovider
57
+ ```
58
+
59
+ Use `make lint`, `make typecheck`, and `make test` when the Makefile is the better local entry point.
@@ -0,0 +1,24 @@
1
+ ---
2
+ name: algen-runtime-extension
3
+ description: Add or review an Algen Agent Runtime extension such as a model provider, tool adapter, retrieval backend, persistence store, telemetry integration, or external-framework adapter.
4
+ ---
5
+
6
+ # Extend Algen Agent Runtime
7
+
8
+ First identify the extension point and inspect its Protocol, registry, existing adapter, contract
9
+ tests, optional extra, and documentation. Read only the matching section of
10
+ `references/extension-points.md`.
11
+
12
+ Implement against Runtime contracts rather than leaking a vendor SDK into orchestration or public
13
+ state. Normalize vendor inputs, outputs, usage, errors, streaming behavior, and cancellation at the
14
+ adapter boundary. Keep the dependency optional and fail with an actionable installation message
15
+ when its extra is absent.
16
+
17
+ Treat all extension inputs as untrusted. Carry tenant and identity context, enforce permissions,
18
+ validate outbound destinations, classify side effects and idempotency, bound time and result size,
19
+ and prevent secrets from entering logs or persisted events.
20
+
21
+ Add deterministic contract tests without credentials. Put live integration tests behind the `live`
22
+ marker. Update the optional dependency extra, compatibility documentation, an importable example
23
+ when useful, and `CHANGELOG.md` for user-visible support.
24
+
@@ -0,0 +1,6 @@
1
+ interface:
2
+ display_name: "Algen Runtime Extension"
3
+ short_description: "Add providers, stores, tools, and adapters"
4
+ brand_color: "#0EA5E9"
5
+ default_prompt: "Use $algen-runtime-extension to add this integration behind Runtime contracts and deterministic tests."
6
+
@@ -0,0 +1,62 @@
1
+ # Runtime extension points
2
+
3
+ ## Model provider
4
+
5
+ Inspect `src/algen_agent_runtime/models/providers/`, the provider registry, and provider contract
6
+ tests. Normalize messages, tool calls, structured output, streaming, usage, retryable failures, and
7
+ capabilities. Provider credentials remain secret references. Document supported capabilities and
8
+ known limitations in `docs/provider-compatibility.md`.
9
+
10
+ Provider-specific strict JSON Schema subsets belong at the provider boundary. Preserve the original
11
+ application schema for Runtime validation; translate only the wire copy and cover nested objects,
12
+ optional/defaulted fields, constants, and unsupported constraint keywords in contract tests.
13
+
14
+ ## Tool or connector adapter
15
+
16
+ Inspect `tools/contracts.py`, `tools/adapters.py`, the executor, and policy engine. Every tool needs a
17
+ strict input schema, output schema, permissions, side-effect class, idempotency class, timeout,
18
+ concurrency bound, and result-size bound. Use `ToolContext` for identity and secrets. A database
19
+ connector accepts parameterized statements through a deployment-owned handler; remote HTTP tools
20
+ must validate destinations and propagate the idempotency key.
21
+
22
+ Email provider adapters implement `communications.email.EmailSender` and return the normalized,
23
+ content-minimal `EmailDeliveryReceipt`. Preserve the supplied idempotency key as the provider's
24
+ deduplication key or stable message identifier. Validate provider recipient refusals explicitly,
25
+ resolve attachments only through a tenant-authorized artifact loader, do not leak message bodies or
26
+ credentials in exceptions, and treat an uncertain post-submission failure as indeterminate through
27
+ the Runtime tool ledger. See `docs/email.md`.
28
+
29
+ ## Retrieval backend
30
+
31
+ Inspect `retrieval/contracts.py`, `retrieval/vector_stores.py`, and `docs/rag.md`. Preserve tenant
32
+ filters, source provenance, score semantics, query/context limits, and prompt-injection boundaries.
33
+ Keep the backend SDK behind an optional extra.
34
+
35
+ ## Persistence store
36
+
37
+ Inspect the relevant Protocol and in-memory/PostgreSQL implementations. Preserve tenant-scoped keys,
38
+ atomic state transitions, optimistic concurrency where defined, timestamps, recovery behavior, and
39
+ forward schema migrations.
40
+
41
+ Workflow checkpoint stores additionally require detached reads, tenant isolation, compare-and-set
42
+ versions, manifest fingerprints, recoverable-state filtering, and corruption failure behavior. Run
43
+ the shared in-memory/PostgreSQL conformance suite when adding another backend. Parent/child workflow
44
+ recovery must reconcile the recorded child checkpoint; it must never dispatch a replacement child.
45
+
46
+ Artifact stores additionally preserve optional run association, content checksum and length,
47
+ scan/quarantine status, metadata-only reads, expiry visibility, bounded purge, and permanent
48
+ tenant-scoped deletion. Keep large-object SDKs optional and never return another tenant's descriptor
49
+ or bytes.
50
+
51
+ For S3-compatible implementations, keep authoritative metadata in a tenant-scoped durable store,
52
+ hash tenant identifiers in object keys, request service-side checksums and encryption, conditionally
53
+ create objects, verify downloads locally, compensate partial uploads, and make deletion/expiry safe
54
+ to retry. Credentials come from workload identity or the SDK chain, not Runtime YAML. Scanner
55
+ adapters return only `ArtifactScanResult`; lifecycle state and audit writes belong to
56
+ `ArtifactLifecycleService`.
57
+
58
+ ## Framework or telemetry adapter
59
+
60
+ Inspect `docs/framework-adapters.md` or `observability/`. Runtime remains the governance envelope;
61
+ framework-native state must not bypass identity, policy, budgets, tool execution, or normalized
62
+ events. Telemetry integrations must remain optional and must not include content by default.
@@ -0,0 +1,13 @@
1
+ .venv/
2
+ __pycache__/
3
+ *.py[cod]
4
+ .pytest_cache/
5
+ .mypy_cache/
6
+ .ruff_cache/
7
+ .coverage
8
+ htmlcov/
9
+ dist/
10
+ build/
11
+ *.egg-info/
12
+ .env
13
+ .DS_Store
@@ -0,0 +1,87 @@
1
+ # Changelog
2
+
3
+ All notable changes to Algen Agent Runtime will be documented in this file.
4
+ The project follows [Semantic Versioning](https://semver.org/) while public
5
+ contracts are explicitly marked experimental during the `0.x` series.
6
+
7
+ ## [Unreleased]
8
+
9
+ _No unreleased changes yet._
10
+
11
+ ---
12
+
13
+ ## [0.1.0a1] - 2026-09-22
14
+
15
+ First public alpha. Intended for evaluation and contribution; not a
16
+ production-readiness claim. Contracts labelled `experimental` may change
17
+ without a deprecation window during the `0.x` series.
18
+
19
+ ### Added
20
+
21
+ - Repository-scoped contributor, extension, agent-building, and connector skills for coding agents.
22
+ - A shared Algen ecosystem identity with light/dark Runtime logo and README banner assets, plus
23
+ documented Runtime, Studio, and Marketplace product boundaries.
24
+ - Studio-importable Runtime examples shipped with their Python hook providers and configuration in
25
+ source and wheel distributions.
26
+ - Runnable cloud chat, typed capability, human checkpoint, governed research, LangGraph adapter,
27
+ multi-agent fan-out, evaluation gate, customer support, incident response, and invoice exception
28
+ examples.
29
+ - Runtime DAG manifests for the responsible hiring and teaching-assistant case studies.
30
+ - Deterministic configuration, hook-loading, workflow execution, and checkpoint regression coverage
31
+ for the example portfolio.
32
+ - Initial open-source governance, security, contribution, and release policies.
33
+ - PyPI metadata, deterministic build contents, and clean-install CI checks.
34
+ - Public-ready README with an offline quickstart, support matrix, architecture overview, and
35
+ security boundaries.
36
+ - API stability and release-process documentation.
37
+ - Dedicated PyPI Trusted Publishing, CodeQL, and pull-request dependency-review workflows.
38
+ - Separation of the private Algen Agent Studio application from the Runtime distribution.
39
+ - Runtime-owned multi-agent workflow manifests and an embedded DAG executor with agent and
40
+ deterministic-handler nodes, conditional execution, clarification limits, bounded validation
41
+ repair, capped dynamic fan-out, correlated child runs, and lifecycle events.
42
+ - Application hook registries for workflow payloads, request metadata, structured-output schemas,
43
+ domain validation, and deterministic service execution.
44
+ - Runtime predicate and join nodes, declarative input templates, bounded agent loops, deterministic
45
+ ready-node ordering, conditional-branch convergence, host-provided agent execution, and portable
46
+ application hook-provider references.
47
+ - Typed, secret-free workflow resource references for documenting node connections to tools, query
48
+ sources, retrieval indexes, memory, caches, stores, telemetry, and application services.
49
+ - Runtime-owned JSON Schema Draft 2020-12 workflow input and canonical-output contracts with
50
+ manifest-time schema checks and fail-closed execution validation.
51
+ - Tenant-scoped staged artifacts with optional run association, SHA-256 and size metadata,
52
+ scan/available/quarantine states, expiry, metadata listing, deletion, bounded purge, HTTP lifecycle
53
+ endpoints, and a forward PostgreSQL migration.
54
+ - Optional PostgreSQL-metadata/S3-blob artifact storage with server-side encryption, service-side
55
+ SHA-256 checks, tenant-hashed keys, conditional creation, compensating cleanup, health checks, and
56
+ an audited compare-and-set `ArtifactScanner` lifecycle service.
57
+ - Runtime-owned in-memory and PostgreSQL multi-agent workflow checkpoint stores with tenant isolation,
58
+ optimistic versions, manifest fingerprints, pause/resume without completed-node replay, suspended
59
+ human-wait deadlines, and explicit fail-closed or retry crash recovery.
60
+ - First-class Runtime workflow approval nodes with durable approve/modify/reject decisions,
61
+ authenticated reviewer attribution, schema-validated parameter modification, bounded expiry,
62
+ safe rejection propagation, and content-minimal lifecycle events.
63
+ - Exact-version parent/child workflow composition with a trusted registry, typed child input and
64
+ canonical output, lineage, cycle/depth guards, nested clarification and approval propagation, and
65
+ checkpoint-first recovery without duplicate child dispatch.
66
+ - Provider-neutral, validated email contracts and a TLS-first SMTP adapter exposed as an
67
+ idempotency-aware Runtime tool with artifact-only attachments and content-minimal receipts.
68
+ - Shared workflow checkpoint-store conformance coverage plus corruption, ambiguous email delivery,
69
+ and parent/child crash-recovery failure-injection tests.
70
+ - Updated the responsible-hiring, customer-support, incident-response, and invoice-exception
71
+ reference workflows to use first-class Runtime approvals and explicit recovery safety instead of
72
+ clarification-shaped action checkpoints.
73
+ - DAG-based multi-agent workflow engine (`MultiAgentWorkflowExecutor`) with full topological
74
+ scheduling, fan-out/fan-in, conditional branching, and error recovery.
75
+ - Durable execution via in-memory and PostgreSQL checkpoint persistence backends.
76
+ - Extended `WorkflowManifest` and contracts with typed node, edge, and dependency schemas.
77
+ - OpenAI-compatible model provider adapter and provider contract test suite.
78
+ - Approval workflow patterns (`pattern_approval_workflow`, `quickstart_approval`) with
79
+ human-in-the-loop hooks.
80
+ - Fixed stale module references and CLI run commands across all example packages.
81
+ - Enhanced responsible-hiring case-study UI dashboard.
82
+ - Normalize OpenAI and Azure OpenAI response schemas at the provider boundary for strict structured
83
+ outputs: all object fields are required, additional properties are forbidden, and defaults and
84
+ unsupported wire constraints are removed while Runtime retains full result validation.
85
+
86
+ [Unreleased]: https://github.com/AlgenAI/algen-agent-runtime/compare/v0.1.0a1...HEAD
87
+ [0.1.0a1]: https://github.com/AlgenAI/algen-agent-runtime/releases/tag/v0.1.0a1