abstractframework 0.9.2__tar.gz → 0.9.3__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 (199) hide show
  1. {abstractframework-0.9.2 → abstractframework-0.9.3}/CHANGELOG.md +16 -0
  2. {abstractframework-0.9.2/abstractframework.egg-info → abstractframework-0.9.3}/PKG-INFO +15 -15
  3. {abstractframework-0.9.2 → abstractframework-0.9.3}/README.md +7 -7
  4. {abstractframework-0.9.2 → abstractframework-0.9.3}/abstractframework/__init__.py +4 -4
  5. {abstractframework-0.9.2 → abstractframework-0.9.3/abstractframework.egg-info}/PKG-INFO +15 -15
  6. {abstractframework-0.9.2 → abstractframework-0.9.3}/abstractframework.egg-info/requires.txt +7 -7
  7. {abstractframework-0.9.2 → abstractframework-0.9.3}/docs/api.md +4 -4
  8. {abstractframework-0.9.2 → abstractframework-0.9.3}/docs/faq.md +1 -1
  9. {abstractframework-0.9.2 → abstractframework-0.9.3}/docs/install.md +9 -9
  10. {abstractframework-0.9.2 → abstractframework-0.9.3}/llms-full.txt +35 -35
  11. {abstractframework-0.9.2 → abstractframework-0.9.3}/llms.txt +2 -2
  12. {abstractframework-0.9.2 → abstractframework-0.9.3}/pyproject.toml +8 -8
  13. {abstractframework-0.9.2 → abstractframework-0.9.3}/scripts/install.sh +3 -3
  14. {abstractframework-0.9.2 → abstractframework-0.9.3}/LICENSE +0 -0
  15. {abstractframework-0.9.2 → abstractframework-0.9.3}/MANIFEST.in +0 -0
  16. {abstractframework-0.9.2 → abstractframework-0.9.3}/abstractframework/__main__.py +0 -0
  17. {abstractframework-0.9.2 → abstractframework-0.9.3}/abstractframework/cli.py +0 -0
  18. {abstractframework-0.9.2 → abstractframework-0.9.3}/abstractframework/install_manifest.py +0 -0
  19. {abstractframework-0.9.2 → abstractframework-0.9.3}/abstractframework/py.typed +0 -0
  20. {abstractframework-0.9.2 → abstractframework-0.9.3}/abstractframework.egg-info/SOURCES.txt +0 -0
  21. {abstractframework-0.9.2 → abstractframework-0.9.3}/abstractframework.egg-info/dependency_links.txt +0 -0
  22. {abstractframework-0.9.2 → abstractframework-0.9.3}/abstractframework.egg-info/entry_points.txt +0 -0
  23. {abstractframework-0.9.2 → abstractframework-0.9.3}/abstractframework.egg-info/top_level.txt +0 -0
  24. {abstractframework-0.9.2 → abstractframework-0.9.3}/docs/README.md +0 -0
  25. {abstractframework-0.9.2 → abstractframework-0.9.3}/docs/adr/0001-layered-architecture.md +0 -0
  26. {abstractframework-0.9.2 → abstractframework-0.9.3}/docs/adr/0002-effect-system-design.md +0 -0
  27. {abstractframework-0.9.2 → abstractframework-0.9.3}/docs/adr/0003-tool-system-architecture.md +0 -0
  28. {abstractframework-0.9.2 → abstractframework-0.9.3}/docs/adr/0004-observability-strategy.md +0 -0
  29. {abstractframework-0.9.2 → abstractframework-0.9.3}/docs/adr/0005-memory-architecture.md +0 -0
  30. {abstractframework-0.9.2 → abstractframework-0.9.3}/docs/adr/0006-durable-tool-execution.md +0 -0
  31. {abstractframework-0.9.2 → abstractframework-0.9.3}/docs/adr/0007-active-context-and-memory-provenance.md +0 -0
  32. {abstractframework-0.9.2 → abstractframework-0.9.3}/docs/adr/0008-token-terminology.md +0 -0
  33. {abstractframework-0.9.2 → abstractframework-0.9.3}/docs/adr/0009-connected-memory-recall-and-provenance.md +0 -0
  34. {abstractframework-0.9.2 → abstractframework-0.9.3}/docs/adr/0010-runtime-owned-node-traces.md +0 -0
  35. {abstractframework-0.9.2 → abstractframework-0.9.3}/docs/adr/0011-ledger-subscriptions-and-event-bridge.md +0 -0
  36. {abstractframework-0.9.2 → abstractframework-0.9.3}/docs/adr/0012-portable-workflowartifact.md +0 -0
  37. {abstractframework-0.9.2 → abstractframework-0.9.3}/docs/adr/0013-durable-run-controls-pause-resume-cancel.md +0 -0
  38. {abstractframework-0.9.2 → abstractframework-0.9.3}/docs/adr/0014-runtime-authority-timeouts.md +0 -0
  39. {abstractframework-0.9.2 → abstractframework-0.9.3}/docs/adr/0015-execution-targets-and-remote-tool-workers.md +0 -0
  40. {abstractframework-0.9.2 → abstractframework-0.9.3}/docs/adr/0016-tool-calling-pipeline-and-responsibility-boundaries.md +0 -0
  41. {abstractframework-0.9.2 → abstractframework-0.9.3}/docs/adr/0017-host-ui-events-and-durable-prompts.md +0 -0
  42. {abstractframework-0.9.2 → abstractframework-0.9.3}/docs/adr/0018-durable-run-gateway-and-remote-host-control-plane.md +0 -0
  43. {abstractframework-0.9.2 → abstractframework-0.9.3}/docs/adr/0019-testing-strategy-and-levels.md +0 -0
  44. {abstractframework-0.9.2 → abstractframework-0.9.3}/docs/adr/0020-agent-host-pool-and-orchestrator-placement.md +0 -0
  45. {abstractframework-0.9.2 → abstractframework-0.9.3}/docs/adr/0021-deployment-topologies-and-supported-scenarios.md +0 -0
  46. {abstractframework-0.9.2 → abstractframework-0.9.3}/docs/adr/0022-orchestrator-host-and-runtime-daemonization.md +0 -0
  47. {abstractframework-0.9.2 → abstractframework-0.9.3}/docs/adr/0023-file-attachment-path-resolution-and-authorization.md +0 -0
  48. {abstractframework-0.9.2 → abstractframework-0.9.3}/docs/adr/0024-attachment-placeholders-and-compaction-invariants.md +0 -0
  49. {abstractframework-0.9.2 → abstractframework-0.9.3}/docs/adr/0025-kg-entity-normalization-and-dedup.md +0 -0
  50. {abstractframework-0.9.2 → abstractframework-0.9.3}/docs/adr/0026-truncation-policy-and-contract.md +0 -0
  51. {abstractframework-0.9.2 → abstractframework-0.9.3}/docs/adr/0027-timeout-policy-and-contract.md +0 -0
  52. {abstractframework-0.9.2 → abstractframework-0.9.3}/docs/adr/0028-capabilities-plugins-and-library-framework-modes.md +0 -0
  53. {abstractframework-0.9.2 → abstractframework-0.9.3}/docs/adr/0029-permissive-dependency-and-licensing-policy.md +0 -0
  54. {abstractframework-0.9.2 → abstractframework-0.9.3}/docs/adr/0030-security-test-fixtures-and-isolation.md +0 -0
  55. {abstractframework-0.9.2 → abstractframework-0.9.3}/docs/adr/0031-workflow-llm-routing-overrides-provider-model-and-base-url.md +0 -0
  56. {abstractframework-0.9.2 → abstractframework-0.9.3}/docs/adr/0032-package-dependency-boundaries-and-gateway-first-apps.md +0 -0
  57. {abstractframework-0.9.2 → abstractframework-0.9.3}/docs/adr/0033-install-profiles-config-entrypoints-and-server-boundaries.md +0 -0
  58. {abstractframework-0.9.2 → abstractframework-0.9.3}/docs/adr/0034-framework-release-sequence-and-gates.md +0 -0
  59. {abstractframework-0.9.2 → abstractframework-0.9.3}/docs/adr/0035-capability-routing-defaults.md +0 -0
  60. {abstractframework-0.9.2 → abstractframework-0.9.3}/docs/adr/0036-artifact-descriptor-contract.md +0 -0
  61. {abstractframework-0.9.2 → abstractframework-0.9.3}/docs/adr/0037-hosted-file-source-contract-and-workspacepath-authority.md +0 -0
  62. {abstractframework-0.9.2 → abstractframework-0.9.3}/docs/adr/0038-script-bootstrap-and-gateway-console-install.md +0 -0
  63. {abstractframework-0.9.2 → abstractframework-0.9.3}/docs/adr/README.md +0 -0
  64. {abstractframework-0.9.2 → abstractframework-0.9.3}/docs/adr/memory-recall-levels.md +0 -0
  65. {abstractframework-0.9.2 → abstractframework-0.9.3}/docs/adr/reorg/001_music_as_capability_plugin_via_acestep_api.md +0 -0
  66. {abstractframework-0.9.2 → abstractframework-0.9.3}/docs/adr/reorg/002_abstractmusic_inprocess_local_generation.md +0 -0
  67. {abstractframework-0.9.2 → abstractframework-0.9.3}/docs/adr/reorg/003_abstractmusic_acestep_v15_backend_source_strategy.md +0 -0
  68. {abstractframework-0.9.2 → abstractframework-0.9.3}/docs/adr/reorg/004_smartnote_thin_client_architecture.md +0 -0
  69. {abstractframework-0.9.2 → abstractframework-0.9.3}/docs/adr/reorg/005_smartnote_artifact_first_cards.md +0 -0
  70. {abstractframework-0.9.2 → abstractframework-0.9.3}/docs/adr/reorg/2026-02-21_gateway-first-assistant.md +0 -0
  71. {abstractframework-0.9.2 → abstractframework-0.9.3}/docs/adr/reorg/2026-02-21_installer_manager_strategy.md +0 -0
  72. {abstractframework-0.9.2 → abstractframework-0.9.3}/docs/adr/reorg/2026-02-21_macos_installer_manager.md +0 -0
  73. {abstractframework-0.9.2 → abstractframework-0.9.3}/docs/agent-sessions.md +0 -0
  74. {abstractframework-0.9.2 → abstractframework-0.9.3}/docs/architecture.md +0 -0
  75. {abstractframework-0.9.2 → abstractframework-0.9.3}/docs/automations.md +0 -0
  76. {abstractframework-0.9.2 → abstractframework-0.9.3}/docs/claude/README.md +0 -0
  77. {abstractframework-0.9.2 → abstractframework-0.9.3}/docs/claude/abstractframework-fit.md +0 -0
  78. {abstractframework-0.9.2 → abstractframework-0.9.3}/docs/claude/claude-skills-overview.md +0 -0
  79. {abstractframework-0.9.2 → abstractframework-0.9.3}/docs/claude/claude-skills-sources.md +0 -0
  80. {abstractframework-0.9.2 → abstractframework-0.9.3}/docs/claude/claude-skills-top-20.md +0 -0
  81. {abstractframework-0.9.2 → abstractframework-0.9.3}/docs/comparisons/README.md +0 -0
  82. {abstractframework-0.9.2 → abstractframework-0.9.3}/docs/configuration.md +0 -0
  83. {abstractframework-0.9.2 → abstractframework-0.9.3}/docs/getting-started.md +0 -0
  84. {abstractframework-0.9.2 → abstractframework-0.9.3}/docs/glossary.md +0 -0
  85. {abstractframework-0.9.2 → abstractframework-0.9.3}/docs/guide/LANDING.md +0 -0
  86. {abstractframework-0.9.2 → abstractframework-0.9.3}/docs/guide/README.md +0 -0
  87. {abstractframework-0.9.2 → abstractframework-0.9.3}/docs/guide/agent-skills.md +0 -0
  88. {abstractframework-0.9.2 → abstractframework-0.9.3}/docs/guide/agent-vs-llm.md +0 -0
  89. {abstractframework-0.9.2 → abstractframework-0.9.3}/docs/guide/agora-workflow-agent.md +0 -0
  90. {abstractframework-0.9.2 → abstractframework-0.9.3}/docs/guide/apple-local-gateway-flow.md +0 -0
  91. {abstractframework-0.9.2 → abstractframework-0.9.3}/docs/guide/capability-plugins.md +0 -0
  92. {abstractframework-0.9.2 → abstractframework-0.9.3}/docs/guide/capability-routing-defaults.md +0 -0
  93. {abstractframework-0.9.2 → abstractframework-0.9.3}/docs/guide/deployment-iphone.md +0 -0
  94. {abstractframework-0.9.2 → abstractframework-0.9.3}/docs/guide/deployment-topologies.md +0 -0
  95. {abstractframework-0.9.2 → abstractframework-0.9.3}/docs/guide/deployment-web.md +0 -0
  96. {abstractframework-0.9.2 → abstractframework-0.9.3}/docs/guide/email-integration.md +0 -0
  97. {abstractframework-0.9.2 → abstractframework-0.9.3}/docs/guide/event-inbox-agent.md +0 -0
  98. {abstractframework-0.9.2 → abstractframework-0.9.3}/docs/guide/flow-and-kg-memory.md +0 -0
  99. {abstractframework-0.9.2 → abstractframework-0.9.3}/docs/guide/gateway-security.md +0 -0
  100. {abstractframework-0.9.2 → abstractframework-0.9.3}/docs/guide/headless-swarm.md +0 -0
  101. {abstractframework-0.9.2 → abstractframework-0.9.3}/docs/guide/process-manager-env-vars.md +0 -0
  102. {abstractframework-0.9.2 → abstractframework-0.9.3}/docs/guide/prompt-caching.md +0 -0
  103. {abstractframework-0.9.2 → abstractframework-0.9.3}/docs/guide/runtime-artifacts.md +0 -0
  104. {abstractframework-0.9.2 → abstractframework-0.9.3}/docs/guide/runtime-scope.md +0 -0
  105. {abstractframework-0.9.2 → abstractframework-0.9.3}/docs/guide/scheduled-workflows.md +0 -0
  106. {abstractframework-0.9.2 → abstractframework-0.9.3}/docs/guide/summoned-entities.md +0 -0
  107. {abstractframework-0.9.2 → abstractframework-0.9.3}/docs/guide/telegram-integration.md +0 -0
  108. {abstractframework-0.9.2 → abstractframework-0.9.3}/docs/guide/workflow-bundles.md +0 -0
  109. {abstractframework-0.9.2 → abstractframework-0.9.3}/docs/installers/README.md +0 -0
  110. {abstractframework-0.9.2 → abstractframework-0.9.3}/docs/installers/components.md +0 -0
  111. {abstractframework-0.9.2 → abstractframework-0.9.3}/docs/installers/implementation-plan.md +0 -0
  112. {abstractframework-0.9.2 → abstractframework-0.9.3}/docs/installers/operations-and-support.md +0 -0
  113. {abstractframework-0.9.2 → abstractframework-0.9.3}/docs/installers/release-and-manifest.md +0 -0
  114. {abstractframework-0.9.2 → abstractframework-0.9.3}/docs/installers/security-and-os-blocks.md +0 -0
  115. {abstractframework-0.9.2 → abstractframework-0.9.3}/docs/installers/strategy.md +0 -0
  116. {abstractframework-0.9.2 → abstractframework-0.9.3}/docs/installers/user-journeys.md +0 -0
  117. {abstractframework-0.9.2 → abstractframework-0.9.3}/docs/prompts/agora-collaboration.md +0 -0
  118. {abstractframework-0.9.2 → abstractframework-0.9.3}/docs/scenarios/README.md +0 -0
  119. {abstractframework-0.9.2 → abstractframework-0.9.3}/docs/scenarios/email-inbox-agent.md +0 -0
  120. {abstractframework-0.9.2 → abstractframework-0.9.3}/docs/scenarios/gateway-first-local-dev.md +0 -0
  121. {abstractframework-0.9.2 → abstractframework-0.9.3}/docs/scenarios/offline-coding-assistant.md +0 -0
  122. {abstractframework-0.9.2 → abstractframework-0.9.3}/docs/scenarios/phone-thin-client.md +0 -0
  123. {abstractframework-0.9.2 → abstractframework-0.9.3}/docs/scenarios/specialized-agent-flow.md +0 -0
  124. {abstractframework-0.9.2 → abstractframework-0.9.3}/docs/scenarios/telegram-permanent-contact.md +0 -0
  125. {abstractframework-0.9.2 → abstractframework-0.9.3}/docs/scenarios/workflow-bundle-lifecycle.md +0 -0
  126. {abstractframework-0.9.2 → abstractframework-0.9.3}/docs/skills/README.md +0 -0
  127. {abstractframework-0.9.2 → abstractframework-0.9.3}/docs/skills/abstractframework-agent-skills-fit.md +0 -0
  128. {abstractframework-0.9.2 → abstractframework-0.9.3}/docs/skills/abstractframework-architecture-deep-dive.md +0 -0
  129. {abstractframework-0.9.2 → abstractframework-0.9.3}/docs/skills/agent-skills-ecosystem-scan.md +0 -0
  130. {abstractframework-0.9.2 → abstractframework-0.9.3}/docs/skills/agent-skills-ecosystem-sources.md +0 -0
  131. {abstractframework-0.9.2 → abstractframework-0.9.3}/docs/skills/claude-agent-skills-overview.md +0 -0
  132. {abstractframework-0.9.2 → abstractframework-0.9.3}/docs/skills/claude-agent-skills-sources.md +0 -0
  133. {abstractframework-0.9.2 → abstractframework-0.9.3}/docs/skills/claude-agent-skills-top-20.md +0 -0
  134. {abstractframework-0.9.2 → abstractframework-0.9.3}/docs/troubleshooting.md +0 -0
  135. {abstractframework-0.9.2 → abstractframework-0.9.3}/docs/workspace-scripts.md +0 -0
  136. {abstractframework-0.9.2 → abstractframework-0.9.3}/scripts/af-local.sh +0 -0
  137. {abstractframework-0.9.2 → abstractframework-0.9.3}/scripts/af.sh +0 -0
  138. {abstractframework-0.9.2 → abstractframework-0.9.3}/scripts/agora_react_flow_smoke.py +0 -0
  139. {abstractframework-0.9.2 → abstractframework-0.9.3}/scripts/assistant-local.sh +0 -0
  140. {abstractframework-0.9.2 → abstractframework-0.9.3}/scripts/assistant.sh +0 -0
  141. {abstractframework-0.9.2 → abstractframework-0.9.3}/scripts/build.sh +0 -0
  142. {abstractframework-0.9.2 → abstractframework-0.9.3}/scripts/cache_probe_local_backends.py +0 -0
  143. {abstractframework-0.9.2 → abstractframework-0.9.3}/scripts/cache_steer_repl.py +0 -0
  144. {abstractframework-0.9.2 → abstractframework-0.9.3}/scripts/check_identity_sync.py +0 -0
  145. {abstractframework-0.9.2 → abstractframework-0.9.3}/scripts/clone.sh +0 -0
  146. {abstractframework-0.9.2 → abstractframework-0.9.3}/scripts/code-local.sh +0 -0
  147. {abstractframework-0.9.2 → abstractframework-0.9.3}/scripts/code.sh +0 -0
  148. {abstractframework-0.9.2 → abstractframework-0.9.3}/scripts/commit.sh +0 -0
  149. {abstractframework-0.9.2 → abstractframework-0.9.3}/scripts/console-local.sh +0 -0
  150. {abstractframework-0.9.2 → abstractframework-0.9.3}/scripts/console.sh +0 -0
  151. {abstractframework-0.9.2 → abstractframework-0.9.3}/scripts/core_operator_drive.py +0 -0
  152. {abstractframework-0.9.2 → abstractframework-0.9.3}/scripts/deps.sh +0 -0
  153. {abstractframework-0.9.2 → abstractframework-0.9.3}/scripts/entity-local.sh +0 -0
  154. {abstractframework-0.9.2 → abstractframework-0.9.3}/scripts/entity.sh +0 -0
  155. {abstractframework-0.9.2 → abstractframework-0.9.3}/scripts/event_inbox_flow_smoke.py +0 -0
  156. {abstractframework-0.9.2 → abstractframework-0.9.3}/scripts/flow-local.sh +0 -0
  157. {abstractframework-0.9.2 → abstractframework-0.9.3}/scripts/flow.sh +0 -0
  158. {abstractframework-0.9.2 → abstractframework-0.9.3}/scripts/gateway-flow-local.sh +0 -0
  159. {abstractframework-0.9.2 → abstractframework-0.9.3}/scripts/gateway-flow.sh +0 -0
  160. {abstractframework-0.9.2 → abstractframework-0.9.3}/scripts/gateway-local.sh +0 -0
  161. {abstractframework-0.9.2 → abstractframework-0.9.3}/scripts/gateway.sh +0 -0
  162. {abstractframework-0.9.2 → abstractframework-0.9.3}/scripts/gen_llms_full.py +0 -0
  163. {abstractframework-0.9.2 → abstractframework-0.9.3}/scripts/headless_fleet_bridge.py +0 -0
  164. {abstractframework-0.9.2 → abstractframework-0.9.3}/scripts/headless_fleet_demo.py +0 -0
  165. {abstractframework-0.9.2 → abstractframework-0.9.3}/scripts/headless_steer_repl.py +0 -0
  166. {abstractframework-0.9.2 → abstractframework-0.9.3}/scripts/lib/af_inventory.py +0 -0
  167. {abstractframework-0.9.2 → abstractframework-0.9.3}/scripts/lib/af_stack.sh +0 -0
  168. {abstractframework-0.9.2 → abstractframework-0.9.3}/scripts/lib/af_supervisor.sh +0 -0
  169. {abstractframework-0.9.2 → abstractframework-0.9.3}/scripts/lib/apps_common.sh +0 -0
  170. {abstractframework-0.9.2 → abstractframework-0.9.3}/scripts/lib/build_macos_installer.sh +0 -0
  171. {abstractframework-0.9.2 → abstractframework-0.9.3}/scripts/lib/gateway_user_tokens.py +0 -0
  172. {abstractframework-0.9.2 → abstractframework-0.9.3}/scripts/lib/repo_groups.sh +0 -0
  173. {abstractframework-0.9.2 → abstractframework-0.9.3}/scripts/meet_castor.sh +0 -0
  174. {abstractframework-0.9.2 → abstractframework-0.9.3}/scripts/observer-local.sh +0 -0
  175. {abstractframework-0.9.2 → abstractframework-0.9.3}/scripts/observer.sh +0 -0
  176. {abstractframework-0.9.2 → abstractframework-0.9.3}/scripts/plan_walkthrough.py +0 -0
  177. {abstractframework-0.9.2 → abstractframework-0.9.3}/scripts/pull.sh +0 -0
  178. {abstractframework-0.9.2 → abstractframework-0.9.3}/scripts/push.sh +0 -0
  179. {abstractframework-0.9.2 → abstractframework-0.9.3}/scripts/spawn_demo_agent.sh +0 -0
  180. {abstractframework-0.9.2 → abstractframework-0.9.3}/scripts/start-local.sh +0 -0
  181. {abstractframework-0.9.2 → abstractframework-0.9.3}/scripts/start.sh +0 -0
  182. {abstractframework-0.9.2 → abstractframework-0.9.3}/scripts/status.sh +0 -0
  183. {abstractframework-0.9.2 → abstractframework-0.9.3}/scripts/steer_repl.py +0 -0
  184. {abstractframework-0.9.2 → abstractframework-0.9.3}/scripts/tests/test_af_supervisor.sh +0 -0
  185. {abstractframework-0.9.2 → abstractframework-0.9.3}/scripts/tests/test_install_user_path.sh +0 -0
  186. {abstractframework-0.9.2 → abstractframework-0.9.3}/scripts/tests/test_inventory.sh +0 -0
  187. {abstractframework-0.9.2 → abstractframework-0.9.3}/scripts/tests/test_repo_scripts.sh +0 -0
  188. {abstractframework-0.9.2 → abstractframework-0.9.3}/scripts/uninstall.sh +0 -0
  189. {abstractframework-0.9.2 → abstractframework-0.9.3}/scripts/visit_resume_cache_probe.py +0 -0
  190. {abstractframework-0.9.2 → abstractframework-0.9.3}/setup.cfg +0 -0
  191. {abstractframework-0.9.2 → abstractframework-0.9.3}/tests/test_install_app_upgrade.py +0 -0
  192. {abstractframework-0.9.2 → abstractframework-0.9.3}/tests/test_install_index_lag.py +0 -0
  193. {abstractframework-0.9.2 → abstractframework-0.9.3}/tests/test_install_profiles.py +0 -0
  194. {abstractframework-0.9.2 → abstractframework-0.9.3}/tests/test_install_ps1_gpu_stack.py +0 -0
  195. {abstractframework-0.9.2 → abstractframework-0.9.3}/tests/test_install_ps1_own_gateway.py +0 -0
  196. {abstractframework-0.9.2 → abstractframework-0.9.3}/tests/test_install_sh_gpu_stack.py +0 -0
  197. {abstractframework-0.9.2 → abstractframework-0.9.3}/tests/test_install_sh_gpu_twin.py +0 -0
  198. {abstractframework-0.9.2 → abstractframework-0.9.3}/tests/test_llms_full.py +0 -0
  199. {abstractframework-0.9.2 → abstractframework-0.9.3}/tests/test_uv_tool_install_atomicity.py +0 -0
@@ -6,6 +6,22 @@ All notable changes to AbstractFramework will be documented in this file.
6
6
 
7
7
  Nothing yet.
8
8
 
9
+ ## [0.9.3] - 2026-10-02
10
+
11
+ ### Fixed
12
+
13
+ - Pins abstractcore 2.23.1: on the in-gateway MLX lane the prefix cache is sized to the machine
14
+ (`min(8 GiB, working set / 4)` with a 512 MiB reserve), so a 24 GB Mac running Qwen3.8-27B keeps
15
+ the conversation warm instead of re-prefilling it every turn; and a text route with no
16
+ `speculation` key inherits optional MTP on a verified MTP model (only "Off" turns it off), which
17
+ restores speculative decoding where a console save had dropped the key.
18
+ - Pins abstractgateway 0.11.2: "Default workflow per app" always resolves a default for every app
19
+ interface that has an available workflow (shipped bundle first, else the newest); "Clients choose"
20
+ is gone, and each workflow is listed once across registry scopes.
21
+ - Pins abstractassistant 0.12.1: runs any registry scope the gateway resolves (fixes "Not sent —
22
+ Unsupported workflow registry_scope for AbstractAssistant: private"), and Settings no longer offers
23
+ "Keep the session after this app closes" (sessions belong to the gateway).
24
+
9
25
  ## [0.9.2] - 2026-10-02
10
26
 
11
27
  ### Changed
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: abstractframework
3
- Version: 0.9.2
3
+ Version: 0.9.3
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,9 +23,9 @@ 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.11.1
27
- Requires-Dist: abstractassistant==0.12.0
28
- Requires-Dist: abstractcore==2.23.0
26
+ Requires-Dist: abstractgateway==0.11.2
27
+ Requires-Dist: abstractassistant==0.12.1
28
+ Requires-Dist: abstractcore==2.23.1
29
29
  Requires-Dist: AbstractRuntime==0.8.3
30
30
  Requires-Dist: abstractagent==0.3.17
31
31
  Requires-Dist: abstractskill==0.3.0
@@ -36,11 +36,11 @@ Requires-Dist: abstractvision==0.3.33
36
36
  Requires-Dist: abstractmusic==0.1.15
37
37
  Requires-Dist: abstract3d==0.3.2
38
38
  Provides-Extra: apple
39
- Requires-Dist: abstractgateway[apple]==0.11.1; extra == "apple"
40
- Requires-Dist: abstractassistant[apple]==0.12.0; platform_system == "Darwin" and extra == "apple"
39
+ Requires-Dist: abstractgateway[apple]==0.11.2; extra == "apple"
40
+ Requires-Dist: abstractassistant[apple]==0.12.1; platform_system == "Darwin" and extra == "apple"
41
41
  Provides-Extra: gpu
42
- Requires-Dist: abstractgateway[gpu]==0.11.1; extra == "gpu"
43
- Requires-Dist: abstractassistant[gpu]==0.12.0; extra == "gpu"
42
+ Requires-Dist: abstractgateway[gpu]==0.11.2; extra == "gpu"
43
+ Requires-Dist: abstractassistant[gpu]==0.12.1; extra == "gpu"
44
44
  Dynamic: license-file
45
45
 
46
46
  # AbstractFramework
@@ -219,7 +219,7 @@ abstractgateway-console --gateway-url http://127.0.0.1:8080 --token <admin token
219
219
  ```
220
220
 
221
221
  Container images are published for the gateway and the AbstractCore server:
222
- `ghcr.io/lpalbou/abstractgateway:0.11.1` and `ghcr.io/lpalbou/abstractcore-server:2.23.0`.
222
+ `ghcr.io/lpalbou/abstractgateway:0.11.2` and `ghcr.io/lpalbou/abstractcore-server:2.23.1`.
223
223
 
224
224
  For artifact and runtime-resource investigation, see
225
225
  [Runtime artifacts and retrieval](docs/guide/runtime-artifacts.md).
@@ -369,7 +369,7 @@ pip install "abstractframework[gpu]"
369
369
  | Apple | `pip install "abstractframework[apple]"` | macOS 14+ on Apple Silicon | 3.10–3.13 (F5-TTS voice cloning needs 3.11+) |
370
370
  | GPU | `pip install "abstractframework[gpu]"` | Linux with a CUDA or ROCm GPU; on Windows, use the one-line installer (a plain pip install gets PyPI's CPU-only PyTorch and no llama.cpp) | 3.10–3.13 (F5-TTS voice cloning needs 3.11+) |
371
371
 
372
- ### Release matrix (abstractframework 0.9.2)
372
+ ### Release matrix (abstractframework 0.9.3)
373
373
 
374
374
  `abstractframework` pins every Python package with `==`, so one version of the
375
375
  meta-package always installs the same stack. The browser apps and Rust tools are
@@ -378,9 +378,9 @@ and tested together.
378
378
 
379
379
  | Registry | Package | Version |
380
380
  |---|---|---|
381
- | PyPI | `abstractgateway` | 0.11.1 |
382
- | PyPI | `abstractassistant` | 0.12.0 |
383
- | PyPI | `abstractcore` | 2.23.0 |
381
+ | PyPI | `abstractgateway` | 0.11.2 |
382
+ | PyPI | `abstractassistant` | 0.12.1 |
383
+ | PyPI | `abstractcore` | 2.23.1 |
384
384
  | PyPI | `AbstractRuntime` | 0.8.3 |
385
385
  | PyPI | `abstractagent` | 0.3.17 |
386
386
  | PyPI | `abstractskill` | 0.3.0 |
@@ -399,8 +399,8 @@ and tested together.
399
399
  | crates.io | `abstractgateway-console` | 0.14.0 |
400
400
  | crates.io | `abstractcore-console` | 0.7.0 |
401
401
  | crates.io | `abstracttui` | 0.6.0 |
402
- | GHCR | `ghcr.io/lpalbou/abstractgateway` | 0.11.1 (`gpu-latest` / `<version>-gpu` experimental) |
403
- | GHCR | `ghcr.io/lpalbou/abstractcore-server` | 2.23.0 |
402
+ | GHCR | `ghcr.io/lpalbou/abstractgateway` | 0.11.2 (`gpu-latest` / `<version>-gpu` experimental) |
403
+ | GHCR | `ghcr.io/lpalbou/abstractcore-server` | 2.23.1 |
404
404
 
405
405
  `abstract3d` (pinned above) comes with AbstractCore in every profile. The optional add-on that is
406
406
  not part of any profile installs separately: `pip install abstractcamera` (0.2.1). `abstractskill` (pinned above)
@@ -174,7 +174,7 @@ abstractgateway-console --gateway-url http://127.0.0.1:8080 --token <admin token
174
174
  ```
175
175
 
176
176
  Container images are published for the gateway and the AbstractCore server:
177
- `ghcr.io/lpalbou/abstractgateway:0.11.1` and `ghcr.io/lpalbou/abstractcore-server:2.23.0`.
177
+ `ghcr.io/lpalbou/abstractgateway:0.11.2` and `ghcr.io/lpalbou/abstractcore-server:2.23.1`.
178
178
 
179
179
  For artifact and runtime-resource investigation, see
180
180
  [Runtime artifacts and retrieval](docs/guide/runtime-artifacts.md).
@@ -324,7 +324,7 @@ pip install "abstractframework[gpu]"
324
324
  | Apple | `pip install "abstractframework[apple]"` | macOS 14+ on Apple Silicon | 3.10–3.13 (F5-TTS voice cloning needs 3.11+) |
325
325
  | GPU | `pip install "abstractframework[gpu]"` | Linux with a CUDA or ROCm GPU; on Windows, use the one-line installer (a plain pip install gets PyPI's CPU-only PyTorch and no llama.cpp) | 3.10–3.13 (F5-TTS voice cloning needs 3.11+) |
326
326
 
327
- ### Release matrix (abstractframework 0.9.2)
327
+ ### Release matrix (abstractframework 0.9.3)
328
328
 
329
329
  `abstractframework` pins every Python package with `==`, so one version of the
330
330
  meta-package always installs the same stack. The browser apps and Rust tools are
@@ -333,9 +333,9 @@ and tested together.
333
333
 
334
334
  | Registry | Package | Version |
335
335
  |---|---|---|
336
- | PyPI | `abstractgateway` | 0.11.1 |
337
- | PyPI | `abstractassistant` | 0.12.0 |
338
- | PyPI | `abstractcore` | 2.23.0 |
336
+ | PyPI | `abstractgateway` | 0.11.2 |
337
+ | PyPI | `abstractassistant` | 0.12.1 |
338
+ | PyPI | `abstractcore` | 2.23.1 |
339
339
  | PyPI | `AbstractRuntime` | 0.8.3 |
340
340
  | PyPI | `abstractagent` | 0.3.17 |
341
341
  | PyPI | `abstractskill` | 0.3.0 |
@@ -354,8 +354,8 @@ and tested together.
354
354
  | crates.io | `abstractgateway-console` | 0.14.0 |
355
355
  | crates.io | `abstractcore-console` | 0.7.0 |
356
356
  | crates.io | `abstracttui` | 0.6.0 |
357
- | GHCR | `ghcr.io/lpalbou/abstractgateway` | 0.11.1 (`gpu-latest` / `<version>-gpu` experimental) |
358
- | GHCR | `ghcr.io/lpalbou/abstractcore-server` | 2.23.0 |
357
+ | GHCR | `ghcr.io/lpalbou/abstractgateway` | 0.11.2 (`gpu-latest` / `<version>-gpu` experimental) |
358
+ | GHCR | `ghcr.io/lpalbou/abstractcore-server` | 2.23.1 |
359
359
 
360
360
  `abstract3d` (pinned above) comes with AbstractCore in every profile. The optional add-on that is
361
361
  not part of any profile installs separately: `pip install abstractcamera` (0.2.1). `abstractskill` (pinned above)
@@ -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.9.2"
13
+ __version__ = "0.9.3"
14
14
  __author__ = "Laurent-Philippe Albou"
15
15
  __license__ = "MIT"
16
16
 
17
17
  RELEASE_VERSIONS: dict[str, str] = {
18
- "abstractcore": "2.23.0",
18
+ "abstractcore": "2.23.1",
19
19
  "abstractruntime": "0.8.3",
20
20
  "abstractagent": "0.3.17",
21
- "abstractgateway": "0.11.1",
21
+ "abstractgateway": "0.11.2",
22
22
  "abstractskill": "0.3.0",
23
23
  "abstractmemory": "0.3.0",
24
24
  "abstractsemantics": "0.0.5",
@@ -26,7 +26,7 @@ RELEASE_VERSIONS: dict[str, str] = {
26
26
  "abstractvision": "0.3.33",
27
27
  "abstractmusic": "0.1.15",
28
28
  "abstract3d": "0.3.2",
29
- "abstractassistant": "0.12.0",
29
+ "abstractassistant": "0.12.1",
30
30
  }
31
31
 
32
32
  PACKAGE_DISTRIBUTIONS: dict[str, str] = {
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: abstractframework
3
- Version: 0.9.2
3
+ Version: 0.9.3
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,9 +23,9 @@ 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.11.1
27
- Requires-Dist: abstractassistant==0.12.0
28
- Requires-Dist: abstractcore==2.23.0
26
+ Requires-Dist: abstractgateway==0.11.2
27
+ Requires-Dist: abstractassistant==0.12.1
28
+ Requires-Dist: abstractcore==2.23.1
29
29
  Requires-Dist: AbstractRuntime==0.8.3
30
30
  Requires-Dist: abstractagent==0.3.17
31
31
  Requires-Dist: abstractskill==0.3.0
@@ -36,11 +36,11 @@ Requires-Dist: abstractvision==0.3.33
36
36
  Requires-Dist: abstractmusic==0.1.15
37
37
  Requires-Dist: abstract3d==0.3.2
38
38
  Provides-Extra: apple
39
- Requires-Dist: abstractgateway[apple]==0.11.1; extra == "apple"
40
- Requires-Dist: abstractassistant[apple]==0.12.0; platform_system == "Darwin" and extra == "apple"
39
+ Requires-Dist: abstractgateway[apple]==0.11.2; extra == "apple"
40
+ Requires-Dist: abstractassistant[apple]==0.12.1; platform_system == "Darwin" and extra == "apple"
41
41
  Provides-Extra: gpu
42
- Requires-Dist: abstractgateway[gpu]==0.11.1; extra == "gpu"
43
- Requires-Dist: abstractassistant[gpu]==0.12.0; extra == "gpu"
42
+ Requires-Dist: abstractgateway[gpu]==0.11.2; extra == "gpu"
43
+ Requires-Dist: abstractassistant[gpu]==0.12.1; extra == "gpu"
44
44
  Dynamic: license-file
45
45
 
46
46
  # AbstractFramework
@@ -219,7 +219,7 @@ abstractgateway-console --gateway-url http://127.0.0.1:8080 --token <admin token
219
219
  ```
220
220
 
221
221
  Container images are published for the gateway and the AbstractCore server:
222
- `ghcr.io/lpalbou/abstractgateway:0.11.1` and `ghcr.io/lpalbou/abstractcore-server:2.23.0`.
222
+ `ghcr.io/lpalbou/abstractgateway:0.11.2` and `ghcr.io/lpalbou/abstractcore-server:2.23.1`.
223
223
 
224
224
  For artifact and runtime-resource investigation, see
225
225
  [Runtime artifacts and retrieval](docs/guide/runtime-artifacts.md).
@@ -369,7 +369,7 @@ pip install "abstractframework[gpu]"
369
369
  | Apple | `pip install "abstractframework[apple]"` | macOS 14+ on Apple Silicon | 3.10–3.13 (F5-TTS voice cloning needs 3.11+) |
370
370
  | GPU | `pip install "abstractframework[gpu]"` | Linux with a CUDA or ROCm GPU; on Windows, use the one-line installer (a plain pip install gets PyPI's CPU-only PyTorch and no llama.cpp) | 3.10–3.13 (F5-TTS voice cloning needs 3.11+) |
371
371
 
372
- ### Release matrix (abstractframework 0.9.2)
372
+ ### Release matrix (abstractframework 0.9.3)
373
373
 
374
374
  `abstractframework` pins every Python package with `==`, so one version of the
375
375
  meta-package always installs the same stack. The browser apps and Rust tools are
@@ -378,9 +378,9 @@ and tested together.
378
378
 
379
379
  | Registry | Package | Version |
380
380
  |---|---|---|
381
- | PyPI | `abstractgateway` | 0.11.1 |
382
- | PyPI | `abstractassistant` | 0.12.0 |
383
- | PyPI | `abstractcore` | 2.23.0 |
381
+ | PyPI | `abstractgateway` | 0.11.2 |
382
+ | PyPI | `abstractassistant` | 0.12.1 |
383
+ | PyPI | `abstractcore` | 2.23.1 |
384
384
  | PyPI | `AbstractRuntime` | 0.8.3 |
385
385
  | PyPI | `abstractagent` | 0.3.17 |
386
386
  | PyPI | `abstractskill` | 0.3.0 |
@@ -399,8 +399,8 @@ and tested together.
399
399
  | crates.io | `abstractgateway-console` | 0.14.0 |
400
400
  | crates.io | `abstractcore-console` | 0.7.0 |
401
401
  | crates.io | `abstracttui` | 0.6.0 |
402
- | GHCR | `ghcr.io/lpalbou/abstractgateway` | 0.11.1 (`gpu-latest` / `<version>-gpu` experimental) |
403
- | GHCR | `ghcr.io/lpalbou/abstractcore-server` | 2.23.0 |
402
+ | GHCR | `ghcr.io/lpalbou/abstractgateway` | 0.11.2 (`gpu-latest` / `<version>-gpu` experimental) |
403
+ | GHCR | `ghcr.io/lpalbou/abstractcore-server` | 2.23.1 |
404
404
 
405
405
  `abstract3d` (pinned above) comes with AbstractCore in every profile. The optional add-on that is
406
406
  not part of any profile installs separately: `pip install abstractcamera` (0.2.1). `abstractskill` (pinned above)
@@ -1,6 +1,6 @@
1
- abstractgateway==0.11.1
2
- abstractassistant==0.12.0
3
- abstractcore==2.23.0
1
+ abstractgateway==0.11.2
2
+ abstractassistant==0.12.1
3
+ abstractcore==2.23.1
4
4
  AbstractRuntime==0.8.3
5
5
  abstractagent==0.3.17
6
6
  abstractskill==0.3.0
@@ -12,11 +12,11 @@ abstractmusic==0.1.15
12
12
  abstract3d==0.3.2
13
13
 
14
14
  [apple]
15
- abstractgateway[apple]==0.11.1
15
+ abstractgateway[apple]==0.11.2
16
16
 
17
17
  [apple:platform_system == "Darwin"]
18
- abstractassistant[apple]==0.12.0
18
+ abstractassistant[apple]==0.12.1
19
19
 
20
20
  [gpu]
21
- abstractgateway[gpu]==0.11.1
22
- abstractassistant[gpu]==0.12.0
21
+ abstractgateway[gpu]==0.11.2
22
+ abstractassistant[gpu]==0.12.1
@@ -55,14 +55,14 @@ The response type returned by `llm.generate(...)`.
55
55
 
56
56
  ### `__version__`
57
57
 
58
- The meta-package version (`0.9.2` for this release).
58
+ The meta-package version (`0.9.3` 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.9.2:
63
- `abstractcore` 2.23.0, `abstractruntime` 0.8.3, `abstractagent` 0.3.17, `abstractgateway` 0.11.1,
62
+ Dictionary mapping each ecosystem package name to the pinned version for this release. In 0.9.3:
63
+ `abstractcore` 2.23.1, `abstractruntime` 0.8.3, `abstractagent` 0.3.17, `abstractgateway` 0.11.2,
64
64
  `abstractskill` 0.3.0, `abstractmemory` 0.3.0, `abstractsemantics` 0.0.5, `abstractvoice` 0.13.2, `abstractvision` 0.3.33,
65
- `abstractmusic` 0.1.15, `abstract3d` 0.3.2, `abstractassistant` 0.12.0.
65
+ `abstractmusic` 0.1.15, `abstract3d` 0.3.2, `abstractassistant` 0.12.1.
66
66
 
67
67
  ### `PACKAGE_DISTRIBUTIONS`
68
68
 
@@ -34,7 +34,7 @@ No.
34
34
  | Everything at compatible versions | `pip install abstractframework` |
35
35
  | A browser app | the gateway console's **Apps** page (served at `/apps/<app>/` on the gateway), or on its own: `npx @abstractframework/<flow\|code\|observer\|continuum\|entity> --gateway-url <url>` |
36
36
  | A terminal client | `cargo install abstractcode`, `cargo install abstractgateway-console` or `cargo install abstractcore-console` |
37
- | A container deployment | `ghcr.io/lpalbou/abstractgateway:0.11.1` |
37
+ | A container deployment | `ghcr.io/lpalbou/abstractgateway:0.11.2` |
38
38
 
39
39
  See [Install AbstractFramework](install.md) for the Light / Apple / GPU chooser. Light is
40
40
  remote-first, not reduced-functionality: multimodal and embeddings still work through remote or
@@ -197,7 +197,7 @@ The line always runs the installer of the latest AbstractFramework release. It:
197
197
  <latest>`, or `AbstractFramework <yours> found: already up to date` (every part is still checked,
198
198
  and repaired when needed). An install made by 0.6.1 or earlier recorded no release, so its first
199
199
  upgrade says `AbstractFramework found (abstractgateway 0.7.1; its release was not recorded):
200
- upgrading to AbstractFramework 0.9.2` (with the gateway version you have);
200
+ upgrading to AbstractFramework 0.9.3` (with the gateway version you have);
201
201
  - installs the gateway version that release pins, and every library the gateway uses
202
202
  (AbstractCore, AbstractRuntime, AbstractAgent, AbstractSkill, AbstractMemory, AbstractSemantics
203
203
  and the voice, vision, music and 3D packages) at the exact version released and tested with it ([Check your versions](#check-your-versions) shows
@@ -245,7 +245,7 @@ The line always runs the installer of the latest AbstractFramework release. It:
245
245
 
246
246
  Installs made by AbstractFramework 0.6.1 or earlier recorded neither their release nor your install
247
247
  options. The first re-run says `AbstractFramework found (abstractgateway <version>; its release was
248
- not recorded): upgrading to AbstractFramework 0.9.2`, and reads your options from what is installed: whether the terminal console and `abstractcode` are
248
+ not recorded): upgrading to AbstractFramework 0.9.3`, and reads your options from what is installed: whether the terminal console and `abstractcode` are
249
249
  there, whether the gateway has the tray extra and the AbstractCore commands, whether the compiled
250
250
  extras were built (`--full`), and a custom data directory through the gateway pointer. It prints
251
251
  what it found (`read from disk: …`) and records it for later runs. An option the installer did not
@@ -465,7 +465,7 @@ The Mac package, the `.command` files and the one line all run the same script,
465
465
  login** switch counts), a first install leaves it off.
466
466
  3. Installs [uv](https://docs.astral.sh/uv/) when it is missing, then Python 3.12 through uv.
467
467
  4. Installs the gateway as an isolated uv tool, pinned to this release:
468
- `uv tool install --python 3.12 "abstractgateway[<profile>,tray]==0.11.1"`, from prebuilt wheels
468
+ `uv tool install --python 3.12 "abstractgateway[<profile>,tray]==0.11.2"`, from prebuilt wheels
469
469
  only (see [No compiler needed](#no-compiler-needed)), and checks that the command starts
470
470
  (reinstalling it in place when it does not). Every profile also gets local voice,
471
471
  `--with "abstractvoice[supertonic,stt]==0.13.2"` (the release's AbstractVoice): Supertonic
@@ -810,7 +810,7 @@ instead of starting a browser.
810
810
  ```bash
811
811
  curl -LsSf https://astral.sh/uv/install.sh | sh # Windows: irm https://astral.sh/uv/install.ps1 | iex
812
812
  uv python install 3.12
813
- uv tool install --python 3.12 "abstractgateway[tray]==0.11.1" # [apple,tray] or [gpu,tray] for local engines
813
+ uv tool install --python 3.12 "abstractgateway[tray]==0.11.2" # [apple,tray] or [gpu,tray] for local engines
814
814
  # (add --with and --overrides as shown by `install.sh --print` to avoid compiling)
815
815
  uv tool update-shell # puts ~/.local/bin on PATH; open a new terminal
816
816
  abstractgateway service install --port 8080 # or: abstractgateway serve
@@ -937,8 +937,8 @@ Python 3.11 to 3.13), but it gets PyPI's CPU-only PyTorch and no llama.cpp: use
937
937
  installer, which adds PyTorch's CUDA build and llama.cpp's prebuilt GPU build
938
938
  ([GPU on Windows](#gpu-on-windows-nvidia)).
939
939
 
940
- `abstractframework` 0.9.2 pins `abstractgateway==0.11.1`, `abstractassistant==0.12.0`,
941
- `abstractcore==2.23.0`, `AbstractRuntime==0.8.3`, `abstractagent==0.3.17`, `abstractskill==0.3.0`,
940
+ `abstractframework` 0.9.3 pins `abstractgateway==0.11.2`, `abstractassistant==0.12.1`,
941
+ `abstractcore==2.23.1`, `AbstractRuntime==0.8.3`, `abstractagent==0.3.17`, `abstractskill==0.3.0`,
942
942
  `AbstractMemory==0.3.0`, `abstractsemantics==0.0.5`, `abstractvoice==0.13.2`,
943
943
  `abstractvision==0.3.33`, `abstractmusic==0.1.15` and `abstract3d==0.3.2`. The `apple` and `gpu` extras select
944
944
  `abstractgateway[apple|gpu]` and `abstractassistant[apple|gpu]` at the same versions
@@ -1029,7 +1029,7 @@ Run or install them next to the Python stack:
1029
1029
  | Tool | Command | Version released with 0.8.0 |
1030
1030
  |---|---|---|
1031
1031
  | Gateway web console | built into `abstractgateway`: open the link `abstractgateway serve` prints (`http://127.0.0.1:8080/console#claim=…`) | 0.10.0 |
1032
- | Core web console | built into `abstractcore`: open the link `abstractcore serve` prints (`http://127.0.0.1:8000/console#claim=…`) | 2.23.0 |
1032
+ | Core web console | built into `abstractcore`: open the link `abstractcore serve` prints (`http://127.0.0.1:8000/console#claim=…`) | 2.23.1 |
1033
1033
  | Core terminal console | `cargo install abstractcore-console` (Rust 1.87+), then `abstractcore-console` (uses the `abstractcore` command). The installers do not build it: it is the console of a standalone `abstractcore serve`, and the gateway's terminal console already has its Models and Engines screens | 0.7.0 |
1034
1034
  | Gateway terminal console | built by the installer (`--no-console` skips it), or `cargo install abstractgateway-console` (Rust 1.87+); then `abstractgateway-console --gateway-url http://127.0.0.1:8080 --token <admin token>` | 0.14.0 |
1035
1035
  | Flow Editor | the console's **Apps** page (opens at `/apps/flow/`), or on its own: `npx @abstractframework/flow --gateway-url <url>` | 0.7.0 |
@@ -1080,7 +1080,7 @@ docker run \
1080
1080
  -v "$PWD/runtime:/data" \
1081
1081
  -e ABSTRACTGATEWAY_DATA_DIR=/data \
1082
1082
  -e ABSTRACTGATEWAY_USER_AUTH=1 \
1083
- ghcr.io/lpalbou/abstractgateway:0.11.1
1083
+ ghcr.io/lpalbou/abstractgateway:0.11.2
1084
1084
  ```
1085
1085
 
1086
1086
  This is the Light container: full framework capabilities through remote/endpoint inference, without
@@ -1088,7 +1088,7 @@ local MLX/CUDA stacks. On first start it creates `default/admin` and writes the
1088
1088
  `runtime/auth/bootstrap-admin-token`. Use `ghcr.io/lpalbou/abstractgateway:gpu-latest` only on an
1089
1089
  NVIDIA host when you explicitly want the local GPU profile (pinned tags are `<version>-gpu`, published on a best-effort basis; this image is
1090
1090
  experimental). The AbstractCore OpenAI-compatible server is also published as
1091
- `ghcr.io/lpalbou/abstractcore-server:2.23.0`.
1091
+ `ghcr.io/lpalbou/abstractcore-server:2.23.1`.
1092
1092
 
1093
1093
  ## How installs are designed
1094
1094
 
@@ -178,7 +178,7 @@ abstractgateway-console --gateway-url http://127.0.0.1:8080 --token <admin token
178
178
  ```
179
179
 
180
180
  Container images are published for the gateway and the AbstractCore server:
181
- `ghcr.io/lpalbou/abstractgateway:0.11.1` and `ghcr.io/lpalbou/abstractcore-server:2.23.0`.
181
+ `ghcr.io/lpalbou/abstractgateway:0.11.2` and `ghcr.io/lpalbou/abstractcore-server:2.23.1`.
182
182
 
183
183
  For artifact and runtime-resource investigation, see
184
184
  [Runtime artifacts and retrieval](docs/guide/runtime-artifacts.md).
@@ -328,7 +328,7 @@ pip install "abstractframework[gpu]"
328
328
  | Apple | `pip install "abstractframework[apple]"` | macOS 14+ on Apple Silicon | 3.10–3.13 (F5-TTS voice cloning needs 3.11+) |
329
329
  | GPU | `pip install "abstractframework[gpu]"` | Linux with a CUDA or ROCm GPU; on Windows, use the one-line installer (a plain pip install gets PyPI's CPU-only PyTorch and no llama.cpp) | 3.10–3.13 (F5-TTS voice cloning needs 3.11+) |
330
330
 
331
- ### Release matrix (abstractframework 0.9.2)
331
+ ### Release matrix (abstractframework 0.9.3)
332
332
 
333
333
  `abstractframework` pins every Python package with `==`, so one version of the
334
334
  meta-package always installs the same stack. The browser apps and Rust tools are
@@ -337,9 +337,9 @@ and tested together.
337
337
 
338
338
  | Registry | Package | Version |
339
339
  |---|---|---|
340
- | PyPI | `abstractgateway` | 0.11.1 |
341
- | PyPI | `abstractassistant` | 0.12.0 |
342
- | PyPI | `abstractcore` | 2.23.0 |
340
+ | PyPI | `abstractgateway` | 0.11.2 |
341
+ | PyPI | `abstractassistant` | 0.12.1 |
342
+ | PyPI | `abstractcore` | 2.23.1 |
343
343
  | PyPI | `AbstractRuntime` | 0.8.3 |
344
344
  | PyPI | `abstractagent` | 0.3.17 |
345
345
  | PyPI | `abstractskill` | 0.3.0 |
@@ -358,8 +358,8 @@ and tested together.
358
358
  | crates.io | `abstractgateway-console` | 0.14.0 |
359
359
  | crates.io | `abstractcore-console` | 0.7.0 |
360
360
  | crates.io | `abstracttui` | 0.6.0 |
361
- | GHCR | `ghcr.io/lpalbou/abstractgateway` | 0.11.1 (`gpu-latest` / `<version>-gpu` experimental) |
362
- | GHCR | `ghcr.io/lpalbou/abstractcore-server` | 2.23.0 |
361
+ | GHCR | `ghcr.io/lpalbou/abstractgateway` | 0.11.2 (`gpu-latest` / `<version>-gpu` experimental) |
362
+ | GHCR | `ghcr.io/lpalbou/abstractcore-server` | 2.23.1 |
363
363
 
364
364
  `abstract3d` (pinned above) comes with AbstractCore in every profile. The optional add-on that is
365
365
  not part of any profile installs separately: `pip install abstractcamera` (0.2.1). `abstractskill` (pinned above)
@@ -611,8 +611,8 @@ Notes for LLMs working in this repo:
611
611
  - [abstractframework/__init__.py](abstractframework/__init__.py): `RELEASE_VERSIONS`, `NPM_RELEASE_VERSIONS`, `CRATE_RELEASE_VERSIONS`, `get_release_profile()`, `print_status()`.
612
612
  - [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`).
613
613
  - [scripts/install.sh](scripts/install.sh) / [scripts/install.ps1](scripts/install.ps1): The bootstrap installers.
614
- - abstractframework 0.9.2 pins (PyPI, `==`): abstractgateway 0.11.1, abstractassistant 0.12.0, abstractcore 2.23.0, AbstractRuntime 0.8.3, abstractagent 0.3.17, abstractskill 0.3.0, AbstractMemory 0.3.0, abstractsemantics 0.0.5, abstractvoice 0.13.2, abstractvision 0.3.33, abstractmusic 0.1.15, abstract3d 0.3.2.
615
- - Released with it: npm `@abstractframework/flow` 0.7.0, `code` 0.10.1, `observer` 0.6.0, `continuum` 0.6.0, `entity` 0.6.0 (opened through the gateway at `/apps/<app>/`, or run with `npx`); crates (`CRATE_RELEASE_VERSIONS`) `abstractgateway-console` 0.14.0 (built by the installer by default), `abstractcore-console` 0.7.0, `abstractcode` 0.8.0, `abstracttui` 0.6.0; images `ghcr.io/lpalbou/abstractgateway:0.11.1`, `ghcr.io/lpalbou/abstractcore-server:2.23.0`.
614
+ - abstractframework 0.9.3 pins (PyPI, `==`): abstractgateway 0.11.2, abstractassistant 0.12.1, abstractcore 2.23.1, AbstractRuntime 0.8.3, abstractagent 0.3.17, abstractskill 0.3.0, AbstractMemory 0.3.0, abstractsemantics 0.0.5, abstractvoice 0.13.2, abstractvision 0.3.33, abstractmusic 0.1.15, abstract3d 0.3.2.
615
+ - Released with it: npm `@abstractframework/flow` 0.7.0, `code` 0.10.1, `observer` 0.6.0, `continuum` 0.6.0, `entity` 0.6.0 (opened through the gateway at `/apps/<app>/`, or run with `npx`); crates (`CRATE_RELEASE_VERSIONS`) `abstractgateway-console` 0.14.0 (built by the installer by default), `abstractcore-console` 0.7.0, `abstractcode` 0.8.0, `abstracttui` 0.6.0; images `ghcr.io/lpalbou/abstractgateway:0.11.2`, `ghcr.io/lpalbou/abstractcore-server:2.23.1`.
616
616
  - 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+).
617
617
 
618
618
  ## Full Context
@@ -640,7 +640,7 @@ build-backend = "setuptools.build_meta"
640
640
 
641
641
  [project]
642
642
  name = "abstractframework"
643
- version = "0.9.2"
643
+ version = "0.9.3"
644
644
  description = "Unified installer and documentation hub for the AbstractFramework ecosystem"
645
645
  readme = "README.md"
646
646
  license = {text = "MIT"}
@@ -684,13 +684,13 @@ requires-python = ">=3.10"
684
684
  # - Keep the meta-package aligned with the real per-package profiles (especially `abstractgateway`).
685
685
  dependencies = [
686
686
  # Durable Gateway control plane (remote-light by default).
687
- "abstractgateway==0.11.1",
687
+ "abstractgateway==0.11.2",
688
688
 
689
689
  # Workflow authoring UI is distributed through npm as @abstractframework/flow.
690
- "abstractassistant==0.12.0",
690
+ "abstractassistant==0.12.1",
691
691
 
692
692
  # Pin the core Python stack for release determinism (also pulled transitively).
693
- "abstractcore==2.23.0",
693
+ "abstractcore==2.23.1",
694
694
  "AbstractRuntime==0.8.3",
695
695
  "abstractagent==0.3.17",
696
696
  "abstractskill==0.3.0",
@@ -718,13 +718,13 @@ dependencies = [
718
718
  # the stack by selecting the hardware-local dependency aggregates (owned by Gateway),
719
719
  # then adds user-facing apps.
720
720
  apple = [
721
- "abstractgateway[apple]==0.11.1",
722
- "abstractassistant[apple]==0.12.0; platform_system == \"Darwin\"",
721
+ "abstractgateway[apple]==0.11.2",
722
+ "abstractassistant[apple]==0.12.1; platform_system == \"Darwin\"",
723
723
  ]
724
724
 
725
725
  gpu = [
726
- "abstractgateway[gpu]==0.11.1",
727
- "abstractassistant[gpu]==0.12.0",
726
+ "abstractgateway[gpu]==0.11.2",
727
+ "abstractassistant[gpu]==0.12.1",
728
728
  ]
729
729
 
730
730
  [project.urls]
@@ -774,15 +774,15 @@ Most implementation functionality still lives in component projects.
774
774
 
775
775
  from __future__ import annotations
776
776
 
777
- __version__ = "0.9.2"
777
+ __version__ = "0.9.3"
778
778
  __author__ = "Laurent-Philippe Albou"
779
779
  __license__ = "MIT"
780
780
 
781
781
  RELEASE_VERSIONS: dict[str, str] = {
782
- "abstractcore": "2.23.0",
782
+ "abstractcore": "2.23.1",
783
783
  "abstractruntime": "0.8.3",
784
784
  "abstractagent": "0.3.17",
785
- "abstractgateway": "0.11.1",
785
+ "abstractgateway": "0.11.2",
786
786
  "abstractskill": "0.3.0",
787
787
  "abstractmemory": "0.3.0",
788
788
  "abstractsemantics": "0.0.5",
@@ -790,7 +790,7 @@ RELEASE_VERSIONS: dict[str, str] = {
790
790
  "abstractvision": "0.3.33",
791
791
  "abstractmusic": "0.1.15",
792
792
  "abstract3d": "0.3.2",
793
- "abstractassistant": "0.12.0",
793
+ "abstractassistant": "0.12.1",
794
794
  }
795
795
 
796
796
  PACKAGE_DISTRIBUTIONS: dict[str, str] = {
@@ -3935,7 +3935,7 @@ The line always runs the installer of the latest AbstractFramework release. It:
3935
3935
  <latest>`, or `AbstractFramework <yours> found: already up to date` (every part is still checked,
3936
3936
  and repaired when needed). An install made by 0.6.1 or earlier recorded no release, so its first
3937
3937
  upgrade says `AbstractFramework found (abstractgateway 0.7.1; its release was not recorded):
3938
- upgrading to AbstractFramework 0.9.2` (with the gateway version you have);
3938
+ upgrading to AbstractFramework 0.9.3` (with the gateway version you have);
3939
3939
  - installs the gateway version that release pins, and every library the gateway uses
3940
3940
  (AbstractCore, AbstractRuntime, AbstractAgent, AbstractSkill, AbstractMemory, AbstractSemantics
3941
3941
  and the voice, vision, music and 3D packages) at the exact version released and tested with it ([Check your versions](#check-your-versions) shows
@@ -3983,7 +3983,7 @@ The line always runs the installer of the latest AbstractFramework release. It:
3983
3983
 
3984
3984
  Installs made by AbstractFramework 0.6.1 or earlier recorded neither their release nor your install
3985
3985
  options. The first re-run says `AbstractFramework found (abstractgateway <version>; its release was
3986
- not recorded): upgrading to AbstractFramework 0.9.2`, and reads your options from what is installed: whether the terminal console and `abstractcode` are
3986
+ not recorded): upgrading to AbstractFramework 0.9.3`, and reads your options from what is installed: whether the terminal console and `abstractcode` are
3987
3987
  there, whether the gateway has the tray extra and the AbstractCore commands, whether the compiled
3988
3988
  extras were built (`--full`), and a custom data directory through the gateway pointer. It prints
3989
3989
  what it found (`read from disk: …`) and records it for later runs. An option the installer did not
@@ -4203,7 +4203,7 @@ The Mac package, the `.command` files and the one line all run the same script,
4203
4203
  login** switch counts), a first install leaves it off.
4204
4204
  3. Installs [uv](https://docs.astral.sh/uv/) when it is missing, then Python 3.12 through uv.
4205
4205
  4. Installs the gateway as an isolated uv tool, pinned to this release:
4206
- `uv tool install --python 3.12 "abstractgateway[<profile>,tray]==0.11.1"`, from prebuilt wheels
4206
+ `uv tool install --python 3.12 "abstractgateway[<profile>,tray]==0.11.2"`, from prebuilt wheels
4207
4207
  only (see [No compiler needed](#no-compiler-needed)), and checks that the command starts
4208
4208
  (reinstalling it in place when it does not). Every profile also gets local voice,
4209
4209
  `--with "abstractvoice[supertonic,stt]==0.13.2"` (the release's AbstractVoice): Supertonic
@@ -4548,7 +4548,7 @@ instead of starting a browser.
4548
4548
  ```bash
4549
4549
  curl -LsSf https://astral.sh/uv/install.sh | sh # Windows: irm https://astral.sh/uv/install.ps1 | iex
4550
4550
  uv python install 3.12
4551
- uv tool install --python 3.12 "abstractgateway[tray]==0.11.1" # [apple,tray] or [gpu,tray] for local engines
4551
+ uv tool install --python 3.12 "abstractgateway[tray]==0.11.2" # [apple,tray] or [gpu,tray] for local engines
4552
4552
  # (add --with and --overrides as shown by `install.sh --print` to avoid compiling)
4553
4553
  uv tool update-shell # puts ~/.local/bin on PATH; open a new terminal
4554
4554
  abstractgateway service install --port 8080 # or: abstractgateway serve
@@ -4675,8 +4675,8 @@ Python 3.11 to 3.13), but it gets PyPI's CPU-only PyTorch and no llama.cpp: use
4675
4675
  installer, which adds PyTorch's CUDA build and llama.cpp's prebuilt GPU build
4676
4676
  ([GPU on Windows](#gpu-on-windows-nvidia)).
4677
4677
 
4678
- `abstractframework` 0.9.2 pins `abstractgateway==0.11.1`, `abstractassistant==0.12.0`,
4679
- `abstractcore==2.23.0`, `AbstractRuntime==0.8.3`, `abstractagent==0.3.17`, `abstractskill==0.3.0`,
4678
+ `abstractframework` 0.9.3 pins `abstractgateway==0.11.2`, `abstractassistant==0.12.1`,
4679
+ `abstractcore==2.23.1`, `AbstractRuntime==0.8.3`, `abstractagent==0.3.17`, `abstractskill==0.3.0`,
4680
4680
  `AbstractMemory==0.3.0`, `abstractsemantics==0.0.5`, `abstractvoice==0.13.2`,
4681
4681
  `abstractvision==0.3.33`, `abstractmusic==0.1.15` and `abstract3d==0.3.2`. The `apple` and `gpu` extras select
4682
4682
  `abstractgateway[apple|gpu]` and `abstractassistant[apple|gpu]` at the same versions
@@ -4767,7 +4767,7 @@ Run or install them next to the Python stack:
4767
4767
  | Tool | Command | Version released with 0.8.0 |
4768
4768
  |---|---|---|
4769
4769
  | Gateway web console | built into `abstractgateway`: open the link `abstractgateway serve` prints (`http://127.0.0.1:8080/console#claim=…`) | 0.10.0 |
4770
- | Core web console | built into `abstractcore`: open the link `abstractcore serve` prints (`http://127.0.0.1:8000/console#claim=…`) | 2.23.0 |
4770
+ | Core web console | built into `abstractcore`: open the link `abstractcore serve` prints (`http://127.0.0.1:8000/console#claim=…`) | 2.23.1 |
4771
4771
  | Core terminal console | `cargo install abstractcore-console` (Rust 1.87+), then `abstractcore-console` (uses the `abstractcore` command). The installers do not build it: it is the console of a standalone `abstractcore serve`, and the gateway's terminal console already has its Models and Engines screens | 0.7.0 |
4772
4772
  | Gateway terminal console | built by the installer (`--no-console` skips it), or `cargo install abstractgateway-console` (Rust 1.87+); then `abstractgateway-console --gateway-url http://127.0.0.1:8080 --token <admin token>` | 0.14.0 |
4773
4773
  | Flow Editor | the console's **Apps** page (opens at `/apps/flow/`), or on its own: `npx @abstractframework/flow --gateway-url <url>` | 0.7.0 |
@@ -4818,7 +4818,7 @@ docker run \
4818
4818
  -v "$PWD/runtime:/data" \
4819
4819
  -e ABSTRACTGATEWAY_DATA_DIR=/data \
4820
4820
  -e ABSTRACTGATEWAY_USER_AUTH=1 \
4821
- ghcr.io/lpalbou/abstractgateway:0.11.1
4821
+ ghcr.io/lpalbou/abstractgateway:0.11.2
4822
4822
  ```
4823
4823
 
4824
4824
  This is the Light container: full framework capabilities through remote/endpoint inference, without
@@ -4826,7 +4826,7 @@ local MLX/CUDA stacks. On first start it creates `default/admin` and writes the
4826
4826
  `runtime/auth/bootstrap-admin-token`. Use `ghcr.io/lpalbou/abstractgateway:gpu-latest` only on an
4827
4827
  NVIDIA host when you explicitly want the local GPU profile (pinned tags are `<version>-gpu`, published on a best-effort basis; this image is
4828
4828
  experimental). The AbstractCore OpenAI-compatible server is also published as
4829
- `ghcr.io/lpalbou/abstractcore-server:2.23.0`.
4829
+ `ghcr.io/lpalbou/abstractcore-server:2.23.1`.
4830
4830
 
4831
4831
  ## How installs are designed
4832
4832
 
@@ -6073,7 +6073,7 @@ No.
6073
6073
  | Everything at compatible versions | `pip install abstractframework` |
6074
6074
  | A browser app | the gateway console's **Apps** page (served at `/apps/<app>/` on the gateway), or on its own: `npx @abstractframework/<flow\|code\|observer\|continuum\|entity> --gateway-url <url>` |
6075
6075
  | A terminal client | `cargo install abstractcode`, `cargo install abstractgateway-console` or `cargo install abstractcore-console` |
6076
- | A container deployment | `ghcr.io/lpalbou/abstractgateway:0.11.1` |
6076
+ | A container deployment | `ghcr.io/lpalbou/abstractgateway:0.11.2` |
6077
6077
 
6078
6078
  See [Install AbstractFramework](install.md) for the Light / Apple / GPU chooser. Light is
6079
6079
  remote-first, not reduced-functionality: multimodal and embeddings still work through remote or
@@ -6766,14 +6766,14 @@ The response type returned by `llm.generate(...)`.
6766
6766
 
6767
6767
  ### `__version__`
6768
6768
 
6769
- The meta-package version (`0.9.2` for this release).
6769
+ The meta-package version (`0.9.3` for this release).
6770
6770
 
6771
6771
  ### `RELEASE_VERSIONS`
6772
6772
 
6773
- Dictionary mapping each ecosystem package name to the pinned version for this release. In 0.9.2:
6774
- `abstractcore` 2.23.0, `abstractruntime` 0.8.3, `abstractagent` 0.3.17, `abstractgateway` 0.11.1,
6773
+ Dictionary mapping each ecosystem package name to the pinned version for this release. In 0.9.3:
6774
+ `abstractcore` 2.23.1, `abstractruntime` 0.8.3, `abstractagent` 0.3.17, `abstractgateway` 0.11.2,
6775
6775
  `abstractskill` 0.3.0, `abstractmemory` 0.3.0, `abstractsemantics` 0.0.5, `abstractvoice` 0.13.2, `abstractvision` 0.3.33,
6776
- `abstractmusic` 0.1.15, `abstract3d` 0.3.2, `abstractassistant` 0.12.0.
6776
+ `abstractmusic` 0.1.15, `abstract3d` 0.3.2, `abstractassistant` 0.12.1.
6777
6777
 
6778
6778
  ### `PACKAGE_DISTRIBUTIONS`
6779
6779
 
@@ -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.9.2 pins (PyPI, `==`): abstractgateway 0.11.1, abstractassistant 0.12.0, abstractcore 2.23.0, AbstractRuntime 0.8.3, abstractagent 0.3.17, abstractskill 0.3.0, AbstractMemory 0.3.0, abstractsemantics 0.0.5, abstractvoice 0.13.2, abstractvision 0.3.33, abstractmusic 0.1.15, abstract3d 0.3.2.
189
- - Released with it: npm `@abstractframework/flow` 0.7.0, `code` 0.10.1, `observer` 0.6.0, `continuum` 0.6.0, `entity` 0.6.0 (opened through the gateway at `/apps/<app>/`, or run with `npx`); crates (`CRATE_RELEASE_VERSIONS`) `abstractgateway-console` 0.14.0 (built by the installer by default), `abstractcore-console` 0.7.0, `abstractcode` 0.8.0, `abstracttui` 0.6.0; images `ghcr.io/lpalbou/abstractgateway:0.11.1`, `ghcr.io/lpalbou/abstractcore-server:2.23.0`.
188
+ - abstractframework 0.9.3 pins (PyPI, `==`): abstractgateway 0.11.2, abstractassistant 0.12.1, abstractcore 2.23.1, AbstractRuntime 0.8.3, abstractagent 0.3.17, abstractskill 0.3.0, AbstractMemory 0.3.0, abstractsemantics 0.0.5, abstractvoice 0.13.2, abstractvision 0.3.33, abstractmusic 0.1.15, abstract3d 0.3.2.
189
+ - Released with it: npm `@abstractframework/flow` 0.7.0, `code` 0.10.1, `observer` 0.6.0, `continuum` 0.6.0, `entity` 0.6.0 (opened through the gateway at `/apps/<app>/`, or run with `npx`); crates (`CRATE_RELEASE_VERSIONS`) `abstractgateway-console` 0.14.0 (built by the installer by default), `abstractcore-console` 0.7.0, `abstractcode` 0.8.0, `abstracttui` 0.6.0; images `ghcr.io/lpalbou/abstractgateway:0.11.2`, `ghcr.io/lpalbou/abstractcore-server:2.23.1`.
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