abstractframework 0.2.1__tar.gz → 0.3.1__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 (187) hide show
  1. {abstractframework-0.2.1 → abstractframework-0.3.1}/CHANGELOG.md +132 -0
  2. {abstractframework-0.2.1/abstractframework.egg-info → abstractframework-0.3.1}/PKG-INFO +38 -31
  3. {abstractframework-0.2.1 → abstractframework-0.3.1}/README.md +32 -25
  4. {abstractframework-0.2.1 → abstractframework-0.3.1}/abstractframework/__init__.py +7 -7
  5. {abstractframework-0.2.1 → abstractframework-0.3.1/abstractframework.egg-info}/PKG-INFO +38 -31
  6. {abstractframework-0.2.1 → abstractframework-0.3.1}/abstractframework.egg-info/SOURCES.txt +3 -0
  7. {abstractframework-0.2.1 → abstractframework-0.3.1}/abstractframework.egg-info/requires.txt +5 -5
  8. {abstractframework-0.2.1 → abstractframework-0.3.1}/docs/api.md +5 -5
  9. {abstractframework-0.2.1 → abstractframework-0.3.1}/docs/faq.md +6 -4
  10. {abstractframework-0.2.1 → abstractframework-0.3.1}/docs/getting-started.md +15 -10
  11. {abstractframework-0.2.1 → abstractframework-0.3.1}/docs/glossary.md +1 -1
  12. {abstractframework-0.2.1 → abstractframework-0.3.1}/docs/install.md +178 -57
  13. {abstractframework-0.2.1 → abstractframework-0.3.1}/docs/installers/implementation-plan.md +1 -1
  14. {abstractframework-0.2.1 → abstractframework-0.3.1}/docs/installers/strategy.md +2 -2
  15. {abstractframework-0.2.1 → abstractframework-0.3.1}/llms-full.txt +252 -115
  16. {abstractframework-0.2.1 → abstractframework-0.3.1}/llms.txt +2 -2
  17. {abstractframework-0.2.1 → abstractframework-0.3.1}/pyproject.toml +6 -6
  18. {abstractframework-0.2.1 → abstractframework-0.3.1}/scripts/console.sh +1 -1
  19. {abstractframework-0.2.1 → abstractframework-0.3.1}/scripts/entity.sh +1 -1
  20. {abstractframework-0.2.1 → abstractframework-0.3.1}/scripts/install.sh +377 -51
  21. abstractframework-0.3.1/scripts/lib/build_macos_installer.sh +179 -0
  22. abstractframework-0.3.1/scripts/tests/test_install_user_path.sh +259 -0
  23. abstractframework-0.3.1/scripts/uninstall.sh +85 -0
  24. {abstractframework-0.2.1 → abstractframework-0.3.1}/tests/test_install_profiles.py +158 -33
  25. {abstractframework-0.2.1 → abstractframework-0.3.1}/LICENSE +0 -0
  26. {abstractframework-0.2.1 → abstractframework-0.3.1}/MANIFEST.in +0 -0
  27. {abstractframework-0.2.1 → abstractframework-0.3.1}/abstractframework/__main__.py +0 -0
  28. {abstractframework-0.2.1 → abstractframework-0.3.1}/abstractframework/cli.py +0 -0
  29. {abstractframework-0.2.1 → abstractframework-0.3.1}/abstractframework/install_manifest.py +0 -0
  30. {abstractframework-0.2.1 → abstractframework-0.3.1}/abstractframework/py.typed +0 -0
  31. {abstractframework-0.2.1 → abstractframework-0.3.1}/abstractframework.egg-info/dependency_links.txt +0 -0
  32. {abstractframework-0.2.1 → abstractframework-0.3.1}/abstractframework.egg-info/entry_points.txt +0 -0
  33. {abstractframework-0.2.1 → abstractframework-0.3.1}/abstractframework.egg-info/top_level.txt +0 -0
  34. {abstractframework-0.2.1 → abstractframework-0.3.1}/docs/README.md +0 -0
  35. {abstractframework-0.2.1 → abstractframework-0.3.1}/docs/adr/0001-layered-architecture.md +0 -0
  36. {abstractframework-0.2.1 → abstractframework-0.3.1}/docs/adr/0002-effect-system-design.md +0 -0
  37. {abstractframework-0.2.1 → abstractframework-0.3.1}/docs/adr/0003-tool-system-architecture.md +0 -0
  38. {abstractframework-0.2.1 → abstractframework-0.3.1}/docs/adr/0004-observability-strategy.md +0 -0
  39. {abstractframework-0.2.1 → abstractframework-0.3.1}/docs/adr/0005-memory-architecture.md +0 -0
  40. {abstractframework-0.2.1 → abstractframework-0.3.1}/docs/adr/0006-durable-tool-execution.md +0 -0
  41. {abstractframework-0.2.1 → abstractframework-0.3.1}/docs/adr/0007-active-context-and-memory-provenance.md +0 -0
  42. {abstractframework-0.2.1 → abstractframework-0.3.1}/docs/adr/0008-token-terminology.md +0 -0
  43. {abstractframework-0.2.1 → abstractframework-0.3.1}/docs/adr/0009-connected-memory-recall-and-provenance.md +0 -0
  44. {abstractframework-0.2.1 → abstractframework-0.3.1}/docs/adr/0010-runtime-owned-node-traces.md +0 -0
  45. {abstractframework-0.2.1 → abstractframework-0.3.1}/docs/adr/0011-ledger-subscriptions-and-event-bridge.md +0 -0
  46. {abstractframework-0.2.1 → abstractframework-0.3.1}/docs/adr/0012-portable-workflowartifact.md +0 -0
  47. {abstractframework-0.2.1 → abstractframework-0.3.1}/docs/adr/0013-durable-run-controls-pause-resume-cancel.md +0 -0
  48. {abstractframework-0.2.1 → abstractframework-0.3.1}/docs/adr/0014-runtime-authority-timeouts.md +0 -0
  49. {abstractframework-0.2.1 → abstractframework-0.3.1}/docs/adr/0015-execution-targets-and-remote-tool-workers.md +0 -0
  50. {abstractframework-0.2.1 → abstractframework-0.3.1}/docs/adr/0016-tool-calling-pipeline-and-responsibility-boundaries.md +0 -0
  51. {abstractframework-0.2.1 → abstractframework-0.3.1}/docs/adr/0017-host-ui-events-and-durable-prompts.md +0 -0
  52. {abstractframework-0.2.1 → abstractframework-0.3.1}/docs/adr/0018-durable-run-gateway-and-remote-host-control-plane.md +0 -0
  53. {abstractframework-0.2.1 → abstractframework-0.3.1}/docs/adr/0019-testing-strategy-and-levels.md +0 -0
  54. {abstractframework-0.2.1 → abstractframework-0.3.1}/docs/adr/0020-agent-host-pool-and-orchestrator-placement.md +0 -0
  55. {abstractframework-0.2.1 → abstractframework-0.3.1}/docs/adr/0021-deployment-topologies-and-supported-scenarios.md +0 -0
  56. {abstractframework-0.2.1 → abstractframework-0.3.1}/docs/adr/0022-orchestrator-host-and-runtime-daemonization.md +0 -0
  57. {abstractframework-0.2.1 → abstractframework-0.3.1}/docs/adr/0023-file-attachment-path-resolution-and-authorization.md +0 -0
  58. {abstractframework-0.2.1 → abstractframework-0.3.1}/docs/adr/0024-attachment-placeholders-and-compaction-invariants.md +0 -0
  59. {abstractframework-0.2.1 → abstractframework-0.3.1}/docs/adr/0025-kg-entity-normalization-and-dedup.md +0 -0
  60. {abstractframework-0.2.1 → abstractframework-0.3.1}/docs/adr/0026-truncation-policy-and-contract.md +0 -0
  61. {abstractframework-0.2.1 → abstractframework-0.3.1}/docs/adr/0027-timeout-policy-and-contract.md +0 -0
  62. {abstractframework-0.2.1 → abstractframework-0.3.1}/docs/adr/0028-capabilities-plugins-and-library-framework-modes.md +0 -0
  63. {abstractframework-0.2.1 → abstractframework-0.3.1}/docs/adr/0029-permissive-dependency-and-licensing-policy.md +0 -0
  64. {abstractframework-0.2.1 → abstractframework-0.3.1}/docs/adr/0030-security-test-fixtures-and-isolation.md +0 -0
  65. {abstractframework-0.2.1 → abstractframework-0.3.1}/docs/adr/0031-workflow-llm-routing-overrides-provider-model-and-base-url.md +0 -0
  66. {abstractframework-0.2.1 → abstractframework-0.3.1}/docs/adr/0032-package-dependency-boundaries-and-gateway-first-apps.md +0 -0
  67. {abstractframework-0.2.1 → abstractframework-0.3.1}/docs/adr/0033-install-profiles-config-entrypoints-and-server-boundaries.md +0 -0
  68. {abstractframework-0.2.1 → abstractframework-0.3.1}/docs/adr/0034-framework-release-sequence-and-gates.md +0 -0
  69. {abstractframework-0.2.1 → abstractframework-0.3.1}/docs/adr/0035-capability-routing-defaults.md +0 -0
  70. {abstractframework-0.2.1 → abstractframework-0.3.1}/docs/adr/0036-artifact-descriptor-contract.md +0 -0
  71. {abstractframework-0.2.1 → abstractframework-0.3.1}/docs/adr/0037-hosted-file-source-contract-and-workspacepath-authority.md +0 -0
  72. {abstractframework-0.2.1 → abstractframework-0.3.1}/docs/adr/0038-script-bootstrap-and-gateway-console-install.md +0 -0
  73. {abstractframework-0.2.1 → abstractframework-0.3.1}/docs/adr/README.md +0 -0
  74. {abstractframework-0.2.1 → abstractframework-0.3.1}/docs/adr/memory-recall-levels.md +0 -0
  75. {abstractframework-0.2.1 → abstractframework-0.3.1}/docs/adr/reorg/001_music_as_capability_plugin_via_acestep_api.md +0 -0
  76. {abstractframework-0.2.1 → abstractframework-0.3.1}/docs/adr/reorg/002_abstractmusic_inprocess_local_generation.md +0 -0
  77. {abstractframework-0.2.1 → abstractframework-0.3.1}/docs/adr/reorg/003_abstractmusic_acestep_v15_backend_source_strategy.md +0 -0
  78. {abstractframework-0.2.1 → abstractframework-0.3.1}/docs/adr/reorg/004_smartnote_thin_client_architecture.md +0 -0
  79. {abstractframework-0.2.1 → abstractframework-0.3.1}/docs/adr/reorg/005_smartnote_artifact_first_cards.md +0 -0
  80. {abstractframework-0.2.1 → abstractframework-0.3.1}/docs/adr/reorg/2026-02-21_gateway-first-assistant.md +0 -0
  81. {abstractframework-0.2.1 → abstractframework-0.3.1}/docs/adr/reorg/2026-02-21_installer_manager_strategy.md +0 -0
  82. {abstractframework-0.2.1 → abstractframework-0.3.1}/docs/adr/reorg/2026-02-21_macos_installer_manager.md +0 -0
  83. {abstractframework-0.2.1 → abstractframework-0.3.1}/docs/architecture.md +0 -0
  84. {abstractframework-0.2.1 → abstractframework-0.3.1}/docs/claude/README.md +0 -0
  85. {abstractframework-0.2.1 → abstractframework-0.3.1}/docs/claude/abstractframework-fit.md +0 -0
  86. {abstractframework-0.2.1 → abstractframework-0.3.1}/docs/claude/claude-skills-overview.md +0 -0
  87. {abstractframework-0.2.1 → abstractframework-0.3.1}/docs/claude/claude-skills-sources.md +0 -0
  88. {abstractframework-0.2.1 → abstractframework-0.3.1}/docs/claude/claude-skills-top-20.md +0 -0
  89. {abstractframework-0.2.1 → abstractframework-0.3.1}/docs/comparisons/README.md +0 -0
  90. {abstractframework-0.2.1 → abstractframework-0.3.1}/docs/configuration.md +0 -0
  91. {abstractframework-0.2.1 → abstractframework-0.3.1}/docs/guide/LANDING.md +0 -0
  92. {abstractframework-0.2.1 → abstractframework-0.3.1}/docs/guide/README.md +0 -0
  93. {abstractframework-0.2.1 → abstractframework-0.3.1}/docs/guide/agent-skills.md +0 -0
  94. {abstractframework-0.2.1 → abstractframework-0.3.1}/docs/guide/agent-vs-llm.md +0 -0
  95. {abstractframework-0.2.1 → abstractframework-0.3.1}/docs/guide/agora-workflow-agent.md +0 -0
  96. {abstractframework-0.2.1 → abstractframework-0.3.1}/docs/guide/apple-local-gateway-flow.md +0 -0
  97. {abstractframework-0.2.1 → abstractframework-0.3.1}/docs/guide/capability-plugins.md +0 -0
  98. {abstractframework-0.2.1 → abstractframework-0.3.1}/docs/guide/capability-routing-defaults.md +0 -0
  99. {abstractframework-0.2.1 → abstractframework-0.3.1}/docs/guide/deployment-iphone.md +0 -0
  100. {abstractframework-0.2.1 → abstractframework-0.3.1}/docs/guide/deployment-topologies.md +0 -0
  101. {abstractframework-0.2.1 → abstractframework-0.3.1}/docs/guide/deployment-web.md +0 -0
  102. {abstractframework-0.2.1 → abstractframework-0.3.1}/docs/guide/email-integration.md +0 -0
  103. {abstractframework-0.2.1 → abstractframework-0.3.1}/docs/guide/event-inbox-agent.md +0 -0
  104. {abstractframework-0.2.1 → abstractframework-0.3.1}/docs/guide/flow-and-kg-memory.md +0 -0
  105. {abstractframework-0.2.1 → abstractframework-0.3.1}/docs/guide/gateway-security.md +0 -0
  106. {abstractframework-0.2.1 → abstractframework-0.3.1}/docs/guide/headless-swarm.md +0 -0
  107. {abstractframework-0.2.1 → abstractframework-0.3.1}/docs/guide/process-manager-env-vars.md +0 -0
  108. {abstractframework-0.2.1 → abstractframework-0.3.1}/docs/guide/prompt-caching.md +0 -0
  109. {abstractframework-0.2.1 → abstractframework-0.3.1}/docs/guide/runtime-artifacts.md +0 -0
  110. {abstractframework-0.2.1 → abstractframework-0.3.1}/docs/guide/runtime-scope.md +0 -0
  111. {abstractframework-0.2.1 → abstractframework-0.3.1}/docs/guide/scheduled-workflows.md +0 -0
  112. {abstractframework-0.2.1 → abstractframework-0.3.1}/docs/guide/summoned-entities.md +0 -0
  113. {abstractframework-0.2.1 → abstractframework-0.3.1}/docs/guide/telegram-integration.md +0 -0
  114. {abstractframework-0.2.1 → abstractframework-0.3.1}/docs/guide/workflow-bundles.md +0 -0
  115. {abstractframework-0.2.1 → abstractframework-0.3.1}/docs/installers/README.md +0 -0
  116. {abstractframework-0.2.1 → abstractframework-0.3.1}/docs/installers/components.md +0 -0
  117. {abstractframework-0.2.1 → abstractframework-0.3.1}/docs/installers/operations-and-support.md +0 -0
  118. {abstractframework-0.2.1 → abstractframework-0.3.1}/docs/installers/release-and-manifest.md +0 -0
  119. {abstractframework-0.2.1 → abstractframework-0.3.1}/docs/installers/security-and-os-blocks.md +0 -0
  120. {abstractframework-0.2.1 → abstractframework-0.3.1}/docs/installers/user-journeys.md +0 -0
  121. {abstractframework-0.2.1 → abstractframework-0.3.1}/docs/prompts/agora-collaboration.md +0 -0
  122. {abstractframework-0.2.1 → abstractframework-0.3.1}/docs/scenarios/README.md +0 -0
  123. {abstractframework-0.2.1 → abstractframework-0.3.1}/docs/scenarios/email-inbox-agent.md +0 -0
  124. {abstractframework-0.2.1 → abstractframework-0.3.1}/docs/scenarios/gateway-first-local-dev.md +0 -0
  125. {abstractframework-0.2.1 → abstractframework-0.3.1}/docs/scenarios/offline-coding-assistant.md +0 -0
  126. {abstractframework-0.2.1 → abstractframework-0.3.1}/docs/scenarios/phone-thin-client.md +0 -0
  127. {abstractframework-0.2.1 → abstractframework-0.3.1}/docs/scenarios/specialized-agent-flow.md +0 -0
  128. {abstractframework-0.2.1 → abstractframework-0.3.1}/docs/scenarios/telegram-permanent-contact.md +0 -0
  129. {abstractframework-0.2.1 → abstractframework-0.3.1}/docs/scenarios/workflow-bundle-lifecycle.md +0 -0
  130. {abstractframework-0.2.1 → abstractframework-0.3.1}/docs/skills/README.md +0 -0
  131. {abstractframework-0.2.1 → abstractframework-0.3.1}/docs/skills/abstractframework-agent-skills-fit.md +0 -0
  132. {abstractframework-0.2.1 → abstractframework-0.3.1}/docs/skills/abstractframework-architecture-deep-dive.md +0 -0
  133. {abstractframework-0.2.1 → abstractframework-0.3.1}/docs/skills/agent-skills-ecosystem-scan.md +0 -0
  134. {abstractframework-0.2.1 → abstractframework-0.3.1}/docs/skills/agent-skills-ecosystem-sources.md +0 -0
  135. {abstractframework-0.2.1 → abstractframework-0.3.1}/docs/skills/claude-agent-skills-overview.md +0 -0
  136. {abstractframework-0.2.1 → abstractframework-0.3.1}/docs/skills/claude-agent-skills-sources.md +0 -0
  137. {abstractframework-0.2.1 → abstractframework-0.3.1}/docs/skills/claude-agent-skills-top-20.md +0 -0
  138. {abstractframework-0.2.1 → abstractframework-0.3.1}/docs/workspace-scripts.md +0 -0
  139. {abstractframework-0.2.1 → abstractframework-0.3.1}/scripts/af-local.sh +0 -0
  140. {abstractframework-0.2.1 → abstractframework-0.3.1}/scripts/af.sh +0 -0
  141. {abstractframework-0.2.1 → abstractframework-0.3.1}/scripts/agora_react_flow_smoke.py +0 -0
  142. {abstractframework-0.2.1 → abstractframework-0.3.1}/scripts/assistant-local.sh +0 -0
  143. {abstractframework-0.2.1 → abstractframework-0.3.1}/scripts/assistant.sh +0 -0
  144. {abstractframework-0.2.1 → abstractframework-0.3.1}/scripts/build.sh +0 -0
  145. {abstractframework-0.2.1 → abstractframework-0.3.1}/scripts/cache_probe_local_backends.py +0 -0
  146. {abstractframework-0.2.1 → abstractframework-0.3.1}/scripts/cache_steer_repl.py +0 -0
  147. {abstractframework-0.2.1 → abstractframework-0.3.1}/scripts/clone.sh +0 -0
  148. {abstractframework-0.2.1 → abstractframework-0.3.1}/scripts/code-local.sh +0 -0
  149. {abstractframework-0.2.1 → abstractframework-0.3.1}/scripts/code.sh +0 -0
  150. {abstractframework-0.2.1 → abstractframework-0.3.1}/scripts/commit.sh +0 -0
  151. {abstractframework-0.2.1 → abstractframework-0.3.1}/scripts/console-local.sh +0 -0
  152. {abstractframework-0.2.1 → abstractframework-0.3.1}/scripts/core_operator_drive.py +0 -0
  153. {abstractframework-0.2.1 → abstractframework-0.3.1}/scripts/deps.sh +0 -0
  154. {abstractframework-0.2.1 → abstractframework-0.3.1}/scripts/entity-local.sh +0 -0
  155. {abstractframework-0.2.1 → abstractframework-0.3.1}/scripts/event_inbox_flow_smoke.py +0 -0
  156. {abstractframework-0.2.1 → abstractframework-0.3.1}/scripts/flow-local.sh +0 -0
  157. {abstractframework-0.2.1 → abstractframework-0.3.1}/scripts/flow.sh +0 -0
  158. {abstractframework-0.2.1 → abstractframework-0.3.1}/scripts/gateway-flow-local.sh +0 -0
  159. {abstractframework-0.2.1 → abstractframework-0.3.1}/scripts/gateway-flow.sh +0 -0
  160. {abstractframework-0.2.1 → abstractframework-0.3.1}/scripts/gateway-local.sh +0 -0
  161. {abstractframework-0.2.1 → abstractframework-0.3.1}/scripts/gateway.sh +0 -0
  162. {abstractframework-0.2.1 → abstractframework-0.3.1}/scripts/gen_llms_full.py +0 -0
  163. {abstractframework-0.2.1 → abstractframework-0.3.1}/scripts/headless_fleet_bridge.py +0 -0
  164. {abstractframework-0.2.1 → abstractframework-0.3.1}/scripts/headless_fleet_demo.py +0 -0
  165. {abstractframework-0.2.1 → abstractframework-0.3.1}/scripts/headless_steer_repl.py +0 -0
  166. {abstractframework-0.2.1 → abstractframework-0.3.1}/scripts/lib/af_inventory.py +0 -0
  167. {abstractframework-0.2.1 → abstractframework-0.3.1}/scripts/lib/af_stack.sh +0 -0
  168. {abstractframework-0.2.1 → abstractframework-0.3.1}/scripts/lib/af_supervisor.sh +0 -0
  169. {abstractframework-0.2.1 → abstractframework-0.3.1}/scripts/lib/apps_common.sh +0 -0
  170. {abstractframework-0.2.1 → abstractframework-0.3.1}/scripts/lib/gateway_user_tokens.py +0 -0
  171. {abstractframework-0.2.1 → abstractframework-0.3.1}/scripts/lib/repo_groups.sh +0 -0
  172. {abstractframework-0.2.1 → abstractframework-0.3.1}/scripts/meet_castor.sh +0 -0
  173. {abstractframework-0.2.1 → abstractframework-0.3.1}/scripts/observer-local.sh +0 -0
  174. {abstractframework-0.2.1 → abstractframework-0.3.1}/scripts/observer.sh +0 -0
  175. {abstractframework-0.2.1 → abstractframework-0.3.1}/scripts/plan_walkthrough.py +0 -0
  176. {abstractframework-0.2.1 → abstractframework-0.3.1}/scripts/pull.sh +0 -0
  177. {abstractframework-0.2.1 → abstractframework-0.3.1}/scripts/push.sh +0 -0
  178. {abstractframework-0.2.1 → abstractframework-0.3.1}/scripts/spawn_demo_agent.sh +0 -0
  179. {abstractframework-0.2.1 → abstractframework-0.3.1}/scripts/start-local.sh +0 -0
  180. {abstractframework-0.2.1 → abstractframework-0.3.1}/scripts/start.sh +0 -0
  181. {abstractframework-0.2.1 → abstractframework-0.3.1}/scripts/status.sh +0 -0
  182. {abstractframework-0.2.1 → abstractframework-0.3.1}/scripts/steer_repl.py +0 -0
  183. {abstractframework-0.2.1 → abstractframework-0.3.1}/scripts/tests/test_af_supervisor.sh +0 -0
  184. {abstractframework-0.2.1 → abstractframework-0.3.1}/scripts/tests/test_inventory.sh +0 -0
  185. {abstractframework-0.2.1 → abstractframework-0.3.1}/scripts/tests/test_repo_scripts.sh +0 -0
  186. {abstractframework-0.2.1 → abstractframework-0.3.1}/scripts/visit_resume_cache_probe.py +0 -0
  187. {abstractframework-0.2.1 → abstractframework-0.3.1}/setup.cfg +0 -0
@@ -2,6 +2,138 @@
2
2
 
3
3
  All notable changes to AbstractFramework will be documented in this file.
4
4
 
5
+ ## [0.3.1] - 2026-09-24
6
+
7
+ A patch release that pins abstractcore 2.15.1 and abstractgateway 0.4.2: download cancels are
8
+ recorded and a download that stops on its own says why; the "may not fit" warning states the
9
+ totals it compared; one Install button per app; the Assistant appears as an app.
10
+
11
+ ### Changed (pins)
12
+
13
+ - **abstractcore 2.15.1** (was 2.15.0), **abstractgateway 0.4.2** (was 0.4.1) and
14
+ **AbstractRuntime 0.4.34** (was 0.4.33; abstractgateway 0.4.2 requires it, and it passes who asked
15
+ for a download cancel to AbstractCore), in the base install and in the `apple` / `gpu` extras
16
+ (`abstractgateway[apple|gpu]==0.4.2`). The bootstrap scripts install
17
+ `abstractgateway[<profile>,tray]==0.4.2`. The other pins are unchanged: abstractagent 0.3.13,
18
+ AbstractMemory 0.3.0, abstractsemantics 0.0.5, abstractvoice 0.11.4, abstractvision 0.3.29,
19
+ abstractmusic 0.1.15, abstractassistant 0.5.0. Unchanged too: `abstractgateway-console` 0.8.0
20
+ and the browser apps (continuum 0.3.0, entity 0.2.0, flow 0.3.20, code 0.4.2, observer 0.1.12).
21
+ - The docs name the container images released with it: `ghcr.io/lpalbou/abstractgateway:0.4.2`
22
+ (and `0.4.2-gpu`) and `ghcr.io/lpalbou/abstractcore-server:2.15.1`.
23
+
24
+ ### What the new pins bring
25
+
26
+ - **Downloads.** A download that stops on its own is never reported "cancelled": a cancel records
27
+ who asked for it (console, API, CLI, another process), and a download that ends says why in one
28
+ plain sentence (a dropped connection, a Hub error, a full disk, a restart). The download stops
29
+ when the process that started it exits. In the console, a stray click no longer cancels a
30
+ download: Cancel asks first ("Stop this download?").
31
+ - **Fit warning.** A model's "may not fit" warning states the two totals its verdict compared: the
32
+ total need (weights plus working memory and cache) and the memory a model can use (the ceiling
33
+ minus the part kept free for the system).
34
+ - **Apps.** Each app card has one **Install** button; the card then offers **Open** (and **Open in
35
+ Terminal** for Code, whose install brings the terminal app along).
36
+ - **The Assistant is an app.** AbstractAssistant, the desktop menu-bar app, has its own card in
37
+ the gateway console: install it and open it from there (on the gateway's computer).
38
+
39
+ ## [0.3.0] - 2026-09-24
40
+
41
+ A Mac install that needs no Terminal knowledge (a `.pkg` or a double-click `.command`, and an
42
+ uninstaller), install failures explained in plain words, and the meta-package pins abstractcore
43
+ 2.15.0 and abstractgateway 0.4.1.
44
+
45
+ ### Changed (pins)
46
+
47
+ - **abstractcore 2.15.0** (was 2.14.0) and **abstractgateway 0.4.1** (was 0.3.0; 0.4.0 was never
48
+ published), in the base install and in the `apple` / `gpu` extras
49
+ (`abstractgateway[apple|gpu]==0.4.1`). The bootstrap scripts install
50
+ `abstractgateway[<profile>,tray]==0.4.1` and, with `--with-console`, `abstractgateway-console`
51
+ 0.8.0 (was 0.7.0). The other pins are unchanged: AbstractRuntime 0.4.33, abstractagent 0.3.13,
52
+ AbstractMemory 0.3.0, abstractsemantics 0.0.5, abstractvoice 0.11.4, abstractvision 0.3.29,
53
+ abstractmusic 0.1.15, abstractassistant 0.5.0.
54
+ - Browser apps released with it (`--with-apps`, `npx`): `@abstractframework/continuum` 0.3.0 (was
55
+ 0.2.0) and `@abstractframework/entity` 0.2.0 (was 0.1.0); flow 0.3.20, code 0.4.2 and observer
56
+ 0.1.12 are unchanged.
57
+ - The docs name the container images released with it: `ghcr.io/lpalbou/abstractgateway:0.4.1`
58
+ and `ghcr.io/lpalbou/abstractcore-server:2.15.0`.
59
+ - `docs/backlog/planned/0859` states the real stack port map (observer 3001, continuum 3002,
60
+ code 3003, entity 3004, flow 3005), as `scripts/start-local.sh` and the gateway's
61
+ `STACK_PORTS` use.
62
+ - `scripts/lib/packages.txt`: abstractgateway 0.4.1 depends on abstractcore directly
63
+ (`abstractcore>=2.15.0`), so its edge is `abstractcore:dep` (was `extra`).
64
+
65
+ ### Added
66
+
67
+ - **A Mac install that needs no Terminal knowledge.** `scripts/lib/build_macos_installer.sh`
68
+ builds `AbstractFramework-Installer.pkg` (payload-free, "install for me only", no password) and
69
+ `AbstractFramework-Installer-macOS.zip` (`Install AbstractFramework.command` and
70
+ `Uninstall AbstractFramework.command`). Both open the same `install.sh` in Terminal with a
71
+ banner, so every step stays visible and logged; the browser opens AbstractFramework, signed in,
72
+ at the end. The script signs and notarizes the `.pkg` when given a Developer ID
73
+ (`AF_PKG_SIGN_IDENTITY`, `AF_NOTARY_PROFILE`); without one it says the build is unsigned.
74
+ - **`scripts/uninstall.sh`**: asks before removing anything, removes the login item, the running
75
+ gateway and the gateway tool, and asks separately whether to delete your data (`--purge`) and,
76
+ when the installer added uv, uv with its Python and download cache (`--remove-uv`, about
77
+ 2.5 GB after an Apple Silicon install). `--yes` runs without questions.
78
+ - **`install.sh --interactive`** asks whether to start AbstractFramework at login (default yes; a
79
+ previous "no" is remembered) and, on `--uninstall`, the data and uv questions. Questions go to
80
+ the terminal, so it works through `curl | sh`. Answering "no" after an earlier "yes" removes the
81
+ login item and starts the gateway in the background.
82
+
83
+ ### Changed
84
+
85
+ - **Every install failure says what to do next, in plain words.** `install.sh` checks internet
86
+ access to PyPI before changing anything (naming the proxy when one is set), recognises a
87
+ connection that drops mid-install, stops on folders it cannot write (with the exact
88
+ `sudo chown` fix), restarts itself natively when Terminal runs under Rosetta on Apple Silicon
89
+ (and explains the Terminal setting when piped), warns on macOS older than 13, and says why an
90
+ Apple Silicon Mac on macOS 13 gets the light profile. `install.ps1` has the same network check
91
+ and messages.
92
+ - **Re-runs repair and stay quiet.** A gateway command that no longer starts (an interrupted or
93
+ damaged install) is reinstalled in place; a registered, running, unchanged login item is left
94
+ alone instead of restarted; an already-configured shell profile no longer produces a
95
+ `uv tool update-shell` warning. The health wait is 180 s (the first start loads the engines) with
96
+ a progress line every 15 s.
97
+ - **The gateway's Network setting decides where it listens, not the installer.** `install.sh` and
98
+ `install.ps1` no longer pass `--host 127.0.0.1` to `abstractgateway service install` (it reset a
99
+ "Local network" choice to localhost on every re-run); they pass `--port` only. Without a login
100
+ item (background mode) they store the setting first (`abstractgateway network set localhost
101
+ --port N` when nothing is stored; a stored mode is kept and only the port aligned) and start plain
102
+ `abstractgateway serve`. Gateways without the `network` command keep the old
103
+ `serve --host 127.0.0.1 --port N`. The login item itself runs plain `serve` from
104
+ abstractgateway 0.4.1.
105
+ - The installer ends with a short plain-language summary (where AbstractFramework is, that it
106
+ starts at login, the menu-bar icon, how to remove it) before the technical details.
107
+ - `docs/install.md` is rewritten from a non-technical user's point of view (download, what you
108
+ will see, a table of every failure message and what to do, how to remove it); the one-line,
109
+ options and profile material follows under "Advanced". README and getting-started match.
110
+ - **llama.cpp GGUF is back in the one-line install, without a compiler.** `install.sh` and
111
+ `install.ps1` take `llama-cpp-python` from upstream's prebuilt wheels for every profile, light
112
+ included: Metal 0.3.28 on Apple Silicon, CPU 0.3.35 on glibc Linux x86_64/aarch64 and Windows
113
+ x64 (`--find-links` on the package page of abetlen's wheel index, `--constraints
114
+ uv-constraints.txt`, `--no-build-package llama-cpp-python` so the PyPI sdist is never built).
115
+ Where no wheel exists (Intel Mac, musl Linux, Windows on ARM) or the wheel install fails, the
116
+ script installs without it and prints `GGUF (llama.cpp) skipped: no prebuilt wheel for this
117
+ machine; re-run with --full after installing a C compiler`. The summary's `GGUF:` line says what
118
+ was installed. `--full` builds llama.cpp from source, now in the light profile too. CI's
119
+ bootstrap smoke imports `llama_cpp` from the installed gateway on macOS, Linux and Windows and
120
+ checks GPU offload on macOS.
121
+
122
+ ### Known limitations
123
+
124
+ These are unchanged from 0.2.1 (the same packages, checked with `uv pip install --dry-run
125
+ --no-build` against both releases). The one-line installer is not affected by the first two: it
126
+ installs the gateway, not `abstractassistant`, and builds pure-Python source packages.
127
+
128
+ - A plain `pip install abstractframework` on Linux builds `evdev` from source (a C compiler and
129
+ kernel headers), through `abstractassistant` 0.5.0 → `pynput`.
130
+ - `langdetect`, `antlr4-python3-runtime`, `encodec` and `transformers-stream-generator` are
131
+ published as source only; they are pure Python and build without a compiler.
132
+ - `abstractframework[gpu]` on Linux needs glibc 2.35 or later (Ubuntu 22.04+): `mlx[cuda13]`,
133
+ pulled by `abstractvision[all-gpu]` through `mlx-gen`, has only `manylinux_2_35` wheels.
134
+ - The macOS `.pkg` built by `scripts/lib/build_macos_installer.sh` is not signed yet, so
135
+ Gatekeeper asks the user to allow it ("Open Anyway").
136
+
5
137
  ## [0.2.1] - 2026-09-24
6
138
 
7
139
  Patch release: the one-line install works on a machine without a C compiler, and the
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: abstractframework
3
- Version: 0.2.1
3
+ Version: 0.3.1
4
4
  Summary: Unified installer and documentation hub for the AbstractFramework ecosystem
5
5
  Author-email: Laurent-Philippe Albou <contact@abstractframework.ai>
6
6
  License: MIT
@@ -23,10 +23,10 @@ Classifier: Typing :: Typed
23
23
  Requires-Python: >=3.10
24
24
  Description-Content-Type: text/markdown
25
25
  License-File: LICENSE
26
- Requires-Dist: abstractgateway==0.3.0
26
+ Requires-Dist: abstractgateway==0.4.2
27
27
  Requires-Dist: abstractassistant==0.5.0
28
- Requires-Dist: abstractcore==2.14.0
29
- Requires-Dist: AbstractRuntime==0.4.33
28
+ Requires-Dist: abstractcore==2.15.1
29
+ Requires-Dist: AbstractRuntime==0.4.34
30
30
  Requires-Dist: abstractagent==0.3.13
31
31
  Requires-Dist: AbstractMemory==0.3.0
32
32
  Requires-Dist: abstractsemantics==0.0.5
@@ -34,10 +34,10 @@ Requires-Dist: abstractvoice==0.11.4
34
34
  Requires-Dist: abstractvision==0.3.29
35
35
  Requires-Dist: abstractmusic==0.1.15
36
36
  Provides-Extra: apple
37
- Requires-Dist: abstractgateway[apple]==0.3.0; extra == "apple"
37
+ Requires-Dist: abstractgateway[apple]==0.4.2; extra == "apple"
38
38
  Requires-Dist: abstractassistant[apple]==0.5.0; platform_system == "Darwin" and extra == "apple"
39
39
  Provides-Extra: gpu
40
- Requires-Dist: abstractgateway[gpu]==0.3.0; extra == "gpu"
40
+ Requires-Dist: abstractgateway[gpu]==0.4.2; extra == "gpu"
41
41
  Requires-Dist: abstractassistant[gpu]==0.5.0; extra == "gpu"
42
42
  Dynamic: license-file
43
43
 
@@ -62,24 +62,31 @@ Think of it as an **agentic OS**: durable runs + replay-first observability + mu
62
62
 
63
63
  ## Quick start
64
64
 
65
- One line installs the gateway (no admin rights, no system Python), registers it as a login
66
- service, starts it on `127.0.0.1:8080`, and opens its web console already signed in. A first-run
67
- guide then sets up a local engine (Ollama, LM Studio, MLX, llama.cpp), downloads a model that fits
68
- your machine, and lists the apps:
65
+ The installer sets up the gateway in your user account (no admin password, no system Python),
66
+ asks whether to start it at login, starts it on `127.0.0.1:8080`, and opens its web console in
67
+ your browser already signed in. A first-run guide then sets up a local engine (Ollama, LM Studio,
68
+ MLX, llama.cpp), downloads a model that fits your machine, and lists the apps.
69
69
 
70
- ```bash
71
- # macOS / Linux
72
- curl -LsSf https://raw.githubusercontent.com/lpalbou/AbstractFramework/main/scripts/install.sh | sh
73
- ```
70
+ - **Mac, no Terminal:** download and double-click
71
+ [AbstractFramework-Installer.pkg](https://github.com/lpalbou/AbstractFramework/releases/latest/download/AbstractFramework-Installer.pkg).
72
+ A Terminal window shows each step; press Return at its one question.
73
+ - **macOS / Linux, one line:**
74
74
 
75
- ```powershell
76
- # Windows 10 22H2+ / 11
77
- powershell -ExecutionPolicy ByPass -c "irm https://raw.githubusercontent.com/lpalbou/AbstractFramework/main/scripts/install.ps1 | iex"
78
- ```
75
+ ```bash
76
+ curl -LsSf https://raw.githubusercontent.com/lpalbou/AbstractFramework/main/scripts/install.sh | sh -s -- --interactive
77
+ ```
78
+
79
+ - **Windows 10 22H2+ / 11** (PowerShell):
80
+
81
+ ```powershell
82
+ powershell -ExecutionPolicy ByPass -c "irm https://raw.githubusercontent.com/lpalbou/AbstractFramework/main/scripts/install.ps1 | iex"
83
+ ```
79
84
 
80
- Add `--with-apps`, `--with-ollama` or `--with-lmstudio` for Node.js and local engines, `--print` to
81
- see every command first, and `--uninstall` to remove it. Options, the equivalent commands and
82
- uninstall details: [Install](docs/install.md).
85
+ Every failure says what to do next; running the installer again repairs or upgrades in place. To
86
+ remove it: `Uninstall AbstractFramework.command`, or
87
+ `curl -LsSf https://raw.githubusercontent.com/lpalbou/AbstractFramework/main/scripts/uninstall.sh | sh`.
88
+ Step by step, the failure table, options (`--with-apps`, `--with-ollama`, `--print`, …):
89
+ [Install](docs/install.md).
83
90
 
84
91
  Already have Python? Either entry point works the same way: start it, then open the link it prints.
85
92
 
@@ -181,7 +188,7 @@ ABSTRACTGATEWAY_AUTH_TOKEN=<token> abstractgateway-console --url http://127.0.0.
181
188
  ```
182
189
 
183
190
  Container images are published for the gateway and the AbstractCore server:
184
- `ghcr.io/lpalbou/abstractgateway:0.3.0` and `ghcr.io/lpalbou/abstractcore-server:2.14.0`.
191
+ `ghcr.io/lpalbou/abstractgateway:0.4.2` and `ghcr.io/lpalbou/abstractcore-server:2.15.1`.
185
192
 
186
193
  For artifact and runtime-resource investigation, see
187
194
  `docs/guide/runtime-artifacts.md`.
@@ -300,7 +307,7 @@ pip install "abstractframework[gpu]"
300
307
  | Apple | `pip install "abstractframework[apple]"` | macOS 14+ on Apple Silicon | 3.10–3.13 (F5-TTS voice cloning needs 3.11+) |
301
308
  | 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
309
 
303
- ### Release matrix (abstractframework 0.2.1)
310
+ ### Release matrix (abstractframework 0.3.1)
304
311
 
305
312
  `abstractframework` pins every Python package with `==`, so one version of the
306
313
  meta-package always installs the same stack. The browser apps and Rust tools are
@@ -309,10 +316,10 @@ and tested together.
309
316
 
310
317
  | Registry | Package | Version |
311
318
  |---|---|---|
312
- | PyPI | `abstractgateway` | 0.3.0 |
319
+ | PyPI | `abstractgateway` | 0.4.2 |
313
320
  | PyPI | `abstractassistant` | 0.5.0 |
314
- | PyPI | `abstractcore` | 2.14.0 |
315
- | PyPI | `AbstractRuntime` | 0.4.33 |
321
+ | PyPI | `abstractcore` | 2.15.1 |
322
+ | PyPI | `AbstractRuntime` | 0.4.34 |
316
323
  | PyPI | `abstractagent` | 0.3.13 |
317
324
  | PyPI | `AbstractMemory` | 0.3.0 |
318
325
  | PyPI | `abstractsemantics` | 0.0.5 |
@@ -322,14 +329,14 @@ and tested together.
322
329
  | npm | `@abstractframework/flow` | 0.3.20 |
323
330
  | npm | `@abstractframework/code` | 0.4.2 |
324
331
  | npm | `@abstractframework/observer` | 0.1.12 |
325
- | npm | `@abstractframework/continuum` | 0.2.0 |
326
- | npm | `@abstractframework/entity` | 0.1.0 |
332
+ | npm | `@abstractframework/continuum` | 0.3.0 |
333
+ | npm | `@abstractframework/entity` | 0.2.0 |
327
334
  | crates.io | `abstractcode` | 0.5.1 |
328
- | crates.io | `abstractgateway-console` | 0.7.0 |
335
+ | crates.io | `abstractgateway-console` | 0.8.0 |
329
336
  | crates.io | `abstractcore-console` | 0.2.0 |
330
337
  | crates.io | `abstracttui` | 0.6.0 |
331
- | GHCR | `ghcr.io/lpalbou/abstractgateway` | 0.3.0 (`gpu-latest` / `<version>-gpu` experimental) |
332
- | GHCR | `ghcr.io/lpalbou/abstractcore-server` | 2.14.0 |
338
+ | GHCR | `ghcr.io/lpalbou/abstractgateway` | 0.4.2 (`gpu-latest` / `<version>-gpu` experimental) |
339
+ | GHCR | `ghcr.io/lpalbou/abstractcore-server` | 2.15.1 |
333
340
 
334
341
  Optional add-ons that are not part of any profile install separately:
335
342
  `pip install abstract3d` (0.3.1), `pip install abstractcamera` (0.2.0) and
@@ -19,24 +19,31 @@ Think of it as an **agentic OS**: durable runs + replay-first observability + mu
19
19
 
20
20
  ## Quick start
21
21
 
22
- One line installs the gateway (no admin rights, no system Python), registers it as a login
23
- service, starts it on `127.0.0.1:8080`, and opens its web console already signed in. A first-run
24
- guide then sets up a local engine (Ollama, LM Studio, MLX, llama.cpp), downloads a model that fits
25
- your machine, and lists the apps:
22
+ The installer sets up the gateway in your user account (no admin password, no system Python),
23
+ asks whether to start it at login, starts it on `127.0.0.1:8080`, and opens its web console in
24
+ your browser already signed in. A first-run guide then sets up a local engine (Ollama, LM Studio,
25
+ MLX, llama.cpp), downloads a model that fits your machine, and lists the apps.
26
26
 
27
- ```bash
28
- # macOS / Linux
29
- curl -LsSf https://raw.githubusercontent.com/lpalbou/AbstractFramework/main/scripts/install.sh | sh
30
- ```
27
+ - **Mac, no Terminal:** download and double-click
28
+ [AbstractFramework-Installer.pkg](https://github.com/lpalbou/AbstractFramework/releases/latest/download/AbstractFramework-Installer.pkg).
29
+ A Terminal window shows each step; press Return at its one question.
30
+ - **macOS / Linux, one line:**
31
31
 
32
- ```powershell
33
- # Windows 10 22H2+ / 11
34
- powershell -ExecutionPolicy ByPass -c "irm https://raw.githubusercontent.com/lpalbou/AbstractFramework/main/scripts/install.ps1 | iex"
35
- ```
32
+ ```bash
33
+ curl -LsSf https://raw.githubusercontent.com/lpalbou/AbstractFramework/main/scripts/install.sh | sh -s -- --interactive
34
+ ```
35
+
36
+ - **Windows 10 22H2+ / 11** (PowerShell):
37
+
38
+ ```powershell
39
+ powershell -ExecutionPolicy ByPass -c "irm https://raw.githubusercontent.com/lpalbou/AbstractFramework/main/scripts/install.ps1 | iex"
40
+ ```
36
41
 
37
- Add `--with-apps`, `--with-ollama` or `--with-lmstudio` for Node.js and local engines, `--print` to
38
- see every command first, and `--uninstall` to remove it. Options, the equivalent commands and
39
- uninstall details: [Install](docs/install.md).
42
+ Every failure says what to do next; running the installer again repairs or upgrades in place. To
43
+ remove it: `Uninstall AbstractFramework.command`, or
44
+ `curl -LsSf https://raw.githubusercontent.com/lpalbou/AbstractFramework/main/scripts/uninstall.sh | sh`.
45
+ Step by step, the failure table, options (`--with-apps`, `--with-ollama`, `--print`, …):
46
+ [Install](docs/install.md).
40
47
 
41
48
  Already have Python? Either entry point works the same way: start it, then open the link it prints.
42
49
 
@@ -138,7 +145,7 @@ ABSTRACTGATEWAY_AUTH_TOKEN=<token> abstractgateway-console --url http://127.0.0.
138
145
  ```
139
146
 
140
147
  Container images are published for the gateway and the AbstractCore server:
141
- `ghcr.io/lpalbou/abstractgateway:0.3.0` and `ghcr.io/lpalbou/abstractcore-server:2.14.0`.
148
+ `ghcr.io/lpalbou/abstractgateway:0.4.2` and `ghcr.io/lpalbou/abstractcore-server:2.15.1`.
142
149
 
143
150
  For artifact and runtime-resource investigation, see
144
151
  `docs/guide/runtime-artifacts.md`.
@@ -257,7 +264,7 @@ pip install "abstractframework[gpu]"
257
264
  | Apple | `pip install "abstractframework[apple]"` | macOS 14+ on Apple Silicon | 3.10–3.13 (F5-TTS voice cloning needs 3.11+) |
258
265
  | GPU | `pip install "abstractframework[gpu]"` | Linux / Windows with a CUDA or ROCm GPU | 3.10–3.13 (F5-TTS voice cloning needs 3.11+) |
259
266
 
260
- ### Release matrix (abstractframework 0.2.1)
267
+ ### Release matrix (abstractframework 0.3.1)
261
268
 
262
269
  `abstractframework` pins every Python package with `==`, so one version of the
263
270
  meta-package always installs the same stack. The browser apps and Rust tools are
@@ -266,10 +273,10 @@ and tested together.
266
273
 
267
274
  | Registry | Package | Version |
268
275
  |---|---|---|
269
- | PyPI | `abstractgateway` | 0.3.0 |
276
+ | PyPI | `abstractgateway` | 0.4.2 |
270
277
  | PyPI | `abstractassistant` | 0.5.0 |
271
- | PyPI | `abstractcore` | 2.14.0 |
272
- | PyPI | `AbstractRuntime` | 0.4.33 |
278
+ | PyPI | `abstractcore` | 2.15.1 |
279
+ | PyPI | `AbstractRuntime` | 0.4.34 |
273
280
  | PyPI | `abstractagent` | 0.3.13 |
274
281
  | PyPI | `AbstractMemory` | 0.3.0 |
275
282
  | PyPI | `abstractsemantics` | 0.0.5 |
@@ -279,14 +286,14 @@ and tested together.
279
286
  | npm | `@abstractframework/flow` | 0.3.20 |
280
287
  | npm | `@abstractframework/code` | 0.4.2 |
281
288
  | npm | `@abstractframework/observer` | 0.1.12 |
282
- | npm | `@abstractframework/continuum` | 0.2.0 |
283
- | npm | `@abstractframework/entity` | 0.1.0 |
289
+ | npm | `@abstractframework/continuum` | 0.3.0 |
290
+ | npm | `@abstractframework/entity` | 0.2.0 |
284
291
  | crates.io | `abstractcode` | 0.5.1 |
285
- | crates.io | `abstractgateway-console` | 0.7.0 |
292
+ | crates.io | `abstractgateway-console` | 0.8.0 |
286
293
  | crates.io | `abstractcore-console` | 0.2.0 |
287
294
  | crates.io | `abstracttui` | 0.6.0 |
288
- | GHCR | `ghcr.io/lpalbou/abstractgateway` | 0.3.0 (`gpu-latest` / `<version>-gpu` experimental) |
289
- | GHCR | `ghcr.io/lpalbou/abstractcore-server` | 2.14.0 |
295
+ | GHCR | `ghcr.io/lpalbou/abstractgateway` | 0.4.2 (`gpu-latest` / `<version>-gpu` experimental) |
296
+ | GHCR | `ghcr.io/lpalbou/abstractcore-server` | 2.15.1 |
290
297
 
291
298
  Optional add-ons that are not part of any profile install separately:
292
299
  `pip install abstract3d` (0.3.1), `pip install abstractcamera` (0.2.0) and
@@ -10,15 +10,15 @@ Most implementation functionality still lives in component projects.
10
10
 
11
11
  from __future__ import annotations
12
12
 
13
- __version__ = "0.2.1"
13
+ __version__ = "0.3.1"
14
14
  __author__ = "Laurent-Philippe Albou"
15
15
  __license__ = "MIT"
16
16
 
17
17
  RELEASE_VERSIONS: dict[str, str] = {
18
- "abstractcore": "2.14.0",
19
- "abstractruntime": "0.4.33",
18
+ "abstractcore": "2.15.1",
19
+ "abstractruntime": "0.4.34",
20
20
  "abstractagent": "0.3.13",
21
- "abstractgateway": "0.3.0",
21
+ "abstractgateway": "0.4.2",
22
22
  "abstractmemory": "0.3.0",
23
23
  "abstractsemantics": "0.0.5",
24
24
  "abstractvoice": "0.11.4",
@@ -44,14 +44,14 @@ NPM_RELEASE_VERSIONS: dict[str, str] = {
44
44
  "@abstractframework/flow": "0.3.20",
45
45
  "@abstractframework/code": "0.4.2",
46
46
  "@abstractframework/observer": "0.1.12",
47
- "@abstractframework/continuum": "0.2.0",
48
- "@abstractframework/entity": "0.1.0",
47
+ "@abstractframework/continuum": "0.3.0",
48
+ "@abstractframework/entity": "0.2.0",
49
49
  }
50
50
 
51
51
  # Terminal tools published on crates.io alongside this release (installed with `cargo install`,
52
52
  # or by the bootstrap scripts' --with-console / --with-code-cli flags).
53
53
  CRATE_RELEASE_VERSIONS: dict[str, str] = {
54
- "abstractgateway-console": "0.7.0",
54
+ "abstractgateway-console": "0.8.0",
55
55
  "abstractcore-console": "0.2.0",
56
56
  "abstractcode": "0.5.1",
57
57
  "abstracttui": "0.6.0",
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: abstractframework
3
- Version: 0.2.1
3
+ Version: 0.3.1
4
4
  Summary: Unified installer and documentation hub for the AbstractFramework ecosystem
5
5
  Author-email: Laurent-Philippe Albou <contact@abstractframework.ai>
6
6
  License: MIT
@@ -23,10 +23,10 @@ Classifier: Typing :: Typed
23
23
  Requires-Python: >=3.10
24
24
  Description-Content-Type: text/markdown
25
25
  License-File: LICENSE
26
- Requires-Dist: abstractgateway==0.3.0
26
+ Requires-Dist: abstractgateway==0.4.2
27
27
  Requires-Dist: abstractassistant==0.5.0
28
- Requires-Dist: abstractcore==2.14.0
29
- Requires-Dist: AbstractRuntime==0.4.33
28
+ Requires-Dist: abstractcore==2.15.1
29
+ Requires-Dist: AbstractRuntime==0.4.34
30
30
  Requires-Dist: abstractagent==0.3.13
31
31
  Requires-Dist: AbstractMemory==0.3.0
32
32
  Requires-Dist: abstractsemantics==0.0.5
@@ -34,10 +34,10 @@ Requires-Dist: abstractvoice==0.11.4
34
34
  Requires-Dist: abstractvision==0.3.29
35
35
  Requires-Dist: abstractmusic==0.1.15
36
36
  Provides-Extra: apple
37
- Requires-Dist: abstractgateway[apple]==0.3.0; extra == "apple"
37
+ Requires-Dist: abstractgateway[apple]==0.4.2; extra == "apple"
38
38
  Requires-Dist: abstractassistant[apple]==0.5.0; platform_system == "Darwin" and extra == "apple"
39
39
  Provides-Extra: gpu
40
- Requires-Dist: abstractgateway[gpu]==0.3.0; extra == "gpu"
40
+ Requires-Dist: abstractgateway[gpu]==0.4.2; extra == "gpu"
41
41
  Requires-Dist: abstractassistant[gpu]==0.5.0; extra == "gpu"
42
42
  Dynamic: license-file
43
43
 
@@ -62,24 +62,31 @@ Think of it as an **agentic OS**: durable runs + replay-first observability + mu
62
62
 
63
63
  ## Quick start
64
64
 
65
- One line installs the gateway (no admin rights, no system Python), registers it as a login
66
- service, starts it on `127.0.0.1:8080`, and opens its web console already signed in. A first-run
67
- guide then sets up a local engine (Ollama, LM Studio, MLX, llama.cpp), downloads a model that fits
68
- your machine, and lists the apps:
65
+ The installer sets up the gateway in your user account (no admin password, no system Python),
66
+ asks whether to start it at login, starts it on `127.0.0.1:8080`, and opens its web console in
67
+ your browser already signed in. A first-run guide then sets up a local engine (Ollama, LM Studio,
68
+ MLX, llama.cpp), downloads a model that fits your machine, and lists the apps.
69
69
 
70
- ```bash
71
- # macOS / Linux
72
- curl -LsSf https://raw.githubusercontent.com/lpalbou/AbstractFramework/main/scripts/install.sh | sh
73
- ```
70
+ - **Mac, no Terminal:** download and double-click
71
+ [AbstractFramework-Installer.pkg](https://github.com/lpalbou/AbstractFramework/releases/latest/download/AbstractFramework-Installer.pkg).
72
+ A Terminal window shows each step; press Return at its one question.
73
+ - **macOS / Linux, one line:**
74
74
 
75
- ```powershell
76
- # Windows 10 22H2+ / 11
77
- powershell -ExecutionPolicy ByPass -c "irm https://raw.githubusercontent.com/lpalbou/AbstractFramework/main/scripts/install.ps1 | iex"
78
- ```
75
+ ```bash
76
+ curl -LsSf https://raw.githubusercontent.com/lpalbou/AbstractFramework/main/scripts/install.sh | sh -s -- --interactive
77
+ ```
78
+
79
+ - **Windows 10 22H2+ / 11** (PowerShell):
80
+
81
+ ```powershell
82
+ powershell -ExecutionPolicy ByPass -c "irm https://raw.githubusercontent.com/lpalbou/AbstractFramework/main/scripts/install.ps1 | iex"
83
+ ```
79
84
 
80
- Add `--with-apps`, `--with-ollama` or `--with-lmstudio` for Node.js and local engines, `--print` to
81
- see every command first, and `--uninstall` to remove it. Options, the equivalent commands and
82
- uninstall details: [Install](docs/install.md).
85
+ Every failure says what to do next; running the installer again repairs or upgrades in place. To
86
+ remove it: `Uninstall AbstractFramework.command`, or
87
+ `curl -LsSf https://raw.githubusercontent.com/lpalbou/AbstractFramework/main/scripts/uninstall.sh | sh`.
88
+ Step by step, the failure table, options (`--with-apps`, `--with-ollama`, `--print`, …):
89
+ [Install](docs/install.md).
83
90
 
84
91
  Already have Python? Either entry point works the same way: start it, then open the link it prints.
85
92
 
@@ -181,7 +188,7 @@ ABSTRACTGATEWAY_AUTH_TOKEN=<token> abstractgateway-console --url http://127.0.0.
181
188
  ```
182
189
 
183
190
  Container images are published for the gateway and the AbstractCore server:
184
- `ghcr.io/lpalbou/abstractgateway:0.3.0` and `ghcr.io/lpalbou/abstractcore-server:2.14.0`.
191
+ `ghcr.io/lpalbou/abstractgateway:0.4.2` and `ghcr.io/lpalbou/abstractcore-server:2.15.1`.
185
192
 
186
193
  For artifact and runtime-resource investigation, see
187
194
  `docs/guide/runtime-artifacts.md`.
@@ -300,7 +307,7 @@ pip install "abstractframework[gpu]"
300
307
  | Apple | `pip install "abstractframework[apple]"` | macOS 14+ on Apple Silicon | 3.10–3.13 (F5-TTS voice cloning needs 3.11+) |
301
308
  | 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
309
 
303
- ### Release matrix (abstractframework 0.2.1)
310
+ ### Release matrix (abstractframework 0.3.1)
304
311
 
305
312
  `abstractframework` pins every Python package with `==`, so one version of the
306
313
  meta-package always installs the same stack. The browser apps and Rust tools are
@@ -309,10 +316,10 @@ and tested together.
309
316
 
310
317
  | Registry | Package | Version |
311
318
  |---|---|---|
312
- | PyPI | `abstractgateway` | 0.3.0 |
319
+ | PyPI | `abstractgateway` | 0.4.2 |
313
320
  | PyPI | `abstractassistant` | 0.5.0 |
314
- | PyPI | `abstractcore` | 2.14.0 |
315
- | PyPI | `AbstractRuntime` | 0.4.33 |
321
+ | PyPI | `abstractcore` | 2.15.1 |
322
+ | PyPI | `AbstractRuntime` | 0.4.34 |
316
323
  | PyPI | `abstractagent` | 0.3.13 |
317
324
  | PyPI | `AbstractMemory` | 0.3.0 |
318
325
  | PyPI | `abstractsemantics` | 0.0.5 |
@@ -322,14 +329,14 @@ and tested together.
322
329
  | npm | `@abstractframework/flow` | 0.3.20 |
323
330
  | npm | `@abstractframework/code` | 0.4.2 |
324
331
  | npm | `@abstractframework/observer` | 0.1.12 |
325
- | npm | `@abstractframework/continuum` | 0.2.0 |
326
- | npm | `@abstractframework/entity` | 0.1.0 |
332
+ | npm | `@abstractframework/continuum` | 0.3.0 |
333
+ | npm | `@abstractframework/entity` | 0.2.0 |
327
334
  | crates.io | `abstractcode` | 0.5.1 |
328
- | crates.io | `abstractgateway-console` | 0.7.0 |
335
+ | crates.io | `abstractgateway-console` | 0.8.0 |
329
336
  | crates.io | `abstractcore-console` | 0.2.0 |
330
337
  | crates.io | `abstracttui` | 0.6.0 |
331
- | GHCR | `ghcr.io/lpalbou/abstractgateway` | 0.3.0 (`gpu-latest` / `<version>-gpu` experimental) |
332
- | GHCR | `ghcr.io/lpalbou/abstractcore-server` | 2.14.0 |
338
+ | GHCR | `ghcr.io/lpalbou/abstractgateway` | 0.4.2 (`gpu-latest` / `<version>-gpu` experimental) |
339
+ | GHCR | `ghcr.io/lpalbou/abstractcore-server` | 2.15.1 |
333
340
 
334
341
  Optional add-ons that are not part of any profile install separately:
335
342
  `pip install abstract3d` (0.3.1), `pip install abstractcamera` (0.2.0) and
@@ -169,14 +169,17 @@ scripts/start-local.sh
169
169
  scripts/start.sh
170
170
  scripts/status.sh
171
171
  scripts/steer_repl.py
172
+ scripts/uninstall.sh
172
173
  scripts/visit_resume_cache_probe.py
173
174
  scripts/lib/af_inventory.py
174
175
  scripts/lib/af_stack.sh
175
176
  scripts/lib/af_supervisor.sh
176
177
  scripts/lib/apps_common.sh
178
+ scripts/lib/build_macos_installer.sh
177
179
  scripts/lib/gateway_user_tokens.py
178
180
  scripts/lib/repo_groups.sh
179
181
  scripts/tests/test_af_supervisor.sh
182
+ scripts/tests/test_install_user_path.sh
180
183
  scripts/tests/test_inventory.sh
181
184
  scripts/tests/test_repo_scripts.sh
182
185
  tests/test_install_profiles.py
@@ -1,7 +1,7 @@
1
- abstractgateway==0.3.0
1
+ abstractgateway==0.4.2
2
2
  abstractassistant==0.5.0
3
- abstractcore==2.14.0
4
- AbstractRuntime==0.4.33
3
+ abstractcore==2.15.1
4
+ AbstractRuntime==0.4.34
5
5
  abstractagent==0.3.13
6
6
  AbstractMemory==0.3.0
7
7
  abstractsemantics==0.0.5
@@ -10,11 +10,11 @@ abstractvision==0.3.29
10
10
  abstractmusic==0.1.15
11
11
 
12
12
  [apple]
13
- abstractgateway[apple]==0.3.0
13
+ abstractgateway[apple]==0.4.2
14
14
 
15
15
  [apple:platform_system == "Darwin"]
16
16
  abstractassistant[apple]==0.5.0
17
17
 
18
18
  [gpu]
19
- abstractgateway[gpu]==0.3.0
19
+ abstractgateway[gpu]==0.4.2
20
20
  abstractassistant[gpu]==0.5.0
@@ -55,8 +55,8 @@ The response type returned by `llm.generate(...)`.
55
55
 
56
56
  ### `RELEASE_VERSIONS`
57
57
 
58
- Dictionary mapping each ecosystem package name to the pinned version for this release. In 0.2.0:
59
- `abstractcore` 2.14.0, `abstractruntime` 0.4.33, `abstractagent` 0.3.13, `abstractgateway` 0.3.0,
58
+ Dictionary mapping each ecosystem package name to the pinned version for this release. In 0.3.1:
59
+ `abstractcore` 2.15.1, `abstractruntime` 0.4.34, `abstractagent` 0.3.13, `abstractgateway` 0.4.2,
60
60
  `abstractmemory` 0.3.0, `abstractsemantics` 0.0.5, `abstractvoice` 0.11.4, `abstractvision` 0.3.29,
61
61
  `abstractmusic` 0.1.15, `abstractassistant` 0.5.0.
62
62
 
@@ -69,13 +69,13 @@ Maps each package name in `RELEASE_VERSIONS` to its PyPI distribution name (for
69
69
 
70
70
  The npm apps released with this version, each runnable with `npx <package>`:
71
71
  `@abstractframework/flow` 0.3.20, `@abstractframework/code` 0.4.2,
72
- `@abstractframework/observer` 0.1.12, `@abstractframework/continuum` 0.2.0 and
73
- `@abstractframework/entity` 0.1.0. They also appear as `npm_apps` in the install manifest.
72
+ `@abstractframework/observer` 0.1.12, `@abstractframework/continuum` 0.3.0 and
73
+ `@abstractframework/entity` 0.2.0. They also appear as `npm_apps` in the install manifest.
74
74
 
75
75
  ### `CRATE_RELEASE_VERSIONS`
76
76
 
77
77
  The Rust terminal tools released with this version, installed with `cargo install <crate>`:
78
- `abstractgateway-console` 0.7.0, `abstractcore-console` 0.2.0, `abstractcode` 0.5.1 and the
78
+ `abstractgateway-console` 0.8.0, `abstractcore-console` 0.2.0, `abstractcode` 0.5.1 and the
79
79
  `abstracttui` engine 0.6.0. The bootstrap scripts install `abstractgateway-console` and
80
80
  `abstractcode` at these versions with `--with-console` and `--with-code-cli`.
81
81