abstractframework 0.11.2__tar.gz → 0.11.4__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 (203) hide show
  1. {abstractframework-0.11.2 → abstractframework-0.11.4}/CHANGELOG.md +25 -0
  2. {abstractframework-0.11.2/abstractframework.egg-info → abstractframework-0.11.4}/PKG-INFO +7 -7
  3. {abstractframework-0.11.2 → abstractframework-0.11.4}/README.md +3 -3
  4. {abstractframework-0.11.2 → abstractframework-0.11.4}/abstractframework/__init__.py +2 -2
  5. {abstractframework-0.11.2 → abstractframework-0.11.4/abstractframework.egg-info}/PKG-INFO +7 -7
  6. {abstractframework-0.11.2 → abstractframework-0.11.4}/abstractframework.egg-info/requires.txt +3 -3
  7. {abstractframework-0.11.2 → abstractframework-0.11.4}/docs/api.md +7 -7
  8. {abstractframework-0.11.2 → abstractframework-0.11.4}/docs/guide/gateway-security.md +17 -0
  9. {abstractframework-0.11.2 → abstractframework-0.11.4}/docs/install.md +20 -10
  10. {abstractframework-0.11.2 → abstractframework-0.11.4}/llms-full.txt +55 -28
  11. {abstractframework-0.11.2 → abstractframework-0.11.4}/llms.txt +2 -2
  12. {abstractframework-0.11.2 → abstractframework-0.11.4}/pyproject.toml +4 -4
  13. {abstractframework-0.11.2 → abstractframework-0.11.4}/scripts/install.sh +113 -27
  14. abstractframework-0.11.4/tests/test_install_app_upgrade.py +304 -0
  15. abstractframework-0.11.2/tests/test_install_app_upgrade.py +0 -174
  16. {abstractframework-0.11.2 → abstractframework-0.11.4}/LICENSE +0 -0
  17. {abstractframework-0.11.2 → abstractframework-0.11.4}/MANIFEST.in +0 -0
  18. {abstractframework-0.11.2 → abstractframework-0.11.4}/abstractframework/__main__.py +0 -0
  19. {abstractframework-0.11.2 → abstractframework-0.11.4}/abstractframework/cli.py +0 -0
  20. {abstractframework-0.11.2 → abstractframework-0.11.4}/abstractframework/install_manifest.py +0 -0
  21. {abstractframework-0.11.2 → abstractframework-0.11.4}/abstractframework/py.typed +0 -0
  22. {abstractframework-0.11.2 → abstractframework-0.11.4}/abstractframework.egg-info/SOURCES.txt +0 -0
  23. {abstractframework-0.11.2 → abstractframework-0.11.4}/abstractframework.egg-info/dependency_links.txt +0 -0
  24. {abstractframework-0.11.2 → abstractframework-0.11.4}/abstractframework.egg-info/entry_points.txt +0 -0
  25. {abstractframework-0.11.2 → abstractframework-0.11.4}/abstractframework.egg-info/top_level.txt +0 -0
  26. {abstractframework-0.11.2 → abstractframework-0.11.4}/docs/README.md +0 -0
  27. {abstractframework-0.11.2 → abstractframework-0.11.4}/docs/adr/0001-layered-architecture.md +0 -0
  28. {abstractframework-0.11.2 → abstractframework-0.11.4}/docs/adr/0002-effect-system-design.md +0 -0
  29. {abstractframework-0.11.2 → abstractframework-0.11.4}/docs/adr/0003-tool-system-architecture.md +0 -0
  30. {abstractframework-0.11.2 → abstractframework-0.11.4}/docs/adr/0004-observability-strategy.md +0 -0
  31. {abstractframework-0.11.2 → abstractframework-0.11.4}/docs/adr/0005-memory-architecture.md +0 -0
  32. {abstractframework-0.11.2 → abstractframework-0.11.4}/docs/adr/0006-durable-tool-execution.md +0 -0
  33. {abstractframework-0.11.2 → abstractframework-0.11.4}/docs/adr/0007-active-context-and-memory-provenance.md +0 -0
  34. {abstractframework-0.11.2 → abstractframework-0.11.4}/docs/adr/0008-token-terminology.md +0 -0
  35. {abstractframework-0.11.2 → abstractframework-0.11.4}/docs/adr/0009-connected-memory-recall-and-provenance.md +0 -0
  36. {abstractframework-0.11.2 → abstractframework-0.11.4}/docs/adr/0010-runtime-owned-node-traces.md +0 -0
  37. {abstractframework-0.11.2 → abstractframework-0.11.4}/docs/adr/0011-ledger-subscriptions-and-event-bridge.md +0 -0
  38. {abstractframework-0.11.2 → abstractframework-0.11.4}/docs/adr/0012-portable-workflowartifact.md +0 -0
  39. {abstractframework-0.11.2 → abstractframework-0.11.4}/docs/adr/0013-durable-run-controls-pause-resume-cancel.md +0 -0
  40. {abstractframework-0.11.2 → abstractframework-0.11.4}/docs/adr/0014-runtime-authority-timeouts.md +0 -0
  41. {abstractframework-0.11.2 → abstractframework-0.11.4}/docs/adr/0015-execution-targets-and-remote-tool-workers.md +0 -0
  42. {abstractframework-0.11.2 → abstractframework-0.11.4}/docs/adr/0016-tool-calling-pipeline-and-responsibility-boundaries.md +0 -0
  43. {abstractframework-0.11.2 → abstractframework-0.11.4}/docs/adr/0017-host-ui-events-and-durable-prompts.md +0 -0
  44. {abstractframework-0.11.2 → abstractframework-0.11.4}/docs/adr/0018-durable-run-gateway-and-remote-host-control-plane.md +0 -0
  45. {abstractframework-0.11.2 → abstractframework-0.11.4}/docs/adr/0019-testing-strategy-and-levels.md +0 -0
  46. {abstractframework-0.11.2 → abstractframework-0.11.4}/docs/adr/0020-agent-host-pool-and-orchestrator-placement.md +0 -0
  47. {abstractframework-0.11.2 → abstractframework-0.11.4}/docs/adr/0021-deployment-topologies-and-supported-scenarios.md +0 -0
  48. {abstractframework-0.11.2 → abstractframework-0.11.4}/docs/adr/0022-orchestrator-host-and-runtime-daemonization.md +0 -0
  49. {abstractframework-0.11.2 → abstractframework-0.11.4}/docs/adr/0023-file-attachment-path-resolution-and-authorization.md +0 -0
  50. {abstractframework-0.11.2 → abstractframework-0.11.4}/docs/adr/0024-attachment-placeholders-and-compaction-invariants.md +0 -0
  51. {abstractframework-0.11.2 → abstractframework-0.11.4}/docs/adr/0025-kg-entity-normalization-and-dedup.md +0 -0
  52. {abstractframework-0.11.2 → abstractframework-0.11.4}/docs/adr/0026-truncation-policy-and-contract.md +0 -0
  53. {abstractframework-0.11.2 → abstractframework-0.11.4}/docs/adr/0027-timeout-policy-and-contract.md +0 -0
  54. {abstractframework-0.11.2 → abstractframework-0.11.4}/docs/adr/0028-capabilities-plugins-and-library-framework-modes.md +0 -0
  55. {abstractframework-0.11.2 → abstractframework-0.11.4}/docs/adr/0029-permissive-dependency-and-licensing-policy.md +0 -0
  56. {abstractframework-0.11.2 → abstractframework-0.11.4}/docs/adr/0030-security-test-fixtures-and-isolation.md +0 -0
  57. {abstractframework-0.11.2 → abstractframework-0.11.4}/docs/adr/0031-workflow-llm-routing-overrides-provider-model-and-base-url.md +0 -0
  58. {abstractframework-0.11.2 → abstractframework-0.11.4}/docs/adr/0032-package-dependency-boundaries-and-gateway-first-apps.md +0 -0
  59. {abstractframework-0.11.2 → abstractframework-0.11.4}/docs/adr/0033-install-profiles-config-entrypoints-and-server-boundaries.md +0 -0
  60. {abstractframework-0.11.2 → abstractframework-0.11.4}/docs/adr/0034-framework-release-sequence-and-gates.md +0 -0
  61. {abstractframework-0.11.2 → abstractframework-0.11.4}/docs/adr/0035-capability-routing-defaults.md +0 -0
  62. {abstractframework-0.11.2 → abstractframework-0.11.4}/docs/adr/0036-artifact-descriptor-contract.md +0 -0
  63. {abstractframework-0.11.2 → abstractframework-0.11.4}/docs/adr/0037-hosted-file-source-contract-and-workspacepath-authority.md +0 -0
  64. {abstractframework-0.11.2 → abstractframework-0.11.4}/docs/adr/0038-script-bootstrap-and-gateway-console-install.md +0 -0
  65. {abstractframework-0.11.2 → abstractframework-0.11.4}/docs/adr/README.md +0 -0
  66. {abstractframework-0.11.2 → abstractframework-0.11.4}/docs/adr/memory-recall-levels.md +0 -0
  67. {abstractframework-0.11.2 → abstractframework-0.11.4}/docs/adr/reorg/001_music_as_capability_plugin_via_acestep_api.md +0 -0
  68. {abstractframework-0.11.2 → abstractframework-0.11.4}/docs/adr/reorg/002_abstractmusic_inprocess_local_generation.md +0 -0
  69. {abstractframework-0.11.2 → abstractframework-0.11.4}/docs/adr/reorg/003_abstractmusic_acestep_v15_backend_source_strategy.md +0 -0
  70. {abstractframework-0.11.2 → abstractframework-0.11.4}/docs/adr/reorg/004_smartnote_thin_client_architecture.md +0 -0
  71. {abstractframework-0.11.2 → abstractframework-0.11.4}/docs/adr/reorg/005_smartnote_artifact_first_cards.md +0 -0
  72. {abstractframework-0.11.2 → abstractframework-0.11.4}/docs/adr/reorg/2026-02-21_gateway-first-assistant.md +0 -0
  73. {abstractframework-0.11.2 → abstractframework-0.11.4}/docs/adr/reorg/2026-02-21_installer_manager_strategy.md +0 -0
  74. {abstractframework-0.11.2 → abstractframework-0.11.4}/docs/adr/reorg/2026-02-21_macos_installer_manager.md +0 -0
  75. {abstractframework-0.11.2 → abstractframework-0.11.4}/docs/agent-sessions.md +0 -0
  76. {abstractframework-0.11.2 → abstractframework-0.11.4}/docs/architecture.md +0 -0
  77. {abstractframework-0.11.2 → abstractframework-0.11.4}/docs/automations.md +0 -0
  78. {abstractframework-0.11.2 → abstractframework-0.11.4}/docs/claude/README.md +0 -0
  79. {abstractframework-0.11.2 → abstractframework-0.11.4}/docs/claude/abstractframework-fit.md +0 -0
  80. {abstractframework-0.11.2 → abstractframework-0.11.4}/docs/claude/claude-skills-overview.md +0 -0
  81. {abstractframework-0.11.2 → abstractframework-0.11.4}/docs/claude/claude-skills-sources.md +0 -0
  82. {abstractframework-0.11.2 → abstractframework-0.11.4}/docs/claude/claude-skills-top-20.md +0 -0
  83. {abstractframework-0.11.2 → abstractframework-0.11.4}/docs/comparisons/README.md +0 -0
  84. {abstractframework-0.11.2 → abstractframework-0.11.4}/docs/configuration.md +0 -0
  85. {abstractframework-0.11.2 → abstractframework-0.11.4}/docs/faq.md +0 -0
  86. {abstractframework-0.11.2 → abstractframework-0.11.4}/docs/getting-started.md +0 -0
  87. {abstractframework-0.11.2 → abstractframework-0.11.4}/docs/glossary.md +0 -0
  88. {abstractframework-0.11.2 → abstractframework-0.11.4}/docs/guide/LANDING.md +0 -0
  89. {abstractframework-0.11.2 → abstractframework-0.11.4}/docs/guide/README.md +0 -0
  90. {abstractframework-0.11.2 → abstractframework-0.11.4}/docs/guide/agent-skills.md +0 -0
  91. {abstractframework-0.11.2 → abstractframework-0.11.4}/docs/guide/agent-vs-llm.md +0 -0
  92. {abstractframework-0.11.2 → abstractframework-0.11.4}/docs/guide/agora-workflow-agent.md +0 -0
  93. {abstractframework-0.11.2 → abstractframework-0.11.4}/docs/guide/apple-local-gateway-flow.md +0 -0
  94. {abstractframework-0.11.2 → abstractframework-0.11.4}/docs/guide/capability-plugins.md +0 -0
  95. {abstractframework-0.11.2 → abstractframework-0.11.4}/docs/guide/capability-routing-defaults.md +0 -0
  96. {abstractframework-0.11.2 → abstractframework-0.11.4}/docs/guide/deployment-iphone.md +0 -0
  97. {abstractframework-0.11.2 → abstractframework-0.11.4}/docs/guide/deployment-topologies.md +0 -0
  98. {abstractframework-0.11.2 → abstractframework-0.11.4}/docs/guide/deployment-web.md +0 -0
  99. {abstractframework-0.11.2 → abstractframework-0.11.4}/docs/guide/email-integration.md +0 -0
  100. {abstractframework-0.11.2 → abstractframework-0.11.4}/docs/guide/event-inbox-agent.md +0 -0
  101. {abstractframework-0.11.2 → abstractframework-0.11.4}/docs/guide/flow-and-kg-memory.md +0 -0
  102. {abstractframework-0.11.2 → abstractframework-0.11.4}/docs/guide/headless-swarm.md +0 -0
  103. {abstractframework-0.11.2 → abstractframework-0.11.4}/docs/guide/process-manager-env-vars.md +0 -0
  104. {abstractframework-0.11.2 → abstractframework-0.11.4}/docs/guide/prompt-caching.md +0 -0
  105. {abstractframework-0.11.2 → abstractframework-0.11.4}/docs/guide/runtime-artifacts.md +0 -0
  106. {abstractframework-0.11.2 → abstractframework-0.11.4}/docs/guide/runtime-scope.md +0 -0
  107. {abstractframework-0.11.2 → abstractframework-0.11.4}/docs/guide/scheduled-workflows.md +0 -0
  108. {abstractframework-0.11.2 → abstractframework-0.11.4}/docs/guide/summoned-entities.md +0 -0
  109. {abstractframework-0.11.2 → abstractframework-0.11.4}/docs/guide/telegram-integration.md +0 -0
  110. {abstractframework-0.11.2 → abstractframework-0.11.4}/docs/guide/workflow-bundles.md +0 -0
  111. {abstractframework-0.11.2 → abstractframework-0.11.4}/docs/installers/README.md +0 -0
  112. {abstractframework-0.11.2 → abstractframework-0.11.4}/docs/installers/components.md +0 -0
  113. {abstractframework-0.11.2 → abstractframework-0.11.4}/docs/installers/implementation-plan.md +0 -0
  114. {abstractframework-0.11.2 → abstractframework-0.11.4}/docs/installers/operations-and-support.md +0 -0
  115. {abstractframework-0.11.2 → abstractframework-0.11.4}/docs/installers/release-and-manifest.md +0 -0
  116. {abstractframework-0.11.2 → abstractframework-0.11.4}/docs/installers/security-and-os-blocks.md +0 -0
  117. {abstractframework-0.11.2 → abstractframework-0.11.4}/docs/installers/strategy.md +0 -0
  118. {abstractframework-0.11.2 → abstractframework-0.11.4}/docs/installers/user-journeys.md +0 -0
  119. {abstractframework-0.11.2 → abstractframework-0.11.4}/docs/prompts/agora-collaboration.md +0 -0
  120. {abstractframework-0.11.2 → abstractframework-0.11.4}/docs/scenarios/README.md +0 -0
  121. {abstractframework-0.11.2 → abstractframework-0.11.4}/docs/scenarios/email-inbox-agent.md +0 -0
  122. {abstractframework-0.11.2 → abstractframework-0.11.4}/docs/scenarios/gateway-first-local-dev.md +0 -0
  123. {abstractframework-0.11.2 → abstractframework-0.11.4}/docs/scenarios/offline-coding-assistant.md +0 -0
  124. {abstractframework-0.11.2 → abstractframework-0.11.4}/docs/scenarios/phone-thin-client.md +0 -0
  125. {abstractframework-0.11.2 → abstractframework-0.11.4}/docs/scenarios/specialized-agent-flow.md +0 -0
  126. {abstractframework-0.11.2 → abstractframework-0.11.4}/docs/scenarios/telegram-permanent-contact.md +0 -0
  127. {abstractframework-0.11.2 → abstractframework-0.11.4}/docs/scenarios/workflow-bundle-lifecycle.md +0 -0
  128. {abstractframework-0.11.2 → abstractframework-0.11.4}/docs/skills/README.md +0 -0
  129. {abstractframework-0.11.2 → abstractframework-0.11.4}/docs/skills/abstractframework-agent-skills-fit.md +0 -0
  130. {abstractframework-0.11.2 → abstractframework-0.11.4}/docs/skills/abstractframework-architecture-deep-dive.md +0 -0
  131. {abstractframework-0.11.2 → abstractframework-0.11.4}/docs/skills/agent-skills-ecosystem-scan.md +0 -0
  132. {abstractframework-0.11.2 → abstractframework-0.11.4}/docs/skills/agent-skills-ecosystem-sources.md +0 -0
  133. {abstractframework-0.11.2 → abstractframework-0.11.4}/docs/skills/claude-agent-skills-overview.md +0 -0
  134. {abstractframework-0.11.2 → abstractframework-0.11.4}/docs/skills/claude-agent-skills-sources.md +0 -0
  135. {abstractframework-0.11.2 → abstractframework-0.11.4}/docs/skills/claude-agent-skills-top-20.md +0 -0
  136. {abstractframework-0.11.2 → abstractframework-0.11.4}/docs/troubleshooting.md +0 -0
  137. {abstractframework-0.11.2 → abstractframework-0.11.4}/docs/workspace-scripts.md +0 -0
  138. {abstractframework-0.11.2 → abstractframework-0.11.4}/scripts/af-local.sh +0 -0
  139. {abstractframework-0.11.2 → abstractframework-0.11.4}/scripts/af.sh +0 -0
  140. {abstractframework-0.11.2 → abstractframework-0.11.4}/scripts/agora_react_flow_smoke.py +0 -0
  141. {abstractframework-0.11.2 → abstractframework-0.11.4}/scripts/assistant-local.sh +0 -0
  142. {abstractframework-0.11.2 → abstractframework-0.11.4}/scripts/assistant.sh +0 -0
  143. {abstractframework-0.11.2 → abstractframework-0.11.4}/scripts/build.sh +0 -0
  144. {abstractframework-0.11.2 → abstractframework-0.11.4}/scripts/cache_probe_local_backends.py +0 -0
  145. {abstractframework-0.11.2 → abstractframework-0.11.4}/scripts/cache_steer_repl.py +0 -0
  146. {abstractframework-0.11.2 → abstractframework-0.11.4}/scripts/check_identity_sync.py +0 -0
  147. {abstractframework-0.11.2 → abstractframework-0.11.4}/scripts/clone.sh +0 -0
  148. {abstractframework-0.11.2 → abstractframework-0.11.4}/scripts/code-local.sh +0 -0
  149. {abstractframework-0.11.2 → abstractframework-0.11.4}/scripts/code.sh +0 -0
  150. {abstractframework-0.11.2 → abstractframework-0.11.4}/scripts/commit.sh +0 -0
  151. {abstractframework-0.11.2 → abstractframework-0.11.4}/scripts/console-local.sh +0 -0
  152. {abstractframework-0.11.2 → abstractframework-0.11.4}/scripts/console.sh +0 -0
  153. {abstractframework-0.11.2 → abstractframework-0.11.4}/scripts/core_operator_drive.py +0 -0
  154. {abstractframework-0.11.2 → abstractframework-0.11.4}/scripts/deps.sh +0 -0
  155. {abstractframework-0.11.2 → abstractframework-0.11.4}/scripts/entity-local.sh +0 -0
  156. {abstractframework-0.11.2 → abstractframework-0.11.4}/scripts/entity.sh +0 -0
  157. {abstractframework-0.11.2 → abstractframework-0.11.4}/scripts/event_inbox_flow_smoke.py +0 -0
  158. {abstractframework-0.11.2 → abstractframework-0.11.4}/scripts/flow-local.sh +0 -0
  159. {abstractframework-0.11.2 → abstractframework-0.11.4}/scripts/flow.sh +0 -0
  160. {abstractframework-0.11.2 → abstractframework-0.11.4}/scripts/gateway-flow-local.sh +0 -0
  161. {abstractframework-0.11.2 → abstractframework-0.11.4}/scripts/gateway-flow.sh +0 -0
  162. {abstractframework-0.11.2 → abstractframework-0.11.4}/scripts/gateway-local.sh +0 -0
  163. {abstractframework-0.11.2 → abstractframework-0.11.4}/scripts/gateway.sh +0 -0
  164. {abstractframework-0.11.2 → abstractframework-0.11.4}/scripts/gen_llms_full.py +0 -0
  165. {abstractframework-0.11.2 → abstractframework-0.11.4}/scripts/headless_fleet_bridge.py +0 -0
  166. {abstractframework-0.11.2 → abstractframework-0.11.4}/scripts/headless_fleet_demo.py +0 -0
  167. {abstractframework-0.11.2 → abstractframework-0.11.4}/scripts/headless_steer_repl.py +0 -0
  168. {abstractframework-0.11.2 → abstractframework-0.11.4}/scripts/lib/af_inventory.py +0 -0
  169. {abstractframework-0.11.2 → abstractframework-0.11.4}/scripts/lib/af_stack.sh +0 -0
  170. {abstractframework-0.11.2 → abstractframework-0.11.4}/scripts/lib/af_supervisor.sh +0 -0
  171. {abstractframework-0.11.2 → abstractframework-0.11.4}/scripts/lib/apps_common.sh +0 -0
  172. {abstractframework-0.11.2 → abstractframework-0.11.4}/scripts/lib/build_macos_installer.sh +0 -0
  173. {abstractframework-0.11.2 → abstractframework-0.11.4}/scripts/lib/gateway_flags.sh +0 -0
  174. {abstractframework-0.11.2 → abstractframework-0.11.4}/scripts/lib/gateway_user_tokens.py +0 -0
  175. {abstractframework-0.11.2 → abstractframework-0.11.4}/scripts/lib/repo_groups.sh +0 -0
  176. {abstractframework-0.11.2 → abstractframework-0.11.4}/scripts/meet_castor.sh +0 -0
  177. {abstractframework-0.11.2 → abstractframework-0.11.4}/scripts/observer-local.sh +0 -0
  178. {abstractframework-0.11.2 → abstractframework-0.11.4}/scripts/observer.sh +0 -0
  179. {abstractframework-0.11.2 → abstractframework-0.11.4}/scripts/plan_walkthrough.py +0 -0
  180. {abstractframework-0.11.2 → abstractframework-0.11.4}/scripts/pull.sh +0 -0
  181. {abstractframework-0.11.2 → abstractframework-0.11.4}/scripts/push.sh +0 -0
  182. {abstractframework-0.11.2 → abstractframework-0.11.4}/scripts/spawn_demo_agent.sh +0 -0
  183. {abstractframework-0.11.2 → abstractframework-0.11.4}/scripts/start-local.sh +0 -0
  184. {abstractframework-0.11.2 → abstractframework-0.11.4}/scripts/start.sh +0 -0
  185. {abstractframework-0.11.2 → abstractframework-0.11.4}/scripts/status.sh +0 -0
  186. {abstractframework-0.11.2 → abstractframework-0.11.4}/scripts/steer_repl.py +0 -0
  187. {abstractframework-0.11.2 → abstractframework-0.11.4}/scripts/tests/test_af_supervisor.sh +0 -0
  188. {abstractframework-0.11.2 → abstractframework-0.11.4}/scripts/tests/test_install_user_path.sh +0 -0
  189. {abstractframework-0.11.2 → abstractframework-0.11.4}/scripts/tests/test_inventory.sh +0 -0
  190. {abstractframework-0.11.2 → abstractframework-0.11.4}/scripts/tests/test_repo_scripts.sh +0 -0
  191. {abstractframework-0.11.2 → abstractframework-0.11.4}/scripts/uninstall.sh +0 -0
  192. {abstractframework-0.11.2 → abstractframework-0.11.4}/scripts/visit_resume_cache_probe.py +0 -0
  193. {abstractframework-0.11.2 → abstractframework-0.11.4}/setup.cfg +0 -0
  194. {abstractframework-0.11.2 → abstractframework-0.11.4}/tests/test_gateway_launch_flags.py +0 -0
  195. {abstractframework-0.11.2 → abstractframework-0.11.4}/tests/test_install_index_lag.py +0 -0
  196. {abstractframework-0.11.2 → abstractframework-0.11.4}/tests/test_install_macos_profile.py +0 -0
  197. {abstractframework-0.11.2 → abstractframework-0.11.4}/tests/test_install_profiles.py +0 -0
  198. {abstractframework-0.11.2 → abstractframework-0.11.4}/tests/test_install_ps1_gpu_stack.py +0 -0
  199. {abstractframework-0.11.2 → abstractframework-0.11.4}/tests/test_install_ps1_own_gateway.py +0 -0
  200. {abstractframework-0.11.2 → abstractframework-0.11.4}/tests/test_install_sh_gpu_stack.py +0 -0
  201. {abstractframework-0.11.2 → abstractframework-0.11.4}/tests/test_install_sh_gpu_twin.py +0 -0
  202. {abstractframework-0.11.2 → abstractframework-0.11.4}/tests/test_llms_full.py +0 -0
  203. {abstractframework-0.11.2 → abstractframework-0.11.4}/tests/test_uv_tool_install_atomicity.py +0 -0
@@ -2,6 +2,31 @@
2
2
 
3
3
  All notable changes to AbstractFramework will be documented in this file.
4
4
 
5
+ ## [0.11.4] - 2026-10-17
6
+
7
+ Installer fix: upgrades keep the browser apps on the release. Package pins are unchanged from 0.11.3
8
+ (AbstractGateway 0.15.1 across the light, Apple and GPU profiles).
9
+
10
+ - Re-running `install.sh` or `install.ps1` brings every browser app the gateway has installed (Flow,
11
+ Code, Observer, Continuum, Entity) to this release's version in every case the step covers: it
12
+ starts once the gateway's boot is over, waits up to 90 s for an app the gateway is still starting,
13
+ and signs its `abstractgateway apps` calls with the data dir's token passed as a parameter, so an
14
+ `ABSTRACTGATEWAY_AUTH_TOKEN` set in your shell for another gateway no longer makes the step fail.
15
+ - A copy of an app running outside the gateway on the app's port no longer hides the gateway's own
16
+ install: the install is updated, the summary's Apps line names the outside copy (`RUNNING: a copy
17
+ started outside the gateway, <version> on port <port> (pid <pid>)`), and a copy not at this release's
18
+ version is listed in red with the pid to stop. See [Upgrade the apps](docs/install.md#upgrade-the-apps).
19
+ - Who is affected: anyone upgrading with the one-line installers (`curl -LsSf https://abstractframework.ai/install.sh | sh`,
20
+ `powershell -ExecutionPolicy ByPass -c "irm https://abstractframework.ai/install.ps1 | iex"`). A fresh
21
+ `pip install abstractframework==0.11.4` resolves the same packages as 0.11.3.
22
+
23
+ ## [0.11.3] - 2026-10-17
24
+
25
+ Pins **AbstractGateway 0.15.1** across the light, Apple and GPU profiles. Other package pins are unchanged.
26
+
27
+ - Admin-configured provider endpoints are shared by default with human users and entities. New accounts can run workflows using the gateway's default endpoint without supplying their own provider URL or key. Existing root connections are inherited automatically.
28
+ - Bootstrap installers and the generated install manifest select Gateway 0.15.1.
29
+
5
30
  ## [0.11.2] - 2026-10-17
6
31
 
7
32
  Hold to talk in the Assistant — pins abstractassistant 0.14.0; every other package unchanged from 0.11.1.
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: abstractframework
3
- Version: 0.11.2
3
+ Version: 0.11.4
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,7 +23,7 @@ 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.0
26
+ Requires-Dist: abstractgateway==0.15.1
27
27
  Requires-Dist: abstractassistant==0.14.0
28
28
  Requires-Dist: abstractcore==2.26.0
29
29
  Requires-Dist: AbstractRuntime==0.10.2
@@ -36,10 +36,10 @@ Requires-Dist: abstractvision==0.3.33
36
36
  Requires-Dist: abstractmusic==0.1.16
37
37
  Requires-Dist: abstract3d==0.3.2
38
38
  Provides-Extra: apple
39
- Requires-Dist: abstractgateway[apple]==0.15.0; extra == "apple"
39
+ Requires-Dist: abstractgateway[apple]==0.15.1; extra == "apple"
40
40
  Requires-Dist: abstractassistant[apple]==0.14.0; platform_system == "Darwin" and extra == "apple"
41
41
  Provides-Extra: gpu
42
- Requires-Dist: abstractgateway[gpu]==0.15.0; extra == "gpu"
42
+ Requires-Dist: abstractgateway[gpu]==0.15.1; extra == "gpu"
43
43
  Requires-Dist: abstractassistant[gpu]==0.14.0; 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.0` and `ghcr.io/lpalbou/abstractcore-server:2.26.0`.
224
+ `ghcr.io/lpalbou/abstractgateway:0.15.1` and `ghcr.io/lpalbou/abstractcore-server:2.26.0`.
225
225
 
226
226
  For artifact and runtime-resource investigation, see
227
227
  [Runtime artifacts and retrieval](docs/guide/runtime-artifacts.md).
@@ -383,7 +383,7 @@ and tested together.
383
383
 
384
384
  | Registry | Package | Version |
385
385
  |---|---|---|
386
- | PyPI | `abstractgateway` | 0.15.0 |
386
+ | PyPI | `abstractgateway` | 0.15.1 |
387
387
  | PyPI | `abstractassistant` | 0.14.0 |
388
388
  | PyPI | `abstractcore` | 2.26.0 |
389
389
  | PyPI | `AbstractRuntime` | 0.10.2 |
@@ -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.0 (`gpu-latest` / `<version>-gpu` experimental) |
407
+ | GHCR | `ghcr.io/lpalbou/abstractgateway` | 0.15.1 (`gpu-latest` / `<version>-gpu` experimental) |
408
408
  | GHCR | `ghcr.io/lpalbou/abstractcore-server` | 2.26.0 |
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.0` and `ghcr.io/lpalbou/abstractcore-server:2.26.0`.
179
+ `ghcr.io/lpalbou/abstractgateway:0.15.1` and `ghcr.io/lpalbou/abstractcore-server:2.26.0`.
180
180
 
181
181
  For artifact and runtime-resource investigation, see
182
182
  [Runtime artifacts and retrieval](docs/guide/runtime-artifacts.md).
@@ -338,7 +338,7 @@ and tested together.
338
338
 
339
339
  | Registry | Package | Version |
340
340
  |---|---|---|
341
- | PyPI | `abstractgateway` | 0.15.0 |
341
+ | PyPI | `abstractgateway` | 0.15.1 |
342
342
  | PyPI | `abstractassistant` | 0.14.0 |
343
343
  | PyPI | `abstractcore` | 2.26.0 |
344
344
  | PyPI | `AbstractRuntime` | 0.10.2 |
@@ -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.0 (`gpu-latest` / `<version>-gpu` experimental) |
362
+ | GHCR | `ghcr.io/lpalbou/abstractgateway` | 0.15.1 (`gpu-latest` / `<version>-gpu` experimental) |
363
363
  | GHCR | `ghcr.io/lpalbou/abstractcore-server` | 2.26.0 |
364
364
 
365
365
  `abstract3d` (pinned above) comes with AbstractCore in every profile. The optional add-on that is
@@ -10,7 +10,7 @@ Most implementation functionality still lives in component projects.
10
10
 
11
11
  from __future__ import annotations
12
12
 
13
- __version__ = "0.11.2"
13
+ __version__ = "0.11.4"
14
14
  __author__ = "Laurent-Philippe Albou"
15
15
  __license__ = "MIT"
16
16
 
@@ -18,7 +18,7 @@ RELEASE_VERSIONS: dict[str, str] = {
18
18
  "abstractcore": "2.26.0",
19
19
  "abstractruntime": "0.10.2",
20
20
  "abstractagent": "0.3.19",
21
- "abstractgateway": "0.15.0",
21
+ "abstractgateway": "0.15.1",
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.2
3
+ Version: 0.11.4
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,7 +23,7 @@ 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.0
26
+ Requires-Dist: abstractgateway==0.15.1
27
27
  Requires-Dist: abstractassistant==0.14.0
28
28
  Requires-Dist: abstractcore==2.26.0
29
29
  Requires-Dist: AbstractRuntime==0.10.2
@@ -36,10 +36,10 @@ Requires-Dist: abstractvision==0.3.33
36
36
  Requires-Dist: abstractmusic==0.1.16
37
37
  Requires-Dist: abstract3d==0.3.2
38
38
  Provides-Extra: apple
39
- Requires-Dist: abstractgateway[apple]==0.15.0; extra == "apple"
39
+ Requires-Dist: abstractgateway[apple]==0.15.1; extra == "apple"
40
40
  Requires-Dist: abstractassistant[apple]==0.14.0; platform_system == "Darwin" and extra == "apple"
41
41
  Provides-Extra: gpu
42
- Requires-Dist: abstractgateway[gpu]==0.15.0; extra == "gpu"
42
+ Requires-Dist: abstractgateway[gpu]==0.15.1; extra == "gpu"
43
43
  Requires-Dist: abstractassistant[gpu]==0.14.0; 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.0` and `ghcr.io/lpalbou/abstractcore-server:2.26.0`.
224
+ `ghcr.io/lpalbou/abstractgateway:0.15.1` and `ghcr.io/lpalbou/abstractcore-server:2.26.0`.
225
225
 
226
226
  For artifact and runtime-resource investigation, see
227
227
  [Runtime artifacts and retrieval](docs/guide/runtime-artifacts.md).
@@ -383,7 +383,7 @@ and tested together.
383
383
 
384
384
  | Registry | Package | Version |
385
385
  |---|---|---|
386
- | PyPI | `abstractgateway` | 0.15.0 |
386
+ | PyPI | `abstractgateway` | 0.15.1 |
387
387
  | PyPI | `abstractassistant` | 0.14.0 |
388
388
  | PyPI | `abstractcore` | 2.26.0 |
389
389
  | PyPI | `AbstractRuntime` | 0.10.2 |
@@ -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.0 (`gpu-latest` / `<version>-gpu` experimental) |
407
+ | GHCR | `ghcr.io/lpalbou/abstractgateway` | 0.15.1 (`gpu-latest` / `<version>-gpu` experimental) |
408
408
  | GHCR | `ghcr.io/lpalbou/abstractcore-server` | 2.26.0 |
409
409
 
410
410
  `abstract3d` (pinned above) comes with AbstractCore in every profile. The optional add-on that is
@@ -1,4 +1,4 @@
1
- abstractgateway==0.15.0
1
+ abstractgateway==0.15.1
2
2
  abstractassistant==0.14.0
3
3
  abstractcore==2.26.0
4
4
  AbstractRuntime==0.10.2
@@ -12,11 +12,11 @@ abstractmusic==0.1.16
12
12
  abstract3d==0.3.2
13
13
 
14
14
  [apple]
15
- abstractgateway[apple]==0.15.0
15
+ abstractgateway[apple]==0.15.1
16
16
 
17
17
  [apple:platform_system == "Darwin"]
18
18
  abstractassistant[apple]==0.14.0
19
19
 
20
20
  [gpu]
21
- abstractgateway[gpu]==0.15.0
21
+ abstractgateway[gpu]==0.15.1
22
22
  abstractassistant[gpu]==0.14.0
@@ -55,14 +55,14 @@ The response type returned by `llm.generate(...)`.
55
55
 
56
56
  ### `__version__`
57
57
 
58
- The meta-package version (`0.11.0` for this release).
58
+ The meta-package version (`0.11.4` 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.0:
63
- `abstractcore` 2.26.0, `abstractruntime` 0.10.0, `abstractagent` 0.3.19, `abstractgateway` 0.14.0,
62
+ Dictionary mapping each ecosystem package name to the pinned version for this release. In 0.11.4:
63
+ `abstractcore` 2.26.0, `abstractruntime` 0.10.2, `abstractagent` 0.3.19, `abstractgateway` 0.15.1,
64
64
  `abstractskill` 0.3.0, `abstractmemory` 0.3.0, `abstractsemantics` 0.0.5, `abstractvoice` 0.15.0, `abstractvision` 0.3.33,
65
- `abstractmusic` 0.1.16, `abstract3d` 0.3.2, `abstractassistant` 0.13.2.
65
+ `abstractmusic` 0.1.16, `abstract3d` 0.3.2, `abstractassistant` 0.14.0.
66
66
 
67
67
  ### `PACKAGE_DISTRIBUTIONS`
68
68
 
@@ -72,14 +72,14 @@ Maps each package name in `RELEASE_VERSIONS` to its PyPI distribution name (for
72
72
  ### `NPM_RELEASE_VERSIONS`
73
73
 
74
74
  The npm apps released with this version, each runnable with `npx <package>`:
75
- `@abstractframework/flow` 0.9.0, `@abstractframework/code` 0.11.2,
76
- `@abstractframework/observer` 0.7.1, `@abstractframework/continuum` 0.7.1 and
75
+ `@abstractframework/flow` 0.10.0, `@abstractframework/code` 0.11.2,
76
+ `@abstractframework/observer` 0.8.0, `@abstractframework/continuum` 0.7.0 and
77
77
  `@abstractframework/entity` 0.7.1. They also appear as `npm_apps` in the install manifest.
78
78
 
79
79
  ### `CRATE_RELEASE_VERSIONS`
80
80
 
81
81
  The Rust terminal tools released with this version, installed with `cargo install <crate>`:
82
- `abstractgateway-console` 0.16.0, `abstractcore-console` 0.8.0, `abstractcode` 0.9.1 and the
82
+ `abstractgateway-console` 0.16.0, `abstractcore-console` 0.8.0, `abstractcode` 0.10.0 and the
83
83
  `abstracttui` engine 0.6.0. The bootstrap scripts build `abstractgateway-console` at this version by default
84
84
  (`--no-console` skips it) and `abstractcode` next to it (`--no-code-cli` skips it).
85
85
 
@@ -53,6 +53,23 @@ across Gateway discovery, import/export, and Runtime execution.
53
53
  Current UI surfaces may still say `Workspace` in some places. The engineering
54
54
  term remains `Workspace File` / `Workspace Folder`.
55
55
 
56
+ ## Shared provider access
57
+
58
+ With AbstractGateway 0.15.1 or later, every enabled provider connection configured
59
+ by an admin is available by default to human users and digital users/entities on
60
+ that gateway. New users inherit the gateway's capability defaults, so workflows
61
+ without provider/model overrides use the admin's selected endpoint. Users do not
62
+ need a copy of its upstream API key or a separate provider configuration.
63
+ The gateway-wide default is the operator's baseline; an account can override
64
+ its own model preference without changing other accounts' defaults.
65
+
66
+ Shared access permits use through the gateway; editing or deleting an admin
67
+ connection still requires an admin. Provider keys remain server-side, disabled
68
+ connections remain unavailable, and users' own private connections remain private.
69
+ Existing root connections are inherited automatically, including connections
70
+ stored with the legacy `scope: user` value. Per-user provider restrictions are
71
+ not part of this release.
72
+
56
73
  ## User isolation
57
74
 
58
75
  When Gateway user auth is enabled, each user token resolves to a Gateway
@@ -360,11 +360,21 @@ installer keeps them on the release: on every install and upgrade, once the gate
360
360
  browser app the gateway has installed is brought to this release's version (`--print` lists the
361
361
  planned updates) through the gateway's own `abstractgateway apps update <app> --version <version>`,
362
362
  so the gateway's apps registry stays right and a running app restarts on the new version. It is a
363
- command-line call against the running gateway (signed in with `<data dir>/auth/bootstrap-admin-token`),
364
- so it works the same on a headless or terminal-only machine: no browser or web console is involved. The
365
- summary's **Apps** line lists each app's version; an app that could not be updated is listed in red
366
- with the command to retry, and the installer exits 1. A fresh install installs no app: the console's
367
- **Apps** page installs them.
363
+ command-line call against the running gateway, signed in with `<data dir>/auth/bootstrap-admin-token`
364
+ passed as a parameter (an `ABSTRACTGATEWAY_AUTH_TOKEN` in your shell, set for another gateway, is
365
+ not used), so it works the same on a headless or terminal-only machine: no browser or web console is
366
+ involved. The step starts only once the gateway's boot is over (`/api/health` no longer says
367
+ `"status": "starting"`) and waits, up to 90 s, for an app the gateway is still starting, so the
368
+ update restarts it on the new version. The summary's **Apps** line lists each app's version; an app
369
+ that could not be updated is listed in red with the command to retry, and the installer exits 1. A
370
+ fresh install installs no app: the console's **Apps** page installs them.
371
+
372
+ An app's port may be held by a copy the gateway did not start: a leftover of a gateway that died
373
+ hard, or an app run by hand with `npx`. The gateway lists that copy as *external* and cannot stop or
374
+ restart it, so the gateway's own install is updated and the **Apps** line says `RUNNING: a copy
375
+ started outside the gateway, <version> on port <port> (pid <pid>)`; when that copy is not at this
376
+ release's version, the summary shows it in red with the pid to stop (`kill <pid>`, then
377
+ `abstractgateway apps launch <app>`).
368
378
 
369
379
  When no gateway answers (`--no-start` while the gateway is stopped), the installer writes the
370
380
  release's versions to `<data dir>/apps-upgrade.pending` instead, and the gateway (0.11.1 and later)
@@ -389,7 +399,7 @@ The terminal console and an `abstractcode` built by the installer are upgraded b
389
399
 
390
400
  ```bash
391
401
  abstractgateway --version # the installed gateway
392
- uv tool list --show-version-specifiers # the gateway uv tool and its pin ([required: ==0.15.0])
402
+ uv tool list --show-version-specifiers # the gateway uv tool and its pin ([required: ==0.15.1])
393
403
  abstractgateway-console --version # the terminal console
394
404
  abstractcode --version # AbstractCode's terminal client
395
405
  abstractgateway apps list # the apps: installed and latest
@@ -465,7 +475,7 @@ The Mac package, the `.command` files and the one line all run the same script,
465
475
  login** switch counts), a first install leaves it off.
466
476
  3. Installs [uv](https://docs.astral.sh/uv/) when it is missing, then Python 3.12 through uv.
467
477
  4. Installs the gateway as an isolated uv tool, pinned to this release:
468
- `uv tool install --python 3.12 "abstractgateway[<profile>,tray]==0.15.0"`, from prebuilt wheels
478
+ `uv tool install --python 3.12 "abstractgateway[<profile>,tray]==0.15.1"`, from prebuilt wheels
469
479
  only (see [No compiler needed](#no-compiler-needed)), and checks that the command starts
470
480
  (reinstalling it in place when it does not). Every profile also gets local voice,
471
481
  `--with "abstractvoice[supertonic,stt]==0.15.0"` (the release's AbstractVoice): Supertonic
@@ -810,7 +820,7 @@ instead of starting a browser.
810
820
  ```bash
811
821
  curl -LsSf https://astral.sh/uv/install.sh | sh # Windows: irm https://astral.sh/uv/install.ps1 | iex
812
822
  uv python install 3.12
813
- uv tool install --python 3.12 "abstractgateway[tray]==0.15.0" # [apple,tray] or [gpu,tray] for local engines
823
+ uv tool install --python 3.12 "abstractgateway[tray]==0.15.1" # [apple,tray] or [gpu,tray] for local engines
814
824
  # (add --with and --overrides as shown by `install.sh --print` to avoid compiling)
815
825
  uv tool update-shell # puts ~/.local/bin on PATH; open a new terminal
816
826
  abstractgateway service install --port 8080 # or: abstractgateway serve
@@ -944,7 +954,7 @@ Python 3.11 to 3.13), but it gets PyPI's CPU-only PyTorch and no llama.cpp: use
944
954
  installer, which adds PyTorch's CUDA build and llama.cpp's prebuilt GPU build
945
955
  ([GPU on Windows](#gpu-on-windows-nvidia)).
946
956
 
947
- `abstractframework` 0.11.2 pins `abstractgateway==0.15.0`, `abstractassistant==0.14.0`,
957
+ `abstractframework` 0.11.4 pins `abstractgateway==0.15.1`, `abstractassistant==0.14.0`,
948
958
  `abstractcore==2.26.0`, `AbstractRuntime==0.10.2`, `abstractagent==0.3.19`, `abstractskill==0.3.0`,
949
959
  `AbstractMemory==0.3.0`, `abstractsemantics==0.0.5`, `abstractvoice==0.15.0`,
950
960
  `abstractvision==0.3.33`, `abstractmusic==0.1.16` and `abstract3d==0.3.2`. The `apple` and `gpu` extras select
@@ -1087,7 +1097,7 @@ docker run \
1087
1097
  -v "$PWD/runtime:/data" \
1088
1098
  -e ABSTRACTGATEWAY_DATA_DIR=/data \
1089
1099
  -e ABSTRACTGATEWAY_USER_AUTH=1 \
1090
- ghcr.io/lpalbou/abstractgateway:0.15.0
1100
+ ghcr.io/lpalbou/abstractgateway:0.15.1
1091
1101
  ```
1092
1102
 
1093
1103
  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.0` and `ghcr.io/lpalbou/abstractcore-server:2.26.0`.
183
+ `ghcr.io/lpalbou/abstractgateway:0.15.1` and `ghcr.io/lpalbou/abstractcore-server:2.26.0`.
184
184
 
185
185
  For artifact and runtime-resource investigation, see
186
186
  [Runtime artifacts and retrieval](docs/guide/runtime-artifacts.md).
@@ -342,7 +342,7 @@ and tested together.
342
342
 
343
343
  | Registry | Package | Version |
344
344
  |---|---|---|
345
- | PyPI | `abstractgateway` | 0.15.0 |
345
+ | PyPI | `abstractgateway` | 0.15.1 |
346
346
  | PyPI | `abstractassistant` | 0.14.0 |
347
347
  | PyPI | `abstractcore` | 2.26.0 |
348
348
  | PyPI | `AbstractRuntime` | 0.10.2 |
@@ -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.0 (`gpu-latest` / `<version>-gpu` experimental) |
366
+ | GHCR | `ghcr.io/lpalbou/abstractgateway` | 0.15.1 (`gpu-latest` / `<version>-gpu` experimental) |
367
367
  | GHCR | `ghcr.io/lpalbou/abstractcore-server` | 2.26.0 |
368
368
 
369
369
  `abstract3d` (pinned above) comes with AbstractCore in every profile. The optional add-on that is
@@ -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.0 pins (PyPI, `==`): abstractgateway 0.14.0, abstractassistant 0.13.2, abstractcore 2.26.0, AbstractRuntime 0.10.0, abstractagent 0.3.19, abstractskill 0.3.0, AbstractMemory 0.3.0, abstractsemantics 0.0.5, abstractvoice 0.15.0, abstractvision 0.3.33, abstractmusic 0.1.16, abstract3d 0.3.2.
620
- - Released with it: npm `@abstractframework/flow` 0.9.0, `code` 0.11.2, `observer` 0.7.1, `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.15.1 (built by the installer by default), `abstractcore-console` 0.8.0, `abstractcode` 0.9.1, `abstracttui` 0.6.0; images `ghcr.io/lpalbou/abstractgateway:0.13.1`, `ghcr.io/lpalbou/abstractcore-server:2.25.1`.
619
+ - abstractframework 0.11.4 pins (PyPI, `==`): abstractgateway 0.15.1, abstractassistant 0.14.0, abstractcore 2.26.0, AbstractRuntime 0.10.2, abstractagent 0.3.19, abstractskill 0.3.0, AbstractMemory 0.3.0, abstractsemantics 0.0.5, abstractvoice 0.15.0, abstractvision 0.3.33, abstractmusic 0.1.16, 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.1`, `ghcr.io/lpalbou/abstractcore-server:2.26.0`.
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.2"
648
+ version = "0.11.4"
649
649
  description = "Unified installer and documentation hub for the AbstractFramework ecosystem"
650
650
  readme = "README.md"
651
651
  license = {text = "MIT"}
@@ -689,7 +689,7 @@ 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.0",
692
+ "abstractgateway==0.15.1",
693
693
 
694
694
  # Workflow authoring UI is distributed through npm as @abstractframework/flow.
695
695
  "abstractassistant==0.14.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.0",
726
+ "abstractgateway[apple]==0.15.1",
727
727
  "abstractassistant[apple]==0.14.0; platform_system == \"Darwin\"",
728
728
  ]
729
729
 
730
730
  gpu = [
731
- "abstractgateway[gpu]==0.15.0",
731
+ "abstractgateway[gpu]==0.15.1",
732
732
  "abstractassistant[gpu]==0.14.0",
733
733
  ]
734
734
 
@@ -781,7 +781,7 @@ Most implementation functionality still lives in component projects.
781
781
 
782
782
  from __future__ import annotations
783
783
 
784
- __version__ = "0.11.2"
784
+ __version__ = "0.11.4"
785
785
  __author__ = "Laurent-Philippe Albou"
786
786
  __license__ = "MIT"
787
787
 
@@ -789,7 +789,7 @@ RELEASE_VERSIONS: dict[str, str] = {
789
789
  "abstractcore": "2.26.0",
790
790
  "abstractruntime": "0.10.2",
791
791
  "abstractagent": "0.3.19",
792
- "abstractgateway": "0.15.0",
792
+ "abstractgateway": "0.15.1",
793
793
  "abstractskill": "0.3.0",
794
794
  "abstractmemory": "0.3.0",
795
795
  "abstractsemantics": "0.0.5",
@@ -4112,11 +4112,21 @@ installer keeps them on the release: on every install and upgrade, once the gate
4112
4112
  browser app the gateway has installed is brought to this release's version (`--print` lists the
4113
4113
  planned updates) through the gateway's own `abstractgateway apps update <app> --version <version>`,
4114
4114
  so the gateway's apps registry stays right and a running app restarts on the new version. It is a
4115
- command-line call against the running gateway (signed in with `<data dir>/auth/bootstrap-admin-token`),
4116
- so it works the same on a headless or terminal-only machine: no browser or web console is involved. The
4117
- summary's **Apps** line lists each app's version; an app that could not be updated is listed in red
4118
- with the command to retry, and the installer exits 1. A fresh install installs no app: the console's
4119
- **Apps** page installs them.
4115
+ command-line call against the running gateway, signed in with `<data dir>/auth/bootstrap-admin-token`
4116
+ passed as a parameter (an `ABSTRACTGATEWAY_AUTH_TOKEN` in your shell, set for another gateway, is
4117
+ not used), so it works the same on a headless or terminal-only machine: no browser or web console is
4118
+ involved. The step starts only once the gateway's boot is over (`/api/health` no longer says
4119
+ `"status": "starting"`) and waits, up to 90 s, for an app the gateway is still starting, so the
4120
+ update restarts it on the new version. The summary's **Apps** line lists each app's version; an app
4121
+ that could not be updated is listed in red with the command to retry, and the installer exits 1. A
4122
+ fresh install installs no app: the console's **Apps** page installs them.
4123
+
4124
+ An app's port may be held by a copy the gateway did not start: a leftover of a gateway that died
4125
+ hard, or an app run by hand with `npx`. The gateway lists that copy as *external* and cannot stop or
4126
+ restart it, so the gateway's own install is updated and the **Apps** line says `RUNNING: a copy
4127
+ started outside the gateway, <version> on port <port> (pid <pid>)`; when that copy is not at this
4128
+ release's version, the summary shows it in red with the pid to stop (`kill <pid>`, then
4129
+ `abstractgateway apps launch <app>`).
4120
4130
 
4121
4131
  When no gateway answers (`--no-start` while the gateway is stopped), the installer writes the
4122
4132
  release's versions to `<data dir>/apps-upgrade.pending` instead, and the gateway (0.11.1 and later)
@@ -4141,7 +4151,7 @@ The terminal console and an `abstractcode` built by the installer are upgraded b
4141
4151
 
4142
4152
  ```bash
4143
4153
  abstractgateway --version # the installed gateway
4144
- uv tool list --show-version-specifiers # the gateway uv tool and its pin ([required: ==0.15.0])
4154
+ uv tool list --show-version-specifiers # the gateway uv tool and its pin ([required: ==0.15.1])
4145
4155
  abstractgateway-console --version # the terminal console
4146
4156
  abstractcode --version # AbstractCode's terminal client
4147
4157
  abstractgateway apps list # the apps: installed and latest
@@ -4217,7 +4227,7 @@ The Mac package, the `.command` files and the one line all run the same script,
4217
4227
  login** switch counts), a first install leaves it off.
4218
4228
  3. Installs [uv](https://docs.astral.sh/uv/) when it is missing, then Python 3.12 through uv.
4219
4229
  4. Installs the gateway as an isolated uv tool, pinned to this release:
4220
- `uv tool install --python 3.12 "abstractgateway[<profile>,tray]==0.15.0"`, from prebuilt wheels
4230
+ `uv tool install --python 3.12 "abstractgateway[<profile>,tray]==0.15.1"`, from prebuilt wheels
4221
4231
  only (see [No compiler needed](#no-compiler-needed)), and checks that the command starts
4222
4232
  (reinstalling it in place when it does not). Every profile also gets local voice,
4223
4233
  `--with "abstractvoice[supertonic,stt]==0.15.0"` (the release's AbstractVoice): Supertonic
@@ -4562,7 +4572,7 @@ instead of starting a browser.
4562
4572
  ```bash
4563
4573
  curl -LsSf https://astral.sh/uv/install.sh | sh # Windows: irm https://astral.sh/uv/install.ps1 | iex
4564
4574
  uv python install 3.12
4565
- uv tool install --python 3.12 "abstractgateway[tray]==0.15.0" # [apple,tray] or [gpu,tray] for local engines
4575
+ uv tool install --python 3.12 "abstractgateway[tray]==0.15.1" # [apple,tray] or [gpu,tray] for local engines
4566
4576
  # (add --with and --overrides as shown by `install.sh --print` to avoid compiling)
4567
4577
  uv tool update-shell # puts ~/.local/bin on PATH; open a new terminal
4568
4578
  abstractgateway service install --port 8080 # or: abstractgateway serve
@@ -4696,7 +4706,7 @@ Python 3.11 to 3.13), but it gets PyPI's CPU-only PyTorch and no llama.cpp: use
4696
4706
  installer, which adds PyTorch's CUDA build and llama.cpp's prebuilt GPU build
4697
4707
  ([GPU on Windows](#gpu-on-windows-nvidia)).
4698
4708
 
4699
- `abstractframework` 0.11.2 pins `abstractgateway==0.15.0`, `abstractassistant==0.14.0`,
4709
+ `abstractframework` 0.11.4 pins `abstractgateway==0.15.1`, `abstractassistant==0.14.0`,
4700
4710
  `abstractcore==2.26.0`, `AbstractRuntime==0.10.2`, `abstractagent==0.3.19`, `abstractskill==0.3.0`,
4701
4711
  `AbstractMemory==0.3.0`, `abstractsemantics==0.0.5`, `abstractvoice==0.15.0`,
4702
4712
  `abstractvision==0.3.33`, `abstractmusic==0.1.16` and `abstract3d==0.3.2`. The `apple` and `gpu` extras select
@@ -4839,7 +4849,7 @@ docker run \
4839
4849
  -v "$PWD/runtime:/data" \
4840
4850
  -e ABSTRACTGATEWAY_DATA_DIR=/data \
4841
4851
  -e ABSTRACTGATEWAY_USER_AUTH=1 \
4842
- ghcr.io/lpalbou/abstractgateway:0.15.0
4852
+ ghcr.io/lpalbou/abstractgateway:0.15.1
4843
4853
  ```
4844
4854
 
4845
4855
  This is the Light container: full framework capabilities through remote/endpoint inference, without
@@ -6877,14 +6887,14 @@ The response type returned by `llm.generate(...)`.
6877
6887
 
6878
6888
  ### `__version__`
6879
6889
 
6880
- The meta-package version (`0.11.0` for this release).
6890
+ The meta-package version (`0.11.4` for this release).
6881
6891
 
6882
6892
  ### `RELEASE_VERSIONS`
6883
6893
 
6884
- Dictionary mapping each ecosystem package name to the pinned version for this release. In 0.11.0:
6885
- `abstractcore` 2.26.0, `abstractruntime` 0.10.0, `abstractagent` 0.3.19, `abstractgateway` 0.14.0,
6894
+ Dictionary mapping each ecosystem package name to the pinned version for this release. In 0.11.4:
6895
+ `abstractcore` 2.26.0, `abstractruntime` 0.10.2, `abstractagent` 0.3.19, `abstractgateway` 0.15.1,
6886
6896
  `abstractskill` 0.3.0, `abstractmemory` 0.3.0, `abstractsemantics` 0.0.5, `abstractvoice` 0.15.0, `abstractvision` 0.3.33,
6887
- `abstractmusic` 0.1.16, `abstract3d` 0.3.2, `abstractassistant` 0.13.2.
6897
+ `abstractmusic` 0.1.16, `abstract3d` 0.3.2, `abstractassistant` 0.14.0.
6888
6898
 
6889
6899
  ### `PACKAGE_DISTRIBUTIONS`
6890
6900
 
@@ -6894,14 +6904,14 @@ Maps each package name in `RELEASE_VERSIONS` to its PyPI distribution name (for
6894
6904
  ### `NPM_RELEASE_VERSIONS`
6895
6905
 
6896
6906
  The npm apps released with this version, each runnable with `npx <package>`:
6897
- `@abstractframework/flow` 0.9.0, `@abstractframework/code` 0.11.2,
6898
- `@abstractframework/observer` 0.7.1, `@abstractframework/continuum` 0.7.1 and
6907
+ `@abstractframework/flow` 0.10.0, `@abstractframework/code` 0.11.2,
6908
+ `@abstractframework/observer` 0.8.0, `@abstractframework/continuum` 0.7.0 and
6899
6909
  `@abstractframework/entity` 0.7.1. They also appear as `npm_apps` in the install manifest.
6900
6910
 
6901
6911
  ### `CRATE_RELEASE_VERSIONS`
6902
6912
 
6903
6913
  The Rust terminal tools released with this version, installed with `cargo install <crate>`:
6904
- `abstractgateway-console` 0.16.0, `abstractcore-console` 0.8.0, `abstractcode` 0.9.1 and the
6914
+ `abstractgateway-console` 0.16.0, `abstractcore-console` 0.8.0, `abstractcode` 0.10.0 and the
6905
6915
  `abstracttui` engine 0.6.0. The bootstrap scripts build `abstractgateway-console` at this version by default
6906
6916
  (`--no-console` skips it) and `abstractcode` next to it (`--no-code-cli` skips it).
6907
6917
 
@@ -7860,6 +7870,23 @@ across Gateway discovery, import/export, and Runtime execution.
7860
7870
  Current UI surfaces may still say `Workspace` in some places. The engineering
7861
7871
  term remains `Workspace File` / `Workspace Folder`.
7862
7872
 
7873
+ ## Shared provider access
7874
+
7875
+ With AbstractGateway 0.15.1 or later, every enabled provider connection configured
7876
+ by an admin is available by default to human users and digital users/entities on
7877
+ that gateway. New users inherit the gateway's capability defaults, so workflows
7878
+ without provider/model overrides use the admin's selected endpoint. Users do not
7879
+ need a copy of its upstream API key or a separate provider configuration.
7880
+ The gateway-wide default is the operator's baseline; an account can override
7881
+ its own model preference without changing other accounts' defaults.
7882
+
7883
+ Shared access permits use through the gateway; editing or deleting an admin
7884
+ connection still requires an admin. Provider keys remain server-side, disabled
7885
+ connections remain unavailable, and users' own private connections remain private.
7886
+ Existing root connections are inherited automatically, including connections
7887
+ stored with the legacy `scope: user` value. Per-user provider restrictions are
7888
+ not part of this release.
7889
+
7863
7890
  ## User isolation
7864
7891
 
7865
7892
  When Gateway user auth is enabled, each user token resolves to a Gateway
@@ -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.0 pins (PyPI, `==`): abstractgateway 0.14.0, abstractassistant 0.13.2, abstractcore 2.26.0, AbstractRuntime 0.10.0, abstractagent 0.3.19, abstractskill 0.3.0, AbstractMemory 0.3.0, abstractsemantics 0.0.5, abstractvoice 0.15.0, abstractvision 0.3.33, abstractmusic 0.1.16, abstract3d 0.3.2.
189
- - Released with it: npm `@abstractframework/flow` 0.9.0, `code` 0.11.2, `observer` 0.7.1, `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.15.1 (built by the installer by default), `abstractcore-console` 0.8.0, `abstractcode` 0.9.1, `abstracttui` 0.6.0; images `ghcr.io/lpalbou/abstractgateway:0.13.1`, `ghcr.io/lpalbou/abstractcore-server:2.25.1`.
188
+ - abstractframework 0.11.4 pins (PyPI, `==`): abstractgateway 0.15.1, abstractassistant 0.14.0, abstractcore 2.26.0, AbstractRuntime 0.10.2, abstractagent 0.3.19, abstractskill 0.3.0, AbstractMemory 0.3.0, abstractsemantics 0.0.5, abstractvoice 0.15.0, abstractvision 0.3.33, abstractmusic 0.1.16, 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.1`, `ghcr.io/lpalbou/abstractcore-server:2.26.0`.
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.2"
7
+ version = "0.11.4"
8
8
  description = "Unified installer and documentation hub for the AbstractFramework ecosystem"
9
9
  readme = "README.md"
10
10
  license = {text = "MIT"}
@@ -48,7 +48,7 @@ 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.0",
51
+ "abstractgateway==0.15.1",
52
52
 
53
53
  # Workflow authoring UI is distributed through npm as @abstractframework/flow.
54
54
  "abstractassistant==0.14.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.0",
85
+ "abstractgateway[apple]==0.15.1",
86
86
  "abstractassistant[apple]==0.14.0; platform_system == \"Darwin\"",
87
87
  ]
88
88
 
89
89
  gpu = [
90
- "abstractgateway[gpu]==0.15.0",
90
+ "abstractgateway[gpu]==0.15.1",
91
91
  "abstractassistant[gpu]==0.14.0",
92
92
  ]
93
93