abstractframework 0.7.1__tar.gz → 0.8.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (203) hide show
  1. {abstractframework-0.7.1 → abstractframework-0.8.0}/CHANGELOG.md +164 -0
  2. {abstractframework-0.7.1/abstractframework.egg-info → abstractframework-0.8.0}/PKG-INFO +38 -32
  3. {abstractframework-0.7.1 → abstractframework-0.8.0}/README.md +29 -23
  4. {abstractframework-0.7.1 → abstractframework-0.8.0}/abstractframework/__init__.py +13 -13
  5. {abstractframework-0.7.1 → abstractframework-0.8.0/abstractframework.egg-info}/PKG-INFO +38 -32
  6. {abstractframework-0.7.1 → abstractframework-0.8.0}/abstractframework.egg-info/SOURCES.txt +3 -1
  7. {abstractframework-0.7.1 → abstractframework-0.8.0}/abstractframework.egg-info/requires.txt +8 -8
  8. {abstractframework-0.7.1 → abstractframework-0.8.0}/docs/README.md +5 -2
  9. {abstractframework-0.7.1 → abstractframework-0.8.0}/docs/agent-sessions.md +1 -1
  10. {abstractframework-0.7.1 → abstractframework-0.8.0}/docs/api.md +8 -8
  11. {abstractframework-0.7.1 → abstractframework-0.8.0}/docs/architecture.md +20 -8
  12. {abstractframework-0.7.1 → abstractframework-0.8.0}/docs/automations.md +44 -25
  13. {abstractframework-0.7.1 → abstractframework-0.8.0}/docs/configuration.md +22 -10
  14. {abstractframework-0.7.1 → abstractframework-0.8.0}/docs/faq.md +35 -14
  15. {abstractframework-0.7.1 → abstractframework-0.8.0}/docs/getting-started.md +24 -7
  16. {abstractframework-0.7.1 → abstractframework-0.8.0}/docs/glossary.md +73 -4
  17. {abstractframework-0.7.1 → abstractframework-0.8.0}/docs/guide/README.md +2 -2
  18. abstractframework-0.8.0/docs/guide/deployment-iphone.md +68 -0
  19. {abstractframework-0.7.1 → abstractframework-0.8.0}/docs/guide/deployment-web.md +4 -0
  20. abstractframework-0.8.0/docs/guide/email-integration.md +220 -0
  21. {abstractframework-0.7.1 → abstractframework-0.8.0}/docs/guide/gateway-security.md +3 -3
  22. abstractframework-0.8.0/docs/guide/process-manager-env-vars.md +36 -0
  23. {abstractframework-0.7.1 → abstractframework-0.8.0}/docs/guide/telegram-integration.md +2 -4
  24. {abstractframework-0.7.1 → abstractframework-0.8.0}/docs/install.md +139 -59
  25. {abstractframework-0.7.1 → abstractframework-0.8.0}/docs/scenarios/README.md +1 -1
  26. abstractframework-0.8.0/docs/scenarios/email-inbox-agent.md +72 -0
  27. {abstractframework-0.7.1 → abstractframework-0.8.0}/docs/scenarios/gateway-first-local-dev.md +3 -4
  28. abstractframework-0.8.0/docs/scenarios/phone-thin-client.md +48 -0
  29. {abstractframework-0.7.1 → abstractframework-0.8.0}/docs/scenarios/telegram-permanent-contact.md +0 -2
  30. {abstractframework-0.7.1 → abstractframework-0.8.0}/docs/troubleshooting.md +66 -6
  31. {abstractframework-0.7.1 → abstractframework-0.8.0}/llms-full.txt +949 -381
  32. {abstractframework-0.7.1 → abstractframework-0.8.0}/llms.txt +39 -11
  33. {abstractframework-0.7.1 → abstractframework-0.8.0}/pyproject.toml +9 -9
  34. {abstractframework-0.7.1 → abstractframework-0.8.0}/scripts/install.sh +420 -49
  35. {abstractframework-0.7.1 → abstractframework-0.8.0}/scripts/tests/test_install_user_path.sh +23 -3
  36. abstractframework-0.8.0/tests/test_install_index_lag.py +755 -0
  37. {abstractframework-0.7.1 → abstractframework-0.8.0}/tests/test_install_profiles.py +84 -14
  38. {abstractframework-0.7.1 → abstractframework-0.8.0}/tests/test_install_ps1_gpu_stack.py +1 -1
  39. {abstractframework-0.7.1 → abstractframework-0.8.0}/tests/test_install_sh_gpu_stack.py +1 -1
  40. abstractframework-0.8.0/tests/test_uv_tool_install_atomicity.py +160 -0
  41. abstractframework-0.7.1/docs/guide/deployment-iphone.md +0 -24
  42. abstractframework-0.7.1/docs/guide/email-integration.md +0 -56
  43. abstractframework-0.7.1/docs/guide/process-manager-env-vars.md +0 -42
  44. abstractframework-0.7.1/docs/scenarios/email-inbox-agent.md +0 -46
  45. abstractframework-0.7.1/docs/scenarios/phone-thin-client.md +0 -34
  46. {abstractframework-0.7.1 → abstractframework-0.8.0}/LICENSE +0 -0
  47. {abstractframework-0.7.1 → abstractframework-0.8.0}/MANIFEST.in +0 -0
  48. {abstractframework-0.7.1 → abstractframework-0.8.0}/abstractframework/__main__.py +0 -0
  49. {abstractframework-0.7.1 → abstractframework-0.8.0}/abstractframework/cli.py +0 -0
  50. {abstractframework-0.7.1 → abstractframework-0.8.0}/abstractframework/install_manifest.py +0 -0
  51. {abstractframework-0.7.1 → abstractframework-0.8.0}/abstractframework/py.typed +0 -0
  52. {abstractframework-0.7.1 → abstractframework-0.8.0}/abstractframework.egg-info/dependency_links.txt +0 -0
  53. {abstractframework-0.7.1 → abstractframework-0.8.0}/abstractframework.egg-info/entry_points.txt +0 -0
  54. {abstractframework-0.7.1 → abstractframework-0.8.0}/abstractframework.egg-info/top_level.txt +0 -0
  55. {abstractframework-0.7.1 → abstractframework-0.8.0}/docs/adr/0001-layered-architecture.md +0 -0
  56. {abstractframework-0.7.1 → abstractframework-0.8.0}/docs/adr/0002-effect-system-design.md +0 -0
  57. {abstractframework-0.7.1 → abstractframework-0.8.0}/docs/adr/0003-tool-system-architecture.md +0 -0
  58. {abstractframework-0.7.1 → abstractframework-0.8.0}/docs/adr/0004-observability-strategy.md +0 -0
  59. {abstractframework-0.7.1 → abstractframework-0.8.0}/docs/adr/0005-memory-architecture.md +0 -0
  60. {abstractframework-0.7.1 → abstractframework-0.8.0}/docs/adr/0006-durable-tool-execution.md +0 -0
  61. {abstractframework-0.7.1 → abstractframework-0.8.0}/docs/adr/0007-active-context-and-memory-provenance.md +0 -0
  62. {abstractframework-0.7.1 → abstractframework-0.8.0}/docs/adr/0008-token-terminology.md +0 -0
  63. {abstractframework-0.7.1 → abstractframework-0.8.0}/docs/adr/0009-connected-memory-recall-and-provenance.md +0 -0
  64. {abstractframework-0.7.1 → abstractframework-0.8.0}/docs/adr/0010-runtime-owned-node-traces.md +0 -0
  65. {abstractframework-0.7.1 → abstractframework-0.8.0}/docs/adr/0011-ledger-subscriptions-and-event-bridge.md +0 -0
  66. {abstractframework-0.7.1 → abstractframework-0.8.0}/docs/adr/0012-portable-workflowartifact.md +0 -0
  67. {abstractframework-0.7.1 → abstractframework-0.8.0}/docs/adr/0013-durable-run-controls-pause-resume-cancel.md +0 -0
  68. {abstractframework-0.7.1 → abstractframework-0.8.0}/docs/adr/0014-runtime-authority-timeouts.md +0 -0
  69. {abstractframework-0.7.1 → abstractframework-0.8.0}/docs/adr/0015-execution-targets-and-remote-tool-workers.md +0 -0
  70. {abstractframework-0.7.1 → abstractframework-0.8.0}/docs/adr/0016-tool-calling-pipeline-and-responsibility-boundaries.md +0 -0
  71. {abstractframework-0.7.1 → abstractframework-0.8.0}/docs/adr/0017-host-ui-events-and-durable-prompts.md +0 -0
  72. {abstractframework-0.7.1 → abstractframework-0.8.0}/docs/adr/0018-durable-run-gateway-and-remote-host-control-plane.md +0 -0
  73. {abstractframework-0.7.1 → abstractframework-0.8.0}/docs/adr/0019-testing-strategy-and-levels.md +0 -0
  74. {abstractframework-0.7.1 → abstractframework-0.8.0}/docs/adr/0020-agent-host-pool-and-orchestrator-placement.md +0 -0
  75. {abstractframework-0.7.1 → abstractframework-0.8.0}/docs/adr/0021-deployment-topologies-and-supported-scenarios.md +0 -0
  76. {abstractframework-0.7.1 → abstractframework-0.8.0}/docs/adr/0022-orchestrator-host-and-runtime-daemonization.md +0 -0
  77. {abstractframework-0.7.1 → abstractframework-0.8.0}/docs/adr/0023-file-attachment-path-resolution-and-authorization.md +0 -0
  78. {abstractframework-0.7.1 → abstractframework-0.8.0}/docs/adr/0024-attachment-placeholders-and-compaction-invariants.md +0 -0
  79. {abstractframework-0.7.1 → abstractframework-0.8.0}/docs/adr/0025-kg-entity-normalization-and-dedup.md +0 -0
  80. {abstractframework-0.7.1 → abstractframework-0.8.0}/docs/adr/0026-truncation-policy-and-contract.md +0 -0
  81. {abstractframework-0.7.1 → abstractframework-0.8.0}/docs/adr/0027-timeout-policy-and-contract.md +0 -0
  82. {abstractframework-0.7.1 → abstractframework-0.8.0}/docs/adr/0028-capabilities-plugins-and-library-framework-modes.md +0 -0
  83. {abstractframework-0.7.1 → abstractframework-0.8.0}/docs/adr/0029-permissive-dependency-and-licensing-policy.md +0 -0
  84. {abstractframework-0.7.1 → abstractframework-0.8.0}/docs/adr/0030-security-test-fixtures-and-isolation.md +0 -0
  85. {abstractframework-0.7.1 → abstractframework-0.8.0}/docs/adr/0031-workflow-llm-routing-overrides-provider-model-and-base-url.md +0 -0
  86. {abstractframework-0.7.1 → abstractframework-0.8.0}/docs/adr/0032-package-dependency-boundaries-and-gateway-first-apps.md +0 -0
  87. {abstractframework-0.7.1 → abstractframework-0.8.0}/docs/adr/0033-install-profiles-config-entrypoints-and-server-boundaries.md +0 -0
  88. {abstractframework-0.7.1 → abstractframework-0.8.0}/docs/adr/0034-framework-release-sequence-and-gates.md +0 -0
  89. {abstractframework-0.7.1 → abstractframework-0.8.0}/docs/adr/0035-capability-routing-defaults.md +0 -0
  90. {abstractframework-0.7.1 → abstractframework-0.8.0}/docs/adr/0036-artifact-descriptor-contract.md +0 -0
  91. {abstractframework-0.7.1 → abstractframework-0.8.0}/docs/adr/0037-hosted-file-source-contract-and-workspacepath-authority.md +0 -0
  92. {abstractframework-0.7.1 → abstractframework-0.8.0}/docs/adr/0038-script-bootstrap-and-gateway-console-install.md +0 -0
  93. {abstractframework-0.7.1 → abstractframework-0.8.0}/docs/adr/README.md +0 -0
  94. {abstractframework-0.7.1 → abstractframework-0.8.0}/docs/adr/memory-recall-levels.md +0 -0
  95. {abstractframework-0.7.1 → abstractframework-0.8.0}/docs/adr/reorg/001_music_as_capability_plugin_via_acestep_api.md +0 -0
  96. {abstractframework-0.7.1 → abstractframework-0.8.0}/docs/adr/reorg/002_abstractmusic_inprocess_local_generation.md +0 -0
  97. {abstractframework-0.7.1 → abstractframework-0.8.0}/docs/adr/reorg/003_abstractmusic_acestep_v15_backend_source_strategy.md +0 -0
  98. {abstractframework-0.7.1 → abstractframework-0.8.0}/docs/adr/reorg/004_smartnote_thin_client_architecture.md +0 -0
  99. {abstractframework-0.7.1 → abstractframework-0.8.0}/docs/adr/reorg/005_smartnote_artifact_first_cards.md +0 -0
  100. {abstractframework-0.7.1 → abstractframework-0.8.0}/docs/adr/reorg/2026-02-21_gateway-first-assistant.md +0 -0
  101. {abstractframework-0.7.1 → abstractframework-0.8.0}/docs/adr/reorg/2026-02-21_installer_manager_strategy.md +0 -0
  102. {abstractframework-0.7.1 → abstractframework-0.8.0}/docs/adr/reorg/2026-02-21_macos_installer_manager.md +0 -0
  103. {abstractframework-0.7.1 → abstractframework-0.8.0}/docs/claude/README.md +0 -0
  104. {abstractframework-0.7.1 → abstractframework-0.8.0}/docs/claude/abstractframework-fit.md +0 -0
  105. {abstractframework-0.7.1 → abstractframework-0.8.0}/docs/claude/claude-skills-overview.md +0 -0
  106. {abstractframework-0.7.1 → abstractframework-0.8.0}/docs/claude/claude-skills-sources.md +0 -0
  107. {abstractframework-0.7.1 → abstractframework-0.8.0}/docs/claude/claude-skills-top-20.md +0 -0
  108. {abstractframework-0.7.1 → abstractframework-0.8.0}/docs/comparisons/README.md +0 -0
  109. {abstractframework-0.7.1 → abstractframework-0.8.0}/docs/guide/LANDING.md +0 -0
  110. {abstractframework-0.7.1 → abstractframework-0.8.0}/docs/guide/agent-skills.md +0 -0
  111. {abstractframework-0.7.1 → abstractframework-0.8.0}/docs/guide/agent-vs-llm.md +0 -0
  112. {abstractframework-0.7.1 → abstractframework-0.8.0}/docs/guide/agora-workflow-agent.md +0 -0
  113. {abstractframework-0.7.1 → abstractframework-0.8.0}/docs/guide/apple-local-gateway-flow.md +0 -0
  114. {abstractframework-0.7.1 → abstractframework-0.8.0}/docs/guide/capability-plugins.md +0 -0
  115. {abstractframework-0.7.1 → abstractframework-0.8.0}/docs/guide/capability-routing-defaults.md +0 -0
  116. {abstractframework-0.7.1 → abstractframework-0.8.0}/docs/guide/deployment-topologies.md +0 -0
  117. {abstractframework-0.7.1 → abstractframework-0.8.0}/docs/guide/event-inbox-agent.md +0 -0
  118. {abstractframework-0.7.1 → abstractframework-0.8.0}/docs/guide/flow-and-kg-memory.md +0 -0
  119. {abstractframework-0.7.1 → abstractframework-0.8.0}/docs/guide/headless-swarm.md +0 -0
  120. {abstractframework-0.7.1 → abstractframework-0.8.0}/docs/guide/prompt-caching.md +0 -0
  121. {abstractframework-0.7.1 → abstractframework-0.8.0}/docs/guide/runtime-artifacts.md +0 -0
  122. {abstractframework-0.7.1 → abstractframework-0.8.0}/docs/guide/runtime-scope.md +0 -0
  123. {abstractframework-0.7.1 → abstractframework-0.8.0}/docs/guide/scheduled-workflows.md +0 -0
  124. {abstractframework-0.7.1 → abstractframework-0.8.0}/docs/guide/summoned-entities.md +0 -0
  125. {abstractframework-0.7.1 → abstractframework-0.8.0}/docs/guide/workflow-bundles.md +0 -0
  126. {abstractframework-0.7.1 → abstractframework-0.8.0}/docs/installers/README.md +0 -0
  127. {abstractframework-0.7.1 → abstractframework-0.8.0}/docs/installers/components.md +0 -0
  128. {abstractframework-0.7.1 → abstractframework-0.8.0}/docs/installers/implementation-plan.md +0 -0
  129. {abstractframework-0.7.1 → abstractframework-0.8.0}/docs/installers/operations-and-support.md +0 -0
  130. {abstractframework-0.7.1 → abstractframework-0.8.0}/docs/installers/release-and-manifest.md +0 -0
  131. {abstractframework-0.7.1 → abstractframework-0.8.0}/docs/installers/security-and-os-blocks.md +0 -0
  132. {abstractframework-0.7.1 → abstractframework-0.8.0}/docs/installers/strategy.md +0 -0
  133. {abstractframework-0.7.1 → abstractframework-0.8.0}/docs/installers/user-journeys.md +0 -0
  134. {abstractframework-0.7.1 → abstractframework-0.8.0}/docs/prompts/agora-collaboration.md +0 -0
  135. {abstractframework-0.7.1 → abstractframework-0.8.0}/docs/scenarios/offline-coding-assistant.md +0 -0
  136. {abstractframework-0.7.1 → abstractframework-0.8.0}/docs/scenarios/specialized-agent-flow.md +0 -0
  137. {abstractframework-0.7.1 → abstractframework-0.8.0}/docs/scenarios/workflow-bundle-lifecycle.md +0 -0
  138. {abstractframework-0.7.1 → abstractframework-0.8.0}/docs/skills/README.md +0 -0
  139. {abstractframework-0.7.1 → abstractframework-0.8.0}/docs/skills/abstractframework-agent-skills-fit.md +0 -0
  140. {abstractframework-0.7.1 → abstractframework-0.8.0}/docs/skills/abstractframework-architecture-deep-dive.md +0 -0
  141. {abstractframework-0.7.1 → abstractframework-0.8.0}/docs/skills/agent-skills-ecosystem-scan.md +0 -0
  142. {abstractframework-0.7.1 → abstractframework-0.8.0}/docs/skills/agent-skills-ecosystem-sources.md +0 -0
  143. {abstractframework-0.7.1 → abstractframework-0.8.0}/docs/skills/claude-agent-skills-overview.md +0 -0
  144. {abstractframework-0.7.1 → abstractframework-0.8.0}/docs/skills/claude-agent-skills-sources.md +0 -0
  145. {abstractframework-0.7.1 → abstractframework-0.8.0}/docs/skills/claude-agent-skills-top-20.md +0 -0
  146. {abstractframework-0.7.1 → abstractframework-0.8.0}/docs/workspace-scripts.md +0 -0
  147. {abstractframework-0.7.1 → abstractframework-0.8.0}/scripts/af-local.sh +0 -0
  148. {abstractframework-0.7.1 → abstractframework-0.8.0}/scripts/af.sh +0 -0
  149. {abstractframework-0.7.1 → abstractframework-0.8.0}/scripts/agora_react_flow_smoke.py +0 -0
  150. {abstractframework-0.7.1 → abstractframework-0.8.0}/scripts/assistant-local.sh +0 -0
  151. {abstractframework-0.7.1 → abstractframework-0.8.0}/scripts/assistant.sh +0 -0
  152. {abstractframework-0.7.1 → abstractframework-0.8.0}/scripts/build.sh +0 -0
  153. {abstractframework-0.7.1 → abstractframework-0.8.0}/scripts/cache_probe_local_backends.py +0 -0
  154. {abstractframework-0.7.1 → abstractframework-0.8.0}/scripts/cache_steer_repl.py +0 -0
  155. {abstractframework-0.7.1 → abstractframework-0.8.0}/scripts/check_identity_sync.py +0 -0
  156. {abstractframework-0.7.1 → abstractframework-0.8.0}/scripts/clone.sh +0 -0
  157. {abstractframework-0.7.1 → abstractframework-0.8.0}/scripts/code-local.sh +0 -0
  158. {abstractframework-0.7.1 → abstractframework-0.8.0}/scripts/code.sh +0 -0
  159. {abstractframework-0.7.1 → abstractframework-0.8.0}/scripts/commit.sh +0 -0
  160. {abstractframework-0.7.1 → abstractframework-0.8.0}/scripts/console-local.sh +0 -0
  161. {abstractframework-0.7.1 → abstractframework-0.8.0}/scripts/console.sh +0 -0
  162. {abstractframework-0.7.1 → abstractframework-0.8.0}/scripts/core_operator_drive.py +0 -0
  163. {abstractframework-0.7.1 → abstractframework-0.8.0}/scripts/deps.sh +0 -0
  164. {abstractframework-0.7.1 → abstractframework-0.8.0}/scripts/entity-local.sh +0 -0
  165. {abstractframework-0.7.1 → abstractframework-0.8.0}/scripts/entity.sh +0 -0
  166. {abstractframework-0.7.1 → abstractframework-0.8.0}/scripts/event_inbox_flow_smoke.py +0 -0
  167. {abstractframework-0.7.1 → abstractframework-0.8.0}/scripts/flow-local.sh +0 -0
  168. {abstractframework-0.7.1 → abstractframework-0.8.0}/scripts/flow.sh +0 -0
  169. {abstractframework-0.7.1 → abstractframework-0.8.0}/scripts/gateway-flow-local.sh +0 -0
  170. {abstractframework-0.7.1 → abstractframework-0.8.0}/scripts/gateway-flow.sh +0 -0
  171. {abstractframework-0.7.1 → abstractframework-0.8.0}/scripts/gateway-local.sh +0 -0
  172. {abstractframework-0.7.1 → abstractframework-0.8.0}/scripts/gateway.sh +0 -0
  173. {abstractframework-0.7.1 → abstractframework-0.8.0}/scripts/gen_llms_full.py +0 -0
  174. {abstractframework-0.7.1 → abstractframework-0.8.0}/scripts/headless_fleet_bridge.py +0 -0
  175. {abstractframework-0.7.1 → abstractframework-0.8.0}/scripts/headless_fleet_demo.py +0 -0
  176. {abstractframework-0.7.1 → abstractframework-0.8.0}/scripts/headless_steer_repl.py +0 -0
  177. {abstractframework-0.7.1 → abstractframework-0.8.0}/scripts/lib/af_inventory.py +0 -0
  178. {abstractframework-0.7.1 → abstractframework-0.8.0}/scripts/lib/af_stack.sh +0 -0
  179. {abstractframework-0.7.1 → abstractframework-0.8.0}/scripts/lib/af_supervisor.sh +0 -0
  180. {abstractframework-0.7.1 → abstractframework-0.8.0}/scripts/lib/apps_common.sh +0 -0
  181. {abstractframework-0.7.1 → abstractframework-0.8.0}/scripts/lib/build_macos_installer.sh +0 -0
  182. {abstractframework-0.7.1 → abstractframework-0.8.0}/scripts/lib/gateway_user_tokens.py +0 -0
  183. {abstractframework-0.7.1 → abstractframework-0.8.0}/scripts/lib/repo_groups.sh +0 -0
  184. {abstractframework-0.7.1 → abstractframework-0.8.0}/scripts/meet_castor.sh +0 -0
  185. {abstractframework-0.7.1 → abstractframework-0.8.0}/scripts/observer-local.sh +0 -0
  186. {abstractframework-0.7.1 → abstractframework-0.8.0}/scripts/observer.sh +0 -0
  187. {abstractframework-0.7.1 → abstractframework-0.8.0}/scripts/plan_walkthrough.py +0 -0
  188. {abstractframework-0.7.1 → abstractframework-0.8.0}/scripts/pull.sh +0 -0
  189. {abstractframework-0.7.1 → abstractframework-0.8.0}/scripts/push.sh +0 -0
  190. {abstractframework-0.7.1 → abstractframework-0.8.0}/scripts/spawn_demo_agent.sh +0 -0
  191. {abstractframework-0.7.1 → abstractframework-0.8.0}/scripts/start-local.sh +0 -0
  192. {abstractframework-0.7.1 → abstractframework-0.8.0}/scripts/start.sh +0 -0
  193. {abstractframework-0.7.1 → abstractframework-0.8.0}/scripts/status.sh +0 -0
  194. {abstractframework-0.7.1 → abstractframework-0.8.0}/scripts/steer_repl.py +0 -0
  195. {abstractframework-0.7.1 → abstractframework-0.8.0}/scripts/tests/test_af_supervisor.sh +0 -0
  196. {abstractframework-0.7.1 → abstractframework-0.8.0}/scripts/tests/test_inventory.sh +0 -0
  197. {abstractframework-0.7.1 → abstractframework-0.8.0}/scripts/tests/test_repo_scripts.sh +0 -0
  198. {abstractframework-0.7.1 → abstractframework-0.8.0}/scripts/uninstall.sh +0 -0
  199. {abstractframework-0.7.1 → abstractframework-0.8.0}/scripts/visit_resume_cache_probe.py +0 -0
  200. {abstractframework-0.7.1 → abstractframework-0.8.0}/setup.cfg +0 -0
  201. {abstractframework-0.7.1 → abstractframework-0.8.0}/tests/test_install_ps1_own_gateway.py +0 -0
  202. {abstractframework-0.7.1 → abstractframework-0.8.0}/tests/test_install_sh_gpu_twin.py +0 -0
  203. {abstractframework-0.7.1 → abstractframework-0.8.0}/tests/test_llms_full.py +0 -0
@@ -4,6 +4,170 @@ All notable changes to AbstractFramework will be documented in this file.
4
4
 
5
5
  ## [Unreleased]
6
6
 
7
+ ## [0.8.0] - 2026-10-01
8
+
9
+ The consoles' email and accounts screens are redesigned, the installer never installs less because
10
+ of the network, and the console and the apps work over https through `tailscale serve`. Pins:
11
+ AbstractGateway 0.10.0, AbstractCore 2.22.0, AbstractRuntime 0.8.2 and AbstractAssistant 0.11.0;
12
+ the terminal consoles `abstractgateway-console` 0.13.0 and `abstractcore-console` 0.6.0 and
13
+ AbstractCode's terminal client `abstractcode` 0.8.0; the
14
+ browser apps Code 0.9.0, Flow 0.6.0, Observer 0.5.0, Continuum 0.6.0 and Entity 0.5.0. Every other
15
+ version is unchanged from 0.7.2.
16
+
17
+ ### Changed
18
+
19
+ - **Email address and mailbox, named apart.** Your **email address** is where sign-in codes and
20
+ notifications go; your **mailbox** is the connection your agents and automations read and send
21
+ with. The mailbox tabs are **IMAP** (first and selected), **Google** and **Microsoft**. The IMAP
22
+ form shows every server field, pre-filled from the address with the standard settings and then
23
+ the discovered ones (never over a field you edited), asks for no user name, and offers a Login
24
+ field only through **My provider uses a different login name**. Connecting fills your email
25
+ address when it is empty. A connected mailbox has an **Active** switch; **Advanced** holds three
26
+ sentences: who your agents may send to, "At most 100 per hour and 1000 per day.", and the watch
27
+ folder. Same layout in the gateway's web and terminal consoles and AbstractCore's.
28
+ - **Send limits default to 100 per hour and 1000 per day** (were 20 and 100). Limits you set
29
+ yourself are kept on upgrade; an account that kept the old defaults follows the new ones.
30
+ - **Notifications are two switches, Job failed and Approval needed**, both on once a mailbox is
31
+ connected. **Send a test** answers with a sentence: "Sent to …" or why not ("Not sent: hourly
32
+ limit reached (100 of 100 this hour) — resets at 14:05."), with reset times in your local time.
33
+ - **One Accounts page.** The gateway web console's **Accounts** page is one table of users and
34
+ entities (Name with an Admin / User / Entity chip, Email address, Mailbox, Runtime, an **Active** switch; actions Email, Logs,
35
+ Workspace, Rotate, Manage, Delete, each with its reason when it cannot apply), with **Create
36
+ user** and **Create entity**. **Email for everyone** below it holds the administrator's
37
+ **Mailboxes for users** switch, with **Agent email tools for users** and **Sign-in by email**
38
+ under Advanced. **Logs** shows an account's activity from the gateway's audit log. An
39
+ administrator sees every account; a user sees only themself and the entities they created, in
40
+ the consoles and the API.
41
+ - **Sidebar groups and Setup.** The web console groups its pages as Accounts; Work
42
+ (Workflows, Runtimes, Apps); Models (Providers, Models, Engines, Multimodal); System (Resources,
43
+ Sandbox, Network). **Setup** at the bottom of the sidebar runs the first-run guide again and keeps
44
+ your choices unless you replace them. The terminal console uses the same groups and `S` for
45
+ Setup.
46
+ - **Sign-in by email says what happened.** **Forgot your token? Email me a sign-in code** answers
47
+ with the outcome: the code is on its way to a masked address, the account has no email address or
48
+ no mailbox to send from, or the send failed.
49
+ - Every on/off setting in the consoles and the apps is a switch named by what it controls.
50
+
51
+ ### Added
52
+
53
+ - **https through Tailscale.** `tailscale serve --bg http://127.0.0.1:<port>` on the gateway's
54
+ computer serves the console and every app at `https://<host>.<tailnet>.ts.net/`, with sign-in,
55
+ `Secure` cookies and app handover, and the Network setting can stay `localhost`. Voice and camera
56
+ in the browser need this https address. See
57
+ [Phones and tablets: Reached through Tailscale](docs/guide/deployment-iphone.md#reached-through-tailscale-https).
58
+ - **The apps work over plain http from another machine.** Opened at `http://<address>:8080/apps/<app>/`
59
+ (a LAN or Tailscale address), the apps start and copy buttons work; a feature that needs https
60
+ says so.
61
+ - AbstractCode's web sidebar shows 25 conversations with **Load more**; the Observer opens a run
62
+ from a `#run/<run_id>` link (the Accounts page's Logs link to it).
63
+
64
+ ### Fixed
65
+
66
+ - **Transcription no longer shows "Engine missing: unknown AbstractVoice engine 'huggingface'".**
67
+ The recommended setup stores the transcription engine's route; a route written that way before
68
+ is repaired when the configuration loads (a backup is written first).
69
+ - **Sign-in through a proxy on the gateway's computer** (such as `tailscale serve`) no longer answers
70
+ 403 "origin not allowed"; app manifests and icons load without an app session.
71
+ - **Pausing an automation also stops its retries**: an occurrence waiting in retry backoff is
72
+ cancelled.
73
+ - **Resuming an email automation wakes the mail watcher at once**, so mail that arrives right after
74
+ the resume triggers it.
75
+ - **Two Node.js installs at once** (two apps, or an app and **Install Node.js**) no longer fail one
76
+ of them; Node.js is downloaded once.
77
+ - **Stopping the gateway while it starts** waits for the startup and stops what it started.
78
+ - **AbstractCore keeps settings it does not know.** A settings save keeps keys you added to
79
+ `abstractcore.json` and keys written by a newer version.
80
+ - **Server file routes never serve the gateway's data folder or credential folders**, so received
81
+ mail and run ledgers of other users cannot be read through `/files/read`. Administrators never
82
+ read mail.
83
+
84
+ - **An upgrade never installs less because of the network.** A server error while downloading (a
85
+ 502 on PyTorch's wheel) made the installer drop local voice and finish green without it. Now any
86
+ network failure of a uv install (HTTP 5xx, 429, 408, a DNS, connect, reset or closed connection, a
87
+ timeout, a download cut off, uv's `Request failed after N retries`) runs the same full install
88
+ again on the index-lag waits (15, 30, 60, then 120 s; 8 attempts over about 10 minutes), then stops
89
+ with exit code 1, uv's cause in red and the exact command to run again. uv changes the gateway's
90
+ environment only after every download succeeded, so the previous gateway stays installed and
91
+ working. Python's download and nodejs-wheel get
92
+ the same retries. `install.sh` and `install.ps1`.
93
+ - **Local voice left out is said in red.** The voice fallback now runs only for a deterministic
94
+ incompatibility (uv's resolution failure, e.g. `has no wheels with a matching platform tag`, a failed
95
+ build, a broken file). The warning gives uv's reason, the summary's first line says `… but NOT
96
+ everything was installed:`, the `Voice:` line is red, the output ends with `NOT installed:` and
97
+ `bootstrap.env` records `VOICE_SKIPPED=<reason>`.
98
+ - **The terminal console and abstractcode wait for crates.io.** Right after a crate publish, `cargo
99
+ install --version <pin>` answered `could not find ... in registry` and the console was skipped with a
100
+ warning. crates.io's index lag and cargo's network failures now get the same waits; when they run
101
+ out the rest of the install goes on, the summary says in red which crate was not built, and the
102
+ installer exits with code 1.
103
+ - **A port changed in a console survives an upgrade.** A re-run without `--port` (the consoles'
104
+ **Update**) read the port from `bootstrap.env`, wrote it over the gateway's Network setting and
105
+ restarted the gateway on the old port. The installer now reads `abstractgateway network status
106
+ --json` first: a stored port wins, is recorded in `bootstrap.env`, and is never overwritten unless
107
+ `--port` is given; a stored port held by another program stops the install with what to do
108
+ instead of moving to another port.
109
+ - **Upgrading an install older than 0.6.1 no longer turns options off.** An option the installer did
110
+ not have when that install was made (the terminal console before gateway 0.6.0, abstractcode and the
111
+ AbstractCore commands before gateway 0.7.1) was read as opted out, so a 0.4.0 install kept
112
+ `--no-core-cli` on its first upgrade. Such an option now takes today's default, dated by the
113
+ recorded `GATEWAY_VERSION`, and the installer says so.
114
+
115
+ ### Documentation
116
+
117
+ - The root docs describe the email address and mailbox screens, the Accounts page, the sidebar
118
+ groups and Setup, sign-in by email, the installer's retry, and https through Tailscale
119
+ ([Email integration](docs/guide/email-integration.md),
120
+ [Phones and tablets](docs/guide/deployment-iphone.md), [Install](docs/install.md),
121
+ [Glossary](docs/glossary.md)).
122
+ - Per-user email in
123
+ [Email integration](docs/guide/email-integration.md) and the
124
+ [Email inbox agent](docs/scenarios/email-inbox-agent.md) scenario (settings in the consoles;
125
+ agent email tools off by default; recipient allowlist starting with your own address; the
126
+ framework's own automatic mail never triggers an automation; sign-in by email), phones and
127
+ tablets through the gateway's one address in [Phones and tablets](docs/guide/deployment-iphone.md)
128
+ and the [Phone thin client](docs/scenarios/phone-thin-client.md) scenario, responsive apps in the
129
+ README, index, architecture, FAQ and getting started, email terms in the glossary, and email rows
130
+ in Troubleshooting and Automations.
131
+
132
+ ## [0.7.2] - 2026-09-30
133
+
134
+ Every screen works on phones, tablets and any window size. Pins: AbstractGateway 0.9.0 and
135
+ AbstractCore 2.21.0 (responsive web consoles); the browser apps Flow 0.5.0, Code 0.8.0, Observer
136
+ 0.4.0, Continuum 0.5.0 and Entity 0.4.0 (responsive layouts, on `@abstractframework/ui-kit` 0.3.2
137
+ and `panel-chat` 0.2.1). Every other version is unchanged from 0.7.1.
138
+
139
+ ### Changed
140
+
141
+ - **Responsive everywhere.** The gateway and AbstractCore web consoles and the five browser apps
142
+ follow one responsive system: the framework breakpoints (480, 768, 1024 and 1440 px wide, plus
143
+ 500 px tall for phone landscape), sidebars that become drawers below 1024 px, dialogs that open
144
+ as bottom sheets on small screens, 44 px touch targets and 16 px form fields on touch screens, and
145
+ pages that respect the notch and home-indicator areas. See each app's changelog for details.
146
+
147
+ ### Fixed
148
+
149
+ - **A new email automation reacts to the mail you send to test it.** Creating a "When an email
150
+ arrives" automation wakes the mail watcher, which marks where new mail starts within seconds, so
151
+ a message sent right after creation is processed.
152
+ - **A new or resumed email automation no longer runs on old mail.** After a time with no email
153
+ automation active, the next one received everything that had arrived meanwhile as new mail. That
154
+ mail is now treated as already there (mail that arrives while the gateway itself is down is
155
+ still read when it is back).
156
+ - **An upgrade right after a release no longer installs less.** When one of PyPI's mirrors had not
157
+ yet listed a version the release pins, uv answered `there is no version of
158
+ abstractgateway[gpu]==0.8.1`, and the installer took that for a system without the voice wheels
159
+ and installed without local voice. install.sh and install.ps1 (and so the consoles' **Update** action, which runs install.sh) now recognise that
160
+ case from uv's exit code 1, its resolution failure, and its exact-pin wording for a package the
161
+ installer itself pinned (or from a download of that pinned version's own file that answers 404:
162
+ the list shows it, the file is not served yet), and run the same install again, with every feature, after 15 s, 30 s,
163
+ 60 s and 120 s waits (8 attempts, about 10 minutes), printing `PyPI hasn't published
164
+ abstractgateway 0.8.1 to every mirror yet; retrying in 30 s (attempt 3/8)`. After that they stop
165
+ with the cause and what to do, never with a smaller install. The fallbacks for systems without
166
+ the voice or llama.cpp wheels are unchanged. The voice requirement now carries the release's
167
+ AbstractVoice version (`abstractvoice[supertonic,stt]==0.13.2`), which the release matrix already
168
+ enforced, so uv names a missing AbstractVoice in the same exact-pin form. See
169
+ [Right after a release](docs/install.md#right-after-a-release).
170
+
7
171
  ## [0.7.1] - 2026-09-30
8
172
 
9
173
  A patch release. Pins: AbstractCore 2.20.2, AbstractRuntime 0.8.1 and AbstractGateway 0.8.1; every
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: abstractframework
3
- Version: 0.7.1
3
+ Version: 0.8.0
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.8.1
27
- Requires-Dist: abstractassistant==0.10.0
28
- Requires-Dist: abstractcore==2.20.2
29
- Requires-Dist: AbstractRuntime==0.8.1
26
+ Requires-Dist: abstractgateway==0.10.0
27
+ Requires-Dist: abstractassistant==0.11.0
28
+ Requires-Dist: abstractcore==2.22.0
29
+ Requires-Dist: AbstractRuntime==0.8.2
30
30
  Requires-Dist: abstractagent==0.3.17
31
31
  Requires-Dist: abstractskill==0.3.0
32
32
  Requires-Dist: AbstractMemory==0.3.0
@@ -36,11 +36,11 @@ Requires-Dist: abstractvision==0.3.33
36
36
  Requires-Dist: abstractmusic==0.1.15
37
37
  Requires-Dist: abstract3d==0.3.2
38
38
  Provides-Extra: apple
39
- Requires-Dist: abstractgateway[apple]==0.8.1; extra == "apple"
40
- Requires-Dist: abstractassistant[apple]==0.10.0; platform_system == "Darwin" and extra == "apple"
39
+ Requires-Dist: abstractgateway[apple]==0.10.0; extra == "apple"
40
+ Requires-Dist: abstractassistant[apple]==0.11.0; platform_system == "Darwin" and extra == "apple"
41
41
  Provides-Extra: gpu
42
- Requires-Dist: abstractgateway[gpu]==0.8.1; extra == "gpu"
43
- Requires-Dist: abstractassistant[gpu]==0.10.0; extra == "gpu"
42
+ Requires-Dist: abstractgateway[gpu]==0.10.0; extra == "gpu"
43
+ Requires-Dist: abstractassistant[gpu]==0.11.0; extra == "gpu"
44
44
  Dynamic: license-file
45
45
 
46
46
  # AbstractFramework
@@ -91,9 +91,9 @@ button of gateway 0.7.1 cannot upgrade. Gateway only, apps, and version checks:
91
91
 
92
92
  On Linux or Windows with an NVIDIA GPU (`nvidia-smi` works), the installer picks the `gpu` profile:
93
93
  PyTorch and llama.cpp on CUDA, Whisper on the GPU, Diffusers image generation. On Linux it needs
94
- NVIDIA driver 580 or newer. Its release candidate was rehearsed on a Quadro RTX 5000 on Ubuntu
95
- 26.04; the measured results, and what the final versions changed, are in GPU on Linux. The Windows gpu install is
96
- implemented but not yet validated on real NVIDIA hardware. See [GPU on Linux](docs/install.md#gpu-on-linux-nvidia) and
94
+ NVIDIA driver 580 or newer; measured install and per-capability timings on a Quadro RTX 5000 with
95
+ Ubuntu 26.04 are in GPU on Linux. The Windows gpu install is implemented but not yet validated on
96
+ real NVIDIA hardware. See [GPU on Linux](docs/install.md#gpu-on-linux-nvidia) and
97
97
  [GPU on Windows](docs/install.md#gpu-on-windows-nvidia).
98
98
 
99
99
  The installer sets up the gateway in your user account (no admin password, no system Python),
@@ -102,7 +102,8 @@ at login (Enter = yes; an unattended install leaves it off and says how to turn
102
102
  on `127.0.0.1:8080`, and opens its web console in your browser already signed in. A first-run guide
103
103
  then sets up a local engine (Ollama, LM Studio, MLX, llama.cpp), downloads a model that fits your
104
104
  machine, and lists the apps; the gateway serves them on its own address at `/apps/<app>/`. The
105
- installer also builds the terminal console, `abstractgateway-console`, which runs the same guide on
105
+ **Setup** button at the bottom of the console's sidebar runs the guide again, keeping your choices
106
+ unless you replace them. The installer also builds the terminal console, `abstractgateway-console`, which runs the same guide on
106
107
  a server without a browser and offers itself at the end of an install over SSH
107
108
  ([Headless or remote machine](docs/install.md#headless-or-remote-machine)).
108
109
 
@@ -169,9 +170,10 @@ Start here if you're building persistent AI applications — agents that run for
169
170
  - Durable execution that survives crashes and restarts
170
171
  - Append-only ledger (replay-first) for auditability
171
172
  - Automations: a workflow that runs on a fixed interval, when an email arrives, or on demand, kept as a readable conversation ([Automations](docs/automations.md))
172
- - Email for each user: connect your own mailbox, get automation results and approvals by email, and let agents use email tools when an administrator allows it ([Email](https://github.com/lpalbou/AbstractGateway/blob/main/docs/email.md))
173
+ - Email for each user: your email address receives sign-in codes and notifications; connect your own mailbox (IMAP, Google or Microsoft) to get failed jobs, approvals and automation results by email, and let your agents use email tools when you switch them on ([Email integration](docs/guide/email-integration.md))
173
174
  - Multi-client: terminal, browser, tray, Telegram, email
174
- - Start on one device, continue on another
175
+ - Start on one device, continue on another: the web console and every browser app work on phones,
176
+ tablets and any window size ([Phones and tablets](docs/guide/deployment-iphone.md))
175
177
 
176
178
  ```bash
177
179
  pip install abstractgateway
@@ -217,7 +219,7 @@ abstractgateway-console --gateway-url http://127.0.0.1:8080 --token <admin token
217
219
  ```
218
220
 
219
221
  Container images are published for the gateway and the AbstractCore server:
220
- `ghcr.io/lpalbou/abstractgateway:0.8.1` and `ghcr.io/lpalbou/abstractcore-server:2.20.2`.
222
+ `ghcr.io/lpalbou/abstractgateway:0.10.0` and `ghcr.io/lpalbou/abstractcore-server:2.22.0`.
221
223
 
222
224
  For artifact and runtime-resource investigation, see
223
225
  [Runtime artifacts and retrieval](docs/guide/runtime-artifacts.md).
@@ -311,6 +313,10 @@ The ecosystem, grouped by layer. Each name links to the package's repository.
311
313
 
312
314
  ### Apps and clients
313
315
 
316
+ The gateway's web console and the five browser apps (Code Web UI, Flow Editor, Observer, Entity,
317
+ Continuum) adapt to phones, tablets and windows of any size: drawers below 1024 px, bottom-sheet
318
+ dialogs and touch-sized controls on phones.
319
+
314
320
  | App | What it does | Install |
315
321
  |---|---|---|
316
322
  | [AbstractCode](https://github.com/lpalbou/AbstractCode) | Terminal agentic dev client (Rust, on the AbstractTUI engine) — durable sessions, tool approvals, the gateway's default workflow, workspace files, live replies | `cargo install abstractcode`, or a prebuilt binary from the [GitHub release](https://github.com/lpalbou/AbstractCode/releases) |
@@ -318,7 +324,7 @@ The ecosystem, grouped by layer. Each name links to the package's repository.
318
324
  | [AbstractObserver](https://github.com/lpalbou/AbstractObserver) | Browser UI — monitor, control, and schedule gateway runs | the gateway console's **Apps** page (served at `/apps/observer/`), or `npx @abstractframework/observer --gateway-url <url>` |
319
325
  | [AbstractEntity](https://github.com/lpalbou/AbstractEntity) | Summoned-entity manager — roster, blueprint (cognition map + editing), chat drawer, live replay | the gateway console's **Apps** page (served at `/apps/entity/`), or `npx @abstractframework/entity --gateway-url <url>` |
320
326
  | [AbstractContinuum](https://github.com/lpalbou/AbstractContinuum) | Continuous iterative development and deployment console | the gateway console's **Apps** page (served at `/apps/continuum/`), or `npx @abstractframework/continuum --gateway-url <url>` |
321
- | **Gateway consoles** | Operator consoles for a running gateway: web at `/console` (first-run guide, Models, Engines, providers, users), terminal via `abstractgateway-console` (the same setup guide and screens, Network and Apps included, for headless hosts) | built into `abstractgateway`; built by the installer, or `cargo install abstractgateway-console` |
327
+ | **Gateway consoles** | Operator consoles for a running gateway: web at `/console` (sidebar groups Accounts, Work, Models and System; the **Setup** button; one Accounts table of users and entities), terminal via `abstractgateway-console` (the same setup guide and screens, Network and Apps included, for headless hosts) | built into `abstractgateway`; built by the installer, or `cargo install abstractgateway-console` |
322
328
  | **Core consoles** | Consoles for AbstractCore: web at `/console` of `abstractcore serve`, terminal via `abstractcore-console` (config, Models, Engines) | built into `abstractcore`; `cargo install abstractcore-console` |
323
329
  | **Code Web UI** | Browser client of AbstractCode (gateway-backed): workflow selector, Files tab, live replies | the gateway console's **Apps** page (served at `/apps/code/`), or `npx @abstractframework/code --gateway-url <url>` |
324
330
  | **Flow Editor** | Visual workflow authoring in the browser | the gateway console's **Apps** page (served at `/apps/flow/`), or `npx @abstractframework/flow --gateway-url <url>` |
@@ -363,7 +369,7 @@ pip install "abstractframework[gpu]"
363
369
  | Apple | `pip install "abstractframework[apple]"` | macOS 14+ on Apple Silicon | 3.10–3.13 (F5-TTS voice cloning needs 3.11+) |
364
370
  | GPU | `pip install "abstractframework[gpu]"` | Linux with a CUDA or ROCm GPU; on Windows, use the one-line installer (a plain pip install gets PyPI's CPU-only PyTorch and no llama.cpp) | 3.10–3.13 (F5-TTS voice cloning needs 3.11+) |
365
371
 
366
- ### Release matrix (abstractframework 0.7.1)
372
+ ### Release matrix (abstractframework 0.8.0)
367
373
 
368
374
  `abstractframework` pins every Python package with `==`, so one version of the
369
375
  meta-package always installs the same stack. The browser apps and Rust tools are
@@ -372,10 +378,10 @@ and tested together.
372
378
 
373
379
  | Registry | Package | Version |
374
380
  |---|---|---|
375
- | PyPI | `abstractgateway` | 0.8.1 |
376
- | PyPI | `abstractassistant` | 0.10.0 |
377
- | PyPI | `abstractcore` | 2.20.2 |
378
- | PyPI | `AbstractRuntime` | 0.8.1 |
381
+ | PyPI | `abstractgateway` | 0.10.0 |
382
+ | PyPI | `abstractassistant` | 0.11.0 |
383
+ | PyPI | `abstractcore` | 2.22.0 |
384
+ | PyPI | `AbstractRuntime` | 0.8.2 |
379
385
  | PyPI | `abstractagent` | 0.3.17 |
380
386
  | PyPI | `abstractskill` | 0.3.0 |
381
387
  | PyPI | `AbstractMemory` | 0.3.0 |
@@ -384,17 +390,17 @@ and tested together.
384
390
  | PyPI | `abstractvision` | 0.3.33 |
385
391
  | PyPI | `abstractmusic` | 0.1.15 |
386
392
  | PyPI | `abstract3d` | 0.3.2 |
387
- | npm | `@abstractframework/flow` | 0.4.0 |
388
- | npm | `@abstractframework/code` | 0.7.0 |
389
- | npm | `@abstractframework/observer` | 0.3.0 |
390
- | npm | `@abstractframework/continuum` | 0.4.0 |
391
- | npm | `@abstractframework/entity` | 0.3.0 |
392
- | crates.io | `abstractcode` | 0.7.1 |
393
- | crates.io | `abstractgateway-console` | 0.12.0 |
394
- | crates.io | `abstractcore-console` | 0.5.0 |
393
+ | npm | `@abstractframework/flow` | 0.6.0 |
394
+ | npm | `@abstractframework/code` | 0.9.0 |
395
+ | npm | `@abstractframework/observer` | 0.5.0 |
396
+ | npm | `@abstractframework/continuum` | 0.6.0 |
397
+ | npm | `@abstractframework/entity` | 0.5.0 |
398
+ | crates.io | `abstractcode` | 0.8.0 |
399
+ | crates.io | `abstractgateway-console` | 0.13.0 |
400
+ | crates.io | `abstractcore-console` | 0.6.0 |
395
401
  | crates.io | `abstracttui` | 0.6.0 |
396
- | GHCR | `ghcr.io/lpalbou/abstractgateway` | 0.8.1 (`gpu-latest` / `<version>-gpu` experimental) |
397
- | GHCR | `ghcr.io/lpalbou/abstractcore-server` | 2.20.2 |
402
+ | GHCR | `ghcr.io/lpalbou/abstractgateway` | 0.10.0 (`gpu-latest` / `<version>-gpu` experimental) |
403
+ | GHCR | `ghcr.io/lpalbou/abstractcore-server` | 2.22.0 |
398
404
 
399
405
  `abstract3d` (pinned above) comes with AbstractCore in every profile. The optional add-on that is
400
406
  not part of any profile installs separately: `pip install abstractcamera` (0.2.1). `abstractskill` (pinned above)
@@ -46,9 +46,9 @@ button of gateway 0.7.1 cannot upgrade. Gateway only, apps, and version checks:
46
46
 
47
47
  On Linux or Windows with an NVIDIA GPU (`nvidia-smi` works), the installer picks the `gpu` profile:
48
48
  PyTorch and llama.cpp on CUDA, Whisper on the GPU, Diffusers image generation. On Linux it needs
49
- NVIDIA driver 580 or newer. Its release candidate was rehearsed on a Quadro RTX 5000 on Ubuntu
50
- 26.04; the measured results, and what the final versions changed, are in GPU on Linux. The Windows gpu install is
51
- implemented but not yet validated on real NVIDIA hardware. See [GPU on Linux](docs/install.md#gpu-on-linux-nvidia) and
49
+ NVIDIA driver 580 or newer; measured install and per-capability timings on a Quadro RTX 5000 with
50
+ Ubuntu 26.04 are in GPU on Linux. The Windows gpu install is implemented but not yet validated on
51
+ real NVIDIA hardware. See [GPU on Linux](docs/install.md#gpu-on-linux-nvidia) and
52
52
  [GPU on Windows](docs/install.md#gpu-on-windows-nvidia).
53
53
 
54
54
  The installer sets up the gateway in your user account (no admin password, no system Python),
@@ -57,7 +57,8 @@ at login (Enter = yes; an unattended install leaves it off and says how to turn
57
57
  on `127.0.0.1:8080`, and opens its web console in your browser already signed in. A first-run guide
58
58
  then sets up a local engine (Ollama, LM Studio, MLX, llama.cpp), downloads a model that fits your
59
59
  machine, and lists the apps; the gateway serves them on its own address at `/apps/<app>/`. The
60
- installer also builds the terminal console, `abstractgateway-console`, which runs the same guide on
60
+ **Setup** button at the bottom of the console's sidebar runs the guide again, keeping your choices
61
+ unless you replace them. The installer also builds the terminal console, `abstractgateway-console`, which runs the same guide on
61
62
  a server without a browser and offers itself at the end of an install over SSH
62
63
  ([Headless or remote machine](docs/install.md#headless-or-remote-machine)).
63
64
 
@@ -124,9 +125,10 @@ Start here if you're building persistent AI applications — agents that run for
124
125
  - Durable execution that survives crashes and restarts
125
126
  - Append-only ledger (replay-first) for auditability
126
127
  - Automations: a workflow that runs on a fixed interval, when an email arrives, or on demand, kept as a readable conversation ([Automations](docs/automations.md))
127
- - Email for each user: connect your own mailbox, get automation results and approvals by email, and let agents use email tools when an administrator allows it ([Email](https://github.com/lpalbou/AbstractGateway/blob/main/docs/email.md))
128
+ - Email for each user: your email address receives sign-in codes and notifications; connect your own mailbox (IMAP, Google or Microsoft) to get failed jobs, approvals and automation results by email, and let your agents use email tools when you switch them on ([Email integration](docs/guide/email-integration.md))
128
129
  - Multi-client: terminal, browser, tray, Telegram, email
129
- - Start on one device, continue on another
130
+ - Start on one device, continue on another: the web console and every browser app work on phones,
131
+ tablets and any window size ([Phones and tablets](docs/guide/deployment-iphone.md))
130
132
 
131
133
  ```bash
132
134
  pip install abstractgateway
@@ -172,7 +174,7 @@ abstractgateway-console --gateway-url http://127.0.0.1:8080 --token <admin token
172
174
  ```
173
175
 
174
176
  Container images are published for the gateway and the AbstractCore server:
175
- `ghcr.io/lpalbou/abstractgateway:0.8.1` and `ghcr.io/lpalbou/abstractcore-server:2.20.2`.
177
+ `ghcr.io/lpalbou/abstractgateway:0.10.0` and `ghcr.io/lpalbou/abstractcore-server:2.22.0`.
176
178
 
177
179
  For artifact and runtime-resource investigation, see
178
180
  [Runtime artifacts and retrieval](docs/guide/runtime-artifacts.md).
@@ -266,6 +268,10 @@ The ecosystem, grouped by layer. Each name links to the package's repository.
266
268
 
267
269
  ### Apps and clients
268
270
 
271
+ The gateway's web console and the five browser apps (Code Web UI, Flow Editor, Observer, Entity,
272
+ Continuum) adapt to phones, tablets and windows of any size: drawers below 1024 px, bottom-sheet
273
+ dialogs and touch-sized controls on phones.
274
+
269
275
  | App | What it does | Install |
270
276
  |---|---|---|
271
277
  | [AbstractCode](https://github.com/lpalbou/AbstractCode) | Terminal agentic dev client (Rust, on the AbstractTUI engine) — durable sessions, tool approvals, the gateway's default workflow, workspace files, live replies | `cargo install abstractcode`, or a prebuilt binary from the [GitHub release](https://github.com/lpalbou/AbstractCode/releases) |
@@ -273,7 +279,7 @@ The ecosystem, grouped by layer. Each name links to the package's repository.
273
279
  | [AbstractObserver](https://github.com/lpalbou/AbstractObserver) | Browser UI — monitor, control, and schedule gateway runs | the gateway console's **Apps** page (served at `/apps/observer/`), or `npx @abstractframework/observer --gateway-url <url>` |
274
280
  | [AbstractEntity](https://github.com/lpalbou/AbstractEntity) | Summoned-entity manager — roster, blueprint (cognition map + editing), chat drawer, live replay | the gateway console's **Apps** page (served at `/apps/entity/`), or `npx @abstractframework/entity --gateway-url <url>` |
275
281
  | [AbstractContinuum](https://github.com/lpalbou/AbstractContinuum) | Continuous iterative development and deployment console | the gateway console's **Apps** page (served at `/apps/continuum/`), or `npx @abstractframework/continuum --gateway-url <url>` |
276
- | **Gateway consoles** | Operator consoles for a running gateway: web at `/console` (first-run guide, Models, Engines, providers, users), terminal via `abstractgateway-console` (the same setup guide and screens, Network and Apps included, for headless hosts) | built into `abstractgateway`; built by the installer, or `cargo install abstractgateway-console` |
282
+ | **Gateway consoles** | Operator consoles for a running gateway: web at `/console` (sidebar groups Accounts, Work, Models and System; the **Setup** button; one Accounts table of users and entities), terminal via `abstractgateway-console` (the same setup guide and screens, Network and Apps included, for headless hosts) | built into `abstractgateway`; built by the installer, or `cargo install abstractgateway-console` |
277
283
  | **Core consoles** | Consoles for AbstractCore: web at `/console` of `abstractcore serve`, terminal via `abstractcore-console` (config, Models, Engines) | built into `abstractcore`; `cargo install abstractcore-console` |
278
284
  | **Code Web UI** | Browser client of AbstractCode (gateway-backed): workflow selector, Files tab, live replies | the gateway console's **Apps** page (served at `/apps/code/`), or `npx @abstractframework/code --gateway-url <url>` |
279
285
  | **Flow Editor** | Visual workflow authoring in the browser | the gateway console's **Apps** page (served at `/apps/flow/`), or `npx @abstractframework/flow --gateway-url <url>` |
@@ -318,7 +324,7 @@ pip install "abstractframework[gpu]"
318
324
  | Apple | `pip install "abstractframework[apple]"` | macOS 14+ on Apple Silicon | 3.10–3.13 (F5-TTS voice cloning needs 3.11+) |
319
325
  | GPU | `pip install "abstractframework[gpu]"` | Linux with a CUDA or ROCm GPU; on Windows, use the one-line installer (a plain pip install gets PyPI's CPU-only PyTorch and no llama.cpp) | 3.10–3.13 (F5-TTS voice cloning needs 3.11+) |
320
326
 
321
- ### Release matrix (abstractframework 0.7.1)
327
+ ### Release matrix (abstractframework 0.8.0)
322
328
 
323
329
  `abstractframework` pins every Python package with `==`, so one version of the
324
330
  meta-package always installs the same stack. The browser apps and Rust tools are
@@ -327,10 +333,10 @@ and tested together.
327
333
 
328
334
  | Registry | Package | Version |
329
335
  |---|---|---|
330
- | PyPI | `abstractgateway` | 0.8.1 |
331
- | PyPI | `abstractassistant` | 0.10.0 |
332
- | PyPI | `abstractcore` | 2.20.2 |
333
- | PyPI | `AbstractRuntime` | 0.8.1 |
336
+ | PyPI | `abstractgateway` | 0.10.0 |
337
+ | PyPI | `abstractassistant` | 0.11.0 |
338
+ | PyPI | `abstractcore` | 2.22.0 |
339
+ | PyPI | `AbstractRuntime` | 0.8.2 |
334
340
  | PyPI | `abstractagent` | 0.3.17 |
335
341
  | PyPI | `abstractskill` | 0.3.0 |
336
342
  | PyPI | `AbstractMemory` | 0.3.0 |
@@ -339,17 +345,17 @@ and tested together.
339
345
  | PyPI | `abstractvision` | 0.3.33 |
340
346
  | PyPI | `abstractmusic` | 0.1.15 |
341
347
  | PyPI | `abstract3d` | 0.3.2 |
342
- | npm | `@abstractframework/flow` | 0.4.0 |
343
- | npm | `@abstractframework/code` | 0.7.0 |
344
- | npm | `@abstractframework/observer` | 0.3.0 |
345
- | npm | `@abstractframework/continuum` | 0.4.0 |
346
- | npm | `@abstractframework/entity` | 0.3.0 |
347
- | crates.io | `abstractcode` | 0.7.1 |
348
- | crates.io | `abstractgateway-console` | 0.12.0 |
349
- | crates.io | `abstractcore-console` | 0.5.0 |
348
+ | npm | `@abstractframework/flow` | 0.6.0 |
349
+ | npm | `@abstractframework/code` | 0.9.0 |
350
+ | npm | `@abstractframework/observer` | 0.5.0 |
351
+ | npm | `@abstractframework/continuum` | 0.6.0 |
352
+ | npm | `@abstractframework/entity` | 0.5.0 |
353
+ | crates.io | `abstractcode` | 0.8.0 |
354
+ | crates.io | `abstractgateway-console` | 0.13.0 |
355
+ | crates.io | `abstractcore-console` | 0.6.0 |
350
356
  | crates.io | `abstracttui` | 0.6.0 |
351
- | GHCR | `ghcr.io/lpalbou/abstractgateway` | 0.8.1 (`gpu-latest` / `<version>-gpu` experimental) |
352
- | GHCR | `ghcr.io/lpalbou/abstractcore-server` | 2.20.2 |
357
+ | GHCR | `ghcr.io/lpalbou/abstractgateway` | 0.10.0 (`gpu-latest` / `<version>-gpu` experimental) |
358
+ | GHCR | `ghcr.io/lpalbou/abstractcore-server` | 2.22.0 |
353
359
 
354
360
  `abstract3d` (pinned above) comes with AbstractCore in every profile. The optional add-on that is
355
361
  not part of any profile installs separately: `pip install abstractcamera` (0.2.1). `abstractskill` (pinned above)
@@ -10,15 +10,15 @@ Most implementation functionality still lives in component projects.
10
10
 
11
11
  from __future__ import annotations
12
12
 
13
- __version__ = "0.7.1"
13
+ __version__ = "0.8.0"
14
14
  __author__ = "Laurent-Philippe Albou"
15
15
  __license__ = "MIT"
16
16
 
17
17
  RELEASE_VERSIONS: dict[str, str] = {
18
- "abstractcore": "2.20.2",
19
- "abstractruntime": "0.8.1",
18
+ "abstractcore": "2.22.0",
19
+ "abstractruntime": "0.8.2",
20
20
  "abstractagent": "0.3.17",
21
- "abstractgateway": "0.8.1",
21
+ "abstractgateway": "0.10.0",
22
22
  "abstractskill": "0.3.0",
23
23
  "abstractmemory": "0.3.0",
24
24
  "abstractsemantics": "0.0.5",
@@ -26,7 +26,7 @@ RELEASE_VERSIONS: dict[str, str] = {
26
26
  "abstractvision": "0.3.33",
27
27
  "abstractmusic": "0.1.15",
28
28
  "abstract3d": "0.3.2",
29
- "abstractassistant": "0.10.0",
29
+ "abstractassistant": "0.11.0",
30
30
  }
31
31
 
32
32
  PACKAGE_DISTRIBUTIONS: dict[str, str] = {
@@ -45,11 +45,11 @@ PACKAGE_DISTRIBUTIONS: dict[str, str] = {
45
45
  }
46
46
 
47
47
  NPM_RELEASE_VERSIONS: dict[str, str] = {
48
- "@abstractframework/flow": "0.4.0",
49
- "@abstractframework/code": "0.7.0",
50
- "@abstractframework/observer": "0.3.0",
51
- "@abstractframework/continuum": "0.4.0",
52
- "@abstractframework/entity": "0.3.0",
48
+ "@abstractframework/flow": "0.6.0",
49
+ "@abstractframework/code": "0.9.0",
50
+ "@abstractframework/observer": "0.5.0",
51
+ "@abstractframework/continuum": "0.6.0",
52
+ "@abstractframework/entity": "0.5.0",
53
53
  }
54
54
 
55
55
  # Terminal tools published on crates.io alongside this release (installed with `cargo install`,
@@ -58,9 +58,9 @@ NPM_RELEASE_VERSIONS: dict[str, str] = {
58
58
  # `abstractcore serve`, and the gateway's terminal console already carries its Models and
59
59
  # Engines screens; it is listed here as a release version only.
60
60
  CRATE_RELEASE_VERSIONS: dict[str, str] = {
61
- "abstractgateway-console": "0.12.0",
62
- "abstractcore-console": "0.5.0",
63
- "abstractcode": "0.7.1",
61
+ "abstractgateway-console": "0.13.0",
62
+ "abstractcore-console": "0.6.0",
63
+ "abstractcode": "0.8.0",
64
64
  "abstracttui": "0.6.0",
65
65
  }
66
66