abstractframework 0.6.1__tar.gz → 0.6.2__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 (192) hide show
  1. {abstractframework-0.6.1 → abstractframework-0.6.2}/CHANGELOG.md +105 -0
  2. {abstractframework-0.6.1/abstractframework.egg-info → abstractframework-0.6.2}/PKG-INFO +42 -30
  3. {abstractframework-0.6.1 → abstractframework-0.6.2}/README.md +35 -24
  4. {abstractframework-0.6.1 → abstractframework-0.6.2}/abstractframework/__init__.py +12 -15
  5. {abstractframework-0.6.1 → abstractframework-0.6.2/abstractframework.egg-info}/PKG-INFO +42 -30
  6. {abstractframework-0.6.1 → abstractframework-0.6.2}/abstractframework.egg-info/requires.txt +6 -5
  7. {abstractframework-0.6.1 → abstractframework-0.6.2}/docs/api.md +11 -7
  8. {abstractframework-0.6.1 → abstractframework-0.6.2}/docs/automations.md +1 -1
  9. {abstractframework-0.6.1 → abstractframework-0.6.2}/docs/faq.md +13 -3
  10. {abstractframework-0.6.1 → abstractframework-0.6.2}/docs/getting-started.md +43 -28
  11. {abstractframework-0.6.1 → abstractframework-0.6.2}/docs/guide/apple-local-gateway-flow.md +5 -10
  12. {abstractframework-0.6.1 → abstractframework-0.6.2}/docs/guide/scheduled-workflows.md +6 -2
  13. {abstractframework-0.6.1 → abstractframework-0.6.2}/docs/guide/summoned-entities.md +4 -4
  14. {abstractframework-0.6.1 → abstractframework-0.6.2}/docs/guide/telegram-integration.md +3 -2
  15. {abstractframework-0.6.1 → abstractframework-0.6.2}/docs/install.md +222 -22
  16. {abstractframework-0.6.1 → abstractframework-0.6.2}/docs/installers/implementation-plan.md +1 -1
  17. {abstractframework-0.6.1 → abstractframework-0.6.2}/docs/installers/strategy.md +3 -2
  18. {abstractframework-0.6.1 → abstractframework-0.6.2}/docs/installers/user-journeys.md +9 -4
  19. {abstractframework-0.6.1 → abstractframework-0.6.2}/docs/scenarios/gateway-first-local-dev.md +3 -5
  20. {abstractframework-0.6.1 → abstractframework-0.6.2}/docs/scenarios/telegram-permanent-contact.md +3 -2
  21. {abstractframework-0.6.1 → abstractframework-0.6.2}/docs/workspace-scripts.md +1 -1
  22. {abstractframework-0.6.1 → abstractframework-0.6.2}/llms-full.txt +377 -128
  23. {abstractframework-0.6.1 → abstractframework-0.6.2}/llms.txt +4 -3
  24. {abstractframework-0.6.1 → abstractframework-0.6.2}/pyproject.toml +7 -6
  25. {abstractframework-0.6.1 → abstractframework-0.6.2}/scripts/build.sh +11 -3
  26. {abstractframework-0.6.1 → abstractframework-0.6.2}/scripts/install.sh +382 -71
  27. {abstractframework-0.6.1 → abstractframework-0.6.2}/scripts/start-local.sh +2 -2
  28. {abstractframework-0.6.1 → abstractframework-0.6.2}/scripts/tests/test_install_user_path.sh +230 -6
  29. {abstractframework-0.6.1 → abstractframework-0.6.2}/scripts/tests/test_inventory.sh +16 -2
  30. {abstractframework-0.6.1 → abstractframework-0.6.2}/tests/test_install_profiles.py +204 -5
  31. {abstractframework-0.6.1 → abstractframework-0.6.2}/LICENSE +0 -0
  32. {abstractframework-0.6.1 → abstractframework-0.6.2}/MANIFEST.in +0 -0
  33. {abstractframework-0.6.1 → abstractframework-0.6.2}/abstractframework/__main__.py +0 -0
  34. {abstractframework-0.6.1 → abstractframework-0.6.2}/abstractframework/cli.py +0 -0
  35. {abstractframework-0.6.1 → abstractframework-0.6.2}/abstractframework/install_manifest.py +0 -0
  36. {abstractframework-0.6.1 → abstractframework-0.6.2}/abstractframework/py.typed +0 -0
  37. {abstractframework-0.6.1 → abstractframework-0.6.2}/abstractframework.egg-info/SOURCES.txt +0 -0
  38. {abstractframework-0.6.1 → abstractframework-0.6.2}/abstractframework.egg-info/dependency_links.txt +0 -0
  39. {abstractframework-0.6.1 → abstractframework-0.6.2}/abstractframework.egg-info/entry_points.txt +0 -0
  40. {abstractframework-0.6.1 → abstractframework-0.6.2}/abstractframework.egg-info/top_level.txt +0 -0
  41. {abstractframework-0.6.1 → abstractframework-0.6.2}/docs/README.md +0 -0
  42. {abstractframework-0.6.1 → abstractframework-0.6.2}/docs/adr/0001-layered-architecture.md +0 -0
  43. {abstractframework-0.6.1 → abstractframework-0.6.2}/docs/adr/0002-effect-system-design.md +0 -0
  44. {abstractframework-0.6.1 → abstractframework-0.6.2}/docs/adr/0003-tool-system-architecture.md +0 -0
  45. {abstractframework-0.6.1 → abstractframework-0.6.2}/docs/adr/0004-observability-strategy.md +0 -0
  46. {abstractframework-0.6.1 → abstractframework-0.6.2}/docs/adr/0005-memory-architecture.md +0 -0
  47. {abstractframework-0.6.1 → abstractframework-0.6.2}/docs/adr/0006-durable-tool-execution.md +0 -0
  48. {abstractframework-0.6.1 → abstractframework-0.6.2}/docs/adr/0007-active-context-and-memory-provenance.md +0 -0
  49. {abstractframework-0.6.1 → abstractframework-0.6.2}/docs/adr/0008-token-terminology.md +0 -0
  50. {abstractframework-0.6.1 → abstractframework-0.6.2}/docs/adr/0009-connected-memory-recall-and-provenance.md +0 -0
  51. {abstractframework-0.6.1 → abstractframework-0.6.2}/docs/adr/0010-runtime-owned-node-traces.md +0 -0
  52. {abstractframework-0.6.1 → abstractframework-0.6.2}/docs/adr/0011-ledger-subscriptions-and-event-bridge.md +0 -0
  53. {abstractframework-0.6.1 → abstractframework-0.6.2}/docs/adr/0012-portable-workflowartifact.md +0 -0
  54. {abstractframework-0.6.1 → abstractframework-0.6.2}/docs/adr/0013-durable-run-controls-pause-resume-cancel.md +0 -0
  55. {abstractframework-0.6.1 → abstractframework-0.6.2}/docs/adr/0014-runtime-authority-timeouts.md +0 -0
  56. {abstractframework-0.6.1 → abstractframework-0.6.2}/docs/adr/0015-execution-targets-and-remote-tool-workers.md +0 -0
  57. {abstractframework-0.6.1 → abstractframework-0.6.2}/docs/adr/0016-tool-calling-pipeline-and-responsibility-boundaries.md +0 -0
  58. {abstractframework-0.6.1 → abstractframework-0.6.2}/docs/adr/0017-host-ui-events-and-durable-prompts.md +0 -0
  59. {abstractframework-0.6.1 → abstractframework-0.6.2}/docs/adr/0018-durable-run-gateway-and-remote-host-control-plane.md +0 -0
  60. {abstractframework-0.6.1 → abstractframework-0.6.2}/docs/adr/0019-testing-strategy-and-levels.md +0 -0
  61. {abstractframework-0.6.1 → abstractframework-0.6.2}/docs/adr/0020-agent-host-pool-and-orchestrator-placement.md +0 -0
  62. {abstractframework-0.6.1 → abstractframework-0.6.2}/docs/adr/0021-deployment-topologies-and-supported-scenarios.md +0 -0
  63. {abstractframework-0.6.1 → abstractframework-0.6.2}/docs/adr/0022-orchestrator-host-and-runtime-daemonization.md +0 -0
  64. {abstractframework-0.6.1 → abstractframework-0.6.2}/docs/adr/0023-file-attachment-path-resolution-and-authorization.md +0 -0
  65. {abstractframework-0.6.1 → abstractframework-0.6.2}/docs/adr/0024-attachment-placeholders-and-compaction-invariants.md +0 -0
  66. {abstractframework-0.6.1 → abstractframework-0.6.2}/docs/adr/0025-kg-entity-normalization-and-dedup.md +0 -0
  67. {abstractframework-0.6.1 → abstractframework-0.6.2}/docs/adr/0026-truncation-policy-and-contract.md +0 -0
  68. {abstractframework-0.6.1 → abstractframework-0.6.2}/docs/adr/0027-timeout-policy-and-contract.md +0 -0
  69. {abstractframework-0.6.1 → abstractframework-0.6.2}/docs/adr/0028-capabilities-plugins-and-library-framework-modes.md +0 -0
  70. {abstractframework-0.6.1 → abstractframework-0.6.2}/docs/adr/0029-permissive-dependency-and-licensing-policy.md +0 -0
  71. {abstractframework-0.6.1 → abstractframework-0.6.2}/docs/adr/0030-security-test-fixtures-and-isolation.md +0 -0
  72. {abstractframework-0.6.1 → abstractframework-0.6.2}/docs/adr/0031-workflow-llm-routing-overrides-provider-model-and-base-url.md +0 -0
  73. {abstractframework-0.6.1 → abstractframework-0.6.2}/docs/adr/0032-package-dependency-boundaries-and-gateway-first-apps.md +0 -0
  74. {abstractframework-0.6.1 → abstractframework-0.6.2}/docs/adr/0033-install-profiles-config-entrypoints-and-server-boundaries.md +0 -0
  75. {abstractframework-0.6.1 → abstractframework-0.6.2}/docs/adr/0034-framework-release-sequence-and-gates.md +0 -0
  76. {abstractframework-0.6.1 → abstractframework-0.6.2}/docs/adr/0035-capability-routing-defaults.md +0 -0
  77. {abstractframework-0.6.1 → abstractframework-0.6.2}/docs/adr/0036-artifact-descriptor-contract.md +0 -0
  78. {abstractframework-0.6.1 → abstractframework-0.6.2}/docs/adr/0037-hosted-file-source-contract-and-workspacepath-authority.md +0 -0
  79. {abstractframework-0.6.1 → abstractframework-0.6.2}/docs/adr/0038-script-bootstrap-and-gateway-console-install.md +0 -0
  80. {abstractframework-0.6.1 → abstractframework-0.6.2}/docs/adr/README.md +0 -0
  81. {abstractframework-0.6.1 → abstractframework-0.6.2}/docs/adr/memory-recall-levels.md +0 -0
  82. {abstractframework-0.6.1 → abstractframework-0.6.2}/docs/adr/reorg/001_music_as_capability_plugin_via_acestep_api.md +0 -0
  83. {abstractframework-0.6.1 → abstractframework-0.6.2}/docs/adr/reorg/002_abstractmusic_inprocess_local_generation.md +0 -0
  84. {abstractframework-0.6.1 → abstractframework-0.6.2}/docs/adr/reorg/003_abstractmusic_acestep_v15_backend_source_strategy.md +0 -0
  85. {abstractframework-0.6.1 → abstractframework-0.6.2}/docs/adr/reorg/004_smartnote_thin_client_architecture.md +0 -0
  86. {abstractframework-0.6.1 → abstractframework-0.6.2}/docs/adr/reorg/005_smartnote_artifact_first_cards.md +0 -0
  87. {abstractframework-0.6.1 → abstractframework-0.6.2}/docs/adr/reorg/2026-02-21_gateway-first-assistant.md +0 -0
  88. {abstractframework-0.6.1 → abstractframework-0.6.2}/docs/adr/reorg/2026-02-21_installer_manager_strategy.md +0 -0
  89. {abstractframework-0.6.1 → abstractframework-0.6.2}/docs/adr/reorg/2026-02-21_macos_installer_manager.md +0 -0
  90. {abstractframework-0.6.1 → abstractframework-0.6.2}/docs/agent-sessions.md +0 -0
  91. {abstractframework-0.6.1 → abstractframework-0.6.2}/docs/architecture.md +0 -0
  92. {abstractframework-0.6.1 → abstractframework-0.6.2}/docs/claude/README.md +0 -0
  93. {abstractframework-0.6.1 → abstractframework-0.6.2}/docs/claude/abstractframework-fit.md +0 -0
  94. {abstractframework-0.6.1 → abstractframework-0.6.2}/docs/claude/claude-skills-overview.md +0 -0
  95. {abstractframework-0.6.1 → abstractframework-0.6.2}/docs/claude/claude-skills-sources.md +0 -0
  96. {abstractframework-0.6.1 → abstractframework-0.6.2}/docs/claude/claude-skills-top-20.md +0 -0
  97. {abstractframework-0.6.1 → abstractframework-0.6.2}/docs/comparisons/README.md +0 -0
  98. {abstractframework-0.6.1 → abstractframework-0.6.2}/docs/configuration.md +0 -0
  99. {abstractframework-0.6.1 → abstractframework-0.6.2}/docs/glossary.md +0 -0
  100. {abstractframework-0.6.1 → abstractframework-0.6.2}/docs/guide/LANDING.md +0 -0
  101. {abstractframework-0.6.1 → abstractframework-0.6.2}/docs/guide/README.md +0 -0
  102. {abstractframework-0.6.1 → abstractframework-0.6.2}/docs/guide/agent-skills.md +0 -0
  103. {abstractframework-0.6.1 → abstractframework-0.6.2}/docs/guide/agent-vs-llm.md +0 -0
  104. {abstractframework-0.6.1 → abstractframework-0.6.2}/docs/guide/agora-workflow-agent.md +0 -0
  105. {abstractframework-0.6.1 → abstractframework-0.6.2}/docs/guide/capability-plugins.md +0 -0
  106. {abstractframework-0.6.1 → abstractframework-0.6.2}/docs/guide/capability-routing-defaults.md +0 -0
  107. {abstractframework-0.6.1 → abstractframework-0.6.2}/docs/guide/deployment-iphone.md +0 -0
  108. {abstractframework-0.6.1 → abstractframework-0.6.2}/docs/guide/deployment-topologies.md +0 -0
  109. {abstractframework-0.6.1 → abstractframework-0.6.2}/docs/guide/deployment-web.md +0 -0
  110. {abstractframework-0.6.1 → abstractframework-0.6.2}/docs/guide/email-integration.md +0 -0
  111. {abstractframework-0.6.1 → abstractframework-0.6.2}/docs/guide/event-inbox-agent.md +0 -0
  112. {abstractframework-0.6.1 → abstractframework-0.6.2}/docs/guide/flow-and-kg-memory.md +0 -0
  113. {abstractframework-0.6.1 → abstractframework-0.6.2}/docs/guide/gateway-security.md +0 -0
  114. {abstractframework-0.6.1 → abstractframework-0.6.2}/docs/guide/headless-swarm.md +0 -0
  115. {abstractframework-0.6.1 → abstractframework-0.6.2}/docs/guide/process-manager-env-vars.md +0 -0
  116. {abstractframework-0.6.1 → abstractframework-0.6.2}/docs/guide/prompt-caching.md +0 -0
  117. {abstractframework-0.6.1 → abstractframework-0.6.2}/docs/guide/runtime-artifacts.md +0 -0
  118. {abstractframework-0.6.1 → abstractframework-0.6.2}/docs/guide/runtime-scope.md +0 -0
  119. {abstractframework-0.6.1 → abstractframework-0.6.2}/docs/guide/workflow-bundles.md +0 -0
  120. {abstractframework-0.6.1 → abstractframework-0.6.2}/docs/installers/README.md +0 -0
  121. {abstractframework-0.6.1 → abstractframework-0.6.2}/docs/installers/components.md +0 -0
  122. {abstractframework-0.6.1 → abstractframework-0.6.2}/docs/installers/operations-and-support.md +0 -0
  123. {abstractframework-0.6.1 → abstractframework-0.6.2}/docs/installers/release-and-manifest.md +0 -0
  124. {abstractframework-0.6.1 → abstractframework-0.6.2}/docs/installers/security-and-os-blocks.md +0 -0
  125. {abstractframework-0.6.1 → abstractframework-0.6.2}/docs/prompts/agora-collaboration.md +0 -0
  126. {abstractframework-0.6.1 → abstractframework-0.6.2}/docs/scenarios/README.md +0 -0
  127. {abstractframework-0.6.1 → abstractframework-0.6.2}/docs/scenarios/email-inbox-agent.md +0 -0
  128. {abstractframework-0.6.1 → abstractframework-0.6.2}/docs/scenarios/offline-coding-assistant.md +0 -0
  129. {abstractframework-0.6.1 → abstractframework-0.6.2}/docs/scenarios/phone-thin-client.md +0 -0
  130. {abstractframework-0.6.1 → abstractframework-0.6.2}/docs/scenarios/specialized-agent-flow.md +0 -0
  131. {abstractframework-0.6.1 → abstractframework-0.6.2}/docs/scenarios/workflow-bundle-lifecycle.md +0 -0
  132. {abstractframework-0.6.1 → abstractframework-0.6.2}/docs/skills/README.md +0 -0
  133. {abstractframework-0.6.1 → abstractframework-0.6.2}/docs/skills/abstractframework-agent-skills-fit.md +0 -0
  134. {abstractframework-0.6.1 → abstractframework-0.6.2}/docs/skills/abstractframework-architecture-deep-dive.md +0 -0
  135. {abstractframework-0.6.1 → abstractframework-0.6.2}/docs/skills/agent-skills-ecosystem-scan.md +0 -0
  136. {abstractframework-0.6.1 → abstractframework-0.6.2}/docs/skills/agent-skills-ecosystem-sources.md +0 -0
  137. {abstractframework-0.6.1 → abstractframework-0.6.2}/docs/skills/claude-agent-skills-overview.md +0 -0
  138. {abstractframework-0.6.1 → abstractframework-0.6.2}/docs/skills/claude-agent-skills-sources.md +0 -0
  139. {abstractframework-0.6.1 → abstractframework-0.6.2}/docs/skills/claude-agent-skills-top-20.md +0 -0
  140. {abstractframework-0.6.1 → abstractframework-0.6.2}/docs/troubleshooting.md +0 -0
  141. {abstractframework-0.6.1 → abstractframework-0.6.2}/scripts/af-local.sh +0 -0
  142. {abstractframework-0.6.1 → abstractframework-0.6.2}/scripts/af.sh +0 -0
  143. {abstractframework-0.6.1 → abstractframework-0.6.2}/scripts/agora_react_flow_smoke.py +0 -0
  144. {abstractframework-0.6.1 → abstractframework-0.6.2}/scripts/assistant-local.sh +0 -0
  145. {abstractframework-0.6.1 → abstractframework-0.6.2}/scripts/assistant.sh +0 -0
  146. {abstractframework-0.6.1 → abstractframework-0.6.2}/scripts/cache_probe_local_backends.py +0 -0
  147. {abstractframework-0.6.1 → abstractframework-0.6.2}/scripts/cache_steer_repl.py +0 -0
  148. {abstractframework-0.6.1 → abstractframework-0.6.2}/scripts/check_identity_sync.py +0 -0
  149. {abstractframework-0.6.1 → abstractframework-0.6.2}/scripts/clone.sh +0 -0
  150. {abstractframework-0.6.1 → abstractframework-0.6.2}/scripts/code-local.sh +0 -0
  151. {abstractframework-0.6.1 → abstractframework-0.6.2}/scripts/code.sh +0 -0
  152. {abstractframework-0.6.1 → abstractframework-0.6.2}/scripts/commit.sh +0 -0
  153. {abstractframework-0.6.1 → abstractframework-0.6.2}/scripts/console-local.sh +0 -0
  154. {abstractframework-0.6.1 → abstractframework-0.6.2}/scripts/console.sh +0 -0
  155. {abstractframework-0.6.1 → abstractframework-0.6.2}/scripts/core_operator_drive.py +0 -0
  156. {abstractframework-0.6.1 → abstractframework-0.6.2}/scripts/deps.sh +0 -0
  157. {abstractframework-0.6.1 → abstractframework-0.6.2}/scripts/entity-local.sh +0 -0
  158. {abstractframework-0.6.1 → abstractframework-0.6.2}/scripts/entity.sh +0 -0
  159. {abstractframework-0.6.1 → abstractframework-0.6.2}/scripts/event_inbox_flow_smoke.py +0 -0
  160. {abstractframework-0.6.1 → abstractframework-0.6.2}/scripts/flow-local.sh +0 -0
  161. {abstractframework-0.6.1 → abstractframework-0.6.2}/scripts/flow.sh +0 -0
  162. {abstractframework-0.6.1 → abstractframework-0.6.2}/scripts/gateway-flow-local.sh +0 -0
  163. {abstractframework-0.6.1 → abstractframework-0.6.2}/scripts/gateway-flow.sh +0 -0
  164. {abstractframework-0.6.1 → abstractframework-0.6.2}/scripts/gateway-local.sh +0 -0
  165. {abstractframework-0.6.1 → abstractframework-0.6.2}/scripts/gateway.sh +0 -0
  166. {abstractframework-0.6.1 → abstractframework-0.6.2}/scripts/gen_llms_full.py +0 -0
  167. {abstractframework-0.6.1 → abstractframework-0.6.2}/scripts/headless_fleet_bridge.py +0 -0
  168. {abstractframework-0.6.1 → abstractframework-0.6.2}/scripts/headless_fleet_demo.py +0 -0
  169. {abstractframework-0.6.1 → abstractframework-0.6.2}/scripts/headless_steer_repl.py +0 -0
  170. {abstractframework-0.6.1 → abstractframework-0.6.2}/scripts/lib/af_inventory.py +0 -0
  171. {abstractframework-0.6.1 → abstractframework-0.6.2}/scripts/lib/af_stack.sh +0 -0
  172. {abstractframework-0.6.1 → abstractframework-0.6.2}/scripts/lib/af_supervisor.sh +0 -0
  173. {abstractframework-0.6.1 → abstractframework-0.6.2}/scripts/lib/apps_common.sh +0 -0
  174. {abstractframework-0.6.1 → abstractframework-0.6.2}/scripts/lib/build_macos_installer.sh +0 -0
  175. {abstractframework-0.6.1 → abstractframework-0.6.2}/scripts/lib/gateway_user_tokens.py +0 -0
  176. {abstractframework-0.6.1 → abstractframework-0.6.2}/scripts/lib/repo_groups.sh +0 -0
  177. {abstractframework-0.6.1 → abstractframework-0.6.2}/scripts/meet_castor.sh +0 -0
  178. {abstractframework-0.6.1 → abstractframework-0.6.2}/scripts/observer-local.sh +0 -0
  179. {abstractframework-0.6.1 → abstractframework-0.6.2}/scripts/observer.sh +0 -0
  180. {abstractframework-0.6.1 → abstractframework-0.6.2}/scripts/plan_walkthrough.py +0 -0
  181. {abstractframework-0.6.1 → abstractframework-0.6.2}/scripts/pull.sh +0 -0
  182. {abstractframework-0.6.1 → abstractframework-0.6.2}/scripts/push.sh +0 -0
  183. {abstractframework-0.6.1 → abstractframework-0.6.2}/scripts/spawn_demo_agent.sh +0 -0
  184. {abstractframework-0.6.1 → abstractframework-0.6.2}/scripts/start.sh +0 -0
  185. {abstractframework-0.6.1 → abstractframework-0.6.2}/scripts/status.sh +0 -0
  186. {abstractframework-0.6.1 → abstractframework-0.6.2}/scripts/steer_repl.py +0 -0
  187. {abstractframework-0.6.1 → abstractframework-0.6.2}/scripts/tests/test_af_supervisor.sh +0 -0
  188. {abstractframework-0.6.1 → abstractframework-0.6.2}/scripts/tests/test_repo_scripts.sh +0 -0
  189. {abstractframework-0.6.1 → abstractframework-0.6.2}/scripts/uninstall.sh +0 -0
  190. {abstractframework-0.6.1 → abstractframework-0.6.2}/scripts/visit_resume_cache_probe.py +0 -0
  191. {abstractframework-0.6.1 → abstractframework-0.6.2}/setup.cfg +0 -0
  192. {abstractframework-0.6.1 → abstractframework-0.6.2}/tests/test_llms_full.py +0 -0
@@ -4,6 +4,111 @@ All notable changes to AbstractFramework will be documented in this file.
4
4
 
5
5
  ## [Unreleased]
6
6
 
7
+ ## [0.6.2] - 2026-09-29
8
+
9
+ One line installs, upgrades and repairs AbstractFramework, and **Update** in the consoles and the
10
+ menu-bar icon runs that same line. Pins: AbstractGateway 0.7.2, AbstractCore 2.19.0,
11
+ AbstractVision 0.3.31, Abstract3D 0.3.1 (new in the matrix: AbstractCore now installs it) and the
12
+ terminal consoles `abstractgateway-console` 0.11.1 and
13
+ `abstractcore-console` 0.4.1; every other version is unchanged from 0.6.1.
14
+
15
+ ### Changed
16
+
17
+ - **One line installs, upgrades and repairs.** Re-running the install line (or double-clicking
18
+ **Install AbstractFramework.command** again) finds the existing install and says what it does:
19
+ `AbstractFramework <yours> found: upgrading to AbstractFramework <latest>` or `already up to
20
+ date` for installs from 0.6.2 on, which record their release. An install made by 0.6.1 or
21
+ earlier recorded none, so its first upgrade says `AbstractFramework found (abstractgateway 0.7.1;
22
+ its release was not recorded): upgrading to AbstractFramework 0.6.2`.
23
+ The summary lists what changed, old -> new, under **Changes**, and ends with `Upgraded: …` or
24
+ `Already up to date: …; nothing changed.` `install.ps1` does the same on Windows. See
25
+ [Upgrade](docs/install.md#upgrade).
26
+ - **Update in the web console, the terminal console and the menu-bar icon runs the installer**
27
+ (AbstractGateway 0.7.2). For an install made by the AbstractFramework installer, the check
28
+ compares your AbstractFramework release with the latest one, and **Update** runs the latest
29
+ `install.sh` with `--no-start`. Before you confirm, it shows the installer's address, commit,
30
+ sha256 and the exact command. The result says what moved and offers the restart, says
31
+ **already up to date**, or shows why it didn't finish. On Windows, the check shows the PowerShell
32
+ line to paste. See [From the console or the menu-bar icon](docs/install.md#from-the-console-or-the-menu-bar-icon).
33
+ - **Your install options are remembered.** A re-run keeps the profile, port, start at login, a
34
+ custom `--data-dir`, and `--no-console`, `--no-code-cli`, `--no-core-cli`, `--no-tray` and
35
+ `--full`, and says which ones it kept. `--with-console`, `--with-code-cli`, `--with-core-cli`,
36
+ `--with-tray` and `--no-full` (Windows: `-WithConsole`, `-WithCodeCli`, `-WithCoreCli`,
37
+ `-WithTray`, `-NoFull`) turn one back.
38
+ - **The libraries land on the release's tested versions.** The installer installs AbstractCore,
39
+ AbstractRuntime, AbstractAgent, AbstractSkill, AbstractMemory, AbstractSemantics and the voice,
40
+ vision, music and 3D packages at exactly the versions of the AbstractFramework release, not only at
41
+ the gateway's minimums. `--print-versions` (`-PrintVersions`) lists the release and that matrix.
42
+ `--pin latest` still installs the newest gateway and libraries, and records no release.
43
+ - **The gateway restarts whenever anything changed**, a library alone included: the macOS login
44
+ item through launchd, a running Linux `systemd --user` service with `systemctl --user restart`,
45
+ and a background gateway by starting it again. On Windows the installer stops the gateway before
46
+ it changes any file and starts it again afterwards. AbstractGateway 0.7.2 fixes the macOS
47
+ `5: Input/output error` when the login item is replaced: it waits until launchd has removed the
48
+ previous job and retries. When the login item cannot be registered, the gateway starts in the
49
+ background instead, so an upgrade never leaves it stopped.
50
+ - **Upgrading from 0.6.1 or earlier.** Those installs did not record their options, so the first
51
+ re-run reads them from what is installed (the terminal console, `abstractcode`, the tray extra,
52
+ the AbstractCore commands, a `--full` build, a custom data directory through the gateway
53
+ pointer), says what it found and records it; you can also repeat your options once. The Update
54
+ button of AbstractGateway 0.7.1 and earlier cannot upgrade an installer install: re-run the line
55
+ once. See [Upgrading from 0.6.1 or earlier](docs/install.md#upgrading-from-061-or-earlier).
56
+ - **`--no-start` (`-NoStart`)** upgrades without starting or restarting the gateway and says when a
57
+ restart is due. It keeps this install's port even when a program the installer did not start
58
+ holds it.
59
+ - **One installer at a time.** A second installer for the same data directory (the line re-run
60
+ while a console's Update runs, or the other way round) stops with `another AbstractFramework
61
+ installer is already running` and changes nothing. The lock of an interrupted run is taken over
62
+ by the next one.
63
+ - **Install AbstractFramework.command runs the latest installer** from GitHub, so double-clicking
64
+ it again upgrades. It uses the copy it came with only when GitHub cannot be reached, and says so.
65
+ - **`--pin latest` (`-Pin latest`) upgrades an existing install** with the same profile, voice and
66
+ llama.cpp setup (`uv tool install --upgrade`), and the summary's upgrade lines give the commands
67
+ that work.
68
+ - **AbstractCore has three install settings** (AbstractCore 2.19.0): `pip install abstractcore`
69
+ (light: every remote provider, the built-in tools, media inputs, the server and console, and the
70
+ voice, vision, music and 3D plugins with their remote backends; about 600 MB for AbstractCore
71
+ alone in a fresh Python 3.12 environment), `pip install
72
+ "abstractcore[apple]"` (adds every local engine an Apple silicon Mac runs) and `pip install
73
+ "abstractcore[gpu]"` (adds every local engine an NVIDIA or AMD machine runs). The earlier extra
74
+ names still install as deprecated aliases; see AbstractCore's
75
+ [Installation](https://github.com/lpalbou/abstractcore/blob/main/docs/installation.md#deprecated-aliases).
76
+ `abstract3d` now comes with AbstractCore in every profile, pinned at 0.3.1.
77
+ - **Recommendations for every capability** (AbstractCore 2.19.0).
78
+ `abstractcore models recommendations` shows the recommended model for text, image input, speech
79
+ output, speech input, image, video and music on every kind of machine (`--host`: this one), with
80
+ the engine, the download size, the memory need and whether it fits. On Apple silicon the fit
81
+ estimate follows the measured GPU memory limit (about 75% of unified memory by default). The text
82
+ tiers are unchanged: Qwen3.5 9B below 24 GB (on an 8 GB Mac it reads as tight, with a small context), Qwen3.8 27B
83
+ from 24 GB, Qwen3.8 Flash-Next from 128 GB. A model that runs only with a small context, such as
84
+ Qwen3.8 27B on a 24 GB Mac, says so and prints the `sudo sysctl iogpu.wired_limit_mb=…` command
85
+ that gives it more (20480 on 24 GB, 114688 for Flash-Next on 128 GB); nothing runs it for you.
86
+ The recommended image model is memory-gated: on an 8 GB Mac the gateway's first-run guide shows
87
+ it as not available here, with the reason, and a saved image or video route that does not fit is
88
+ flagged. See AbstractCore's
89
+ [Recommended models](https://github.com/lpalbou/abstractcore/blob/main/docs/recommended-models.md).
90
+ - **Faster video by default** (AbstractVision 0.3.31). Each Wan2.2 model has its own
91
+ speed-oriented default size: 832x480 (TI2V-5B: 121 frames at 24 fps; T2V-A14B and I2V-A14B: 81
92
+ frames at 16 fps), and the video is decoded in overlapping tiles, so the decode no longer sets the
93
+ memory peak. Measured on Apple silicon (MLX peaks at 832x480 with tiled decode), TI2V-5B needs
94
+ about 16.3 GiB for text-to-video and 16.6 GiB for image-to-video (about 60 GiB at the previous
95
+ 1280x704 default), so the recommended video route is written on Macs with 32 GB of unified memory
96
+ or more, and a 24 GB Mac is told the GPU memory limit that makes it fit. T2V-A14B and I2V-A14B
97
+ (about 38.3 and 38.4 GiB, measured) fit a 48 GB Mac once its GPU memory limit is raised. Pass `width`, `height`, `num_frames`, `fps` and `steps` for
98
+ another size. The memory figures are AbstractVision/mlx-gen's measurements (the engine keeps the
99
+ text encoder and VAE in memory), not the model's own requirement.
100
+ - **Left and Right switch screens in both terminal consoles** (`abstractgateway-console` 0.11.1,
101
+ `abstractcore-console` 0.4.1): the previous or next screen in browse mode, wrapping at both ends,
102
+ like `Ctrl+P` / `Ctrl+N`. A focused element that uses the arrows keeps them: a text field moves
103
+ its caret, a list or tabs bar changes its selection, a dialog keeps every key, and a focused
104
+ scrolling pane scrolls.
105
+
106
+ ### Documentation
107
+
108
+ - **[Upgrade](docs/install.md#upgrade)**: upgrading everything, the gateway only, from the consoles
109
+ or the menu-bar icon, restarting the gateway, upgrading the apps and checking versions. README and
110
+ Getting started lead with an **Install** section: the Mac package and the one-line commands.
111
+
7
112
  ## [0.6.1] - 2026-09-28
8
113
 
9
114
  Every terminal command lands on your PATH, AbstractCode's terminal client says how to sign in, and
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: abstractframework
3
- Version: 0.6.1
3
+ Version: 0.6.2
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,22 +23,23 @@ 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.7.1
26
+ Requires-Dist: abstractgateway==0.7.2
27
27
  Requires-Dist: abstractassistant==0.9.1
28
- Requires-Dist: abstractcore==2.18.0
28
+ Requires-Dist: abstractcore==2.19.0
29
29
  Requires-Dist: AbstractRuntime==0.7.1
30
30
  Requires-Dist: abstractagent==0.3.17
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
34
  Requires-Dist: abstractvoice==0.13.0
35
- Requires-Dist: abstractvision==0.3.30
35
+ Requires-Dist: abstractvision==0.3.31
36
36
  Requires-Dist: abstractmusic==0.1.15
37
+ Requires-Dist: abstract3d==0.3.1
37
38
  Provides-Extra: apple
38
- Requires-Dist: abstractgateway[apple]==0.7.1; extra == "apple"
39
+ Requires-Dist: abstractgateway[apple]==0.7.2; extra == "apple"
39
40
  Requires-Dist: abstractassistant[apple]==0.9.1; platform_system == "Darwin" and extra == "apple"
40
41
  Provides-Extra: gpu
41
- Requires-Dist: abstractgateway[gpu]==0.7.1; extra == "gpu"
42
+ Requires-Dist: abstractgateway[gpu]==0.7.2; extra == "gpu"
42
43
  Requires-Dist: abstractassistant[gpu]==0.9.1; extra == "gpu"
43
44
  Dynamic: license-file
44
45
 
@@ -61,17 +62,7 @@ Think of it as an **agentic OS**: durable runs + replay-first observability + mu
61
62
 
62
63
  ---
63
64
 
64
- ## Quick start
65
-
66
- The installer sets up the gateway in your user account (no admin password, no system Python),
67
- with local voice (Supertonic text-to-speech and Whisper speech-to-text), asks whether to start it
68
- at login (Enter = yes; an unattended install leaves it off and says how to turn it on), starts it
69
- on `127.0.0.1:8080`, and opens its web console in your browser already signed in. A first-run guide
70
- then sets up a local engine (Ollama, LM Studio, MLX, llama.cpp), downloads a model that fits your
71
- machine, and lists the apps; the gateway serves them on its own address at `/apps/<app>/`. The
72
- installer also builds the terminal console, `abstractgateway-console`, which runs the same guide on
73
- a server without a browser and offers itself at the end of an install over SSH
74
- ([Headless or remote machine](docs/install.md#headless-or-remote-machine)).
65
+ ## Install
75
66
 
76
67
  - **Mac, no Terminal:** download and double-click
77
68
  [AbstractFramework-Installer.pkg](https://github.com/lpalbou/AbstractFramework/releases/latest/download/AbstractFramework-Installer.pkg).
@@ -90,7 +81,25 @@ a server without a browser and offers itself at the end of an install over SSH
90
81
  powershell -ExecutionPolicy ByPass -c "irm https://raw.githubusercontent.com/lpalbou/AbstractFramework/main/scripts/install.ps1 | iex"
91
82
  ```
92
83
 
93
- Every failure says what to do next; running the installer again repairs or upgrades in place. To
84
+ To upgrade, run the same line again (on a Mac, double-clicking **Install AbstractFramework.command**
85
+ again does the same), or, on macOS and Linux, press **Update** in the web console, the terminal console or the menu-bar
86
+ icon: each runs the same installer, which installs the latest AbstractFramework release, keeps your
87
+ settings, options and data, and lists what changed. Coming from 0.6.1 or earlier, re-run the line
88
+ once: it reads your earlier options from what is installed (or repeat them once), and the Update
89
+ button of gateway 0.7.1 cannot upgrade. Gateway only, apps, and version checks:
90
+ [Upgrade](docs/install.md#upgrade).
91
+
92
+ The installer sets up the gateway in your user account (no admin password, no system Python),
93
+ with local voice (Supertonic text-to-speech and Whisper speech-to-text), asks whether to start it
94
+ at login (Enter = yes; an unattended install leaves it off and says how to turn it on), starts it
95
+ on `127.0.0.1:8080`, and opens its web console in your browser already signed in. A first-run guide
96
+ then sets up a local engine (Ollama, LM Studio, MLX, llama.cpp), downloads a model that fits your
97
+ machine, and lists the apps; the gateway serves them on its own address at `/apps/<app>/`. The
98
+ installer also builds the terminal console, `abstractgateway-console`, which runs the same guide on
99
+ a server without a browser and offers itself at the end of an install over SSH
100
+ ([Headless or remote machine](docs/install.md#headless-or-remote-machine)).
101
+
102
+ Every failure says what to do next; running the installer again repairs the install in place. To
94
103
  remove it, double-click `Uninstall AbstractFramework.command` (in
95
104
  `~/Library/Application Support/AbstractFramework/Installer` after a package install), or run
96
105
  `curl -LsSf https://raw.githubusercontent.com/lpalbou/AbstractFramework/main/scripts/uninstall.sh | sh`.
@@ -125,7 +134,9 @@ Start here if you need a lightweight LLM library for scripts, notebooks, or exis
125
134
  - Multimodal via capability plugins (Voice, Vision, Music)
126
135
 
127
136
  ```bash
128
- pip install abstractcore
137
+ pip install abstractcore # light: every remote provider (OpenAI, Anthropic, OpenRouter, Ollama, LM Studio, ...)
138
+ pip install "abstractcore[apple]" # + the local engines of an Apple silicon Mac (MLX, voice, image, video, music)
139
+ pip install "abstractcore[gpu]" # + the local engines of an NVIDIA or AMD machine (vLLM, voice, image, video, music)
129
140
  ```
130
141
 
131
142
  ```python
@@ -198,7 +209,7 @@ abstractgateway-console --gateway-url http://127.0.0.1:8080 --token <admin token
198
209
  ```
199
210
 
200
211
  Container images are published for the gateway and the AbstractCore server:
201
- `ghcr.io/lpalbou/abstractgateway:0.7.1` and `ghcr.io/lpalbou/abstractcore-server:2.18.0`.
212
+ `ghcr.io/lpalbou/abstractgateway:0.7.2` and `ghcr.io/lpalbou/abstractcore-server:2.19.0`.
202
213
 
203
214
  For artifact and runtime-resource investigation, see
204
215
  [Runtime artifacts and retrieval](docs/guide/runtime-artifacts.md).
@@ -344,7 +355,7 @@ pip install "abstractframework[gpu]"
344
355
  | Apple | `pip install "abstractframework[apple]"` | macOS 14+ on Apple Silicon | 3.10–3.13 (F5-TTS voice cloning needs 3.11+) |
345
356
  | GPU | `pip install "abstractframework[gpu]"` | Linux / Windows with a CUDA or ROCm GPU | 3.10–3.13 (F5-TTS voice cloning needs 3.11+) |
346
357
 
347
- ### Release matrix (abstractframework 0.6.1)
358
+ ### Release matrix (abstractframework 0.6.2)
348
359
 
349
360
  `abstractframework` pins every Python package with `==`, so one version of the
350
361
  meta-package always installs the same stack. The browser apps and Rust tools are
@@ -353,31 +364,32 @@ and tested together.
353
364
 
354
365
  | Registry | Package | Version |
355
366
  |---|---|---|
356
- | PyPI | `abstractgateway` | 0.7.1 |
367
+ | PyPI | `abstractgateway` | 0.7.2 |
357
368
  | PyPI | `abstractassistant` | 0.9.1 |
358
- | PyPI | `abstractcore` | 2.18.0 |
369
+ | PyPI | `abstractcore` | 2.19.0 |
359
370
  | PyPI | `AbstractRuntime` | 0.7.1 |
360
371
  | PyPI | `abstractagent` | 0.3.17 |
361
372
  | PyPI | `abstractskill` | 0.3.0 |
362
373
  | PyPI | `AbstractMemory` | 0.3.0 |
363
374
  | PyPI | `abstractsemantics` | 0.0.5 |
364
375
  | PyPI | `abstractvoice` | 0.13.0 |
365
- | PyPI | `abstractvision` | 0.3.30 |
376
+ | PyPI | `abstractvision` | 0.3.31 |
366
377
  | PyPI | `abstractmusic` | 0.1.15 |
378
+ | PyPI | `abstract3d` | 0.3.1 |
367
379
  | npm | `@abstractframework/flow` | 0.4.0 |
368
380
  | npm | `@abstractframework/code` | 0.6.1 |
369
381
  | npm | `@abstractframework/observer` | 0.2.1 |
370
382
  | npm | `@abstractframework/continuum` | 0.4.0 |
371
383
  | npm | `@abstractframework/entity` | 0.3.0 |
372
384
  | crates.io | `abstractcode` | 0.7.1 |
373
- | crates.io | `abstractgateway-console` | 0.11.0 |
374
- | crates.io | `abstractcore-console` | 0.4.0 |
385
+ | crates.io | `abstractgateway-console` | 0.11.1 |
386
+ | crates.io | `abstractcore-console` | 0.4.1 |
375
387
  | crates.io | `abstracttui` | 0.6.0 |
376
- | GHCR | `ghcr.io/lpalbou/abstractgateway` | 0.7.1 (`gpu-latest` / `<version>-gpu` experimental) |
377
- | GHCR | `ghcr.io/lpalbou/abstractcore-server` | 2.18.0 |
388
+ | GHCR | `ghcr.io/lpalbou/abstractgateway` | 0.7.2 (`gpu-latest` / `<version>-gpu` experimental) |
389
+ | GHCR | `ghcr.io/lpalbou/abstractcore-server` | 2.19.0 |
378
390
 
379
- Optional add-ons that are not part of any profile install separately:
380
- `pip install abstract3d` (0.3.1) and `pip install abstractcamera` (0.2.0). `abstractskill` (pinned above)
391
+ `abstract3d` (pinned above) comes with AbstractCore in every profile. The optional add-on that is
392
+ not part of any profile installs separately: `pip install abstractcamera` (0.2.0). `abstractskill` (pinned above)
381
393
  comes with the gateway, which carries its curated skill shelf; install it on its own with
382
394
  `pip install abstractskill`.
383
395
 
@@ -17,17 +17,7 @@ Think of it as an **agentic OS**: durable runs + replay-first observability + mu
17
17
 
18
18
  ---
19
19
 
20
- ## Quick start
21
-
22
- The installer sets up the gateway in your user account (no admin password, no system Python),
23
- with local voice (Supertonic text-to-speech and Whisper speech-to-text), asks whether to start it
24
- at login (Enter = yes; an unattended install leaves it off and says how to turn it on), starts it
25
- on `127.0.0.1:8080`, and opens its web console in your browser already signed in. A first-run guide
26
- then sets up a local engine (Ollama, LM Studio, MLX, llama.cpp), downloads a model that fits your
27
- machine, and lists the apps; the gateway serves them on its own address at `/apps/<app>/`. The
28
- installer also builds the terminal console, `abstractgateway-console`, which runs the same guide on
29
- a server without a browser and offers itself at the end of an install over SSH
30
- ([Headless or remote machine](docs/install.md#headless-or-remote-machine)).
20
+ ## Install
31
21
 
32
22
  - **Mac, no Terminal:** download and double-click
33
23
  [AbstractFramework-Installer.pkg](https://github.com/lpalbou/AbstractFramework/releases/latest/download/AbstractFramework-Installer.pkg).
@@ -46,7 +36,25 @@ a server without a browser and offers itself at the end of an install over SSH
46
36
  powershell -ExecutionPolicy ByPass -c "irm https://raw.githubusercontent.com/lpalbou/AbstractFramework/main/scripts/install.ps1 | iex"
47
37
  ```
48
38
 
49
- Every failure says what to do next; running the installer again repairs or upgrades in place. To
39
+ To upgrade, run the same line again (on a Mac, double-clicking **Install AbstractFramework.command**
40
+ again does the same), or, on macOS and Linux, press **Update** in the web console, the terminal console or the menu-bar
41
+ icon: each runs the same installer, which installs the latest AbstractFramework release, keeps your
42
+ settings, options and data, and lists what changed. Coming from 0.6.1 or earlier, re-run the line
43
+ once: it reads your earlier options from what is installed (or repeat them once), and the Update
44
+ button of gateway 0.7.1 cannot upgrade. Gateway only, apps, and version checks:
45
+ [Upgrade](docs/install.md#upgrade).
46
+
47
+ The installer sets up the gateway in your user account (no admin password, no system Python),
48
+ with local voice (Supertonic text-to-speech and Whisper speech-to-text), asks whether to start it
49
+ at login (Enter = yes; an unattended install leaves it off and says how to turn it on), starts it
50
+ on `127.0.0.1:8080`, and opens its web console in your browser already signed in. A first-run guide
51
+ then sets up a local engine (Ollama, LM Studio, MLX, llama.cpp), downloads a model that fits your
52
+ machine, and lists the apps; the gateway serves them on its own address at `/apps/<app>/`. The
53
+ installer also builds the terminal console, `abstractgateway-console`, which runs the same guide on
54
+ a server without a browser and offers itself at the end of an install over SSH
55
+ ([Headless or remote machine](docs/install.md#headless-or-remote-machine)).
56
+
57
+ Every failure says what to do next; running the installer again repairs the install in place. To
50
58
  remove it, double-click `Uninstall AbstractFramework.command` (in
51
59
  `~/Library/Application Support/AbstractFramework/Installer` after a package install), or run
52
60
  `curl -LsSf https://raw.githubusercontent.com/lpalbou/AbstractFramework/main/scripts/uninstall.sh | sh`.
@@ -81,7 +89,9 @@ Start here if you need a lightweight LLM library for scripts, notebooks, or exis
81
89
  - Multimodal via capability plugins (Voice, Vision, Music)
82
90
 
83
91
  ```bash
84
- pip install abstractcore
92
+ pip install abstractcore # light: every remote provider (OpenAI, Anthropic, OpenRouter, Ollama, LM Studio, ...)
93
+ pip install "abstractcore[apple]" # + the local engines of an Apple silicon Mac (MLX, voice, image, video, music)
94
+ pip install "abstractcore[gpu]" # + the local engines of an NVIDIA or AMD machine (vLLM, voice, image, video, music)
85
95
  ```
86
96
 
87
97
  ```python
@@ -154,7 +164,7 @@ abstractgateway-console --gateway-url http://127.0.0.1:8080 --token <admin token
154
164
  ```
155
165
 
156
166
  Container images are published for the gateway and the AbstractCore server:
157
- `ghcr.io/lpalbou/abstractgateway:0.7.1` and `ghcr.io/lpalbou/abstractcore-server:2.18.0`.
167
+ `ghcr.io/lpalbou/abstractgateway:0.7.2` and `ghcr.io/lpalbou/abstractcore-server:2.19.0`.
158
168
 
159
169
  For artifact and runtime-resource investigation, see
160
170
  [Runtime artifacts and retrieval](docs/guide/runtime-artifacts.md).
@@ -300,7 +310,7 @@ pip install "abstractframework[gpu]"
300
310
  | Apple | `pip install "abstractframework[apple]"` | macOS 14+ on Apple Silicon | 3.10–3.13 (F5-TTS voice cloning needs 3.11+) |
301
311
  | GPU | `pip install "abstractframework[gpu]"` | Linux / Windows with a CUDA or ROCm GPU | 3.10–3.13 (F5-TTS voice cloning needs 3.11+) |
302
312
 
303
- ### Release matrix (abstractframework 0.6.1)
313
+ ### Release matrix (abstractframework 0.6.2)
304
314
 
305
315
  `abstractframework` pins every Python package with `==`, so one version of the
306
316
  meta-package always installs the same stack. The browser apps and Rust tools are
@@ -309,31 +319,32 @@ and tested together.
309
319
 
310
320
  | Registry | Package | Version |
311
321
  |---|---|---|
312
- | PyPI | `abstractgateway` | 0.7.1 |
322
+ | PyPI | `abstractgateway` | 0.7.2 |
313
323
  | PyPI | `abstractassistant` | 0.9.1 |
314
- | PyPI | `abstractcore` | 2.18.0 |
324
+ | PyPI | `abstractcore` | 2.19.0 |
315
325
  | PyPI | `AbstractRuntime` | 0.7.1 |
316
326
  | PyPI | `abstractagent` | 0.3.17 |
317
327
  | PyPI | `abstractskill` | 0.3.0 |
318
328
  | PyPI | `AbstractMemory` | 0.3.0 |
319
329
  | PyPI | `abstractsemantics` | 0.0.5 |
320
330
  | PyPI | `abstractvoice` | 0.13.0 |
321
- | PyPI | `abstractvision` | 0.3.30 |
331
+ | PyPI | `abstractvision` | 0.3.31 |
322
332
  | PyPI | `abstractmusic` | 0.1.15 |
333
+ | PyPI | `abstract3d` | 0.3.1 |
323
334
  | npm | `@abstractframework/flow` | 0.4.0 |
324
335
  | npm | `@abstractframework/code` | 0.6.1 |
325
336
  | npm | `@abstractframework/observer` | 0.2.1 |
326
337
  | npm | `@abstractframework/continuum` | 0.4.0 |
327
338
  | npm | `@abstractframework/entity` | 0.3.0 |
328
339
  | crates.io | `abstractcode` | 0.7.1 |
329
- | crates.io | `abstractgateway-console` | 0.11.0 |
330
- | crates.io | `abstractcore-console` | 0.4.0 |
340
+ | crates.io | `abstractgateway-console` | 0.11.1 |
341
+ | crates.io | `abstractcore-console` | 0.4.1 |
331
342
  | crates.io | `abstracttui` | 0.6.0 |
332
- | GHCR | `ghcr.io/lpalbou/abstractgateway` | 0.7.1 (`gpu-latest` / `<version>-gpu` experimental) |
333
- | GHCR | `ghcr.io/lpalbou/abstractcore-server` | 2.18.0 |
343
+ | GHCR | `ghcr.io/lpalbou/abstractgateway` | 0.7.2 (`gpu-latest` / `<version>-gpu` experimental) |
344
+ | GHCR | `ghcr.io/lpalbou/abstractcore-server` | 2.19.0 |
334
345
 
335
- Optional add-ons that are not part of any profile install separately:
336
- `pip install abstract3d` (0.3.1) and `pip install abstractcamera` (0.2.0). `abstractskill` (pinned above)
346
+ `abstract3d` (pinned above) comes with AbstractCore in every profile. The optional add-on that is
347
+ not part of any profile installs separately: `pip install abstractcamera` (0.2.0). `abstractskill` (pinned above)
337
348
  comes with the gateway, which carries its curated skill shelf; install it on its own with
338
349
  `pip install abstractskill`.
339
350
 
@@ -10,21 +10,22 @@ Most implementation functionality still lives in component projects.
10
10
 
11
11
  from __future__ import annotations
12
12
 
13
- __version__ = "0.6.1"
13
+ __version__ = "0.6.2"
14
14
  __author__ = "Laurent-Philippe Albou"
15
15
  __license__ = "MIT"
16
16
 
17
17
  RELEASE_VERSIONS: dict[str, str] = {
18
- "abstractcore": "2.18.0",
18
+ "abstractcore": "2.19.0",
19
19
  "abstractruntime": "0.7.1",
20
20
  "abstractagent": "0.3.17",
21
- "abstractgateway": "0.7.1",
21
+ "abstractgateway": "0.7.2",
22
22
  "abstractskill": "0.3.0",
23
23
  "abstractmemory": "0.3.0",
24
24
  "abstractsemantics": "0.0.5",
25
25
  "abstractvoice": "0.13.0",
26
- "abstractvision": "0.3.30",
26
+ "abstractvision": "0.3.31",
27
27
  "abstractmusic": "0.1.15",
28
+ "abstract3d": "0.3.1",
28
29
  "abstractassistant": "0.9.1",
29
30
  }
30
31
 
@@ -39,6 +40,7 @@ PACKAGE_DISTRIBUTIONS: dict[str, str] = {
39
40
  "abstractvoice": "abstractvoice",
40
41
  "abstractvision": "abstractvision",
41
42
  "abstractmusic": "abstractmusic",
43
+ "abstract3d": "abstract3d",
42
44
  "abstractassistant": "abstractassistant",
43
45
  }
44
46
 
@@ -53,21 +55,16 @@ NPM_RELEASE_VERSIONS: dict[str, str] = {
53
55
  # Terminal tools published on crates.io alongside this release (installed with `cargo install`,
54
56
  # or by the bootstrap scripts: the gateway console and abstractcode by default).
55
57
  CRATE_RELEASE_VERSIONS: dict[str, str] = {
56
- "abstractgateway-console": "0.11.0",
57
- "abstractcore-console": "0.4.0",
58
+ "abstractgateway-console": "0.11.1",
59
+ "abstractcore-console": "0.4.1",
58
60
  "abstractcode": "0.7.1",
59
61
  "abstracttui": "0.6.0",
60
62
  }
61
63
 
62
- CORE_DEFAULT_EXTRAS = [
63
- "remote",
64
- "tools",
65
- "media",
66
- "vision",
67
- "voice",
68
- "audio",
69
- "music",
70
- ]
64
+ # The light profile installs plain `abstractcore` (no extra): AbstractCore's light setting already
65
+ # carries every remote provider, the tools, media and the capability plugins. The apple and gpu
66
+ # profiles get AbstractCore's local engines through the gateway's profile.
67
+ CORE_DEFAULT_EXTRAS: list[str] = []
71
68
 
72
69
  # Convenience re-exports (AbstractCore is a base dependency of this meta-package).
73
70
  # Keep this import lightweight: do not import optional tool/media deps here.
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: abstractframework
3
- Version: 0.6.1
3
+ Version: 0.6.2
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,22 +23,23 @@ 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.7.1
26
+ Requires-Dist: abstractgateway==0.7.2
27
27
  Requires-Dist: abstractassistant==0.9.1
28
- Requires-Dist: abstractcore==2.18.0
28
+ Requires-Dist: abstractcore==2.19.0
29
29
  Requires-Dist: AbstractRuntime==0.7.1
30
30
  Requires-Dist: abstractagent==0.3.17
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
34
  Requires-Dist: abstractvoice==0.13.0
35
- Requires-Dist: abstractvision==0.3.30
35
+ Requires-Dist: abstractvision==0.3.31
36
36
  Requires-Dist: abstractmusic==0.1.15
37
+ Requires-Dist: abstract3d==0.3.1
37
38
  Provides-Extra: apple
38
- Requires-Dist: abstractgateway[apple]==0.7.1; extra == "apple"
39
+ Requires-Dist: abstractgateway[apple]==0.7.2; extra == "apple"
39
40
  Requires-Dist: abstractassistant[apple]==0.9.1; platform_system == "Darwin" and extra == "apple"
40
41
  Provides-Extra: gpu
41
- Requires-Dist: abstractgateway[gpu]==0.7.1; extra == "gpu"
42
+ Requires-Dist: abstractgateway[gpu]==0.7.2; extra == "gpu"
42
43
  Requires-Dist: abstractassistant[gpu]==0.9.1; extra == "gpu"
43
44
  Dynamic: license-file
44
45
 
@@ -61,17 +62,7 @@ Think of it as an **agentic OS**: durable runs + replay-first observability + mu
61
62
 
62
63
  ---
63
64
 
64
- ## Quick start
65
-
66
- The installer sets up the gateway in your user account (no admin password, no system Python),
67
- with local voice (Supertonic text-to-speech and Whisper speech-to-text), asks whether to start it
68
- at login (Enter = yes; an unattended install leaves it off and says how to turn it on), starts it
69
- on `127.0.0.1:8080`, and opens its web console in your browser already signed in. A first-run guide
70
- then sets up a local engine (Ollama, LM Studio, MLX, llama.cpp), downloads a model that fits your
71
- machine, and lists the apps; the gateway serves them on its own address at `/apps/<app>/`. The
72
- installer also builds the terminal console, `abstractgateway-console`, which runs the same guide on
73
- a server without a browser and offers itself at the end of an install over SSH
74
- ([Headless or remote machine](docs/install.md#headless-or-remote-machine)).
65
+ ## Install
75
66
 
76
67
  - **Mac, no Terminal:** download and double-click
77
68
  [AbstractFramework-Installer.pkg](https://github.com/lpalbou/AbstractFramework/releases/latest/download/AbstractFramework-Installer.pkg).
@@ -90,7 +81,25 @@ a server without a browser and offers itself at the end of an install over SSH
90
81
  powershell -ExecutionPolicy ByPass -c "irm https://raw.githubusercontent.com/lpalbou/AbstractFramework/main/scripts/install.ps1 | iex"
91
82
  ```
92
83
 
93
- Every failure says what to do next; running the installer again repairs or upgrades in place. To
84
+ To upgrade, run the same line again (on a Mac, double-clicking **Install AbstractFramework.command**
85
+ again does the same), or, on macOS and Linux, press **Update** in the web console, the terminal console or the menu-bar
86
+ icon: each runs the same installer, which installs the latest AbstractFramework release, keeps your
87
+ settings, options and data, and lists what changed. Coming from 0.6.1 or earlier, re-run the line
88
+ once: it reads your earlier options from what is installed (or repeat them once), and the Update
89
+ button of gateway 0.7.1 cannot upgrade. Gateway only, apps, and version checks:
90
+ [Upgrade](docs/install.md#upgrade).
91
+
92
+ The installer sets up the gateway in your user account (no admin password, no system Python),
93
+ with local voice (Supertonic text-to-speech and Whisper speech-to-text), asks whether to start it
94
+ at login (Enter = yes; an unattended install leaves it off and says how to turn it on), starts it
95
+ on `127.0.0.1:8080`, and opens its web console in your browser already signed in. A first-run guide
96
+ then sets up a local engine (Ollama, LM Studio, MLX, llama.cpp), downloads a model that fits your
97
+ machine, and lists the apps; the gateway serves them on its own address at `/apps/<app>/`. The
98
+ installer also builds the terminal console, `abstractgateway-console`, which runs the same guide on
99
+ a server without a browser and offers itself at the end of an install over SSH
100
+ ([Headless or remote machine](docs/install.md#headless-or-remote-machine)).
101
+
102
+ Every failure says what to do next; running the installer again repairs the install in place. To
94
103
  remove it, double-click `Uninstall AbstractFramework.command` (in
95
104
  `~/Library/Application Support/AbstractFramework/Installer` after a package install), or run
96
105
  `curl -LsSf https://raw.githubusercontent.com/lpalbou/AbstractFramework/main/scripts/uninstall.sh | sh`.
@@ -125,7 +134,9 @@ Start here if you need a lightweight LLM library for scripts, notebooks, or exis
125
134
  - Multimodal via capability plugins (Voice, Vision, Music)
126
135
 
127
136
  ```bash
128
- pip install abstractcore
137
+ pip install abstractcore # light: every remote provider (OpenAI, Anthropic, OpenRouter, Ollama, LM Studio, ...)
138
+ pip install "abstractcore[apple]" # + the local engines of an Apple silicon Mac (MLX, voice, image, video, music)
139
+ pip install "abstractcore[gpu]" # + the local engines of an NVIDIA or AMD machine (vLLM, voice, image, video, music)
129
140
  ```
130
141
 
131
142
  ```python
@@ -198,7 +209,7 @@ abstractgateway-console --gateway-url http://127.0.0.1:8080 --token <admin token
198
209
  ```
199
210
 
200
211
  Container images are published for the gateway and the AbstractCore server:
201
- `ghcr.io/lpalbou/abstractgateway:0.7.1` and `ghcr.io/lpalbou/abstractcore-server:2.18.0`.
212
+ `ghcr.io/lpalbou/abstractgateway:0.7.2` and `ghcr.io/lpalbou/abstractcore-server:2.19.0`.
202
213
 
203
214
  For artifact and runtime-resource investigation, see
204
215
  [Runtime artifacts and retrieval](docs/guide/runtime-artifacts.md).
@@ -344,7 +355,7 @@ pip install "abstractframework[gpu]"
344
355
  | Apple | `pip install "abstractframework[apple]"` | macOS 14+ on Apple Silicon | 3.10–3.13 (F5-TTS voice cloning needs 3.11+) |
345
356
  | GPU | `pip install "abstractframework[gpu]"` | Linux / Windows with a CUDA or ROCm GPU | 3.10–3.13 (F5-TTS voice cloning needs 3.11+) |
346
357
 
347
- ### Release matrix (abstractframework 0.6.1)
358
+ ### Release matrix (abstractframework 0.6.2)
348
359
 
349
360
  `abstractframework` pins every Python package with `==`, so one version of the
350
361
  meta-package always installs the same stack. The browser apps and Rust tools are
@@ -353,31 +364,32 @@ and tested together.
353
364
 
354
365
  | Registry | Package | Version |
355
366
  |---|---|---|
356
- | PyPI | `abstractgateway` | 0.7.1 |
367
+ | PyPI | `abstractgateway` | 0.7.2 |
357
368
  | PyPI | `abstractassistant` | 0.9.1 |
358
- | PyPI | `abstractcore` | 2.18.0 |
369
+ | PyPI | `abstractcore` | 2.19.0 |
359
370
  | PyPI | `AbstractRuntime` | 0.7.1 |
360
371
  | PyPI | `abstractagent` | 0.3.17 |
361
372
  | PyPI | `abstractskill` | 0.3.0 |
362
373
  | PyPI | `AbstractMemory` | 0.3.0 |
363
374
  | PyPI | `abstractsemantics` | 0.0.5 |
364
375
  | PyPI | `abstractvoice` | 0.13.0 |
365
- | PyPI | `abstractvision` | 0.3.30 |
376
+ | PyPI | `abstractvision` | 0.3.31 |
366
377
  | PyPI | `abstractmusic` | 0.1.15 |
378
+ | PyPI | `abstract3d` | 0.3.1 |
367
379
  | npm | `@abstractframework/flow` | 0.4.0 |
368
380
  | npm | `@abstractframework/code` | 0.6.1 |
369
381
  | npm | `@abstractframework/observer` | 0.2.1 |
370
382
  | npm | `@abstractframework/continuum` | 0.4.0 |
371
383
  | npm | `@abstractframework/entity` | 0.3.0 |
372
384
  | crates.io | `abstractcode` | 0.7.1 |
373
- | crates.io | `abstractgateway-console` | 0.11.0 |
374
- | crates.io | `abstractcore-console` | 0.4.0 |
385
+ | crates.io | `abstractgateway-console` | 0.11.1 |
386
+ | crates.io | `abstractcore-console` | 0.4.1 |
375
387
  | crates.io | `abstracttui` | 0.6.0 |
376
- | GHCR | `ghcr.io/lpalbou/abstractgateway` | 0.7.1 (`gpu-latest` / `<version>-gpu` experimental) |
377
- | GHCR | `ghcr.io/lpalbou/abstractcore-server` | 2.18.0 |
388
+ | GHCR | `ghcr.io/lpalbou/abstractgateway` | 0.7.2 (`gpu-latest` / `<version>-gpu` experimental) |
389
+ | GHCR | `ghcr.io/lpalbou/abstractcore-server` | 2.19.0 |
378
390
 
379
- Optional add-ons that are not part of any profile install separately:
380
- `pip install abstract3d` (0.3.1) and `pip install abstractcamera` (0.2.0). `abstractskill` (pinned above)
391
+ `abstract3d` (pinned above) comes with AbstractCore in every profile. The optional add-on that is
392
+ not part of any profile installs separately: `pip install abstractcamera` (0.2.0). `abstractskill` (pinned above)
381
393
  comes with the gateway, which carries its curated skill shelf; install it on its own with
382
394
  `pip install abstractskill`.
383
395
 
@@ -1,21 +1,22 @@
1
- abstractgateway==0.7.1
1
+ abstractgateway==0.7.2
2
2
  abstractassistant==0.9.1
3
- abstractcore==2.18.0
3
+ abstractcore==2.19.0
4
4
  AbstractRuntime==0.7.1
5
5
  abstractagent==0.3.17
6
6
  abstractskill==0.3.0
7
7
  AbstractMemory==0.3.0
8
8
  abstractsemantics==0.0.5
9
9
  abstractvoice==0.13.0
10
- abstractvision==0.3.30
10
+ abstractvision==0.3.31
11
11
  abstractmusic==0.1.15
12
+ abstract3d==0.3.1
12
13
 
13
14
  [apple]
14
- abstractgateway[apple]==0.7.1
15
+ abstractgateway[apple]==0.7.2
15
16
 
16
17
  [apple:platform_system == "Darwin"]
17
18
  abstractassistant[apple]==0.9.1
18
19
 
19
20
  [gpu]
20
- abstractgateway[gpu]==0.7.1
21
+ abstractgateway[gpu]==0.7.2
21
22
  abstractassistant[gpu]==0.9.1