abstractframework 0.11.4__tar.gz → 0.11.6__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.4 → abstractframework-0.11.6}/CHANGELOG.md +56 -0
  2. {abstractframework-0.11.4/abstractframework.egg-info → abstractframework-0.11.6}/PKG-INFO +22 -22
  3. {abstractframework-0.11.4 → abstractframework-0.11.6}/README.md +10 -10
  4. {abstractframework-0.11.4 → abstractframework-0.11.6}/abstractframework/__init__.py +8 -8
  5. {abstractframework-0.11.4 → abstractframework-0.11.6/abstractframework.egg-info}/PKG-INFO +22 -22
  6. abstractframework-0.11.6/abstractframework.egg-info/requires.txt +22 -0
  7. {abstractframework-0.11.4 → abstractframework-0.11.6}/docs/api.md +5 -5
  8. {abstractframework-0.11.4 → abstractframework-0.11.6}/docs/install.md +64 -24
  9. {abstractframework-0.11.4 → abstractframework-0.11.6}/docs/troubleshooting.md +23 -0
  10. {abstractframework-0.11.4 → abstractframework-0.11.6}/llms-full.txt +125 -62
  11. {abstractframework-0.11.4 → abstractframework-0.11.6}/llms.txt +3 -3
  12. {abstractframework-0.11.4 → abstractframework-0.11.6}/pyproject.toml +12 -12
  13. {abstractframework-0.11.4 → abstractframework-0.11.6}/scripts/install.sh +113 -25
  14. {abstractframework-0.11.4 → abstractframework-0.11.6}/tests/test_install_app_upgrade.py +158 -5
  15. {abstractframework-0.11.4 → abstractframework-0.11.6}/tests/test_install_ps1_gpu_stack.py +23 -2
  16. {abstractframework-0.11.4 → abstractframework-0.11.6}/tests/test_install_ps1_own_gateway.py +15 -0
  17. {abstractframework-0.11.4 → abstractframework-0.11.6}/tests/test_install_sh_gpu_stack.py +12 -3
  18. abstractframework-0.11.4/abstractframework.egg-info/requires.txt +0 -22
  19. {abstractframework-0.11.4 → abstractframework-0.11.6}/LICENSE +0 -0
  20. {abstractframework-0.11.4 → abstractframework-0.11.6}/MANIFEST.in +0 -0
  21. {abstractframework-0.11.4 → abstractframework-0.11.6}/abstractframework/__main__.py +0 -0
  22. {abstractframework-0.11.4 → abstractframework-0.11.6}/abstractframework/cli.py +0 -0
  23. {abstractframework-0.11.4 → abstractframework-0.11.6}/abstractframework/install_manifest.py +0 -0
  24. {abstractframework-0.11.4 → abstractframework-0.11.6}/abstractframework/py.typed +0 -0
  25. {abstractframework-0.11.4 → abstractframework-0.11.6}/abstractframework.egg-info/SOURCES.txt +0 -0
  26. {abstractframework-0.11.4 → abstractframework-0.11.6}/abstractframework.egg-info/dependency_links.txt +0 -0
  27. {abstractframework-0.11.4 → abstractframework-0.11.6}/abstractframework.egg-info/entry_points.txt +0 -0
  28. {abstractframework-0.11.4 → abstractframework-0.11.6}/abstractframework.egg-info/top_level.txt +0 -0
  29. {abstractframework-0.11.4 → abstractframework-0.11.6}/docs/README.md +0 -0
  30. {abstractframework-0.11.4 → abstractframework-0.11.6}/docs/adr/0001-layered-architecture.md +0 -0
  31. {abstractframework-0.11.4 → abstractframework-0.11.6}/docs/adr/0002-effect-system-design.md +0 -0
  32. {abstractframework-0.11.4 → abstractframework-0.11.6}/docs/adr/0003-tool-system-architecture.md +0 -0
  33. {abstractframework-0.11.4 → abstractframework-0.11.6}/docs/adr/0004-observability-strategy.md +0 -0
  34. {abstractframework-0.11.4 → abstractframework-0.11.6}/docs/adr/0005-memory-architecture.md +0 -0
  35. {abstractframework-0.11.4 → abstractframework-0.11.6}/docs/adr/0006-durable-tool-execution.md +0 -0
  36. {abstractframework-0.11.4 → abstractframework-0.11.6}/docs/adr/0007-active-context-and-memory-provenance.md +0 -0
  37. {abstractframework-0.11.4 → abstractframework-0.11.6}/docs/adr/0008-token-terminology.md +0 -0
  38. {abstractframework-0.11.4 → abstractframework-0.11.6}/docs/adr/0009-connected-memory-recall-and-provenance.md +0 -0
  39. {abstractframework-0.11.4 → abstractframework-0.11.6}/docs/adr/0010-runtime-owned-node-traces.md +0 -0
  40. {abstractframework-0.11.4 → abstractframework-0.11.6}/docs/adr/0011-ledger-subscriptions-and-event-bridge.md +0 -0
  41. {abstractframework-0.11.4 → abstractframework-0.11.6}/docs/adr/0012-portable-workflowartifact.md +0 -0
  42. {abstractframework-0.11.4 → abstractframework-0.11.6}/docs/adr/0013-durable-run-controls-pause-resume-cancel.md +0 -0
  43. {abstractframework-0.11.4 → abstractframework-0.11.6}/docs/adr/0014-runtime-authority-timeouts.md +0 -0
  44. {abstractframework-0.11.4 → abstractframework-0.11.6}/docs/adr/0015-execution-targets-and-remote-tool-workers.md +0 -0
  45. {abstractframework-0.11.4 → abstractframework-0.11.6}/docs/adr/0016-tool-calling-pipeline-and-responsibility-boundaries.md +0 -0
  46. {abstractframework-0.11.4 → abstractframework-0.11.6}/docs/adr/0017-host-ui-events-and-durable-prompts.md +0 -0
  47. {abstractframework-0.11.4 → abstractframework-0.11.6}/docs/adr/0018-durable-run-gateway-and-remote-host-control-plane.md +0 -0
  48. {abstractframework-0.11.4 → abstractframework-0.11.6}/docs/adr/0019-testing-strategy-and-levels.md +0 -0
  49. {abstractframework-0.11.4 → abstractframework-0.11.6}/docs/adr/0020-agent-host-pool-and-orchestrator-placement.md +0 -0
  50. {abstractframework-0.11.4 → abstractframework-0.11.6}/docs/adr/0021-deployment-topologies-and-supported-scenarios.md +0 -0
  51. {abstractframework-0.11.4 → abstractframework-0.11.6}/docs/adr/0022-orchestrator-host-and-runtime-daemonization.md +0 -0
  52. {abstractframework-0.11.4 → abstractframework-0.11.6}/docs/adr/0023-file-attachment-path-resolution-and-authorization.md +0 -0
  53. {abstractframework-0.11.4 → abstractframework-0.11.6}/docs/adr/0024-attachment-placeholders-and-compaction-invariants.md +0 -0
  54. {abstractframework-0.11.4 → abstractframework-0.11.6}/docs/adr/0025-kg-entity-normalization-and-dedup.md +0 -0
  55. {abstractframework-0.11.4 → abstractframework-0.11.6}/docs/adr/0026-truncation-policy-and-contract.md +0 -0
  56. {abstractframework-0.11.4 → abstractframework-0.11.6}/docs/adr/0027-timeout-policy-and-contract.md +0 -0
  57. {abstractframework-0.11.4 → abstractframework-0.11.6}/docs/adr/0028-capabilities-plugins-and-library-framework-modes.md +0 -0
  58. {abstractframework-0.11.4 → abstractframework-0.11.6}/docs/adr/0029-permissive-dependency-and-licensing-policy.md +0 -0
  59. {abstractframework-0.11.4 → abstractframework-0.11.6}/docs/adr/0030-security-test-fixtures-and-isolation.md +0 -0
  60. {abstractframework-0.11.4 → abstractframework-0.11.6}/docs/adr/0031-workflow-llm-routing-overrides-provider-model-and-base-url.md +0 -0
  61. {abstractframework-0.11.4 → abstractframework-0.11.6}/docs/adr/0032-package-dependency-boundaries-and-gateway-first-apps.md +0 -0
  62. {abstractframework-0.11.4 → abstractframework-0.11.6}/docs/adr/0033-install-profiles-config-entrypoints-and-server-boundaries.md +0 -0
  63. {abstractframework-0.11.4 → abstractframework-0.11.6}/docs/adr/0034-framework-release-sequence-and-gates.md +0 -0
  64. {abstractframework-0.11.4 → abstractframework-0.11.6}/docs/adr/0035-capability-routing-defaults.md +0 -0
  65. {abstractframework-0.11.4 → abstractframework-0.11.6}/docs/adr/0036-artifact-descriptor-contract.md +0 -0
  66. {abstractframework-0.11.4 → abstractframework-0.11.6}/docs/adr/0037-hosted-file-source-contract-and-workspacepath-authority.md +0 -0
  67. {abstractframework-0.11.4 → abstractframework-0.11.6}/docs/adr/0038-script-bootstrap-and-gateway-console-install.md +0 -0
  68. {abstractframework-0.11.4 → abstractframework-0.11.6}/docs/adr/README.md +0 -0
  69. {abstractframework-0.11.4 → abstractframework-0.11.6}/docs/adr/memory-recall-levels.md +0 -0
  70. {abstractframework-0.11.4 → abstractframework-0.11.6}/docs/adr/reorg/001_music_as_capability_plugin_via_acestep_api.md +0 -0
  71. {abstractframework-0.11.4 → abstractframework-0.11.6}/docs/adr/reorg/002_abstractmusic_inprocess_local_generation.md +0 -0
  72. {abstractframework-0.11.4 → abstractframework-0.11.6}/docs/adr/reorg/003_abstractmusic_acestep_v15_backend_source_strategy.md +0 -0
  73. {abstractframework-0.11.4 → abstractframework-0.11.6}/docs/adr/reorg/004_smartnote_thin_client_architecture.md +0 -0
  74. {abstractframework-0.11.4 → abstractframework-0.11.6}/docs/adr/reorg/005_smartnote_artifact_first_cards.md +0 -0
  75. {abstractframework-0.11.4 → abstractframework-0.11.6}/docs/adr/reorg/2026-02-21_gateway-first-assistant.md +0 -0
  76. {abstractframework-0.11.4 → abstractframework-0.11.6}/docs/adr/reorg/2026-02-21_installer_manager_strategy.md +0 -0
  77. {abstractframework-0.11.4 → abstractframework-0.11.6}/docs/adr/reorg/2026-02-21_macos_installer_manager.md +0 -0
  78. {abstractframework-0.11.4 → abstractframework-0.11.6}/docs/agent-sessions.md +0 -0
  79. {abstractframework-0.11.4 → abstractframework-0.11.6}/docs/architecture.md +0 -0
  80. {abstractframework-0.11.4 → abstractframework-0.11.6}/docs/automations.md +0 -0
  81. {abstractframework-0.11.4 → abstractframework-0.11.6}/docs/claude/README.md +0 -0
  82. {abstractframework-0.11.4 → abstractframework-0.11.6}/docs/claude/abstractframework-fit.md +0 -0
  83. {abstractframework-0.11.4 → abstractframework-0.11.6}/docs/claude/claude-skills-overview.md +0 -0
  84. {abstractframework-0.11.4 → abstractframework-0.11.6}/docs/claude/claude-skills-sources.md +0 -0
  85. {abstractframework-0.11.4 → abstractframework-0.11.6}/docs/claude/claude-skills-top-20.md +0 -0
  86. {abstractframework-0.11.4 → abstractframework-0.11.6}/docs/comparisons/README.md +0 -0
  87. {abstractframework-0.11.4 → abstractframework-0.11.6}/docs/configuration.md +0 -0
  88. {abstractframework-0.11.4 → abstractframework-0.11.6}/docs/faq.md +0 -0
  89. {abstractframework-0.11.4 → abstractframework-0.11.6}/docs/getting-started.md +0 -0
  90. {abstractframework-0.11.4 → abstractframework-0.11.6}/docs/glossary.md +0 -0
  91. {abstractframework-0.11.4 → abstractframework-0.11.6}/docs/guide/LANDING.md +0 -0
  92. {abstractframework-0.11.4 → abstractframework-0.11.6}/docs/guide/README.md +0 -0
  93. {abstractframework-0.11.4 → abstractframework-0.11.6}/docs/guide/agent-skills.md +0 -0
  94. {abstractframework-0.11.4 → abstractframework-0.11.6}/docs/guide/agent-vs-llm.md +0 -0
  95. {abstractframework-0.11.4 → abstractframework-0.11.6}/docs/guide/agora-workflow-agent.md +0 -0
  96. {abstractframework-0.11.4 → abstractframework-0.11.6}/docs/guide/apple-local-gateway-flow.md +0 -0
  97. {abstractframework-0.11.4 → abstractframework-0.11.6}/docs/guide/capability-plugins.md +0 -0
  98. {abstractframework-0.11.4 → abstractframework-0.11.6}/docs/guide/capability-routing-defaults.md +0 -0
  99. {abstractframework-0.11.4 → abstractframework-0.11.6}/docs/guide/deployment-iphone.md +0 -0
  100. {abstractframework-0.11.4 → abstractframework-0.11.6}/docs/guide/deployment-topologies.md +0 -0
  101. {abstractframework-0.11.4 → abstractframework-0.11.6}/docs/guide/deployment-web.md +0 -0
  102. {abstractframework-0.11.4 → abstractframework-0.11.6}/docs/guide/email-integration.md +0 -0
  103. {abstractframework-0.11.4 → abstractframework-0.11.6}/docs/guide/event-inbox-agent.md +0 -0
  104. {abstractframework-0.11.4 → abstractframework-0.11.6}/docs/guide/flow-and-kg-memory.md +0 -0
  105. {abstractframework-0.11.4 → abstractframework-0.11.6}/docs/guide/gateway-security.md +0 -0
  106. {abstractframework-0.11.4 → abstractframework-0.11.6}/docs/guide/headless-swarm.md +0 -0
  107. {abstractframework-0.11.4 → abstractframework-0.11.6}/docs/guide/process-manager-env-vars.md +0 -0
  108. {abstractframework-0.11.4 → abstractframework-0.11.6}/docs/guide/prompt-caching.md +0 -0
  109. {abstractframework-0.11.4 → abstractframework-0.11.6}/docs/guide/runtime-artifacts.md +0 -0
  110. {abstractframework-0.11.4 → abstractframework-0.11.6}/docs/guide/runtime-scope.md +0 -0
  111. {abstractframework-0.11.4 → abstractframework-0.11.6}/docs/guide/scheduled-workflows.md +0 -0
  112. {abstractframework-0.11.4 → abstractframework-0.11.6}/docs/guide/summoned-entities.md +0 -0
  113. {abstractframework-0.11.4 → abstractframework-0.11.6}/docs/guide/telegram-integration.md +0 -0
  114. {abstractframework-0.11.4 → abstractframework-0.11.6}/docs/guide/workflow-bundles.md +0 -0
  115. {abstractframework-0.11.4 → abstractframework-0.11.6}/docs/installers/README.md +0 -0
  116. {abstractframework-0.11.4 → abstractframework-0.11.6}/docs/installers/components.md +0 -0
  117. {abstractframework-0.11.4 → abstractframework-0.11.6}/docs/installers/implementation-plan.md +0 -0
  118. {abstractframework-0.11.4 → abstractframework-0.11.6}/docs/installers/operations-and-support.md +0 -0
  119. {abstractframework-0.11.4 → abstractframework-0.11.6}/docs/installers/release-and-manifest.md +0 -0
  120. {abstractframework-0.11.4 → abstractframework-0.11.6}/docs/installers/security-and-os-blocks.md +0 -0
  121. {abstractframework-0.11.4 → abstractframework-0.11.6}/docs/installers/strategy.md +0 -0
  122. {abstractframework-0.11.4 → abstractframework-0.11.6}/docs/installers/user-journeys.md +0 -0
  123. {abstractframework-0.11.4 → abstractframework-0.11.6}/docs/prompts/agora-collaboration.md +0 -0
  124. {abstractframework-0.11.4 → abstractframework-0.11.6}/docs/scenarios/README.md +0 -0
  125. {abstractframework-0.11.4 → abstractframework-0.11.6}/docs/scenarios/email-inbox-agent.md +0 -0
  126. {abstractframework-0.11.4 → abstractframework-0.11.6}/docs/scenarios/gateway-first-local-dev.md +0 -0
  127. {abstractframework-0.11.4 → abstractframework-0.11.6}/docs/scenarios/offline-coding-assistant.md +0 -0
  128. {abstractframework-0.11.4 → abstractframework-0.11.6}/docs/scenarios/phone-thin-client.md +0 -0
  129. {abstractframework-0.11.4 → abstractframework-0.11.6}/docs/scenarios/specialized-agent-flow.md +0 -0
  130. {abstractframework-0.11.4 → abstractframework-0.11.6}/docs/scenarios/telegram-permanent-contact.md +0 -0
  131. {abstractframework-0.11.4 → abstractframework-0.11.6}/docs/scenarios/workflow-bundle-lifecycle.md +0 -0
  132. {abstractframework-0.11.4 → abstractframework-0.11.6}/docs/skills/README.md +0 -0
  133. {abstractframework-0.11.4 → abstractframework-0.11.6}/docs/skills/abstractframework-agent-skills-fit.md +0 -0
  134. {abstractframework-0.11.4 → abstractframework-0.11.6}/docs/skills/abstractframework-architecture-deep-dive.md +0 -0
  135. {abstractframework-0.11.4 → abstractframework-0.11.6}/docs/skills/agent-skills-ecosystem-scan.md +0 -0
  136. {abstractframework-0.11.4 → abstractframework-0.11.6}/docs/skills/agent-skills-ecosystem-sources.md +0 -0
  137. {abstractframework-0.11.4 → abstractframework-0.11.6}/docs/skills/claude-agent-skills-overview.md +0 -0
  138. {abstractframework-0.11.4 → abstractframework-0.11.6}/docs/skills/claude-agent-skills-sources.md +0 -0
  139. {abstractframework-0.11.4 → abstractframework-0.11.6}/docs/skills/claude-agent-skills-top-20.md +0 -0
  140. {abstractframework-0.11.4 → abstractframework-0.11.6}/docs/workspace-scripts.md +0 -0
  141. {abstractframework-0.11.4 → abstractframework-0.11.6}/scripts/af-local.sh +0 -0
  142. {abstractframework-0.11.4 → abstractframework-0.11.6}/scripts/af.sh +0 -0
  143. {abstractframework-0.11.4 → abstractframework-0.11.6}/scripts/agora_react_flow_smoke.py +0 -0
  144. {abstractframework-0.11.4 → abstractframework-0.11.6}/scripts/assistant-local.sh +0 -0
  145. {abstractframework-0.11.4 → abstractframework-0.11.6}/scripts/assistant.sh +0 -0
  146. {abstractframework-0.11.4 → abstractframework-0.11.6}/scripts/build.sh +0 -0
  147. {abstractframework-0.11.4 → abstractframework-0.11.6}/scripts/cache_probe_local_backends.py +0 -0
  148. {abstractframework-0.11.4 → abstractframework-0.11.6}/scripts/cache_steer_repl.py +0 -0
  149. {abstractframework-0.11.4 → abstractframework-0.11.6}/scripts/check_identity_sync.py +0 -0
  150. {abstractframework-0.11.4 → abstractframework-0.11.6}/scripts/clone.sh +0 -0
  151. {abstractframework-0.11.4 → abstractframework-0.11.6}/scripts/code-local.sh +0 -0
  152. {abstractframework-0.11.4 → abstractframework-0.11.6}/scripts/code.sh +0 -0
  153. {abstractframework-0.11.4 → abstractframework-0.11.6}/scripts/commit.sh +0 -0
  154. {abstractframework-0.11.4 → abstractframework-0.11.6}/scripts/console-local.sh +0 -0
  155. {abstractframework-0.11.4 → abstractframework-0.11.6}/scripts/console.sh +0 -0
  156. {abstractframework-0.11.4 → abstractframework-0.11.6}/scripts/core_operator_drive.py +0 -0
  157. {abstractframework-0.11.4 → abstractframework-0.11.6}/scripts/deps.sh +0 -0
  158. {abstractframework-0.11.4 → abstractframework-0.11.6}/scripts/entity-local.sh +0 -0
  159. {abstractframework-0.11.4 → abstractframework-0.11.6}/scripts/entity.sh +0 -0
  160. {abstractframework-0.11.4 → abstractframework-0.11.6}/scripts/event_inbox_flow_smoke.py +0 -0
  161. {abstractframework-0.11.4 → abstractframework-0.11.6}/scripts/flow-local.sh +0 -0
  162. {abstractframework-0.11.4 → abstractframework-0.11.6}/scripts/flow.sh +0 -0
  163. {abstractframework-0.11.4 → abstractframework-0.11.6}/scripts/gateway-flow-local.sh +0 -0
  164. {abstractframework-0.11.4 → abstractframework-0.11.6}/scripts/gateway-flow.sh +0 -0
  165. {abstractframework-0.11.4 → abstractframework-0.11.6}/scripts/gateway-local.sh +0 -0
  166. {abstractframework-0.11.4 → abstractframework-0.11.6}/scripts/gateway.sh +0 -0
  167. {abstractframework-0.11.4 → abstractframework-0.11.6}/scripts/gen_llms_full.py +0 -0
  168. {abstractframework-0.11.4 → abstractframework-0.11.6}/scripts/headless_fleet_bridge.py +0 -0
  169. {abstractframework-0.11.4 → abstractframework-0.11.6}/scripts/headless_fleet_demo.py +0 -0
  170. {abstractframework-0.11.4 → abstractframework-0.11.6}/scripts/headless_steer_repl.py +0 -0
  171. {abstractframework-0.11.4 → abstractframework-0.11.6}/scripts/lib/af_inventory.py +0 -0
  172. {abstractframework-0.11.4 → abstractframework-0.11.6}/scripts/lib/af_stack.sh +0 -0
  173. {abstractframework-0.11.4 → abstractframework-0.11.6}/scripts/lib/af_supervisor.sh +0 -0
  174. {abstractframework-0.11.4 → abstractframework-0.11.6}/scripts/lib/apps_common.sh +0 -0
  175. {abstractframework-0.11.4 → abstractframework-0.11.6}/scripts/lib/build_macos_installer.sh +0 -0
  176. {abstractframework-0.11.4 → abstractframework-0.11.6}/scripts/lib/gateway_flags.sh +0 -0
  177. {abstractframework-0.11.4 → abstractframework-0.11.6}/scripts/lib/gateway_user_tokens.py +0 -0
  178. {abstractframework-0.11.4 → abstractframework-0.11.6}/scripts/lib/repo_groups.sh +0 -0
  179. {abstractframework-0.11.4 → abstractframework-0.11.6}/scripts/meet_castor.sh +0 -0
  180. {abstractframework-0.11.4 → abstractframework-0.11.6}/scripts/observer-local.sh +0 -0
  181. {abstractframework-0.11.4 → abstractframework-0.11.6}/scripts/observer.sh +0 -0
  182. {abstractframework-0.11.4 → abstractframework-0.11.6}/scripts/plan_walkthrough.py +0 -0
  183. {abstractframework-0.11.4 → abstractframework-0.11.6}/scripts/pull.sh +0 -0
  184. {abstractframework-0.11.4 → abstractframework-0.11.6}/scripts/push.sh +0 -0
  185. {abstractframework-0.11.4 → abstractframework-0.11.6}/scripts/spawn_demo_agent.sh +0 -0
  186. {abstractframework-0.11.4 → abstractframework-0.11.6}/scripts/start-local.sh +0 -0
  187. {abstractframework-0.11.4 → abstractframework-0.11.6}/scripts/start.sh +0 -0
  188. {abstractframework-0.11.4 → abstractframework-0.11.6}/scripts/status.sh +0 -0
  189. {abstractframework-0.11.4 → abstractframework-0.11.6}/scripts/steer_repl.py +0 -0
  190. {abstractframework-0.11.4 → abstractframework-0.11.6}/scripts/tests/test_af_supervisor.sh +0 -0
  191. {abstractframework-0.11.4 → abstractframework-0.11.6}/scripts/tests/test_install_user_path.sh +0 -0
  192. {abstractframework-0.11.4 → abstractframework-0.11.6}/scripts/tests/test_inventory.sh +0 -0
  193. {abstractframework-0.11.4 → abstractframework-0.11.6}/scripts/tests/test_repo_scripts.sh +0 -0
  194. {abstractframework-0.11.4 → abstractframework-0.11.6}/scripts/uninstall.sh +0 -0
  195. {abstractframework-0.11.4 → abstractframework-0.11.6}/scripts/visit_resume_cache_probe.py +0 -0
  196. {abstractframework-0.11.4 → abstractframework-0.11.6}/setup.cfg +0 -0
  197. {abstractframework-0.11.4 → abstractframework-0.11.6}/tests/test_gateway_launch_flags.py +0 -0
  198. {abstractframework-0.11.4 → abstractframework-0.11.6}/tests/test_install_index_lag.py +0 -0
  199. {abstractframework-0.11.4 → abstractframework-0.11.6}/tests/test_install_macos_profile.py +0 -0
  200. {abstractframework-0.11.4 → abstractframework-0.11.6}/tests/test_install_profiles.py +0 -0
  201. {abstractframework-0.11.4 → abstractframework-0.11.6}/tests/test_install_sh_gpu_twin.py +0 -0
  202. {abstractframework-0.11.4 → abstractframework-0.11.6}/tests/test_llms_full.py +0 -0
  203. {abstractframework-0.11.4 → abstractframework-0.11.6}/tests/test_uv_tool_install_atomicity.py +0 -0
@@ -2,6 +2,62 @@
2
2
 
3
3
  All notable changes to AbstractFramework will be documented in this file.
4
4
 
5
+ ## [0.11.6] - 2026-10-18
6
+
7
+ Windows fixes: a fresh Windows install works from the one-liner, with its local engines, the
8
+ console's downloads, the desktop Assistant and the command-line tools; image routes can use an
9
+ OpenAI-compatible endpoint that serves an image model. Pins **abstractcore 2.26.3**,
10
+ **abstractgateway 0.15.3**, **abstractassistant 0.14.1**, **AbstractRuntime 0.10.3** and
11
+ **abstractvision 0.3.34**; every other package is unchanged from 0.11.5.
12
+
13
+ ### Fixed
14
+
15
+ - **First install from the one-liner**: `powershell -ExecutionPolicy ByPass -c "irm https://abstractframework.ai/install.ps1 | iex"` completes on Windows PowerShell 5.1. A first install no longer stops at step [4] with `ERROR: No tools installed`. The installer runs under PowerShell's default error handling whatever the calling session sets, and gives the caller's setting back when it ends.
16
+ - **Gateway pointer**: the installer updates `%USERPROFILE%\.abstractframework\gateway.json` when the gateway has already written it, instead of warning that it could not write the pointer.
17
+ - **Browser apps step**: right after the health check, the installer gives a gateway that is still finishing its start (including `"status": "starting"`) up to about 45 seconds before it defers the app upgrades to the next start.
18
+ - **Re-runs**: the installer recognizes its own background gateway when uv's launcher starts the interpreter through the virtual environment's `python.exe`, keeps it running, and no longer reports it as started by hand.
19
+ - **Local engines on Windows (AbstractGateway 0.15.3)**: llama.cpp and Hugging Face (transformers) show as ready on a Windows gpu install instead of "Not for this computer". vLLM explains that it runs in WSL2 or on a Linux machine.
20
+ - **Workspace files on Windows (AbstractGateway 0.15.3)**: opening or downloading a file from a run's workspace works; Windows credential folders join the built-in protected folders.
21
+ - **Command-line tools on Windows** (AbstractCore 2.26.3, AbstractGateway 0.15.3, AbstractVoice 0.15.1 and later, AbstractMusic 0.1.17): `abstractcore --status`, `abstractgateway network status`, `abstractvoice tts`, `abstractmusic --help` and the other commands no longer stop with `UnicodeEncodeError` when their output is piped or redirected.
22
+ - **llama.cpp on processors without AVX-512**: llama.cpp's `cu130` Windows build is compiled with AVX-512; on a processor without it (most desktop Intel CPUs) it passed the installer's check and then ended the gateway's Python with an illegal instruction at its first GGUF model load. The installer now compares the instructions each build was compiled for with the processor's and tries `cu132` next (same CUDA 13 libraries, no AVX-512); `install.sh` puts the CPU build back on Linux in the same case. A re-run fixes an existing install.
23
+ - **Hugging Face downloads on Windows (AbstractCore 2.26.3)**: downloads from the gateway console run to the end; they stopped a second after starting with "the Hugging Face download process exited 75" (for example faster-whisper `large-v3`, the default speech-to-text model). `abstractcore models download huggingface <repo>` also completes in a cache that holds copies instead of symbolic links (Windows without Developer Mode).
24
+ - **No flashing console windows (AbstractGateway 0.15.3)**: a gateway started at login no longer opens a console window for a moment each time it runs a program such as `nvidia-smi` for the GPU meter.
25
+ - **Desktop Assistant on Windows (AbstractAssistant 0.14.1, AbstractGateway 0.15.3)**: opening the Assistant from the gateway console signs it in (its sign-in file was refused with "permissions are 0o666, not 0o600"), and it opens without an empty console window next to it.
26
+ - **Stopped tools on Windows (AbstractCore 2.26.3)**: a command or browser tool that is stopped ends every process it started.
27
+ - **Install summary on Windows** says that agents' shell commands are refused there (no command sandbox); [Install](docs/install.md#windows) lists what runs locally on Windows.
28
+
29
+ - **Image routes on OpenAI-compatible endpoints (AbstractGateway 0.15.3, AbstractVision 0.3.34, AbstractRuntime 0.10.3)**: an endpoint connection that serves an image model (for example a relay with `gpt-image-2`) is offered for text-to-image and image edits in the consoles, and a route set to it runs on that endpoint.
30
+
31
+ ### Changed
32
+
33
+ - CI runs the Windows install the way the one-liner does: a script block evaluated under `$ErrorActionPreference = 'Stop'`.
34
+
35
+ ## [0.11.5] - 2026-10-18
36
+
37
+ Pins **AbstractGateway 0.15.2** across the light, Apple and GPU profiles: the gateway stops browser apps
38
+ left running by a previous gateway run and starts the installed version, at start and on every launch or
39
+ update, and its systemd user unit stops its children with it. Pins **AbstractVoice 0.15.2**: read aloud
40
+ speaks whole sentences in one language per reply, without a pause after the first words (0.15.1: the
41
+ voice command-line tools write piped output on Windows). Other package pins are unchanged.
42
+
43
+ Installer fix: an app left running by a previous gateway run no longer keeps an older version on its
44
+ port across upgrades.
45
+
46
+ - `install.sh` and `install.ps1` tell a leftover of a previous gateway run — an "external" copy whose
47
+ process runs a program under `<data dir>/apps/`, which only the gateway puts there — from a copy
48
+ started elsewhere. The leftover is stopped (its command line checked before each signal; SIGTERM,
49
+ then SIGKILL after 20 s) and the updated install is started with `abstractgateway apps launch`;
50
+ the summary's Apps line says `leftover of a previous gateway run (<version>, pid <pid>) stopped;
51
+ <app> <version> started`. A copy that is not provably this install's is left alone and listed as
52
+ `a copy not started by this gateway` with what was checked, never as "started outside the gateway".
53
+ - The summary's closing line for app failures now says what to do for the apps (run the command on
54
+ their line, then `abstractgateway apps list`), instead of advising a re-run once the network has
55
+ caught up. See [Upgrade the apps](docs/install.md#upgrade-the-apps).
56
+ - Who is affected: anyone upgrading with the one-line installers whose gateway runs the browser apps;
57
+ most visibly Linux servers where the gateway runs as a `systemd --user` service. Gateways from
58
+ 0.15.2 on stop such leftovers themselves at start and on every launch or update; the installer's
59
+ stop covers earlier gateways.
60
+
5
61
  ## [0.11.4] - 2026-10-17
6
62
 
7
63
  Installer fix: upgrades keep the browser apps on the release. Package pins are unchanged from 0.11.3
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: abstractframework
3
- Version: 0.11.4
3
+ Version: 0.11.6
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,24 +23,24 @@ 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.1
27
- Requires-Dist: abstractassistant==0.14.0
28
- Requires-Dist: abstractcore==2.26.0
29
- Requires-Dist: AbstractRuntime==0.10.2
26
+ Requires-Dist: abstractgateway==0.15.3
27
+ Requires-Dist: abstractassistant==0.14.1
28
+ Requires-Dist: abstractcore==2.26.3
29
+ Requires-Dist: AbstractRuntime==0.10.3
30
30
  Requires-Dist: abstractagent==0.3.19
31
31
  Requires-Dist: abstractskill==0.3.0
32
32
  Requires-Dist: AbstractMemory==0.3.0
33
33
  Requires-Dist: abstractsemantics==0.0.5
34
- Requires-Dist: abstractvoice==0.15.0
35
- Requires-Dist: abstractvision==0.3.33
36
- Requires-Dist: abstractmusic==0.1.16
34
+ Requires-Dist: abstractvoice==0.15.2
35
+ Requires-Dist: abstractvision==0.3.34
36
+ Requires-Dist: abstractmusic==0.1.17
37
37
  Requires-Dist: abstract3d==0.3.2
38
38
  Provides-Extra: apple
39
- Requires-Dist: abstractgateway[apple]==0.15.1; extra == "apple"
40
- Requires-Dist: abstractassistant[apple]==0.14.0; platform_system == "Darwin" and extra == "apple"
39
+ Requires-Dist: abstractgateway[apple]==0.15.3; extra == "apple"
40
+ Requires-Dist: abstractassistant[apple]==0.14.1; platform_system == "Darwin" and extra == "apple"
41
41
  Provides-Extra: gpu
42
- Requires-Dist: abstractgateway[gpu]==0.15.1; extra == "gpu"
43
- Requires-Dist: abstractassistant[gpu]==0.14.0; extra == "gpu"
42
+ Requires-Dist: abstractgateway[gpu]==0.15.3; extra == "gpu"
43
+ Requires-Dist: abstractassistant[gpu]==0.14.1; extra == "gpu"
44
44
  Dynamic: license-file
45
45
 
46
46
  # AbstractFramework
@@ -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.1` and `ghcr.io/lpalbou/abstractcore-server:2.26.0`.
224
+ `ghcr.io/lpalbou/abstractgateway:0.15.3` and `ghcr.io/lpalbou/abstractcore-server:2.26.3`.
225
225
 
226
226
  For artifact and runtime-resource investigation, see
227
227
  [Runtime artifacts and retrieval](docs/guide/runtime-artifacts.md).
@@ -383,17 +383,17 @@ and tested together.
383
383
 
384
384
  | Registry | Package | Version |
385
385
  |---|---|---|
386
- | PyPI | `abstractgateway` | 0.15.1 |
387
- | PyPI | `abstractassistant` | 0.14.0 |
388
- | PyPI | `abstractcore` | 2.26.0 |
389
- | PyPI | `AbstractRuntime` | 0.10.2 |
386
+ | PyPI | `abstractgateway` | 0.15.3 |
387
+ | PyPI | `abstractassistant` | 0.14.1 |
388
+ | PyPI | `abstractcore` | 2.26.3 |
389
+ | PyPI | `AbstractRuntime` | 0.10.3 |
390
390
  | PyPI | `abstractagent` | 0.3.19 |
391
391
  | PyPI | `abstractskill` | 0.3.0 |
392
392
  | PyPI | `AbstractMemory` | 0.3.0 |
393
393
  | PyPI | `abstractsemantics` | 0.0.5 |
394
- | PyPI | `abstractvoice` | 0.15.0 |
395
- | PyPI | `abstractvision` | 0.3.33 |
396
- | PyPI | `abstractmusic` | 0.1.16 |
394
+ | PyPI | `abstractvoice` | 0.15.2 |
395
+ | PyPI | `abstractvision` | 0.3.34 |
396
+ | PyPI | `abstractmusic` | 0.1.17 |
397
397
  | PyPI | `abstract3d` | 0.3.2 |
398
398
  | npm | `@abstractframework/flow` | 0.10.0 |
399
399
  | npm | `@abstractframework/code` | 0.11.2 |
@@ -404,8 +404,8 @@ 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.1 (`gpu-latest` / `<version>-gpu` experimental) |
408
- | GHCR | `ghcr.io/lpalbou/abstractcore-server` | 2.26.0 |
407
+ | GHCR | `ghcr.io/lpalbou/abstractgateway` | 0.15.3 (`gpu-latest` / `<version>-gpu` experimental) |
408
+ | GHCR | `ghcr.io/lpalbou/abstractcore-server` | 2.26.3 |
409
409
 
410
410
  `abstract3d` (pinned above) comes with AbstractCore in every profile. The optional add-on that is
411
411
  not part of any profile installs separately: `pip install abstractcamera` (0.2.1). `abstractskill` (pinned above)
@@ -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.1` and `ghcr.io/lpalbou/abstractcore-server:2.26.0`.
179
+ `ghcr.io/lpalbou/abstractgateway:0.15.3` and `ghcr.io/lpalbou/abstractcore-server:2.26.3`.
180
180
 
181
181
  For artifact and runtime-resource investigation, see
182
182
  [Runtime artifacts and retrieval](docs/guide/runtime-artifacts.md).
@@ -338,17 +338,17 @@ and tested together.
338
338
 
339
339
  | Registry | Package | Version |
340
340
  |---|---|---|
341
- | PyPI | `abstractgateway` | 0.15.1 |
342
- | PyPI | `abstractassistant` | 0.14.0 |
343
- | PyPI | `abstractcore` | 2.26.0 |
344
- | PyPI | `AbstractRuntime` | 0.10.2 |
341
+ | PyPI | `abstractgateway` | 0.15.3 |
342
+ | PyPI | `abstractassistant` | 0.14.1 |
343
+ | PyPI | `abstractcore` | 2.26.3 |
344
+ | PyPI | `AbstractRuntime` | 0.10.3 |
345
345
  | PyPI | `abstractagent` | 0.3.19 |
346
346
  | PyPI | `abstractskill` | 0.3.0 |
347
347
  | PyPI | `AbstractMemory` | 0.3.0 |
348
348
  | PyPI | `abstractsemantics` | 0.0.5 |
349
- | PyPI | `abstractvoice` | 0.15.0 |
350
- | PyPI | `abstractvision` | 0.3.33 |
351
- | PyPI | `abstractmusic` | 0.1.16 |
349
+ | PyPI | `abstractvoice` | 0.15.2 |
350
+ | PyPI | `abstractvision` | 0.3.34 |
351
+ | PyPI | `abstractmusic` | 0.1.17 |
352
352
  | PyPI | `abstract3d` | 0.3.2 |
353
353
  | npm | `@abstractframework/flow` | 0.10.0 |
354
354
  | npm | `@abstractframework/code` | 0.11.2 |
@@ -359,8 +359,8 @@ 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.1 (`gpu-latest` / `<version>-gpu` experimental) |
363
- | GHCR | `ghcr.io/lpalbou/abstractcore-server` | 2.26.0 |
362
+ | GHCR | `ghcr.io/lpalbou/abstractgateway` | 0.15.3 (`gpu-latest` / `<version>-gpu` experimental) |
363
+ | GHCR | `ghcr.io/lpalbou/abstractcore-server` | 2.26.3 |
364
364
 
365
365
  `abstract3d` (pinned above) comes with AbstractCore in every profile. The optional add-on that is
366
366
  not part of any profile installs separately: `pip install abstractcamera` (0.2.1). `abstractskill` (pinned above)
@@ -10,23 +10,23 @@ Most implementation functionality still lives in component projects.
10
10
 
11
11
  from __future__ import annotations
12
12
 
13
- __version__ = "0.11.4"
13
+ __version__ = "0.11.6"
14
14
  __author__ = "Laurent-Philippe Albou"
15
15
  __license__ = "MIT"
16
16
 
17
17
  RELEASE_VERSIONS: dict[str, str] = {
18
- "abstractcore": "2.26.0",
19
- "abstractruntime": "0.10.2",
18
+ "abstractcore": "2.26.3",
19
+ "abstractruntime": "0.10.3",
20
20
  "abstractagent": "0.3.19",
21
- "abstractgateway": "0.15.1",
21
+ "abstractgateway": "0.15.3",
22
22
  "abstractskill": "0.3.0",
23
23
  "abstractmemory": "0.3.0",
24
24
  "abstractsemantics": "0.0.5",
25
- "abstractvoice": "0.15.0",
26
- "abstractvision": "0.3.33",
27
- "abstractmusic": "0.1.16",
25
+ "abstractvoice": "0.15.2",
26
+ "abstractvision": "0.3.34",
27
+ "abstractmusic": "0.1.17",
28
28
  "abstract3d": "0.3.2",
29
- "abstractassistant": "0.14.0",
29
+ "abstractassistant": "0.14.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.11.4
3
+ Version: 0.11.6
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,24 +23,24 @@ 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.1
27
- Requires-Dist: abstractassistant==0.14.0
28
- Requires-Dist: abstractcore==2.26.0
29
- Requires-Dist: AbstractRuntime==0.10.2
26
+ Requires-Dist: abstractgateway==0.15.3
27
+ Requires-Dist: abstractassistant==0.14.1
28
+ Requires-Dist: abstractcore==2.26.3
29
+ Requires-Dist: AbstractRuntime==0.10.3
30
30
  Requires-Dist: abstractagent==0.3.19
31
31
  Requires-Dist: abstractskill==0.3.0
32
32
  Requires-Dist: AbstractMemory==0.3.0
33
33
  Requires-Dist: abstractsemantics==0.0.5
34
- Requires-Dist: abstractvoice==0.15.0
35
- Requires-Dist: abstractvision==0.3.33
36
- Requires-Dist: abstractmusic==0.1.16
34
+ Requires-Dist: abstractvoice==0.15.2
35
+ Requires-Dist: abstractvision==0.3.34
36
+ Requires-Dist: abstractmusic==0.1.17
37
37
  Requires-Dist: abstract3d==0.3.2
38
38
  Provides-Extra: apple
39
- Requires-Dist: abstractgateway[apple]==0.15.1; extra == "apple"
40
- Requires-Dist: abstractassistant[apple]==0.14.0; platform_system == "Darwin" and extra == "apple"
39
+ Requires-Dist: abstractgateway[apple]==0.15.3; extra == "apple"
40
+ Requires-Dist: abstractassistant[apple]==0.14.1; platform_system == "Darwin" and extra == "apple"
41
41
  Provides-Extra: gpu
42
- Requires-Dist: abstractgateway[gpu]==0.15.1; extra == "gpu"
43
- Requires-Dist: abstractassistant[gpu]==0.14.0; extra == "gpu"
42
+ Requires-Dist: abstractgateway[gpu]==0.15.3; extra == "gpu"
43
+ Requires-Dist: abstractassistant[gpu]==0.14.1; extra == "gpu"
44
44
  Dynamic: license-file
45
45
 
46
46
  # AbstractFramework
@@ -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.1` and `ghcr.io/lpalbou/abstractcore-server:2.26.0`.
224
+ `ghcr.io/lpalbou/abstractgateway:0.15.3` and `ghcr.io/lpalbou/abstractcore-server:2.26.3`.
225
225
 
226
226
  For artifact and runtime-resource investigation, see
227
227
  [Runtime artifacts and retrieval](docs/guide/runtime-artifacts.md).
@@ -383,17 +383,17 @@ and tested together.
383
383
 
384
384
  | Registry | Package | Version |
385
385
  |---|---|---|
386
- | PyPI | `abstractgateway` | 0.15.1 |
387
- | PyPI | `abstractassistant` | 0.14.0 |
388
- | PyPI | `abstractcore` | 2.26.0 |
389
- | PyPI | `AbstractRuntime` | 0.10.2 |
386
+ | PyPI | `abstractgateway` | 0.15.3 |
387
+ | PyPI | `abstractassistant` | 0.14.1 |
388
+ | PyPI | `abstractcore` | 2.26.3 |
389
+ | PyPI | `AbstractRuntime` | 0.10.3 |
390
390
  | PyPI | `abstractagent` | 0.3.19 |
391
391
  | PyPI | `abstractskill` | 0.3.0 |
392
392
  | PyPI | `AbstractMemory` | 0.3.0 |
393
393
  | PyPI | `abstractsemantics` | 0.0.5 |
394
- | PyPI | `abstractvoice` | 0.15.0 |
395
- | PyPI | `abstractvision` | 0.3.33 |
396
- | PyPI | `abstractmusic` | 0.1.16 |
394
+ | PyPI | `abstractvoice` | 0.15.2 |
395
+ | PyPI | `abstractvision` | 0.3.34 |
396
+ | PyPI | `abstractmusic` | 0.1.17 |
397
397
  | PyPI | `abstract3d` | 0.3.2 |
398
398
  | npm | `@abstractframework/flow` | 0.10.0 |
399
399
  | npm | `@abstractframework/code` | 0.11.2 |
@@ -404,8 +404,8 @@ 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.1 (`gpu-latest` / `<version>-gpu` experimental) |
408
- | GHCR | `ghcr.io/lpalbou/abstractcore-server` | 2.26.0 |
407
+ | GHCR | `ghcr.io/lpalbou/abstractgateway` | 0.15.3 (`gpu-latest` / `<version>-gpu` experimental) |
408
+ | GHCR | `ghcr.io/lpalbou/abstractcore-server` | 2.26.3 |
409
409
 
410
410
  `abstract3d` (pinned above) comes with AbstractCore in every profile. The optional add-on that is
411
411
  not part of any profile installs separately: `pip install abstractcamera` (0.2.1). `abstractskill` (pinned above)
@@ -0,0 +1,22 @@
1
+ abstractgateway==0.15.3
2
+ abstractassistant==0.14.1
3
+ abstractcore==2.26.3
4
+ AbstractRuntime==0.10.3
5
+ abstractagent==0.3.19
6
+ abstractskill==0.3.0
7
+ AbstractMemory==0.3.0
8
+ abstractsemantics==0.0.5
9
+ abstractvoice==0.15.2
10
+ abstractvision==0.3.34
11
+ abstractmusic==0.1.17
12
+ abstract3d==0.3.2
13
+
14
+ [apple]
15
+ abstractgateway[apple]==0.15.3
16
+
17
+ [apple:platform_system == "Darwin"]
18
+ abstractassistant[apple]==0.14.1
19
+
20
+ [gpu]
21
+ abstractgateway[gpu]==0.15.3
22
+ abstractassistant[gpu]==0.14.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.11.4` for this release).
58
+ The meta-package version (`0.11.6` 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.4:
63
- `abstractcore` 2.26.0, `abstractruntime` 0.10.2, `abstractagent` 0.3.19, `abstractgateway` 0.15.1,
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.14.0.
62
+ Dictionary mapping each ecosystem package name to the pinned version for this release. In 0.11.6:
63
+ `abstractcore` 2.26.3, `abstractruntime` 0.10.3, `abstractagent` 0.3.19, `abstractgateway` 0.15.3,
64
+ `abstractskill` 0.3.0, `abstractmemory` 0.3.0, `abstractsemantics` 0.0.5, `abstractvoice` 0.15.2, `abstractvision` 0.3.34,
65
+ `abstractmusic` 0.1.17, `abstract3d` 0.3.2, `abstractassistant` 0.14.1.
66
66
 
67
67
  ### `PACKAGE_DISTRIBUTIONS`
68
68
 
@@ -80,6 +80,23 @@ browser. It asks whether to start AbstractFramework at sign-in, like the Mac and
80
80
  Enter = yes, no answer within 25 seconds (or no console to ask on) leaves it off on a first install.
81
81
  `-NoService` leaves it off and asks nothing.
82
82
 
83
+ What runs locally on Windows with the gpu profile (x86_64, NVIDIA):
84
+
85
+ | Engine | On Windows |
86
+ |---|---|
87
+ | llama.cpp (GGUF models, in the gateway) | Yes: the installer adds llama.cpp's prebuilt CUDA, Vulkan or CPU build. |
88
+ | Hugging Face Transformers | Yes, on PyTorch's CUDA build. |
89
+ | Diffusers (image generation), faster-whisper (speech to text), sentence-transformers | Yes. |
90
+ | Ollama, LM Studio | Yes: install them from the console's **Local engines** page (or `-WithOllama`, `-WithLmStudio`). |
91
+ | vLLM | No native Windows build: run it in WSL2 or on a Linux machine, and point the gateway at that server. |
92
+ | MLX | Apple silicon Macs only. |
93
+
94
+ Agents' shell commands need a sandbox, and Windows has none that the gateway supports, so the
95
+ gateway refuses those commands on Windows; every other tool works. AbstractGateway's
96
+ [security guide](https://github.com/lpalbou/AbstractGateway/blob/main/docs/security.md) explains
97
+ `abstractgateway serve --unsandboxed-commands`, which runs them with your account's own file
98
+ access, for a gateway you start yourself.
99
+
83
100
  ## If something goes wrong
84
101
 
85
102
  The installer stops at the first problem, says what happened in plain words, and says what to do.
@@ -113,7 +130,7 @@ where it stopped.
113
130
  ### Right after a release
114
131
 
115
132
  For a few minutes after a release, some of PyPI's mirrors can still serve a package list without
116
- the new versions. uv then answers `there is no version of abstractgateway==0.8.1` even though the
133
+ the new versions. uv then answers `there is no version of abstractgateway==0.15.3` even though the
117
134
  release is published. The installer (install.sh and install.ps1; the **Update** action of the
118
135
  consoles and the menu-bar icon runs install.sh on macOS and Linux, and gives the install.ps1 line to
119
136
  paste on Windows) treats that as a delay:
@@ -369,12 +386,26 @@ update restarts it on the new version. The summary's **Apps** line lists each ap
369
386
  that could not be updated is listed in red with the command to retry, and the installer exits 1. A
370
387
  fresh install installs no app: the console's **Apps** page installs them.
371
388
 
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>`).
389
+ An app's port may be held by a copy this gateway did not start. The gateway's own install is
390
+ updated all the same, and what happens to the copy depends on what it is:
391
+
392
+ - **A leftover of a previous gateway run** — the process runs a program under `<data dir>/apps/`,
393
+ which only the gateway puts there (an app that outlived a stop or restart of the gateway, for
394
+ example on a Linux server, and kept serving an older version). The installer stops it (its command
395
+ line is checked again before each signal; SIGTERM, then SIGKILL after 20 s) and starts the updated
396
+ install in its place with `abstractgateway apps launch <app>`; the **Apps** line says
397
+ `leftover of a previous gateway run (<version>, pid <pid>) stopped; <app> <version> started`. If
398
+ the leftover could not be stopped or the app did not start, the summary says so in red with the
399
+ command to run. Gateways from 0.15.2 on do this themselves at every start and on every
400
+ `apps launch` or `apps update`, so the installer's stop is only needed with an older gateway.
401
+ - **A copy not started by this gateway** — anything else (an app run by hand with `npx`, a checkout,
402
+ a process this system cannot inspect). It is left alone: the **Apps** line says `RUNNING: a copy
403
+ not started by this gateway, <version> on port <port> (pid <pid>)` and, when that copy is not at
404
+ this release's version, the summary shows it in red with what was checked and the pid to stop,
405
+ then `abstractgateway apps launch <app>`.
406
+
407
+ The summary's last line then points at the apps (`What to do for the apps: run the command given on
408
+ their line above, then check them with: abstractgateway apps list …`), not at a re-run.
378
409
 
379
410
  When no gateway answers (`--no-start` while the gateway is stopped), the installer writes the
380
411
  release's versions to `<data dir>/apps-upgrade.pending` instead, and the gateway (0.11.1 and later)
@@ -399,7 +430,7 @@ The terminal console and an `abstractcode` built by the installer are upgraded b
399
430
 
400
431
  ```bash
401
432
  abstractgateway --version # the installed gateway
402
- uv tool list --show-version-specifiers # the gateway uv tool and its pin ([required: ==0.15.1])
433
+ uv tool list --show-version-specifiers # the gateway uv tool and its pin ([required: ==0.15.3])
403
434
  abstractgateway-console --version # the terminal console
404
435
  abstractcode --version # AbstractCode's terminal client
405
436
  abstractgateway apps list # the apps: installed and latest
@@ -475,10 +506,10 @@ The Mac package, the `.command` files and the one line all run the same script,
475
506
  login** switch counts), a first install leaves it off.
476
507
  3. Installs [uv](https://docs.astral.sh/uv/) when it is missing, then Python 3.12 through uv.
477
508
  4. Installs the gateway as an isolated uv tool, pinned to this release:
478
- `uv tool install --python 3.12 "abstractgateway[<profile>,tray]==0.15.1"`, from prebuilt wheels
509
+ `uv tool install --python 3.12 "abstractgateway[<profile>,tray]==0.15.3"`, from prebuilt wheels
479
510
  only (see [No compiler needed](#no-compiler-needed)), and checks that the command starts
480
511
  (reinstalling it in place when it does not). Every profile also gets local voice,
481
- `--with "abstractvoice[supertonic,stt]==0.15.0"` (the release's AbstractVoice): Supertonic
512
+ `--with "abstractvoice[supertonic,stt]==0.15.2"` (the release's AbstractVoice): Supertonic
482
513
  text-to-speech and Whisper speech-to-text, both on CPU (skipped on musl Linux and macOS before
483
514
  13, where no wheels exist; Windows ARM64 gets Supertonic only). If those packages do not install
484
515
  on a system (for example glibc older than 2.28), the gateway is installed without them and the
@@ -636,7 +667,7 @@ What to expect on a GPU of this size:
636
667
  - **Loaded image models are reused.** After **Load** in the console (or `POST /models/load`),
637
668
  image requests run on the loaded model, and an unload frees its memory.
638
669
 
639
- Not validated: vLLM (installed, never started a model here) and the Windows gpu setting.
670
+ Not validated: vLLM (installed, never started a model here).
640
671
 
641
672
  ### GPU on Windows (NVIDIA)
642
673
 
@@ -646,7 +677,7 @@ capability, prints the stack it picks and why, and installs:
646
677
 
647
678
  | NVIDIA driver | PyTorch | llama.cpp builds tried, in order |
648
679
  |---|---|---|
649
- | 580 or newer, compute capability 7.5 or newer | CUDA 13 (`cu130`, about 1.9 GB) | `cu130`, Vulkan, CPU |
680
+ | 580 or newer, compute capability 7.5 or newer | CUDA 13 (`cu130`, about 1.9 GB) | `cu130`, `cu132`, Vulkan, CPU |
650
681
  | 525 or newer | CUDA 12 (`cu126`, about 2.5 GB) | `cu125`, Vulkan, CPU |
651
682
  | older, or no working NVIDIA GPU | PyPI's CPU build | Vulkan, CPU |
652
683
 
@@ -657,13 +688,22 @@ It announces the big downloads before they start and shows uv's output as it hap
657
688
  AbstractCore loads it and reports GPU offload, and which device faster-whisper picks. A part that
658
689
  does not work is replaced by one that does: a CUDA install that fails is retried without llama.cpp,
659
690
  then with PyTorch's CPU build; a llama.cpp build that does not load (or reports no GPU offload) is
660
- replaced by the next one, and removed when none loads. The summary's `GPU stack:`, `PyTorch:`,
691
+ replaced by the next one, and removed when none loads. A build is also replaced when it was compiled
692
+ for CPU instructions your processor lacks: llama.cpp's `cu130` build uses AVX-512, which most desktop
693
+ Intel processors do not have, so those computers get the `cu132` build. On a GPU newer than the
694
+ build's CUDA architectures (RTX 50 series), the first model load takes a minute or two while the
695
+ driver compiles the GPU code; later loads reuse it. The summary's `GPU stack:`, `PyTorch:`,
661
696
  `GGUF:` and `Whisper:` lines say what runs where, and why. vLLM (Linux only upstream) and
662
697
  stable-diffusion.cpp (a source build that needs an elevated MSVC install) are not part of the
663
- Windows gpu profile; Diffusers on PyTorch covers image and video generation.
698
+ Windows gpu profile; Diffusers on PyTorch covers image generation. Local video generation runs on
699
+ Apple silicon (MLX) only.
664
700
 
665
- The Windows gpu setting has not yet been validated on real NVIDIA hardware: the stack choice, the
666
- fallbacks and the wheel-only resolves are tested with simulated drivers (root backlog 0988).
701
+ Validated on Windows 10 22H2 with an NVIDIA GeForce RTX 5060 Ti (compute capability 12.0, driver
702
+ 617) and an Intel Core i7-5820K (no AVX-512): PyTorch 2.14.1 `cu130` on the GPU; llama.cpp 0.3.35
703
+ `cu132` with GPU offload answering a GGUF chat model; a Hugging Face (transformers) chat model on
704
+ CUDA; Diffusers text-to-image (`stabilityai/sd-turbo`, fp16 on CUDA); Supertonic text-to-speech;
705
+ and faster-whisper `large-v3` speech-to-text on CUDA. The
706
+ stack choice and its fallbacks for older drivers are tested with simulated drivers.
667
707
 
668
708
  ### Compiled extras
669
709
 
@@ -820,7 +860,7 @@ instead of starting a browser.
820
860
  ```bash
821
861
  curl -LsSf https://astral.sh/uv/install.sh | sh # Windows: irm https://astral.sh/uv/install.ps1 | iex
822
862
  uv python install 3.12
823
- uv tool install --python 3.12 "abstractgateway[tray]==0.15.1" # [apple,tray] or [gpu,tray] for local engines
863
+ uv tool install --python 3.12 "abstractgateway[tray]==0.15.3" # [apple,tray] or [gpu,tray] for local engines
824
864
  # (add --with and --overrides as shown by `install.sh --print` to avoid compiling)
825
865
  uv tool update-shell # puts ~/.local/bin on PATH; open a new terminal
826
866
  abstractgateway service install --port 8080 # or: abstractgateway serve
@@ -954,10 +994,10 @@ Python 3.11 to 3.13), but it gets PyPI's CPU-only PyTorch and no llama.cpp: use
954
994
  installer, which adds PyTorch's CUDA build and llama.cpp's prebuilt GPU build
955
995
  ([GPU on Windows](#gpu-on-windows-nvidia)).
956
996
 
957
- `abstractframework` 0.11.4 pins `abstractgateway==0.15.1`, `abstractassistant==0.14.0`,
958
- `abstractcore==2.26.0`, `AbstractRuntime==0.10.2`, `abstractagent==0.3.19`, `abstractskill==0.3.0`,
959
- `AbstractMemory==0.3.0`, `abstractsemantics==0.0.5`, `abstractvoice==0.15.0`,
960
- `abstractvision==0.3.33`, `abstractmusic==0.1.16` and `abstract3d==0.3.2`. The `apple` and `gpu` extras select
997
+ `abstractframework` 0.11.6 pins `abstractgateway==0.15.3`, `abstractassistant==0.14.1`,
998
+ `abstractcore==2.26.3`, `AbstractRuntime==0.10.3`, `abstractagent==0.3.19`, `abstractskill==0.3.0`,
999
+ `AbstractMemory==0.3.0`, `abstractsemantics==0.0.5`, `abstractvoice==0.15.2`,
1000
+ `abstractvision==0.3.34`, `abstractmusic==0.1.17` and `abstract3d==0.3.2`. The `apple` and `gpu` extras select
961
1001
  `abstractgateway[apple|gpu]` and `abstractassistant[apple|gpu]` at the same versions
962
1002
  (`abstractassistant[apple]` is installed on macOS only). `abstractframework doctor` reports any
963
1003
  installed package whose version differs from these pins.
@@ -1046,7 +1086,7 @@ Run or install them next to the Python stack:
1046
1086
  | Tool | Command | Version released with 0.11.0 |
1047
1087
  |---|---|---|
1048
1088
  | Gateway web console | built into `abstractgateway`: open the link `abstractgateway serve` prints (`http://127.0.0.1:8080/console#claim=…`) | 0.14.0 |
1049
- | Core web console | built into `abstractcore`: open the link `abstractcore serve` prints (`http://127.0.0.1:8000/console#claim=…`) | 2.26.0 |
1089
+ | Core web console | built into `abstractcore`: open the link `abstractcore serve` prints (`http://127.0.0.1:8000/console#claim=…`) | 2.26.3 |
1050
1090
  | 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.8.0 |
1051
1091
  | 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.16.0 |
1052
1092
  | Flow Editor | the console's **Apps** page (opens at `/apps/flow/`), or on its own: `npx @abstractframework/flow --gateway-url <url>` | 0.9.0 |
@@ -1097,7 +1137,7 @@ docker run \
1097
1137
  -v "$PWD/runtime:/data" \
1098
1138
  -e ABSTRACTGATEWAY_DATA_DIR=/data \
1099
1139
  -e ABSTRACTGATEWAY_USER_AUTH=1 \
1100
- ghcr.io/lpalbou/abstractgateway:0.15.1
1140
+ ghcr.io/lpalbou/abstractgateway:0.15.3
1101
1141
  ```
1102
1142
 
1103
1143
  This is the Light container: full framework capabilities through remote/endpoint inference, without
@@ -1105,7 +1145,7 @@ local MLX/CUDA stacks. On first start it creates `default/admin` and writes the
1105
1145
  `runtime/auth/bootstrap-admin-token`. Use `ghcr.io/lpalbou/abstractgateway:gpu-latest` only on an
1106
1146
  NVIDIA host when you explicitly want the local GPU profile (pinned tags are `<version>-gpu`, published on a best-effort basis; this image is
1107
1147
  experimental). The AbstractCore OpenAI-compatible server is also published as
1108
- `ghcr.io/lpalbou/abstractcore-server:2.26.0`.
1148
+ `ghcr.io/lpalbou/abstractcore-server:2.26.3`.
1109
1149
 
1110
1150
  ## How installs are designed
1111
1151
 
@@ -81,6 +81,21 @@ run the installer again: it continues where it stopped.
81
81
  - **Fix**: paste the one-liner from [Install](install.md#windows), which runs a command rather than
82
82
  a script file, or ask your administrator.
83
83
 
84
+ ### Windows: the installer stops at `[4] AbstractGateway` with `ERROR: No tools installed`
85
+
86
+ - **Cause**: the installer of AbstractFramework 0.11.3 stopped when it ran through the one-liner
87
+ on Windows PowerShell 5.1 and found no uv tool installed yet.
88
+ - **Fix**: paste the one-liner from [Install](install.md#windows) again. It always fetches the
89
+ current installer, which resumes from the uv and Python already in place.
90
+ - **Verify**: `abstractgateway --version` in a new terminal.
91
+
92
+ ### Windows: console windows flash on the desktop every few seconds
93
+
94
+ - **Cause**: an AbstractGateway older than 0.15.3 started at login (through `pythonw.exe`) opens a
95
+ console window for each program it runs, such as `nvidia-smi` for the GPU meter.
96
+ - **Fix**: paste the one-liner from [Install](install.md#windows) again, then sign out and back
97
+ in, or restart the gateway from its tray icon.
98
+
84
99
  ## Starting and signing in
85
100
 
86
101
  ### The browser page asks for a token, or the sign-in link expired
@@ -159,6 +174,14 @@ run the installer again: it continues where it stopped.
159
174
 
160
175
  ## Models and providers
161
176
 
177
+ ### Windows: a model download stops with "the Hugging Face download process exited 75"
178
+
179
+ - **Cause**: with AbstractCore older than 2.26.3, Hugging Face downloads started from the gateway
180
+ console on Windows (for example faster-whisper `large-v3`, the default speech-to-text model)
181
+ stop a second after they start.
182
+ - **Fix**: paste the one-liner from [Install](install.md#windows) again, then start the download
183
+ again from the console. Files that already finished are kept.
184
+
162
185
  ### Provider calls fail
163
186
 
164
187
  - **Check**: `abstractcore --status` for the persisted configuration, and whether a local server