abstractframework 0.11.7__tar.gz → 0.11.8__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 (202) hide show
  1. {abstractframework-0.11.7 → abstractframework-0.11.8}/CHANGELOG.md +16 -0
  2. {abstractframework-0.11.7/abstractframework.egg-info → abstractframework-0.11.8}/PKG-INFO +9 -9
  3. {abstractframework-0.11.7 → abstractframework-0.11.8}/README.md +4 -4
  4. {abstractframework-0.11.7 → abstractframework-0.11.8}/abstractframework/__init__.py +3 -3
  5. {abstractframework-0.11.7 → abstractframework-0.11.8/abstractframework.egg-info}/PKG-INFO +9 -9
  6. {abstractframework-0.11.7 → abstractframework-0.11.8}/abstractframework.egg-info/requires.txt +4 -4
  7. {abstractframework-0.11.7 → abstractframework-0.11.8}/docs/api.md +3 -3
  8. {abstractframework-0.11.7 → abstractframework-0.11.8}/docs/install.md +7 -7
  9. {abstractframework-0.11.7 → abstractframework-0.11.8}/llms-full.txt +25 -25
  10. {abstractframework-0.11.7 → abstractframework-0.11.8}/llms.txt +3 -3
  11. {abstractframework-0.11.7 → abstractframework-0.11.8}/pyproject.toml +5 -5
  12. {abstractframework-0.11.7 → abstractframework-0.11.8}/scripts/install.sh +3 -3
  13. {abstractframework-0.11.7 → abstractframework-0.11.8}/LICENSE +0 -0
  14. {abstractframework-0.11.7 → abstractframework-0.11.8}/MANIFEST.in +0 -0
  15. {abstractframework-0.11.7 → abstractframework-0.11.8}/abstractframework/__main__.py +0 -0
  16. {abstractframework-0.11.7 → abstractframework-0.11.8}/abstractframework/cli.py +0 -0
  17. {abstractframework-0.11.7 → abstractframework-0.11.8}/abstractframework/install_manifest.py +0 -0
  18. {abstractframework-0.11.7 → abstractframework-0.11.8}/abstractframework/py.typed +0 -0
  19. {abstractframework-0.11.7 → abstractframework-0.11.8}/abstractframework.egg-info/SOURCES.txt +0 -0
  20. {abstractframework-0.11.7 → abstractframework-0.11.8}/abstractframework.egg-info/dependency_links.txt +0 -0
  21. {abstractframework-0.11.7 → abstractframework-0.11.8}/abstractframework.egg-info/entry_points.txt +0 -0
  22. {abstractframework-0.11.7 → abstractframework-0.11.8}/abstractframework.egg-info/top_level.txt +0 -0
  23. {abstractframework-0.11.7 → abstractframework-0.11.8}/docs/README.md +0 -0
  24. {abstractframework-0.11.7 → abstractframework-0.11.8}/docs/adr/0001-layered-architecture.md +0 -0
  25. {abstractframework-0.11.7 → abstractframework-0.11.8}/docs/adr/0002-effect-system-design.md +0 -0
  26. {abstractframework-0.11.7 → abstractframework-0.11.8}/docs/adr/0003-tool-system-architecture.md +0 -0
  27. {abstractframework-0.11.7 → abstractframework-0.11.8}/docs/adr/0004-observability-strategy.md +0 -0
  28. {abstractframework-0.11.7 → abstractframework-0.11.8}/docs/adr/0005-memory-architecture.md +0 -0
  29. {abstractframework-0.11.7 → abstractframework-0.11.8}/docs/adr/0006-durable-tool-execution.md +0 -0
  30. {abstractframework-0.11.7 → abstractframework-0.11.8}/docs/adr/0007-active-context-and-memory-provenance.md +0 -0
  31. {abstractframework-0.11.7 → abstractframework-0.11.8}/docs/adr/0008-token-terminology.md +0 -0
  32. {abstractframework-0.11.7 → abstractframework-0.11.8}/docs/adr/0009-connected-memory-recall-and-provenance.md +0 -0
  33. {abstractframework-0.11.7 → abstractframework-0.11.8}/docs/adr/0010-runtime-owned-node-traces.md +0 -0
  34. {abstractframework-0.11.7 → abstractframework-0.11.8}/docs/adr/0011-ledger-subscriptions-and-event-bridge.md +0 -0
  35. {abstractframework-0.11.7 → abstractframework-0.11.8}/docs/adr/0012-portable-workflowartifact.md +0 -0
  36. {abstractframework-0.11.7 → abstractframework-0.11.8}/docs/adr/0013-durable-run-controls-pause-resume-cancel.md +0 -0
  37. {abstractframework-0.11.7 → abstractframework-0.11.8}/docs/adr/0014-runtime-authority-timeouts.md +0 -0
  38. {abstractframework-0.11.7 → abstractframework-0.11.8}/docs/adr/0015-execution-targets-and-remote-tool-workers.md +0 -0
  39. {abstractframework-0.11.7 → abstractframework-0.11.8}/docs/adr/0016-tool-calling-pipeline-and-responsibility-boundaries.md +0 -0
  40. {abstractframework-0.11.7 → abstractframework-0.11.8}/docs/adr/0017-host-ui-events-and-durable-prompts.md +0 -0
  41. {abstractframework-0.11.7 → abstractframework-0.11.8}/docs/adr/0018-durable-run-gateway-and-remote-host-control-plane.md +0 -0
  42. {abstractframework-0.11.7 → abstractframework-0.11.8}/docs/adr/0019-testing-strategy-and-levels.md +0 -0
  43. {abstractframework-0.11.7 → abstractframework-0.11.8}/docs/adr/0020-agent-host-pool-and-orchestrator-placement.md +0 -0
  44. {abstractframework-0.11.7 → abstractframework-0.11.8}/docs/adr/0021-deployment-topologies-and-supported-scenarios.md +0 -0
  45. {abstractframework-0.11.7 → abstractframework-0.11.8}/docs/adr/0022-orchestrator-host-and-runtime-daemonization.md +0 -0
  46. {abstractframework-0.11.7 → abstractframework-0.11.8}/docs/adr/0023-file-attachment-path-resolution-and-authorization.md +0 -0
  47. {abstractframework-0.11.7 → abstractframework-0.11.8}/docs/adr/0024-attachment-placeholders-and-compaction-invariants.md +0 -0
  48. {abstractframework-0.11.7 → abstractframework-0.11.8}/docs/adr/0025-kg-entity-normalization-and-dedup.md +0 -0
  49. {abstractframework-0.11.7 → abstractframework-0.11.8}/docs/adr/0026-truncation-policy-and-contract.md +0 -0
  50. {abstractframework-0.11.7 → abstractframework-0.11.8}/docs/adr/0027-timeout-policy-and-contract.md +0 -0
  51. {abstractframework-0.11.7 → abstractframework-0.11.8}/docs/adr/0028-capabilities-plugins-and-library-framework-modes.md +0 -0
  52. {abstractframework-0.11.7 → abstractframework-0.11.8}/docs/adr/0029-permissive-dependency-and-licensing-policy.md +0 -0
  53. {abstractframework-0.11.7 → abstractframework-0.11.8}/docs/adr/0030-security-test-fixtures-and-isolation.md +0 -0
  54. {abstractframework-0.11.7 → abstractframework-0.11.8}/docs/adr/0031-workflow-llm-routing-overrides-provider-model-and-base-url.md +0 -0
  55. {abstractframework-0.11.7 → abstractframework-0.11.8}/docs/adr/0032-package-dependency-boundaries-and-gateway-first-apps.md +0 -0
  56. {abstractframework-0.11.7 → abstractframework-0.11.8}/docs/adr/0033-install-profiles-config-entrypoints-and-server-boundaries.md +0 -0
  57. {abstractframework-0.11.7 → abstractframework-0.11.8}/docs/adr/0034-framework-release-sequence-and-gates.md +0 -0
  58. {abstractframework-0.11.7 → abstractframework-0.11.8}/docs/adr/0035-capability-routing-defaults.md +0 -0
  59. {abstractframework-0.11.7 → abstractframework-0.11.8}/docs/adr/0036-artifact-descriptor-contract.md +0 -0
  60. {abstractframework-0.11.7 → abstractframework-0.11.8}/docs/adr/0037-hosted-file-source-contract-and-workspacepath-authority.md +0 -0
  61. {abstractframework-0.11.7 → abstractframework-0.11.8}/docs/adr/0038-script-bootstrap-and-gateway-console-install.md +0 -0
  62. {abstractframework-0.11.7 → abstractframework-0.11.8}/docs/adr/README.md +0 -0
  63. {abstractframework-0.11.7 → abstractframework-0.11.8}/docs/adr/memory-recall-levels.md +0 -0
  64. {abstractframework-0.11.7 → abstractframework-0.11.8}/docs/adr/reorg/001_music_as_capability_plugin_via_acestep_api.md +0 -0
  65. {abstractframework-0.11.7 → abstractframework-0.11.8}/docs/adr/reorg/002_abstractmusic_inprocess_local_generation.md +0 -0
  66. {abstractframework-0.11.7 → abstractframework-0.11.8}/docs/adr/reorg/003_abstractmusic_acestep_v15_backend_source_strategy.md +0 -0
  67. {abstractframework-0.11.7 → abstractframework-0.11.8}/docs/adr/reorg/004_smartnote_thin_client_architecture.md +0 -0
  68. {abstractframework-0.11.7 → abstractframework-0.11.8}/docs/adr/reorg/005_smartnote_artifact_first_cards.md +0 -0
  69. {abstractframework-0.11.7 → abstractframework-0.11.8}/docs/adr/reorg/2026-02-21_gateway-first-assistant.md +0 -0
  70. {abstractframework-0.11.7 → abstractframework-0.11.8}/docs/adr/reorg/2026-02-21_installer_manager_strategy.md +0 -0
  71. {abstractframework-0.11.7 → abstractframework-0.11.8}/docs/adr/reorg/2026-02-21_macos_installer_manager.md +0 -0
  72. {abstractframework-0.11.7 → abstractframework-0.11.8}/docs/agent-sessions.md +0 -0
  73. {abstractframework-0.11.7 → abstractframework-0.11.8}/docs/architecture.md +0 -0
  74. {abstractframework-0.11.7 → abstractframework-0.11.8}/docs/automations.md +0 -0
  75. {abstractframework-0.11.7 → abstractframework-0.11.8}/docs/claude/README.md +0 -0
  76. {abstractframework-0.11.7 → abstractframework-0.11.8}/docs/claude/abstractframework-fit.md +0 -0
  77. {abstractframework-0.11.7 → abstractframework-0.11.8}/docs/claude/claude-skills-overview.md +0 -0
  78. {abstractframework-0.11.7 → abstractframework-0.11.8}/docs/claude/claude-skills-sources.md +0 -0
  79. {abstractframework-0.11.7 → abstractframework-0.11.8}/docs/claude/claude-skills-top-20.md +0 -0
  80. {abstractframework-0.11.7 → abstractframework-0.11.8}/docs/comparisons/README.md +0 -0
  81. {abstractframework-0.11.7 → abstractframework-0.11.8}/docs/configuration.md +0 -0
  82. {abstractframework-0.11.7 → abstractframework-0.11.8}/docs/faq.md +0 -0
  83. {abstractframework-0.11.7 → abstractframework-0.11.8}/docs/getting-started.md +0 -0
  84. {abstractframework-0.11.7 → abstractframework-0.11.8}/docs/glossary.md +0 -0
  85. {abstractframework-0.11.7 → abstractframework-0.11.8}/docs/guide/LANDING.md +0 -0
  86. {abstractframework-0.11.7 → abstractframework-0.11.8}/docs/guide/README.md +0 -0
  87. {abstractframework-0.11.7 → abstractframework-0.11.8}/docs/guide/agent-skills.md +0 -0
  88. {abstractframework-0.11.7 → abstractframework-0.11.8}/docs/guide/agent-vs-llm.md +0 -0
  89. {abstractframework-0.11.7 → abstractframework-0.11.8}/docs/guide/agora-workflow-agent.md +0 -0
  90. {abstractframework-0.11.7 → abstractframework-0.11.8}/docs/guide/apple-local-gateway-flow.md +0 -0
  91. {abstractframework-0.11.7 → abstractframework-0.11.8}/docs/guide/capability-plugins.md +0 -0
  92. {abstractframework-0.11.7 → abstractframework-0.11.8}/docs/guide/capability-routing-defaults.md +0 -0
  93. {abstractframework-0.11.7 → abstractframework-0.11.8}/docs/guide/deployment-iphone.md +0 -0
  94. {abstractframework-0.11.7 → abstractframework-0.11.8}/docs/guide/deployment-topologies.md +0 -0
  95. {abstractframework-0.11.7 → abstractframework-0.11.8}/docs/guide/deployment-web.md +0 -0
  96. {abstractframework-0.11.7 → abstractframework-0.11.8}/docs/guide/email-integration.md +0 -0
  97. {abstractframework-0.11.7 → abstractframework-0.11.8}/docs/guide/event-inbox-agent.md +0 -0
  98. {abstractframework-0.11.7 → abstractframework-0.11.8}/docs/guide/flow-and-kg-memory.md +0 -0
  99. {abstractframework-0.11.7 → abstractframework-0.11.8}/docs/guide/gateway-security.md +0 -0
  100. {abstractframework-0.11.7 → abstractframework-0.11.8}/docs/guide/headless-swarm.md +0 -0
  101. {abstractframework-0.11.7 → abstractframework-0.11.8}/docs/guide/process-manager-env-vars.md +0 -0
  102. {abstractframework-0.11.7 → abstractframework-0.11.8}/docs/guide/prompt-caching.md +0 -0
  103. {abstractframework-0.11.7 → abstractframework-0.11.8}/docs/guide/runtime-artifacts.md +0 -0
  104. {abstractframework-0.11.7 → abstractframework-0.11.8}/docs/guide/runtime-scope.md +0 -0
  105. {abstractframework-0.11.7 → abstractframework-0.11.8}/docs/guide/scheduled-workflows.md +0 -0
  106. {abstractframework-0.11.7 → abstractframework-0.11.8}/docs/guide/summoned-entities.md +0 -0
  107. {abstractframework-0.11.7 → abstractframework-0.11.8}/docs/guide/telegram-integration.md +0 -0
  108. {abstractframework-0.11.7 → abstractframework-0.11.8}/docs/guide/workflow-bundles.md +0 -0
  109. {abstractframework-0.11.7 → abstractframework-0.11.8}/docs/installers/README.md +0 -0
  110. {abstractframework-0.11.7 → abstractframework-0.11.8}/docs/installers/components.md +0 -0
  111. {abstractframework-0.11.7 → abstractframework-0.11.8}/docs/installers/implementation-plan.md +0 -0
  112. {abstractframework-0.11.7 → abstractframework-0.11.8}/docs/installers/operations-and-support.md +0 -0
  113. {abstractframework-0.11.7 → abstractframework-0.11.8}/docs/installers/release-and-manifest.md +0 -0
  114. {abstractframework-0.11.7 → abstractframework-0.11.8}/docs/installers/security-and-os-blocks.md +0 -0
  115. {abstractframework-0.11.7 → abstractframework-0.11.8}/docs/installers/strategy.md +0 -0
  116. {abstractframework-0.11.7 → abstractframework-0.11.8}/docs/installers/user-journeys.md +0 -0
  117. {abstractframework-0.11.7 → abstractframework-0.11.8}/docs/prompts/agora-collaboration.md +0 -0
  118. {abstractframework-0.11.7 → abstractframework-0.11.8}/docs/scenarios/README.md +0 -0
  119. {abstractframework-0.11.7 → abstractframework-0.11.8}/docs/scenarios/email-inbox-agent.md +0 -0
  120. {abstractframework-0.11.7 → abstractframework-0.11.8}/docs/scenarios/gateway-first-local-dev.md +0 -0
  121. {abstractframework-0.11.7 → abstractframework-0.11.8}/docs/scenarios/offline-coding-assistant.md +0 -0
  122. {abstractframework-0.11.7 → abstractframework-0.11.8}/docs/scenarios/phone-thin-client.md +0 -0
  123. {abstractframework-0.11.7 → abstractframework-0.11.8}/docs/scenarios/specialized-agent-flow.md +0 -0
  124. {abstractframework-0.11.7 → abstractframework-0.11.8}/docs/scenarios/telegram-permanent-contact.md +0 -0
  125. {abstractframework-0.11.7 → abstractframework-0.11.8}/docs/scenarios/workflow-bundle-lifecycle.md +0 -0
  126. {abstractframework-0.11.7 → abstractframework-0.11.8}/docs/skills/README.md +0 -0
  127. {abstractframework-0.11.7 → abstractframework-0.11.8}/docs/skills/abstractframework-agent-skills-fit.md +0 -0
  128. {abstractframework-0.11.7 → abstractframework-0.11.8}/docs/skills/abstractframework-architecture-deep-dive.md +0 -0
  129. {abstractframework-0.11.7 → abstractframework-0.11.8}/docs/skills/agent-skills-ecosystem-scan.md +0 -0
  130. {abstractframework-0.11.7 → abstractframework-0.11.8}/docs/skills/agent-skills-ecosystem-sources.md +0 -0
  131. {abstractframework-0.11.7 → abstractframework-0.11.8}/docs/skills/claude-agent-skills-overview.md +0 -0
  132. {abstractframework-0.11.7 → abstractframework-0.11.8}/docs/skills/claude-agent-skills-sources.md +0 -0
  133. {abstractframework-0.11.7 → abstractframework-0.11.8}/docs/skills/claude-agent-skills-top-20.md +0 -0
  134. {abstractframework-0.11.7 → abstractframework-0.11.8}/docs/troubleshooting.md +0 -0
  135. {abstractframework-0.11.7 → abstractframework-0.11.8}/docs/workspace-scripts.md +0 -0
  136. {abstractframework-0.11.7 → abstractframework-0.11.8}/scripts/af-local.sh +0 -0
  137. {abstractframework-0.11.7 → abstractframework-0.11.8}/scripts/af.sh +0 -0
  138. {abstractframework-0.11.7 → abstractframework-0.11.8}/scripts/agora_react_flow_smoke.py +0 -0
  139. {abstractframework-0.11.7 → abstractframework-0.11.8}/scripts/assistant-local.sh +0 -0
  140. {abstractframework-0.11.7 → abstractframework-0.11.8}/scripts/assistant.sh +0 -0
  141. {abstractframework-0.11.7 → abstractframework-0.11.8}/scripts/build.sh +0 -0
  142. {abstractframework-0.11.7 → abstractframework-0.11.8}/scripts/cache_probe_local_backends.py +0 -0
  143. {abstractframework-0.11.7 → abstractframework-0.11.8}/scripts/cache_steer_repl.py +0 -0
  144. {abstractframework-0.11.7 → abstractframework-0.11.8}/scripts/check_identity_sync.py +0 -0
  145. {abstractframework-0.11.7 → abstractframework-0.11.8}/scripts/clone.sh +0 -0
  146. {abstractframework-0.11.7 → abstractframework-0.11.8}/scripts/code-local.sh +0 -0
  147. {abstractframework-0.11.7 → abstractframework-0.11.8}/scripts/code.sh +0 -0
  148. {abstractframework-0.11.7 → abstractframework-0.11.8}/scripts/commit.sh +0 -0
  149. {abstractframework-0.11.7 → abstractframework-0.11.8}/scripts/console-local.sh +0 -0
  150. {abstractframework-0.11.7 → abstractframework-0.11.8}/scripts/console.sh +0 -0
  151. {abstractframework-0.11.7 → abstractframework-0.11.8}/scripts/core_operator_drive.py +0 -0
  152. {abstractframework-0.11.7 → abstractframework-0.11.8}/scripts/deps.sh +0 -0
  153. {abstractframework-0.11.7 → abstractframework-0.11.8}/scripts/entity-local.sh +0 -0
  154. {abstractframework-0.11.7 → abstractframework-0.11.8}/scripts/entity.sh +0 -0
  155. {abstractframework-0.11.7 → abstractframework-0.11.8}/scripts/event_inbox_flow_smoke.py +0 -0
  156. {abstractframework-0.11.7 → abstractframework-0.11.8}/scripts/flow-local.sh +0 -0
  157. {abstractframework-0.11.7 → abstractframework-0.11.8}/scripts/flow.sh +0 -0
  158. {abstractframework-0.11.7 → abstractframework-0.11.8}/scripts/gateway-flow-local.sh +0 -0
  159. {abstractframework-0.11.7 → abstractframework-0.11.8}/scripts/gateway-flow.sh +0 -0
  160. {abstractframework-0.11.7 → abstractframework-0.11.8}/scripts/gateway-local.sh +0 -0
  161. {abstractframework-0.11.7 → abstractframework-0.11.8}/scripts/gateway.sh +0 -0
  162. {abstractframework-0.11.7 → abstractframework-0.11.8}/scripts/gen_llms_full.py +0 -0
  163. {abstractframework-0.11.7 → abstractframework-0.11.8}/scripts/headless_fleet_bridge.py +0 -0
  164. {abstractframework-0.11.7 → abstractframework-0.11.8}/scripts/headless_fleet_demo.py +0 -0
  165. {abstractframework-0.11.7 → abstractframework-0.11.8}/scripts/headless_steer_repl.py +0 -0
  166. {abstractframework-0.11.7 → abstractframework-0.11.8}/scripts/lib/af_inventory.py +0 -0
  167. {abstractframework-0.11.7 → abstractframework-0.11.8}/scripts/lib/af_stack.sh +0 -0
  168. {abstractframework-0.11.7 → abstractframework-0.11.8}/scripts/lib/af_supervisor.sh +0 -0
  169. {abstractframework-0.11.7 → abstractframework-0.11.8}/scripts/lib/apps_common.sh +0 -0
  170. {abstractframework-0.11.7 → abstractframework-0.11.8}/scripts/lib/build_macos_installer.sh +0 -0
  171. {abstractframework-0.11.7 → abstractframework-0.11.8}/scripts/lib/gateway_flags.sh +0 -0
  172. {abstractframework-0.11.7 → abstractframework-0.11.8}/scripts/lib/gateway_user_tokens.py +0 -0
  173. {abstractframework-0.11.7 → abstractframework-0.11.8}/scripts/lib/repo_groups.sh +0 -0
  174. {abstractframework-0.11.7 → abstractframework-0.11.8}/scripts/meet_castor.sh +0 -0
  175. {abstractframework-0.11.7 → abstractframework-0.11.8}/scripts/observer-local.sh +0 -0
  176. {abstractframework-0.11.7 → abstractframework-0.11.8}/scripts/observer.sh +0 -0
  177. {abstractframework-0.11.7 → abstractframework-0.11.8}/scripts/plan_walkthrough.py +0 -0
  178. {abstractframework-0.11.7 → abstractframework-0.11.8}/scripts/pull.sh +0 -0
  179. {abstractframework-0.11.7 → abstractframework-0.11.8}/scripts/push.sh +0 -0
  180. {abstractframework-0.11.7 → abstractframework-0.11.8}/scripts/spawn_demo_agent.sh +0 -0
  181. {abstractframework-0.11.7 → abstractframework-0.11.8}/scripts/start-local.sh +0 -0
  182. {abstractframework-0.11.7 → abstractframework-0.11.8}/scripts/start.sh +0 -0
  183. {abstractframework-0.11.7 → abstractframework-0.11.8}/scripts/status.sh +0 -0
  184. {abstractframework-0.11.7 → abstractframework-0.11.8}/scripts/steer_repl.py +0 -0
  185. {abstractframework-0.11.7 → abstractframework-0.11.8}/scripts/tests/test_af_supervisor.sh +0 -0
  186. {abstractframework-0.11.7 → abstractframework-0.11.8}/scripts/tests/test_install_user_path.sh +0 -0
  187. {abstractframework-0.11.7 → abstractframework-0.11.8}/scripts/tests/test_inventory.sh +0 -0
  188. {abstractframework-0.11.7 → abstractframework-0.11.8}/scripts/tests/test_repo_scripts.sh +0 -0
  189. {abstractframework-0.11.7 → abstractframework-0.11.8}/scripts/uninstall.sh +0 -0
  190. {abstractframework-0.11.7 → abstractframework-0.11.8}/scripts/visit_resume_cache_probe.py +0 -0
  191. {abstractframework-0.11.7 → abstractframework-0.11.8}/setup.cfg +0 -0
  192. {abstractframework-0.11.7 → abstractframework-0.11.8}/tests/test_gateway_launch_flags.py +0 -0
  193. {abstractframework-0.11.7 → abstractframework-0.11.8}/tests/test_install_app_upgrade.py +0 -0
  194. {abstractframework-0.11.7 → abstractframework-0.11.8}/tests/test_install_index_lag.py +0 -0
  195. {abstractframework-0.11.7 → abstractframework-0.11.8}/tests/test_install_macos_profile.py +0 -0
  196. {abstractframework-0.11.7 → abstractframework-0.11.8}/tests/test_install_profiles.py +0 -0
  197. {abstractframework-0.11.7 → abstractframework-0.11.8}/tests/test_install_ps1_gpu_stack.py +0 -0
  198. {abstractframework-0.11.7 → abstractframework-0.11.8}/tests/test_install_ps1_own_gateway.py +0 -0
  199. {abstractframework-0.11.7 → abstractframework-0.11.8}/tests/test_install_sh_gpu_stack.py +0 -0
  200. {abstractframework-0.11.7 → abstractframework-0.11.8}/tests/test_install_sh_gpu_twin.py +0 -0
  201. {abstractframework-0.11.7 → abstractframework-0.11.8}/tests/test_llms_full.py +0 -0
  202. {abstractframework-0.11.7 → abstractframework-0.11.8}/tests/test_uv_tool_install_atomicity.py +0 -0
@@ -2,6 +2,22 @@
2
2
 
3
3
  All notable changes to AbstractFramework will be documented in this file.
4
4
 
5
+ ## [0.11.8] - 2026-10-18
6
+
7
+ Pins **AbstractGateway 0.15.5** and **AbstractRuntime 0.10.5** across the light, Apple and GPU
8
+ profiles (0.10.5 is 0.10.4's fix with the pooled client's wiring done in one place, after an
9
+ adversarial review). Other package pins are unchanged from 0.11.7.
10
+
11
+ - Image generation routed to a provider endpoint profile (an OpenAI-compatible relay chosen as the
12
+ image route, in the console's sandbox or a workflow) reaches that endpoint with its stored
13
+ credential, in process. Before this, the runtime's call handler rewrote the route's `endpoint:<id>`
14
+ provider into a bare provider family before the media client saw it, and the generation failed
15
+ asking for a base URL the gateway already held. Nothing in the gateway asks for a URL or key that
16
+ is already configured.
17
+ - Who is affected: anyone whose image (or video, or voice) route is set to a gateway endpoint
18
+ profile. Upgrade with the one-line installer; a gateway started from a checkout must be restarted
19
+ on the new packages.
20
+
5
21
  ## [0.11.7] - 2026-10-18
6
22
 
7
23
  Pins **AbstractGateway 0.15.4** across the light, Apple and GPU profiles: a cold first start no longer
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: abstractframework
3
- Version: 0.11.7
3
+ Version: 0.11.8
4
4
  Summary: Unified installer and documentation hub for the AbstractFramework ecosystem
5
5
  Author-email: Laurent-Philippe Albou <contact@abstractframework.ai>
6
6
  License: MIT
@@ -23,10 +23,10 @@ Classifier: Typing :: Typed
23
23
  Requires-Python: >=3.10
24
24
  Description-Content-Type: text/markdown
25
25
  License-File: LICENSE
26
- Requires-Dist: abstractgateway==0.15.4
26
+ Requires-Dist: abstractgateway==0.15.5
27
27
  Requires-Dist: abstractassistant==0.14.1
28
28
  Requires-Dist: abstractcore==2.26.3
29
- Requires-Dist: AbstractRuntime==0.10.3
29
+ Requires-Dist: AbstractRuntime==0.10.5
30
30
  Requires-Dist: abstractagent==0.3.19
31
31
  Requires-Dist: abstractskill==0.3.0
32
32
  Requires-Dist: AbstractMemory==0.3.0
@@ -36,10 +36,10 @@ Requires-Dist: abstractvision==0.3.34
36
36
  Requires-Dist: abstractmusic==0.1.17
37
37
  Requires-Dist: abstract3d==0.3.2
38
38
  Provides-Extra: apple
39
- Requires-Dist: abstractgateway[apple]==0.15.4; extra == "apple"
39
+ Requires-Dist: abstractgateway[apple]==0.15.5; extra == "apple"
40
40
  Requires-Dist: abstractassistant[apple]==0.14.1; platform_system == "Darwin" and extra == "apple"
41
41
  Provides-Extra: gpu
42
- Requires-Dist: abstractgateway[gpu]==0.15.4; extra == "gpu"
42
+ Requires-Dist: abstractgateway[gpu]==0.15.5; extra == "gpu"
43
43
  Requires-Dist: abstractassistant[gpu]==0.14.1; extra == "gpu"
44
44
  Dynamic: license-file
45
45
 
@@ -221,7 +221,7 @@ abstractgateway-console --gateway-url http://127.0.0.1:8080 --token <admin token
221
221
  ```
222
222
 
223
223
  Container images are published for the gateway and the AbstractCore server:
224
- `ghcr.io/lpalbou/abstractgateway:0.15.4` and `ghcr.io/lpalbou/abstractcore-server:2.26.3`.
224
+ `ghcr.io/lpalbou/abstractgateway:0.15.5` and `ghcr.io/lpalbou/abstractcore-server:2.26.3`.
225
225
 
226
226
  For artifact and runtime-resource investigation, see
227
227
  [Runtime artifacts and retrieval](docs/guide/runtime-artifacts.md).
@@ -383,10 +383,10 @@ and tested together.
383
383
 
384
384
  | Registry | Package | Version |
385
385
  |---|---|---|
386
- | PyPI | `abstractgateway` | 0.15.4 |
386
+ | PyPI | `abstractgateway` | 0.15.5 |
387
387
  | PyPI | `abstractassistant` | 0.14.1 |
388
388
  | PyPI | `abstractcore` | 2.26.3 |
389
- | PyPI | `AbstractRuntime` | 0.10.3 |
389
+ | PyPI | `AbstractRuntime` | 0.10.5 |
390
390
  | PyPI | `abstractagent` | 0.3.19 |
391
391
  | PyPI | `abstractskill` | 0.3.0 |
392
392
  | PyPI | `AbstractMemory` | 0.3.0 |
@@ -404,7 +404,7 @@ and tested together.
404
404
  | crates.io | `abstractgateway-console` | 0.16.0 |
405
405
  | crates.io | `abstractcore-console` | 0.8.0 |
406
406
  | crates.io | `abstracttui` | 0.6.0 |
407
- | GHCR | `ghcr.io/lpalbou/abstractgateway` | 0.15.4 (`gpu-latest` / `<version>-gpu` experimental) |
407
+ | GHCR | `ghcr.io/lpalbou/abstractgateway` | 0.15.5 (`gpu-latest` / `<version>-gpu` experimental) |
408
408
  | GHCR | `ghcr.io/lpalbou/abstractcore-server` | 2.26.3 |
409
409
 
410
410
  `abstract3d` (pinned above) comes with AbstractCore in every profile. The optional add-on that is
@@ -176,7 +176,7 @@ abstractgateway-console --gateway-url http://127.0.0.1:8080 --token <admin token
176
176
  ```
177
177
 
178
178
  Container images are published for the gateway and the AbstractCore server:
179
- `ghcr.io/lpalbou/abstractgateway:0.15.4` and `ghcr.io/lpalbou/abstractcore-server:2.26.3`.
179
+ `ghcr.io/lpalbou/abstractgateway:0.15.5` and `ghcr.io/lpalbou/abstractcore-server:2.26.3`.
180
180
 
181
181
  For artifact and runtime-resource investigation, see
182
182
  [Runtime artifacts and retrieval](docs/guide/runtime-artifacts.md).
@@ -338,10 +338,10 @@ and tested together.
338
338
 
339
339
  | Registry | Package | Version |
340
340
  |---|---|---|
341
- | PyPI | `abstractgateway` | 0.15.4 |
341
+ | PyPI | `abstractgateway` | 0.15.5 |
342
342
  | PyPI | `abstractassistant` | 0.14.1 |
343
343
  | PyPI | `abstractcore` | 2.26.3 |
344
- | PyPI | `AbstractRuntime` | 0.10.3 |
344
+ | PyPI | `AbstractRuntime` | 0.10.5 |
345
345
  | PyPI | `abstractagent` | 0.3.19 |
346
346
  | PyPI | `abstractskill` | 0.3.0 |
347
347
  | PyPI | `AbstractMemory` | 0.3.0 |
@@ -359,7 +359,7 @@ and tested together.
359
359
  | crates.io | `abstractgateway-console` | 0.16.0 |
360
360
  | crates.io | `abstractcore-console` | 0.8.0 |
361
361
  | crates.io | `abstracttui` | 0.6.0 |
362
- | GHCR | `ghcr.io/lpalbou/abstractgateway` | 0.15.4 (`gpu-latest` / `<version>-gpu` experimental) |
362
+ | GHCR | `ghcr.io/lpalbou/abstractgateway` | 0.15.5 (`gpu-latest` / `<version>-gpu` experimental) |
363
363
  | GHCR | `ghcr.io/lpalbou/abstractcore-server` | 2.26.3 |
364
364
 
365
365
  `abstract3d` (pinned above) comes with AbstractCore in every profile. The optional add-on that is
@@ -10,15 +10,15 @@ Most implementation functionality still lives in component projects.
10
10
 
11
11
  from __future__ import annotations
12
12
 
13
- __version__ = "0.11.7"
13
+ __version__ = "0.11.8"
14
14
  __author__ = "Laurent-Philippe Albou"
15
15
  __license__ = "MIT"
16
16
 
17
17
  RELEASE_VERSIONS: dict[str, str] = {
18
18
  "abstractcore": "2.26.3",
19
- "abstractruntime": "0.10.3",
19
+ "abstractruntime": "0.10.5",
20
20
  "abstractagent": "0.3.19",
21
- "abstractgateway": "0.15.4",
21
+ "abstractgateway": "0.15.5",
22
22
  "abstractskill": "0.3.0",
23
23
  "abstractmemory": "0.3.0",
24
24
  "abstractsemantics": "0.0.5",
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: abstractframework
3
- Version: 0.11.7
3
+ Version: 0.11.8
4
4
  Summary: Unified installer and documentation hub for the AbstractFramework ecosystem
5
5
  Author-email: Laurent-Philippe Albou <contact@abstractframework.ai>
6
6
  License: MIT
@@ -23,10 +23,10 @@ Classifier: Typing :: Typed
23
23
  Requires-Python: >=3.10
24
24
  Description-Content-Type: text/markdown
25
25
  License-File: LICENSE
26
- Requires-Dist: abstractgateway==0.15.4
26
+ Requires-Dist: abstractgateway==0.15.5
27
27
  Requires-Dist: abstractassistant==0.14.1
28
28
  Requires-Dist: abstractcore==2.26.3
29
- Requires-Dist: AbstractRuntime==0.10.3
29
+ Requires-Dist: AbstractRuntime==0.10.5
30
30
  Requires-Dist: abstractagent==0.3.19
31
31
  Requires-Dist: abstractskill==0.3.0
32
32
  Requires-Dist: AbstractMemory==0.3.0
@@ -36,10 +36,10 @@ Requires-Dist: abstractvision==0.3.34
36
36
  Requires-Dist: abstractmusic==0.1.17
37
37
  Requires-Dist: abstract3d==0.3.2
38
38
  Provides-Extra: apple
39
- Requires-Dist: abstractgateway[apple]==0.15.4; extra == "apple"
39
+ Requires-Dist: abstractgateway[apple]==0.15.5; extra == "apple"
40
40
  Requires-Dist: abstractassistant[apple]==0.14.1; platform_system == "Darwin" and extra == "apple"
41
41
  Provides-Extra: gpu
42
- Requires-Dist: abstractgateway[gpu]==0.15.4; extra == "gpu"
42
+ Requires-Dist: abstractgateway[gpu]==0.15.5; extra == "gpu"
43
43
  Requires-Dist: abstractassistant[gpu]==0.14.1; extra == "gpu"
44
44
  Dynamic: license-file
45
45
 
@@ -221,7 +221,7 @@ abstractgateway-console --gateway-url http://127.0.0.1:8080 --token <admin token
221
221
  ```
222
222
 
223
223
  Container images are published for the gateway and the AbstractCore server:
224
- `ghcr.io/lpalbou/abstractgateway:0.15.4` and `ghcr.io/lpalbou/abstractcore-server:2.26.3`.
224
+ `ghcr.io/lpalbou/abstractgateway:0.15.5` and `ghcr.io/lpalbou/abstractcore-server:2.26.3`.
225
225
 
226
226
  For artifact and runtime-resource investigation, see
227
227
  [Runtime artifacts and retrieval](docs/guide/runtime-artifacts.md).
@@ -383,10 +383,10 @@ and tested together.
383
383
 
384
384
  | Registry | Package | Version |
385
385
  |---|---|---|
386
- | PyPI | `abstractgateway` | 0.15.4 |
386
+ | PyPI | `abstractgateway` | 0.15.5 |
387
387
  | PyPI | `abstractassistant` | 0.14.1 |
388
388
  | PyPI | `abstractcore` | 2.26.3 |
389
- | PyPI | `AbstractRuntime` | 0.10.3 |
389
+ | PyPI | `AbstractRuntime` | 0.10.5 |
390
390
  | PyPI | `abstractagent` | 0.3.19 |
391
391
  | PyPI | `abstractskill` | 0.3.0 |
392
392
  | PyPI | `AbstractMemory` | 0.3.0 |
@@ -404,7 +404,7 @@ and tested together.
404
404
  | crates.io | `abstractgateway-console` | 0.16.0 |
405
405
  | crates.io | `abstractcore-console` | 0.8.0 |
406
406
  | crates.io | `abstracttui` | 0.6.0 |
407
- | GHCR | `ghcr.io/lpalbou/abstractgateway` | 0.15.4 (`gpu-latest` / `<version>-gpu` experimental) |
407
+ | GHCR | `ghcr.io/lpalbou/abstractgateway` | 0.15.5 (`gpu-latest` / `<version>-gpu` experimental) |
408
408
  | GHCR | `ghcr.io/lpalbou/abstractcore-server` | 2.26.3 |
409
409
 
410
410
  `abstract3d` (pinned above) comes with AbstractCore in every profile. The optional add-on that is
@@ -1,7 +1,7 @@
1
- abstractgateway==0.15.4
1
+ abstractgateway==0.15.5
2
2
  abstractassistant==0.14.1
3
3
  abstractcore==2.26.3
4
- AbstractRuntime==0.10.3
4
+ AbstractRuntime==0.10.5
5
5
  abstractagent==0.3.19
6
6
  abstractskill==0.3.0
7
7
  AbstractMemory==0.3.0
@@ -12,11 +12,11 @@ abstractmusic==0.1.17
12
12
  abstract3d==0.3.2
13
13
 
14
14
  [apple]
15
- abstractgateway[apple]==0.15.4
15
+ abstractgateway[apple]==0.15.5
16
16
 
17
17
  [apple:platform_system == "Darwin"]
18
18
  abstractassistant[apple]==0.14.1
19
19
 
20
20
  [gpu]
21
- abstractgateway[gpu]==0.15.4
21
+ abstractgateway[gpu]==0.15.5
22
22
  abstractassistant[gpu]==0.14.1
@@ -55,12 +55,12 @@ The response type returned by `llm.generate(...)`.
55
55
 
56
56
  ### `__version__`
57
57
 
58
- The meta-package version (`0.11.7` for this release).
58
+ The meta-package version (`0.11.8` for this release).
59
59
 
60
60
  ### `RELEASE_VERSIONS`
61
61
 
62
- Dictionary mapping each ecosystem package name to the pinned version for this release. In 0.11.7:
63
- `abstractcore` 2.26.3, `abstractruntime` 0.10.3, `abstractagent` 0.3.19, `abstractgateway` 0.15.4,
62
+ Dictionary mapping each ecosystem package name to the pinned version for this release. In 0.11.8:
63
+ `abstractcore` 2.26.3, `abstractruntime` 0.10.5, `abstractagent` 0.3.19, `abstractgateway` 0.15.5,
64
64
  `abstractskill` 0.3.0, `abstractmemory` 0.3.0, `abstractsemantics` 0.0.5, `abstractvoice` 0.15.2, `abstractvision` 0.3.34,
65
65
  `abstractmusic` 0.1.17, `abstract3d` 0.3.2, `abstractassistant` 0.14.1.
66
66
 
@@ -130,7 +130,7 @@ where it stopped.
130
130
  ### Right after a release
131
131
 
132
132
  For a few minutes after a release, some of PyPI's mirrors can still serve a package list without
133
- the new versions. uv then answers `there is no version of abstractgateway==0.15.4` even though the
133
+ the new versions. uv then answers `there is no version of abstractgateway==0.15.5` even though the
134
134
  release is published. The installer (install.sh and install.ps1; the **Update** action of the
135
135
  consoles and the menu-bar icon runs install.sh on macOS and Linux, and gives the install.ps1 line to
136
136
  paste on Windows) treats that as a delay:
@@ -431,7 +431,7 @@ The terminal console and an `abstractcode` built by the installer are upgraded b
431
431
 
432
432
  ```bash
433
433
  abstractgateway --version # the installed gateway
434
- uv tool list --show-version-specifiers # the gateway uv tool and its pin ([required: ==0.15.4])
434
+ uv tool list --show-version-specifiers # the gateway uv tool and its pin ([required: ==0.15.5])
435
435
  abstractgateway-console --version # the terminal console
436
436
  abstractcode --version # AbstractCode's terminal client
437
437
  abstractgateway apps list # the apps: installed and latest
@@ -507,7 +507,7 @@ The Mac package, the `.command` files and the one line all run the same script,
507
507
  login** switch counts), a first install leaves it off.
508
508
  3. Installs [uv](https://docs.astral.sh/uv/) when it is missing, then Python 3.12 through uv.
509
509
  4. Installs the gateway as an isolated uv tool, pinned to this release:
510
- `uv tool install --python 3.12 "abstractgateway[<profile>,tray]==0.15.4"`, from prebuilt wheels
510
+ `uv tool install --python 3.12 "abstractgateway[<profile>,tray]==0.15.5"`, from prebuilt wheels
511
511
  only (see [No compiler needed](#no-compiler-needed)), and checks that the command starts
512
512
  (reinstalling it in place when it does not). Every profile also gets local voice,
513
513
  `--with "abstractvoice[supertonic,stt]==0.15.2"` (the release's AbstractVoice): Supertonic
@@ -861,7 +861,7 @@ instead of starting a browser.
861
861
  ```bash
862
862
  curl -LsSf https://astral.sh/uv/install.sh | sh # Windows: irm https://astral.sh/uv/install.ps1 | iex
863
863
  uv python install 3.12
864
- uv tool install --python 3.12 "abstractgateway[tray]==0.15.4" # [apple,tray] or [gpu,tray] for local engines
864
+ uv tool install --python 3.12 "abstractgateway[tray]==0.15.5" # [apple,tray] or [gpu,tray] for local engines
865
865
  # (add --with and --overrides as shown by `install.sh --print` to avoid compiling)
866
866
  uv tool update-shell # puts ~/.local/bin on PATH; open a new terminal
867
867
  abstractgateway service install --port 8080 # or: abstractgateway serve
@@ -995,8 +995,8 @@ Python 3.11 to 3.13), but it gets PyPI's CPU-only PyTorch and no llama.cpp: use
995
995
  installer, which adds PyTorch's CUDA build and llama.cpp's prebuilt GPU build
996
996
  ([GPU on Windows](#gpu-on-windows-nvidia)).
997
997
 
998
- `abstractframework` 0.11.7 pins `abstractgateway==0.15.4`, `abstractassistant==0.14.1`,
999
- `abstractcore==2.26.3`, `AbstractRuntime==0.10.3`, `abstractagent==0.3.19`, `abstractskill==0.3.0`,
998
+ `abstractframework` 0.11.8 pins `abstractgateway==0.15.5`, `abstractassistant==0.14.1`,
999
+ `abstractcore==2.26.3`, `AbstractRuntime==0.10.5`, `abstractagent==0.3.19`, `abstractskill==0.3.0`,
1000
1000
  `AbstractMemory==0.3.0`, `abstractsemantics==0.0.5`, `abstractvoice==0.15.2`,
1001
1001
  `abstractvision==0.3.34`, `abstractmusic==0.1.17` and `abstract3d==0.3.2`. The `apple` and `gpu` extras select
1002
1002
  `abstractgateway[apple|gpu]` and `abstractassistant[apple|gpu]` at the same versions
@@ -1138,7 +1138,7 @@ docker run \
1138
1138
  -v "$PWD/runtime:/data" \
1139
1139
  -e ABSTRACTGATEWAY_DATA_DIR=/data \
1140
1140
  -e ABSTRACTGATEWAY_USER_AUTH=1 \
1141
- ghcr.io/lpalbou/abstractgateway:0.15.4
1141
+ ghcr.io/lpalbou/abstractgateway:0.15.5
1142
1142
  ```
1143
1143
 
1144
1144
  This is the Light container: full framework capabilities through remote/endpoint inference, without
@@ -180,7 +180,7 @@ abstractgateway-console --gateway-url http://127.0.0.1:8080 --token <admin token
180
180
  ```
181
181
 
182
182
  Container images are published for the gateway and the AbstractCore server:
183
- `ghcr.io/lpalbou/abstractgateway:0.15.4` and `ghcr.io/lpalbou/abstractcore-server:2.26.3`.
183
+ `ghcr.io/lpalbou/abstractgateway:0.15.5` and `ghcr.io/lpalbou/abstractcore-server:2.26.3`.
184
184
 
185
185
  For artifact and runtime-resource investigation, see
186
186
  [Runtime artifacts and retrieval](docs/guide/runtime-artifacts.md).
@@ -342,10 +342,10 @@ and tested together.
342
342
 
343
343
  | Registry | Package | Version |
344
344
  |---|---|---|
345
- | PyPI | `abstractgateway` | 0.15.4 |
345
+ | PyPI | `abstractgateway` | 0.15.5 |
346
346
  | PyPI | `abstractassistant` | 0.14.1 |
347
347
  | PyPI | `abstractcore` | 2.26.3 |
348
- | PyPI | `AbstractRuntime` | 0.10.3 |
348
+ | PyPI | `AbstractRuntime` | 0.10.5 |
349
349
  | PyPI | `abstractagent` | 0.3.19 |
350
350
  | PyPI | `abstractskill` | 0.3.0 |
351
351
  | PyPI | `AbstractMemory` | 0.3.0 |
@@ -363,7 +363,7 @@ and tested together.
363
363
  | crates.io | `abstractgateway-console` | 0.16.0 |
364
364
  | crates.io | `abstractcore-console` | 0.8.0 |
365
365
  | crates.io | `abstracttui` | 0.6.0 |
366
- | GHCR | `ghcr.io/lpalbou/abstractgateway` | 0.15.4 (`gpu-latest` / `<version>-gpu` experimental) |
366
+ | GHCR | `ghcr.io/lpalbou/abstractgateway` | 0.15.5 (`gpu-latest` / `<version>-gpu` experimental) |
367
367
  | GHCR | `ghcr.io/lpalbou/abstractcore-server` | 2.26.3 |
368
368
 
369
369
  `abstract3d` (pinned above) comes with AbstractCore in every profile. The optional add-on that is
@@ -574,7 +574,7 @@ Notes for LLMs working in this repo:
574
574
  - [docs/getting-started.md](docs/getting-started.md): Practical entry paths (core, runtime, gateway, UIs, bundles).
575
575
  - [docs/agent-sessions.md](docs/agent-sessions.md): What every client shares when it chats with an agent: the gateway's default agent workflow (`agents.default_workflow.<interface>`), the conversation workspace on the gateway host and its built-in deny list, the curated skill shelf (`skills.shelf`), live replies (`agents.streaming_default` + per-client Stream replies; what does not stream), opening the Assistant signed in from the console.
576
576
  - [AbstractGateway shipped workflows](https://github.com/lpalbou/AbstractGateway/blob/main/docs/shipped-workflows.md): Workflows a fresh Gateway install already serves (coder, deep research, co-scientist) + how to run one.
577
- - [docs/automations.md](docs/automations.md): How automations work and how to manage them: an automation is a durable controller run, each tick an occurrence (a child run shown as a chat turn); independent vs configurable growing context (growing replays the most recent 50 000 tokens of whole turns); quiet by default (`notify` output, final failures, typed waits `ask_user` / `tool_approval` / `event`); creation is the tool consent (`policy.tool_approval` `auto`/`ask`, MCP tools still ask); creating from the Assistant (Schedule this conversation…), the Observer (Launch → Automate), AbstractCode (`/automations`, `/schedule`, the browser Automations section) or a workflow's `automation_defaults`; email automations (`email.received@1` with typed filters and hourly/60 s batches, each message once, untrusted input with network, code and sending tools asking unless named in `policy.untrusted_input_tools`, own automatic mail never an event, `auto_submitted: "admit"`; **Email result** = every completed result via `notify.channels` with `email` and `notify.recipients`, a switch in the form's **Mailbox** section; `policy.email_allowed_recipients`, only you by default); two worked examples with request bodies; pause / run now (also while paused) / resume without catch-up / revise / archive / discuss; restart safety; limits (fixed UTC intervals, triggers `schedule@1`, `email.received@1` and `manual@1`); troubleshooting. Needs a gateway advertising `contracts.common.automations` (AbstractGateway 0.6.0 and AbstractRuntime 0.10.3 and later; email automations need 0.8.0 of both).
577
+ - [docs/automations.md](docs/automations.md): How automations work and how to manage them: an automation is a durable controller run, each tick an occurrence (a child run shown as a chat turn); independent vs configurable growing context (growing replays the most recent 50 000 tokens of whole turns); quiet by default (`notify` output, final failures, typed waits `ask_user` / `tool_approval` / `event`); creation is the tool consent (`policy.tool_approval` `auto`/`ask`, MCP tools still ask); creating from the Assistant (Schedule this conversation…), the Observer (Launch → Automate), AbstractCode (`/automations`, `/schedule`, the browser Automations section) or a workflow's `automation_defaults`; email automations (`email.received@1` with typed filters and hourly/60 s batches, each message once, untrusted input with network, code and sending tools asking unless named in `policy.untrusted_input_tools`, own automatic mail never an event, `auto_submitted: "admit"`; **Email result** = every completed result via `notify.channels` with `email` and `notify.recipients`, a switch in the form's **Mailbox** section; `policy.email_allowed_recipients`, only you by default); two worked examples with request bodies; pause / run now (also while paused) / resume without catch-up / revise / archive / discuss; restart safety; limits (fixed UTC intervals, triggers `schedule@1`, `email.received@1` and `manual@1`); troubleshooting. Needs a gateway advertising `contracts.common.automations` (AbstractGateway 0.6.0 and AbstractRuntime 0.10.5 and later; email automations need 0.8.0 of both).
578
578
  - [docs/architecture.md](docs/architecture.md): How the stack fits together (Mermaid diagrams: components, distribution, how a turn flows, the live-reply lane, the framework identity flow), app proxies and the forwarded-address rule, model residency and eject.
579
579
  - [docs/configuration.md](docs/configuration.md): Minimal config, Core vs Gateway defaults, Network exposure, email accounts (per gateway user or per AbstractCore install; no environment variables; `--password-stdin`), client configuration.
580
580
  - [docs/guide/email-integration.md](docs/guide/email-integration.md): Your email address and your own mailbox on the gateway: the account page, connecting a mailbox (IMAP / Google / Microsoft), recipient rules and send limits, agent email tools (off by default), email automations (new mail only, untrusted input, own automatic mail never triggers), notifications (Job failed, Approval needed), sign-in by email, the administrator's Mailboxes for users switch and the Accounts table, who sees which accounts, AbstractCore's own account.
@@ -616,8 +616,8 @@ Notes for LLMs working in this repo:
616
616
  - [abstractframework/__init__.py](abstractframework/__init__.py): `RELEASE_VERSIONS`, `NPM_RELEASE_VERSIONS`, `CRATE_RELEASE_VERSIONS`, `get_release_profile()`, `print_status()`.
617
617
  - [docs/installers/install-manifest.json](docs/installers/install-manifest.json): Generated install manifest, schema v2 (pins, profiles, npm apps, `bootstrap` gateway pin/scripts/flags, console-first `post_install`).
618
618
  - [scripts/install.sh](scripts/install.sh) / [scripts/install.ps1](scripts/install.ps1): The bootstrap installers.
619
- - abstractframework 0.11.7 pins (PyPI, `==`): abstractgateway 0.15.4, abstractassistant 0.14.1, abstractcore 2.26.3, AbstractRuntime 0.10.3, abstractagent 0.3.19, abstractskill 0.3.0, AbstractMemory 0.3.0, abstractsemantics 0.0.5, abstractvoice 0.15.2, abstractvision 0.3.34, abstractmusic 0.1.17, abstract3d 0.3.2.
620
- - Released with it: npm `@abstractframework/flow` 0.10.0, `code` 0.11.2, `observer` 0.8.0, `continuum` 0.7.0, `entity` 0.7.1 (opened through the gateway at `/apps/<app>/`, or run with `npx`); crates (`CRATE_RELEASE_VERSIONS`) `abstractgateway-console` 0.16.0 (built by the installer by default), `abstractcore-console` 0.8.0, `abstractcode` 0.10.0, `abstracttui` 0.6.0; images `ghcr.io/lpalbou/abstractgateway:0.15.4`, `ghcr.io/lpalbou/abstractcore-server:2.26.3`.
619
+ - abstractframework 0.11.8 pins (PyPI, `==`): abstractgateway 0.15.5, abstractassistant 0.14.1, abstractcore 2.26.3, AbstractRuntime 0.10.5, abstractagent 0.3.19, abstractskill 0.3.0, AbstractMemory 0.3.0, abstractsemantics 0.0.5, abstractvoice 0.15.2, abstractvision 0.3.34, abstractmusic 0.1.17, abstract3d 0.3.2.
620
+ - Released with it: npm `@abstractframework/flow` 0.10.0, `code` 0.11.2, `observer` 0.8.0, `continuum` 0.7.0, `entity` 0.7.1 (opened through the gateway at `/apps/<app>/`, or run with `npx`); crates (`CRATE_RELEASE_VERSIONS`) `abstractgateway-console` 0.16.0 (built by the installer by default), `abstractcore-console` 0.8.0, `abstractcode` 0.10.0, `abstracttui` 0.6.0; images `ghcr.io/lpalbou/abstractgateway:0.15.5`, `ghcr.io/lpalbou/abstractcore-server:2.26.3`.
621
621
  - Profiles: light (remote-only), apple (`abstractframework[apple]`, macOS 14+ Apple Silicon), gpu (`abstractframework[gpu]`); Python 3.10-3.13 (F5-TTS voice cloning in apple/gpu needs 3.11+).
622
622
 
623
623
  ## Full Context
@@ -645,7 +645,7 @@ build-backend = "setuptools.build_meta"
645
645
 
646
646
  [project]
647
647
  name = "abstractframework"
648
- version = "0.11.7"
648
+ version = "0.11.8"
649
649
  description = "Unified installer and documentation hub for the AbstractFramework ecosystem"
650
650
  readme = "README.md"
651
651
  license = {text = "MIT"}
@@ -689,14 +689,14 @@ requires-python = ">=3.10"
689
689
  # - Keep the meta-package aligned with the real per-package profiles (especially `abstractgateway`).
690
690
  dependencies = [
691
691
  # Durable Gateway control plane (remote-light by default).
692
- "abstractgateway==0.15.4",
692
+ "abstractgateway==0.15.5",
693
693
 
694
694
  # Workflow authoring UI is distributed through npm as @abstractframework/flow.
695
695
  "abstractassistant==0.14.1",
696
696
 
697
697
  # Pin the core Python stack for release determinism (also pulled transitively).
698
698
  "abstractcore==2.26.3",
699
- "AbstractRuntime==0.10.3",
699
+ "AbstractRuntime==0.10.5",
700
700
  "abstractagent==0.3.19",
701
701
  "abstractskill==0.3.0",
702
702
  "AbstractMemory==0.3.0",
@@ -723,12 +723,12 @@ dependencies = [
723
723
  # the stack by selecting the hardware-local dependency aggregates (owned by Gateway),
724
724
  # then adds user-facing apps.
725
725
  apple = [
726
- "abstractgateway[apple]==0.15.4",
726
+ "abstractgateway[apple]==0.15.5",
727
727
  "abstractassistant[apple]==0.14.1; platform_system == \"Darwin\"",
728
728
  ]
729
729
 
730
730
  gpu = [
731
- "abstractgateway[gpu]==0.15.4",
731
+ "abstractgateway[gpu]==0.15.5",
732
732
  "abstractassistant[gpu]==0.14.1",
733
733
  ]
734
734
 
@@ -781,15 +781,15 @@ Most implementation functionality still lives in component projects.
781
781
 
782
782
  from __future__ import annotations
783
783
 
784
- __version__ = "0.11.7"
784
+ __version__ = "0.11.8"
785
785
  __author__ = "Laurent-Philippe Albou"
786
786
  __license__ = "MIT"
787
787
 
788
788
  RELEASE_VERSIONS: dict[str, str] = {
789
789
  "abstractcore": "2.26.3",
790
- "abstractruntime": "0.10.3",
790
+ "abstractruntime": "0.10.5",
791
791
  "abstractagent": "0.3.19",
792
- "abstractgateway": "0.15.4",
792
+ "abstractgateway": "0.15.5",
793
793
  "abstractskill": "0.3.0",
794
794
  "abstractmemory": "0.3.0",
795
795
  "abstractsemantics": "0.0.5",
@@ -3882,7 +3882,7 @@ where it stopped.
3882
3882
  ### Right after a release
3883
3883
 
3884
3884
  For a few minutes after a release, some of PyPI's mirrors can still serve a package list without
3885
- the new versions. uv then answers `there is no version of abstractgateway==0.15.4` even though the
3885
+ the new versions. uv then answers `there is no version of abstractgateway==0.15.5` even though the
3886
3886
  release is published. The installer (install.sh and install.ps1; the **Update** action of the
3887
3887
  consoles and the menu-bar icon runs install.sh on macOS and Linux, and gives the install.ps1 line to
3888
3888
  paste on Windows) treats that as a delay:
@@ -4183,7 +4183,7 @@ The terminal console and an `abstractcode` built by the installer are upgraded b
4183
4183
 
4184
4184
  ```bash
4185
4185
  abstractgateway --version # the installed gateway
4186
- uv tool list --show-version-specifiers # the gateway uv tool and its pin ([required: ==0.15.4])
4186
+ uv tool list --show-version-specifiers # the gateway uv tool and its pin ([required: ==0.15.5])
4187
4187
  abstractgateway-console --version # the terminal console
4188
4188
  abstractcode --version # AbstractCode's terminal client
4189
4189
  abstractgateway apps list # the apps: installed and latest
@@ -4259,7 +4259,7 @@ The Mac package, the `.command` files and the one line all run the same script,
4259
4259
  login** switch counts), a first install leaves it off.
4260
4260
  3. Installs [uv](https://docs.astral.sh/uv/) when it is missing, then Python 3.12 through uv.
4261
4261
  4. Installs the gateway as an isolated uv tool, pinned to this release:
4262
- `uv tool install --python 3.12 "abstractgateway[<profile>,tray]==0.15.4"`, from prebuilt wheels
4262
+ `uv tool install --python 3.12 "abstractgateway[<profile>,tray]==0.15.5"`, from prebuilt wheels
4263
4263
  only (see [No compiler needed](#no-compiler-needed)), and checks that the command starts
4264
4264
  (reinstalling it in place when it does not). Every profile also gets local voice,
4265
4265
  `--with "abstractvoice[supertonic,stt]==0.15.2"` (the release's AbstractVoice): Supertonic
@@ -4613,7 +4613,7 @@ instead of starting a browser.
4613
4613
  ```bash
4614
4614
  curl -LsSf https://astral.sh/uv/install.sh | sh # Windows: irm https://astral.sh/uv/install.ps1 | iex
4615
4615
  uv python install 3.12
4616
- uv tool install --python 3.12 "abstractgateway[tray]==0.15.4" # [apple,tray] or [gpu,tray] for local engines
4616
+ uv tool install --python 3.12 "abstractgateway[tray]==0.15.5" # [apple,tray] or [gpu,tray] for local engines
4617
4617
  # (add --with and --overrides as shown by `install.sh --print` to avoid compiling)
4618
4618
  uv tool update-shell # puts ~/.local/bin on PATH; open a new terminal
4619
4619
  abstractgateway service install --port 8080 # or: abstractgateway serve
@@ -4747,8 +4747,8 @@ Python 3.11 to 3.13), but it gets PyPI's CPU-only PyTorch and no llama.cpp: use
4747
4747
  installer, which adds PyTorch's CUDA build and llama.cpp's prebuilt GPU build
4748
4748
  ([GPU on Windows](#gpu-on-windows-nvidia)).
4749
4749
 
4750
- `abstractframework` 0.11.7 pins `abstractgateway==0.15.4`, `abstractassistant==0.14.1`,
4751
- `abstractcore==2.26.3`, `AbstractRuntime==0.10.3`, `abstractagent==0.3.19`, `abstractskill==0.3.0`,
4750
+ `abstractframework` 0.11.8 pins `abstractgateway==0.15.5`, `abstractassistant==0.14.1`,
4751
+ `abstractcore==2.26.3`, `AbstractRuntime==0.10.5`, `abstractagent==0.3.19`, `abstractskill==0.3.0`,
4752
4752
  `AbstractMemory==0.3.0`, `abstractsemantics==0.0.5`, `abstractvoice==0.15.2`,
4753
4753
  `abstractvision==0.3.34`, `abstractmusic==0.1.17` and `abstract3d==0.3.2`. The `apple` and `gpu` extras select
4754
4754
  `abstractgateway[apple|gpu]` and `abstractassistant[apple|gpu]` at the same versions
@@ -4890,7 +4890,7 @@ docker run \
4890
4890
  -v "$PWD/runtime:/data" \
4891
4891
  -e ABSTRACTGATEWAY_DATA_DIR=/data \
4892
4892
  -e ABSTRACTGATEWAY_USER_AUTH=1 \
4893
- ghcr.io/lpalbou/abstractgateway:0.15.4
4893
+ ghcr.io/lpalbou/abstractgateway:0.15.5
4894
4894
  ```
4895
4895
 
4896
4896
  This is the Light container: full framework capabilities through remote/endpoint inference, without
@@ -6951,12 +6951,12 @@ The response type returned by `llm.generate(...)`.
6951
6951
 
6952
6952
  ### `__version__`
6953
6953
 
6954
- The meta-package version (`0.11.7` for this release).
6954
+ The meta-package version (`0.11.8` for this release).
6955
6955
 
6956
6956
  ### `RELEASE_VERSIONS`
6957
6957
 
6958
- Dictionary mapping each ecosystem package name to the pinned version for this release. In 0.11.7:
6959
- `abstractcore` 2.26.3, `abstractruntime` 0.10.3, `abstractagent` 0.3.19, `abstractgateway` 0.15.4,
6958
+ Dictionary mapping each ecosystem package name to the pinned version for this release. In 0.11.8:
6959
+ `abstractcore` 2.26.3, `abstractruntime` 0.10.5, `abstractagent` 0.3.19, `abstractgateway` 0.15.5,
6960
6960
  `abstractskill` 0.3.0, `abstractmemory` 0.3.0, `abstractsemantics` 0.0.5, `abstractvoice` 0.15.2, `abstractvision` 0.3.34,
6961
6961
  `abstractmusic` 0.1.17, `abstract3d` 0.3.2, `abstractassistant` 0.14.1.
6962
6962
 
@@ -143,7 +143,7 @@ Notes for LLMs working in this repo:
143
143
  - [docs/getting-started.md](docs/getting-started.md): Practical entry paths (core, runtime, gateway, UIs, bundles).
144
144
  - [docs/agent-sessions.md](docs/agent-sessions.md): What every client shares when it chats with an agent: the gateway's default agent workflow (`agents.default_workflow.<interface>`), the conversation workspace on the gateway host and its built-in deny list, the curated skill shelf (`skills.shelf`), live replies (`agents.streaming_default` + per-client Stream replies; what does not stream), opening the Assistant signed in from the console.
145
145
  - [AbstractGateway shipped workflows](https://github.com/lpalbou/AbstractGateway/blob/main/docs/shipped-workflows.md): Workflows a fresh Gateway install already serves (coder, deep research, co-scientist) + how to run one.
146
- - [docs/automations.md](docs/automations.md): How automations work and how to manage them: an automation is a durable controller run, each tick an occurrence (a child run shown as a chat turn); independent vs configurable growing context (growing replays the most recent 50 000 tokens of whole turns); quiet by default (`notify` output, final failures, typed waits `ask_user` / `tool_approval` / `event`); creation is the tool consent (`policy.tool_approval` `auto`/`ask`, MCP tools still ask); creating from the Assistant (Schedule this conversation…), the Observer (Launch → Automate), AbstractCode (`/automations`, `/schedule`, the browser Automations section) or a workflow's `automation_defaults`; email automations (`email.received@1` with typed filters and hourly/60 s batches, each message once, untrusted input with network, code and sending tools asking unless named in `policy.untrusted_input_tools`, own automatic mail never an event, `auto_submitted: "admit"`; **Email result** = every completed result via `notify.channels` with `email` and `notify.recipients`, a switch in the form's **Mailbox** section; `policy.email_allowed_recipients`, only you by default); two worked examples with request bodies; pause / run now (also while paused) / resume without catch-up / revise / archive / discuss; restart safety; limits (fixed UTC intervals, triggers `schedule@1`, `email.received@1` and `manual@1`); troubleshooting. Needs a gateway advertising `contracts.common.automations` (AbstractGateway 0.6.0 and AbstractRuntime 0.10.3 and later; email automations need 0.8.0 of both).
146
+ - [docs/automations.md](docs/automations.md): How automations work and how to manage them: an automation is a durable controller run, each tick an occurrence (a child run shown as a chat turn); independent vs configurable growing context (growing replays the most recent 50 000 tokens of whole turns); quiet by default (`notify` output, final failures, typed waits `ask_user` / `tool_approval` / `event`); creation is the tool consent (`policy.tool_approval` `auto`/`ask`, MCP tools still ask); creating from the Assistant (Schedule this conversation…), the Observer (Launch → Automate), AbstractCode (`/automations`, `/schedule`, the browser Automations section) or a workflow's `automation_defaults`; email automations (`email.received@1` with typed filters and hourly/60 s batches, each message once, untrusted input with network, code and sending tools asking unless named in `policy.untrusted_input_tools`, own automatic mail never an event, `auto_submitted: "admit"`; **Email result** = every completed result via `notify.channels` with `email` and `notify.recipients`, a switch in the form's **Mailbox** section; `policy.email_allowed_recipients`, only you by default); two worked examples with request bodies; pause / run now (also while paused) / resume without catch-up / revise / archive / discuss; restart safety; limits (fixed UTC intervals, triggers `schedule@1`, `email.received@1` and `manual@1`); troubleshooting. Needs a gateway advertising `contracts.common.automations` (AbstractGateway 0.6.0 and AbstractRuntime 0.10.5 and later; email automations need 0.8.0 of both).
147
147
  - [docs/architecture.md](docs/architecture.md): How the stack fits together (Mermaid diagrams: components, distribution, how a turn flows, the live-reply lane, the framework identity flow), app proxies and the forwarded-address rule, model residency and eject.
148
148
  - [docs/configuration.md](docs/configuration.md): Minimal config, Core vs Gateway defaults, Network exposure, email accounts (per gateway user or per AbstractCore install; no environment variables; `--password-stdin`), client configuration.
149
149
  - [docs/guide/email-integration.md](docs/guide/email-integration.md): Your email address and your own mailbox on the gateway: the account page, connecting a mailbox (IMAP / Google / Microsoft), recipient rules and send limits, agent email tools (off by default), email automations (new mail only, untrusted input, own automatic mail never triggers), notifications (Job failed, Approval needed), sign-in by email, the administrator's Mailboxes for users switch and the Accounts table, who sees which accounts, AbstractCore's own account.
@@ -185,8 +185,8 @@ Notes for LLMs working in this repo:
185
185
  - [abstractframework/__init__.py](abstractframework/__init__.py): `RELEASE_VERSIONS`, `NPM_RELEASE_VERSIONS`, `CRATE_RELEASE_VERSIONS`, `get_release_profile()`, `print_status()`.
186
186
  - [docs/installers/install-manifest.json](docs/installers/install-manifest.json): Generated install manifest, schema v2 (pins, profiles, npm apps, `bootstrap` gateway pin/scripts/flags, console-first `post_install`).
187
187
  - [scripts/install.sh](scripts/install.sh) / [scripts/install.ps1](scripts/install.ps1): The bootstrap installers.
188
- - abstractframework 0.11.7 pins (PyPI, `==`): abstractgateway 0.15.4, abstractassistant 0.14.1, abstractcore 2.26.3, AbstractRuntime 0.10.3, abstractagent 0.3.19, abstractskill 0.3.0, AbstractMemory 0.3.0, abstractsemantics 0.0.5, abstractvoice 0.15.2, abstractvision 0.3.34, abstractmusic 0.1.17, abstract3d 0.3.2.
189
- - Released with it: npm `@abstractframework/flow` 0.10.0, `code` 0.11.2, `observer` 0.8.0, `continuum` 0.7.0, `entity` 0.7.1 (opened through the gateway at `/apps/<app>/`, or run with `npx`); crates (`CRATE_RELEASE_VERSIONS`) `abstractgateway-console` 0.16.0 (built by the installer by default), `abstractcore-console` 0.8.0, `abstractcode` 0.10.0, `abstracttui` 0.6.0; images `ghcr.io/lpalbou/abstractgateway:0.15.4`, `ghcr.io/lpalbou/abstractcore-server:2.26.3`.
188
+ - abstractframework 0.11.8 pins (PyPI, `==`): abstractgateway 0.15.5, abstractassistant 0.14.1, abstractcore 2.26.3, AbstractRuntime 0.10.5, abstractagent 0.3.19, abstractskill 0.3.0, AbstractMemory 0.3.0, abstractsemantics 0.0.5, abstractvoice 0.15.2, abstractvision 0.3.34, abstractmusic 0.1.17, abstract3d 0.3.2.
189
+ - Released with it: npm `@abstractframework/flow` 0.10.0, `code` 0.11.2, `observer` 0.8.0, `continuum` 0.7.0, `entity` 0.7.1 (opened through the gateway at `/apps/<app>/`, or run with `npx`); crates (`CRATE_RELEASE_VERSIONS`) `abstractgateway-console` 0.16.0 (built by the installer by default), `abstractcore-console` 0.8.0, `abstractcode` 0.10.0, `abstracttui` 0.6.0; images `ghcr.io/lpalbou/abstractgateway:0.15.5`, `ghcr.io/lpalbou/abstractcore-server:2.26.3`.
190
190
  - Profiles: light (remote-only), apple (`abstractframework[apple]`, macOS 14+ Apple Silicon), gpu (`abstractframework[gpu]`); Python 3.10-3.13 (F5-TTS voice cloning in apple/gpu needs 3.11+).
191
191
 
192
192
  ## Full Context
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "abstractframework"
7
- version = "0.11.7"
7
+ version = "0.11.8"
8
8
  description = "Unified installer and documentation hub for the AbstractFramework ecosystem"
9
9
  readme = "README.md"
10
10
  license = {text = "MIT"}
@@ -48,14 +48,14 @@ requires-python = ">=3.10"
48
48
  # - Keep the meta-package aligned with the real per-package profiles (especially `abstractgateway`).
49
49
  dependencies = [
50
50
  # Durable Gateway control plane (remote-light by default).
51
- "abstractgateway==0.15.4",
51
+ "abstractgateway==0.15.5",
52
52
 
53
53
  # Workflow authoring UI is distributed through npm as @abstractframework/flow.
54
54
  "abstractassistant==0.14.1",
55
55
 
56
56
  # Pin the core Python stack for release determinism (also pulled transitively).
57
57
  "abstractcore==2.26.3",
58
- "AbstractRuntime==0.10.3",
58
+ "AbstractRuntime==0.10.5",
59
59
  "abstractagent==0.3.19",
60
60
  "abstractskill==0.3.0",
61
61
  "AbstractMemory==0.3.0",
@@ -82,12 +82,12 @@ dependencies = [
82
82
  # the stack by selecting the hardware-local dependency aggregates (owned by Gateway),
83
83
  # then adds user-facing apps.
84
84
  apple = [
85
- "abstractgateway[apple]==0.15.4",
85
+ "abstractgateway[apple]==0.15.5",
86
86
  "abstractassistant[apple]==0.14.1; platform_system == \"Darwin\"",
87
87
  ]
88
88
 
89
89
  gpu = [
90
- "abstractgateway[gpu]==0.15.4",
90
+ "abstractgateway[gpu]==0.15.5",
91
91
  "abstractassistant[gpu]==0.14.1",
92
92
  ]
93
93
 
@@ -121,14 +121,14 @@ fi
121
121
  # docs/installers/install-manifest.json (scripts/tests/test_inventory.sh fails
122
122
  # on drift); a manifest next to this script wins at runtime.
123
123
  # ---------------------------------------------------------------------------
124
- AF_GATEWAY_PIN_DEFAULT="0.15.4"
124
+ AF_GATEWAY_PIN_DEFAULT="0.15.5"
125
125
  # The AbstractFramework release these pins are (install-manifest.json `framework.version`), and
126
126
  # the release's other Python packages in the gateway's environment (its `python_packages`,
127
127
  # minus the gateway itself and the Assistant, a separate app). They go to `uv tool install` as
128
128
  # constraints, so an install or an upgrade lands on exactly the tested matrix, never on
129
129
  # whatever newer library satisfies the gateway's floors. test_inventory.sh fails on drift.
130
- AF_FRAMEWORK_VERSION="0.11.7"
131
- AF_PY_MATRIX="abstractcore==2.26.3 AbstractRuntime==0.10.3 abstractagent==0.3.19 abstractskill==0.3.0 AbstractMemory==0.3.0 abstractsemantics==0.0.5 abstractvoice==0.15.2 abstractvision==0.3.34 abstractmusic==0.1.17 abstract3d==0.3.2"
130
+ AF_FRAMEWORK_VERSION="0.11.8"
131
+ AF_PY_MATRIX="abstractcore==2.26.3 AbstractRuntime==0.10.5 abstractagent==0.3.19 abstractskill==0.3.0 AbstractMemory==0.3.0 abstractsemantics==0.0.5 abstractvoice==0.15.2 abstractvision==0.3.34 abstractmusic==0.1.17 abstract3d==0.3.2"
132
132
  AF_PYTHON="3.12"
133
133
  AF_NPM_APPS="@abstractframework/flow@0.10.0 @abstractframework/code@0.11.2 @abstractframework/observer@0.8.0 @abstractframework/continuum@0.7.0 @abstractframework/entity@0.7.1"
134
134
  AF_CRATE_CONSOLE="abstractgateway-console@0.16.0"