abstractframework 0.6.3__tar.gz → 0.7.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 (195) hide show
  1. {abstractframework-0.6.3 → abstractframework-0.7.0}/CHANGELOG.md +83 -0
  2. {abstractframework-0.6.3/abstractframework.egg-info → abstractframework-0.7.0}/PKG-INFO +23 -22
  3. {abstractframework-0.6.3 → abstractframework-0.7.0}/README.md +14 -13
  4. {abstractframework-0.6.3 → abstractframework-0.7.0}/abstractframework/__init__.py +9 -9
  5. {abstractframework-0.6.3 → abstractframework-0.7.0/abstractframework.egg-info}/PKG-INFO +23 -22
  6. {abstractframework-0.6.3 → abstractframework-0.7.0}/abstractframework.egg-info/SOURCES.txt +1 -0
  7. {abstractframework-0.6.3 → abstractframework-0.7.0}/abstractframework.egg-info/requires.txt +8 -8
  8. {abstractframework-0.6.3 → abstractframework-0.7.0}/docs/README.md +3 -3
  9. {abstractframework-0.6.3 → abstractframework-0.7.0}/docs/api.md +7 -7
  10. {abstractframework-0.6.3 → abstractframework-0.7.0}/docs/automations.md +66 -9
  11. {abstractframework-0.6.3 → abstractframework-0.7.0}/docs/configuration.md +23 -0
  12. {abstractframework-0.6.3 → abstractframework-0.7.0}/docs/faq.md +23 -3
  13. {abstractframework-0.6.3 → abstractframework-0.7.0}/docs/getting-started.md +6 -0
  14. {abstractframework-0.6.3 → abstractframework-0.7.0}/docs/install.md +27 -17
  15. {abstractframework-0.6.3 → abstractframework-0.7.0}/docs/installers/implementation-plan.md +1 -1
  16. {abstractframework-0.6.3 → abstractframework-0.7.0}/llms-full.txt +192 -75
  17. {abstractframework-0.6.3 → abstractframework-0.7.0}/llms.txt +4 -4
  18. {abstractframework-0.6.3 → abstractframework-0.7.0}/pyproject.toml +9 -9
  19. {abstractframework-0.6.3 → abstractframework-0.7.0}/scripts/install.sh +304 -17
  20. {abstractframework-0.6.3 → abstractframework-0.7.0}/scripts/tests/test_install_user_path.sh +242 -9
  21. {abstractframework-0.6.3 → abstractframework-0.7.0}/tests/test_install_profiles.py +7 -1
  22. abstractframework-0.7.0/tests/test_install_ps1_own_gateway.py +295 -0
  23. {abstractframework-0.6.3 → abstractframework-0.7.0}/LICENSE +0 -0
  24. {abstractframework-0.6.3 → abstractframework-0.7.0}/MANIFEST.in +0 -0
  25. {abstractframework-0.6.3 → abstractframework-0.7.0}/abstractframework/__main__.py +0 -0
  26. {abstractframework-0.6.3 → abstractframework-0.7.0}/abstractframework/cli.py +0 -0
  27. {abstractframework-0.6.3 → abstractframework-0.7.0}/abstractframework/install_manifest.py +0 -0
  28. {abstractframework-0.6.3 → abstractframework-0.7.0}/abstractframework/py.typed +0 -0
  29. {abstractframework-0.6.3 → abstractframework-0.7.0}/abstractframework.egg-info/dependency_links.txt +0 -0
  30. {abstractframework-0.6.3 → abstractframework-0.7.0}/abstractframework.egg-info/entry_points.txt +0 -0
  31. {abstractframework-0.6.3 → abstractframework-0.7.0}/abstractframework.egg-info/top_level.txt +0 -0
  32. {abstractframework-0.6.3 → abstractframework-0.7.0}/docs/adr/0001-layered-architecture.md +0 -0
  33. {abstractframework-0.6.3 → abstractframework-0.7.0}/docs/adr/0002-effect-system-design.md +0 -0
  34. {abstractframework-0.6.3 → abstractframework-0.7.0}/docs/adr/0003-tool-system-architecture.md +0 -0
  35. {abstractframework-0.6.3 → abstractframework-0.7.0}/docs/adr/0004-observability-strategy.md +0 -0
  36. {abstractframework-0.6.3 → abstractframework-0.7.0}/docs/adr/0005-memory-architecture.md +0 -0
  37. {abstractframework-0.6.3 → abstractframework-0.7.0}/docs/adr/0006-durable-tool-execution.md +0 -0
  38. {abstractframework-0.6.3 → abstractframework-0.7.0}/docs/adr/0007-active-context-and-memory-provenance.md +0 -0
  39. {abstractframework-0.6.3 → abstractframework-0.7.0}/docs/adr/0008-token-terminology.md +0 -0
  40. {abstractframework-0.6.3 → abstractframework-0.7.0}/docs/adr/0009-connected-memory-recall-and-provenance.md +0 -0
  41. {abstractframework-0.6.3 → abstractframework-0.7.0}/docs/adr/0010-runtime-owned-node-traces.md +0 -0
  42. {abstractframework-0.6.3 → abstractframework-0.7.0}/docs/adr/0011-ledger-subscriptions-and-event-bridge.md +0 -0
  43. {abstractframework-0.6.3 → abstractframework-0.7.0}/docs/adr/0012-portable-workflowartifact.md +0 -0
  44. {abstractframework-0.6.3 → abstractframework-0.7.0}/docs/adr/0013-durable-run-controls-pause-resume-cancel.md +0 -0
  45. {abstractframework-0.6.3 → abstractframework-0.7.0}/docs/adr/0014-runtime-authority-timeouts.md +0 -0
  46. {abstractframework-0.6.3 → abstractframework-0.7.0}/docs/adr/0015-execution-targets-and-remote-tool-workers.md +0 -0
  47. {abstractframework-0.6.3 → abstractframework-0.7.0}/docs/adr/0016-tool-calling-pipeline-and-responsibility-boundaries.md +0 -0
  48. {abstractframework-0.6.3 → abstractframework-0.7.0}/docs/adr/0017-host-ui-events-and-durable-prompts.md +0 -0
  49. {abstractframework-0.6.3 → abstractframework-0.7.0}/docs/adr/0018-durable-run-gateway-and-remote-host-control-plane.md +0 -0
  50. {abstractframework-0.6.3 → abstractframework-0.7.0}/docs/adr/0019-testing-strategy-and-levels.md +0 -0
  51. {abstractframework-0.6.3 → abstractframework-0.7.0}/docs/adr/0020-agent-host-pool-and-orchestrator-placement.md +0 -0
  52. {abstractframework-0.6.3 → abstractframework-0.7.0}/docs/adr/0021-deployment-topologies-and-supported-scenarios.md +0 -0
  53. {abstractframework-0.6.3 → abstractframework-0.7.0}/docs/adr/0022-orchestrator-host-and-runtime-daemonization.md +0 -0
  54. {abstractframework-0.6.3 → abstractframework-0.7.0}/docs/adr/0023-file-attachment-path-resolution-and-authorization.md +0 -0
  55. {abstractframework-0.6.3 → abstractframework-0.7.0}/docs/adr/0024-attachment-placeholders-and-compaction-invariants.md +0 -0
  56. {abstractframework-0.6.3 → abstractframework-0.7.0}/docs/adr/0025-kg-entity-normalization-and-dedup.md +0 -0
  57. {abstractframework-0.6.3 → abstractframework-0.7.0}/docs/adr/0026-truncation-policy-and-contract.md +0 -0
  58. {abstractframework-0.6.3 → abstractframework-0.7.0}/docs/adr/0027-timeout-policy-and-contract.md +0 -0
  59. {abstractframework-0.6.3 → abstractframework-0.7.0}/docs/adr/0028-capabilities-plugins-and-library-framework-modes.md +0 -0
  60. {abstractframework-0.6.3 → abstractframework-0.7.0}/docs/adr/0029-permissive-dependency-and-licensing-policy.md +0 -0
  61. {abstractframework-0.6.3 → abstractframework-0.7.0}/docs/adr/0030-security-test-fixtures-and-isolation.md +0 -0
  62. {abstractframework-0.6.3 → abstractframework-0.7.0}/docs/adr/0031-workflow-llm-routing-overrides-provider-model-and-base-url.md +0 -0
  63. {abstractframework-0.6.3 → abstractframework-0.7.0}/docs/adr/0032-package-dependency-boundaries-and-gateway-first-apps.md +0 -0
  64. {abstractframework-0.6.3 → abstractframework-0.7.0}/docs/adr/0033-install-profiles-config-entrypoints-and-server-boundaries.md +0 -0
  65. {abstractframework-0.6.3 → abstractframework-0.7.0}/docs/adr/0034-framework-release-sequence-and-gates.md +0 -0
  66. {abstractframework-0.6.3 → abstractframework-0.7.0}/docs/adr/0035-capability-routing-defaults.md +0 -0
  67. {abstractframework-0.6.3 → abstractframework-0.7.0}/docs/adr/0036-artifact-descriptor-contract.md +0 -0
  68. {abstractframework-0.6.3 → abstractframework-0.7.0}/docs/adr/0037-hosted-file-source-contract-and-workspacepath-authority.md +0 -0
  69. {abstractframework-0.6.3 → abstractframework-0.7.0}/docs/adr/0038-script-bootstrap-and-gateway-console-install.md +0 -0
  70. {abstractframework-0.6.3 → abstractframework-0.7.0}/docs/adr/README.md +0 -0
  71. {abstractframework-0.6.3 → abstractframework-0.7.0}/docs/adr/memory-recall-levels.md +0 -0
  72. {abstractframework-0.6.3 → abstractframework-0.7.0}/docs/adr/reorg/001_music_as_capability_plugin_via_acestep_api.md +0 -0
  73. {abstractframework-0.6.3 → abstractframework-0.7.0}/docs/adr/reorg/002_abstractmusic_inprocess_local_generation.md +0 -0
  74. {abstractframework-0.6.3 → abstractframework-0.7.0}/docs/adr/reorg/003_abstractmusic_acestep_v15_backend_source_strategy.md +0 -0
  75. {abstractframework-0.6.3 → abstractframework-0.7.0}/docs/adr/reorg/004_smartnote_thin_client_architecture.md +0 -0
  76. {abstractframework-0.6.3 → abstractframework-0.7.0}/docs/adr/reorg/005_smartnote_artifact_first_cards.md +0 -0
  77. {abstractframework-0.6.3 → abstractframework-0.7.0}/docs/adr/reorg/2026-02-21_gateway-first-assistant.md +0 -0
  78. {abstractframework-0.6.3 → abstractframework-0.7.0}/docs/adr/reorg/2026-02-21_installer_manager_strategy.md +0 -0
  79. {abstractframework-0.6.3 → abstractframework-0.7.0}/docs/adr/reorg/2026-02-21_macos_installer_manager.md +0 -0
  80. {abstractframework-0.6.3 → abstractframework-0.7.0}/docs/agent-sessions.md +0 -0
  81. {abstractframework-0.6.3 → abstractframework-0.7.0}/docs/architecture.md +0 -0
  82. {abstractframework-0.6.3 → abstractframework-0.7.0}/docs/claude/README.md +0 -0
  83. {abstractframework-0.6.3 → abstractframework-0.7.0}/docs/claude/abstractframework-fit.md +0 -0
  84. {abstractframework-0.6.3 → abstractframework-0.7.0}/docs/claude/claude-skills-overview.md +0 -0
  85. {abstractframework-0.6.3 → abstractframework-0.7.0}/docs/claude/claude-skills-sources.md +0 -0
  86. {abstractframework-0.6.3 → abstractframework-0.7.0}/docs/claude/claude-skills-top-20.md +0 -0
  87. {abstractframework-0.6.3 → abstractframework-0.7.0}/docs/comparisons/README.md +0 -0
  88. {abstractframework-0.6.3 → abstractframework-0.7.0}/docs/glossary.md +0 -0
  89. {abstractframework-0.6.3 → abstractframework-0.7.0}/docs/guide/LANDING.md +0 -0
  90. {abstractframework-0.6.3 → abstractframework-0.7.0}/docs/guide/README.md +0 -0
  91. {abstractframework-0.6.3 → abstractframework-0.7.0}/docs/guide/agent-skills.md +0 -0
  92. {abstractframework-0.6.3 → abstractframework-0.7.0}/docs/guide/agent-vs-llm.md +0 -0
  93. {abstractframework-0.6.3 → abstractframework-0.7.0}/docs/guide/agora-workflow-agent.md +0 -0
  94. {abstractframework-0.6.3 → abstractframework-0.7.0}/docs/guide/apple-local-gateway-flow.md +0 -0
  95. {abstractframework-0.6.3 → abstractframework-0.7.0}/docs/guide/capability-plugins.md +0 -0
  96. {abstractframework-0.6.3 → abstractframework-0.7.0}/docs/guide/capability-routing-defaults.md +0 -0
  97. {abstractframework-0.6.3 → abstractframework-0.7.0}/docs/guide/deployment-iphone.md +0 -0
  98. {abstractframework-0.6.3 → abstractframework-0.7.0}/docs/guide/deployment-topologies.md +0 -0
  99. {abstractframework-0.6.3 → abstractframework-0.7.0}/docs/guide/deployment-web.md +0 -0
  100. {abstractframework-0.6.3 → abstractframework-0.7.0}/docs/guide/email-integration.md +0 -0
  101. {abstractframework-0.6.3 → abstractframework-0.7.0}/docs/guide/event-inbox-agent.md +0 -0
  102. {abstractframework-0.6.3 → abstractframework-0.7.0}/docs/guide/flow-and-kg-memory.md +0 -0
  103. {abstractframework-0.6.3 → abstractframework-0.7.0}/docs/guide/gateway-security.md +0 -0
  104. {abstractframework-0.6.3 → abstractframework-0.7.0}/docs/guide/headless-swarm.md +0 -0
  105. {abstractframework-0.6.3 → abstractframework-0.7.0}/docs/guide/process-manager-env-vars.md +0 -0
  106. {abstractframework-0.6.3 → abstractframework-0.7.0}/docs/guide/prompt-caching.md +0 -0
  107. {abstractframework-0.6.3 → abstractframework-0.7.0}/docs/guide/runtime-artifacts.md +0 -0
  108. {abstractframework-0.6.3 → abstractframework-0.7.0}/docs/guide/runtime-scope.md +0 -0
  109. {abstractframework-0.6.3 → abstractframework-0.7.0}/docs/guide/scheduled-workflows.md +0 -0
  110. {abstractframework-0.6.3 → abstractframework-0.7.0}/docs/guide/summoned-entities.md +0 -0
  111. {abstractframework-0.6.3 → abstractframework-0.7.0}/docs/guide/telegram-integration.md +0 -0
  112. {abstractframework-0.6.3 → abstractframework-0.7.0}/docs/guide/workflow-bundles.md +0 -0
  113. {abstractframework-0.6.3 → abstractframework-0.7.0}/docs/installers/README.md +0 -0
  114. {abstractframework-0.6.3 → abstractframework-0.7.0}/docs/installers/components.md +0 -0
  115. {abstractframework-0.6.3 → abstractframework-0.7.0}/docs/installers/operations-and-support.md +0 -0
  116. {abstractframework-0.6.3 → abstractframework-0.7.0}/docs/installers/release-and-manifest.md +0 -0
  117. {abstractframework-0.6.3 → abstractframework-0.7.0}/docs/installers/security-and-os-blocks.md +0 -0
  118. {abstractframework-0.6.3 → abstractframework-0.7.0}/docs/installers/strategy.md +0 -0
  119. {abstractframework-0.6.3 → abstractframework-0.7.0}/docs/installers/user-journeys.md +0 -0
  120. {abstractframework-0.6.3 → abstractframework-0.7.0}/docs/prompts/agora-collaboration.md +0 -0
  121. {abstractframework-0.6.3 → abstractframework-0.7.0}/docs/scenarios/README.md +0 -0
  122. {abstractframework-0.6.3 → abstractframework-0.7.0}/docs/scenarios/email-inbox-agent.md +0 -0
  123. {abstractframework-0.6.3 → abstractframework-0.7.0}/docs/scenarios/gateway-first-local-dev.md +0 -0
  124. {abstractframework-0.6.3 → abstractframework-0.7.0}/docs/scenarios/offline-coding-assistant.md +0 -0
  125. {abstractframework-0.6.3 → abstractframework-0.7.0}/docs/scenarios/phone-thin-client.md +0 -0
  126. {abstractframework-0.6.3 → abstractframework-0.7.0}/docs/scenarios/specialized-agent-flow.md +0 -0
  127. {abstractframework-0.6.3 → abstractframework-0.7.0}/docs/scenarios/telegram-permanent-contact.md +0 -0
  128. {abstractframework-0.6.3 → abstractframework-0.7.0}/docs/scenarios/workflow-bundle-lifecycle.md +0 -0
  129. {abstractframework-0.6.3 → abstractframework-0.7.0}/docs/skills/README.md +0 -0
  130. {abstractframework-0.6.3 → abstractframework-0.7.0}/docs/skills/abstractframework-agent-skills-fit.md +0 -0
  131. {abstractframework-0.6.3 → abstractframework-0.7.0}/docs/skills/abstractframework-architecture-deep-dive.md +0 -0
  132. {abstractframework-0.6.3 → abstractframework-0.7.0}/docs/skills/agent-skills-ecosystem-scan.md +0 -0
  133. {abstractframework-0.6.3 → abstractframework-0.7.0}/docs/skills/agent-skills-ecosystem-sources.md +0 -0
  134. {abstractframework-0.6.3 → abstractframework-0.7.0}/docs/skills/claude-agent-skills-overview.md +0 -0
  135. {abstractframework-0.6.3 → abstractframework-0.7.0}/docs/skills/claude-agent-skills-sources.md +0 -0
  136. {abstractframework-0.6.3 → abstractframework-0.7.0}/docs/skills/claude-agent-skills-top-20.md +0 -0
  137. {abstractframework-0.6.3 → abstractframework-0.7.0}/docs/troubleshooting.md +0 -0
  138. {abstractframework-0.6.3 → abstractframework-0.7.0}/docs/workspace-scripts.md +0 -0
  139. {abstractframework-0.6.3 → abstractframework-0.7.0}/scripts/af-local.sh +0 -0
  140. {abstractframework-0.6.3 → abstractframework-0.7.0}/scripts/af.sh +0 -0
  141. {abstractframework-0.6.3 → abstractframework-0.7.0}/scripts/agora_react_flow_smoke.py +0 -0
  142. {abstractframework-0.6.3 → abstractframework-0.7.0}/scripts/assistant-local.sh +0 -0
  143. {abstractframework-0.6.3 → abstractframework-0.7.0}/scripts/assistant.sh +0 -0
  144. {abstractframework-0.6.3 → abstractframework-0.7.0}/scripts/build.sh +0 -0
  145. {abstractframework-0.6.3 → abstractframework-0.7.0}/scripts/cache_probe_local_backends.py +0 -0
  146. {abstractframework-0.6.3 → abstractframework-0.7.0}/scripts/cache_steer_repl.py +0 -0
  147. {abstractframework-0.6.3 → abstractframework-0.7.0}/scripts/check_identity_sync.py +0 -0
  148. {abstractframework-0.6.3 → abstractframework-0.7.0}/scripts/clone.sh +0 -0
  149. {abstractframework-0.6.3 → abstractframework-0.7.0}/scripts/code-local.sh +0 -0
  150. {abstractframework-0.6.3 → abstractframework-0.7.0}/scripts/code.sh +0 -0
  151. {abstractframework-0.6.3 → abstractframework-0.7.0}/scripts/commit.sh +0 -0
  152. {abstractframework-0.6.3 → abstractframework-0.7.0}/scripts/console-local.sh +0 -0
  153. {abstractframework-0.6.3 → abstractframework-0.7.0}/scripts/console.sh +0 -0
  154. {abstractframework-0.6.3 → abstractframework-0.7.0}/scripts/core_operator_drive.py +0 -0
  155. {abstractframework-0.6.3 → abstractframework-0.7.0}/scripts/deps.sh +0 -0
  156. {abstractframework-0.6.3 → abstractframework-0.7.0}/scripts/entity-local.sh +0 -0
  157. {abstractframework-0.6.3 → abstractframework-0.7.0}/scripts/entity.sh +0 -0
  158. {abstractframework-0.6.3 → abstractframework-0.7.0}/scripts/event_inbox_flow_smoke.py +0 -0
  159. {abstractframework-0.6.3 → abstractframework-0.7.0}/scripts/flow-local.sh +0 -0
  160. {abstractframework-0.6.3 → abstractframework-0.7.0}/scripts/flow.sh +0 -0
  161. {abstractframework-0.6.3 → abstractframework-0.7.0}/scripts/gateway-flow-local.sh +0 -0
  162. {abstractframework-0.6.3 → abstractframework-0.7.0}/scripts/gateway-flow.sh +0 -0
  163. {abstractframework-0.6.3 → abstractframework-0.7.0}/scripts/gateway-local.sh +0 -0
  164. {abstractframework-0.6.3 → abstractframework-0.7.0}/scripts/gateway.sh +0 -0
  165. {abstractframework-0.6.3 → abstractframework-0.7.0}/scripts/gen_llms_full.py +0 -0
  166. {abstractframework-0.6.3 → abstractframework-0.7.0}/scripts/headless_fleet_bridge.py +0 -0
  167. {abstractframework-0.6.3 → abstractframework-0.7.0}/scripts/headless_fleet_demo.py +0 -0
  168. {abstractframework-0.6.3 → abstractframework-0.7.0}/scripts/headless_steer_repl.py +0 -0
  169. {abstractframework-0.6.3 → abstractframework-0.7.0}/scripts/lib/af_inventory.py +0 -0
  170. {abstractframework-0.6.3 → abstractframework-0.7.0}/scripts/lib/af_stack.sh +0 -0
  171. {abstractframework-0.6.3 → abstractframework-0.7.0}/scripts/lib/af_supervisor.sh +0 -0
  172. {abstractframework-0.6.3 → abstractframework-0.7.0}/scripts/lib/apps_common.sh +0 -0
  173. {abstractframework-0.6.3 → abstractframework-0.7.0}/scripts/lib/build_macos_installer.sh +0 -0
  174. {abstractframework-0.6.3 → abstractframework-0.7.0}/scripts/lib/gateway_user_tokens.py +0 -0
  175. {abstractframework-0.6.3 → abstractframework-0.7.0}/scripts/lib/repo_groups.sh +0 -0
  176. {abstractframework-0.6.3 → abstractframework-0.7.0}/scripts/meet_castor.sh +0 -0
  177. {abstractframework-0.6.3 → abstractframework-0.7.0}/scripts/observer-local.sh +0 -0
  178. {abstractframework-0.6.3 → abstractframework-0.7.0}/scripts/observer.sh +0 -0
  179. {abstractframework-0.6.3 → abstractframework-0.7.0}/scripts/plan_walkthrough.py +0 -0
  180. {abstractframework-0.6.3 → abstractframework-0.7.0}/scripts/pull.sh +0 -0
  181. {abstractframework-0.6.3 → abstractframework-0.7.0}/scripts/push.sh +0 -0
  182. {abstractframework-0.6.3 → abstractframework-0.7.0}/scripts/spawn_demo_agent.sh +0 -0
  183. {abstractframework-0.6.3 → abstractframework-0.7.0}/scripts/start-local.sh +0 -0
  184. {abstractframework-0.6.3 → abstractframework-0.7.0}/scripts/start.sh +0 -0
  185. {abstractframework-0.6.3 → abstractframework-0.7.0}/scripts/status.sh +0 -0
  186. {abstractframework-0.6.3 → abstractframework-0.7.0}/scripts/steer_repl.py +0 -0
  187. {abstractframework-0.6.3 → abstractframework-0.7.0}/scripts/tests/test_af_supervisor.sh +0 -0
  188. {abstractframework-0.6.3 → abstractframework-0.7.0}/scripts/tests/test_inventory.sh +0 -0
  189. {abstractframework-0.6.3 → abstractframework-0.7.0}/scripts/tests/test_repo_scripts.sh +0 -0
  190. {abstractframework-0.6.3 → abstractframework-0.7.0}/scripts/uninstall.sh +0 -0
  191. {abstractframework-0.6.3 → abstractframework-0.7.0}/scripts/visit_resume_cache_probe.py +0 -0
  192. {abstractframework-0.6.3 → abstractframework-0.7.0}/setup.cfg +0 -0
  193. {abstractframework-0.6.3 → abstractframework-0.7.0}/tests/test_install_ps1_gpu_stack.py +0 -0
  194. {abstractframework-0.6.3 → abstractframework-0.7.0}/tests/test_install_sh_gpu_stack.py +0 -0
  195. {abstractframework-0.6.3 → abstractframework-0.7.0}/tests/test_llms_full.py +0 -0
@@ -4,6 +4,89 @@ All notable changes to AbstractFramework will be documented in this file.
4
4
 
5
5
  ## [Unreleased]
6
6
 
7
+ ## [0.7.0] - 2026-09-30
8
+
9
+ Email for each user, and installer fixes. Pins: AbstractCore 2.20.1, AbstractRuntime 0.8.0,
10
+ AbstractGateway 0.8.0 and AbstractAssistant 0.10.0; the terminal consoles are
11
+ `abstractgateway-console` 0.12.0 and `abstractcore-console` 0.5.0, and the browser apps
12
+ AbstractCode web 0.7.0 and AbstractObserver 0.3.0 (built on AbstractUIC ui-kit 0.2.0 and panel-chat
13
+ 0.1.21). Every other version is unchanged from 0.6.3.
14
+
15
+ ### Added
16
+
17
+ - **Your own mailbox on the gateway.** Each user connects their own email account (IMAP/SMTP with a
18
+ password or app password, or OAuth2 for Google and Microsoft) in the web console (**Users → My
19
+ email**), the terminal console (`@` on the Users screen) or `PUT /api/gateway/me/email`. The
20
+ account is tested before it is saved, stored in the user's own data folder with its credentials
21
+ encrypted, and every connection verifies TLS. The mailbox is read-only. Each user sets a recipient
22
+ policy (allowlist or denylist of addresses and domains) and send limits (20 per hour and 100 per
23
+ day by default); every send passes them. AbstractCore on its own gets the same account, one per
24
+ install: `abstractcore email ...`, the core web console's **Email** tab and the core terminal
25
+ console's Email screen. See [Configuration](docs/configuration.md#email-accounts).
26
+ `abstractcore email connect --password-stdin` (and `--client-secret-stdin` for OAuth) reads the
27
+ secret from stdin, so it never appears on a command line (AbstractCore 2.20.1).
28
+ - **Email automations.** The Assistant, the Observer and AbstractCode's browser client offer **When
29
+ an email arrives** (the `email.received@1` trigger: typed filters on sender, recipient, subject and
30
+ attachments; hourly batches by default for automations that run a model, never more often than
31
+ every 60 seconds; each message read once), **Email me the result**, and the recipients an
32
+ automation may email without asking (only you, by default). Inbound mail reaches the agent as
33
+ untrusted data in a fixed frame; an email-triggered automation never follows links from an email
34
+ (`fetch_url` and `browser_probe` ask) unless you name those tools. See
35
+ [Email automations](docs/automations.md#email-automations).
36
+ - **Email notifications**, off until you turn them on in **My email → Notifications**: automation
37
+ results and failures (for automations set to email you), a run waiting for your approval, and
38
+ runs started with an email notice. Each notice is sent once from a durable outbox, through your
39
+ own account, to your registered address.
40
+ - **Sign-in by email**: "Forgot your token?" and "Email me a sign-in code" on the gateway's sign-in
41
+ page for users with a connected account (single-use codes, 10-minute expiry).
42
+ - **What administrators decide**: whether email, agent email tools and sign-in by email are
43
+ available, gateway-wide and per user. Agent email tools are off by default: an agent gets the
44
+ email tools only when an administrator made them available, the user's account is connected, and
45
+ the user turned them on. Administrators see a user's mailbox state, never mail.
46
+
47
+ ### Removed
48
+
49
+ - The `ABSTRACT_EMAIL_*` environment variables, the email accounts file and the gateway's email
50
+ bridge. A gateway or an AbstractCore install that still has them imports that account once into
51
+ the new settings; afterwards each variable still set is named at startup with the setting that
52
+ replaced it.
53
+
54
+ ### Fixed
55
+
56
+ - **One gateway per data directory when you re-run the installer.** A gateway of this install that
57
+ you started yourself (for example with the summary's Start line) is recognized: it listens on the
58
+ install's port and serves the same data directory, as its serve record
59
+ (`<data dir>/run/gateway-serve.json`) or its `--data-dir` says. `install.sh` and `install.ps1` now
60
+ keep that port and replace the gateway with their own start, instead of moving to the next port
61
+ and starting a second gateway on the same data. A gateway of this install started by hand on
62
+ another port is stopped too. The replacement starts the way the installer starts every gateway, so
63
+ it binds as the gateway's Network setting says (for example 127.0.0.1), not with the `--host` the
64
+ hand-started one was given. With `--no-start` (`-NoStart`, the console's Update) it keeps
65
+ running and the summary says a restart is due. A program that is not this install's gateway
66
+ keeps the port, as before.
67
+ - **The installers signal only this install's gateway.** Before any stop, the process must belong
68
+ to your user, run `abstractgateway serve` and serve this data directory; the identity is checked
69
+ again right before the signal (and before a SIGKILL). A `gateway.pid` or serve record left behind
70
+ that names another program (a reused pid) is left alone and said so.
71
+ - **Known limit on Windows with start at login on:** Windows does not tell the installer which
72
+ process the login item started, so a gateway of this data directory that you started yourself on
73
+ the install's port is taken for the login item and left running. Stop it and re-run the
74
+ installer to get the login item's gateway.
75
+ - **A release published minutes earlier installs at once.** The installers pass
76
+ `--refresh-package` for `abstractgateway` and every package of the release matrix to
77
+ `uv tool install`, so uv asks PyPI again instead of using its cached index page (which could say
78
+ "no version of abstractgateway[gpu]==<pin>" until `uv cache clean abstractgateway`).
79
+
80
+ ### Changed
81
+
82
+ - **Launch flags in the commands the installers print.** The summary's Start line and the
83
+ background start's command (the "same steps by hand" list) read
84
+ `abstractgateway serve --data-dir <data dir>` (plus `--host`/`--port` when the gateway has no
85
+ Network setting) instead of `ABSTRACTGATEWAY_DATA_DIR=... ABSTRACTGATEWAY_USER_AUTH=1 ...`; the
86
+ gateway starts with user auth on by itself. The installers themselves still pass the data dir to
87
+ the gateway commands they run (`network`, `service install`, `claim-url`) through
88
+ `ABSTRACTGATEWAY_DATA_DIR`. Gateways before 0.3 (`--pin`) keep the environment form.
89
+
7
90
  ## [0.6.3] - 2026-09-29
8
91
 
9
92
  The `gpu` setting on NVIDIA machines, speech-to-text in the fresh setup, and loaded image models
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: abstractframework
3
- Version: 0.6.3
3
+ Version: 0.7.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.7.4
27
- Requires-Dist: abstractassistant==0.9.1
28
- Requires-Dist: abstractcore==2.19.2
29
- Requires-Dist: AbstractRuntime==0.7.3
26
+ Requires-Dist: abstractgateway==0.8.0
27
+ Requires-Dist: abstractassistant==0.10.0
28
+ Requires-Dist: abstractcore==2.20.1
29
+ Requires-Dist: AbstractRuntime==0.8.0
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.7.4; extra == "apple"
40
- Requires-Dist: abstractassistant[apple]==0.9.1; platform_system == "Darwin" and extra == "apple"
39
+ Requires-Dist: abstractgateway[apple]==0.8.0; extra == "apple"
40
+ Requires-Dist: abstractassistant[apple]==0.10.0; platform_system == "Darwin" and extra == "apple"
41
41
  Provides-Extra: gpu
42
- Requires-Dist: abstractgateway[gpu]==0.7.4; extra == "gpu"
43
- Requires-Dist: abstractassistant[gpu]==0.9.1; extra == "gpu"
42
+ Requires-Dist: abstractgateway[gpu]==0.8.0; extra == "gpu"
43
+ Requires-Dist: abstractassistant[gpu]==0.10.0; extra == "gpu"
44
44
  Dynamic: license-file
45
45
 
46
46
  # AbstractFramework
@@ -168,7 +168,8 @@ Start here if you're building persistent AI applications — agents that run for
168
168
 
169
169
  - Durable execution that survives crashes and restarts
170
170
  - Append-only ledger (replay-first) for auditability
171
- - Automations: a workflow that runs on a fixed interval or on demand, kept as a readable conversation ([Automations](docs/automations.md))
171
+ - 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))
172
173
  - Multi-client: terminal, browser, tray, Telegram, email
173
174
  - Start on one device, continue on another
174
175
 
@@ -216,7 +217,7 @@ abstractgateway-console --gateway-url http://127.0.0.1:8080 --token <admin token
216
217
  ```
217
218
 
218
219
  Container images are published for the gateway and the AbstractCore server:
219
- `ghcr.io/lpalbou/abstractgateway:0.7.4` and `ghcr.io/lpalbou/abstractcore-server:2.19.2`.
220
+ `ghcr.io/lpalbou/abstractgateway:0.8.0` and `ghcr.io/lpalbou/abstractcore-server:2.20.1`.
220
221
 
221
222
  For artifact and runtime-resource investigation, see
222
223
  [Runtime artifacts and retrieval](docs/guide/runtime-artifacts.md).
@@ -362,7 +363,7 @@ pip install "abstractframework[gpu]"
362
363
  | Apple | `pip install "abstractframework[apple]"` | macOS 14+ on Apple Silicon | 3.10–3.13 (F5-TTS voice cloning needs 3.11+) |
363
364
  | 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+) |
364
365
 
365
- ### Release matrix (abstractframework 0.6.3)
366
+ ### Release matrix (abstractframework 0.7.0)
366
367
 
367
368
  `abstractframework` pins every Python package with `==`, so one version of the
368
369
  meta-package always installs the same stack. The browser apps and Rust tools are
@@ -371,10 +372,10 @@ and tested together.
371
372
 
372
373
  | Registry | Package | Version |
373
374
  |---|---|---|
374
- | PyPI | `abstractgateway` | 0.7.4 |
375
- | PyPI | `abstractassistant` | 0.9.1 |
376
- | PyPI | `abstractcore` | 2.19.2 |
377
- | PyPI | `AbstractRuntime` | 0.7.3 |
375
+ | PyPI | `abstractgateway` | 0.8.0 |
376
+ | PyPI | `abstractassistant` | 0.10.0 |
377
+ | PyPI | `abstractcore` | 2.20.1 |
378
+ | PyPI | `AbstractRuntime` | 0.8.0 |
378
379
  | PyPI | `abstractagent` | 0.3.17 |
379
380
  | PyPI | `abstractskill` | 0.3.0 |
380
381
  | PyPI | `AbstractMemory` | 0.3.0 |
@@ -384,16 +385,16 @@ and tested together.
384
385
  | PyPI | `abstractmusic` | 0.1.15 |
385
386
  | PyPI | `abstract3d` | 0.3.2 |
386
387
  | npm | `@abstractframework/flow` | 0.4.0 |
387
- | npm | `@abstractframework/code` | 0.6.2 |
388
- | npm | `@abstractframework/observer` | 0.2.1 |
388
+ | npm | `@abstractframework/code` | 0.7.0 |
389
+ | npm | `@abstractframework/observer` | 0.3.0 |
389
390
  | npm | `@abstractframework/continuum` | 0.4.0 |
390
391
  | npm | `@abstractframework/entity` | 0.3.0 |
391
392
  | crates.io | `abstractcode` | 0.7.1 |
392
- | crates.io | `abstractgateway-console` | 0.11.2 |
393
- | crates.io | `abstractcore-console` | 0.4.1 |
393
+ | crates.io | `abstractgateway-console` | 0.12.0 |
394
+ | crates.io | `abstractcore-console` | 0.5.0 |
394
395
  | crates.io | `abstracttui` | 0.6.0 |
395
- | GHCR | `ghcr.io/lpalbou/abstractgateway` | 0.7.4 (`gpu-latest` / `<version>-gpu` experimental) |
396
- | GHCR | `ghcr.io/lpalbou/abstractcore-server` | 2.19.2 |
396
+ | GHCR | `ghcr.io/lpalbou/abstractgateway` | 0.8.0 (`gpu-latest` / `<version>-gpu` experimental) |
397
+ | GHCR | `ghcr.io/lpalbou/abstractcore-server` | 2.20.1 |
397
398
 
398
399
  `abstract3d` (pinned above) comes with AbstractCore in every profile. The optional add-on that is
399
400
  not part of any profile installs separately: `pip install abstractcamera` (0.2.1). `abstractskill` (pinned above)
@@ -123,7 +123,8 @@ Start here if you're building persistent AI applications — agents that run for
123
123
 
124
124
  - Durable execution that survives crashes and restarts
125
125
  - Append-only ledger (replay-first) for auditability
126
- - Automations: a workflow that runs on a fixed interval or on demand, kept as a readable conversation ([Automations](docs/automations.md))
126
+ - 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))
127
128
  - Multi-client: terminal, browser, tray, Telegram, email
128
129
  - Start on one device, continue on another
129
130
 
@@ -171,7 +172,7 @@ abstractgateway-console --gateway-url http://127.0.0.1:8080 --token <admin token
171
172
  ```
172
173
 
173
174
  Container images are published for the gateway and the AbstractCore server:
174
- `ghcr.io/lpalbou/abstractgateway:0.7.4` and `ghcr.io/lpalbou/abstractcore-server:2.19.2`.
175
+ `ghcr.io/lpalbou/abstractgateway:0.8.0` and `ghcr.io/lpalbou/abstractcore-server:2.20.1`.
175
176
 
176
177
  For artifact and runtime-resource investigation, see
177
178
  [Runtime artifacts and retrieval](docs/guide/runtime-artifacts.md).
@@ -317,7 +318,7 @@ pip install "abstractframework[gpu]"
317
318
  | Apple | `pip install "abstractframework[apple]"` | macOS 14+ on Apple Silicon | 3.10–3.13 (F5-TTS voice cloning needs 3.11+) |
318
319
  | 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+) |
319
320
 
320
- ### Release matrix (abstractframework 0.6.3)
321
+ ### Release matrix (abstractframework 0.7.0)
321
322
 
322
323
  `abstractframework` pins every Python package with `==`, so one version of the
323
324
  meta-package always installs the same stack. The browser apps and Rust tools are
@@ -326,10 +327,10 @@ and tested together.
326
327
 
327
328
  | Registry | Package | Version |
328
329
  |---|---|---|
329
- | PyPI | `abstractgateway` | 0.7.4 |
330
- | PyPI | `abstractassistant` | 0.9.1 |
331
- | PyPI | `abstractcore` | 2.19.2 |
332
- | PyPI | `AbstractRuntime` | 0.7.3 |
330
+ | PyPI | `abstractgateway` | 0.8.0 |
331
+ | PyPI | `abstractassistant` | 0.10.0 |
332
+ | PyPI | `abstractcore` | 2.20.1 |
333
+ | PyPI | `AbstractRuntime` | 0.8.0 |
333
334
  | PyPI | `abstractagent` | 0.3.17 |
334
335
  | PyPI | `abstractskill` | 0.3.0 |
335
336
  | PyPI | `AbstractMemory` | 0.3.0 |
@@ -339,16 +340,16 @@ and tested together.
339
340
  | PyPI | `abstractmusic` | 0.1.15 |
340
341
  | PyPI | `abstract3d` | 0.3.2 |
341
342
  | npm | `@abstractframework/flow` | 0.4.0 |
342
- | npm | `@abstractframework/code` | 0.6.2 |
343
- | npm | `@abstractframework/observer` | 0.2.1 |
343
+ | npm | `@abstractframework/code` | 0.7.0 |
344
+ | npm | `@abstractframework/observer` | 0.3.0 |
344
345
  | npm | `@abstractframework/continuum` | 0.4.0 |
345
346
  | npm | `@abstractframework/entity` | 0.3.0 |
346
347
  | crates.io | `abstractcode` | 0.7.1 |
347
- | crates.io | `abstractgateway-console` | 0.11.2 |
348
- | crates.io | `abstractcore-console` | 0.4.1 |
348
+ | crates.io | `abstractgateway-console` | 0.12.0 |
349
+ | crates.io | `abstractcore-console` | 0.5.0 |
349
350
  | crates.io | `abstracttui` | 0.6.0 |
350
- | GHCR | `ghcr.io/lpalbou/abstractgateway` | 0.7.4 (`gpu-latest` / `<version>-gpu` experimental) |
351
- | GHCR | `ghcr.io/lpalbou/abstractcore-server` | 2.19.2 |
351
+ | GHCR | `ghcr.io/lpalbou/abstractgateway` | 0.8.0 (`gpu-latest` / `<version>-gpu` experimental) |
352
+ | GHCR | `ghcr.io/lpalbou/abstractcore-server` | 2.20.1 |
352
353
 
353
354
  `abstract3d` (pinned above) comes with AbstractCore in every profile. The optional add-on that is
354
355
  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.6.3"
13
+ __version__ = "0.7.0"
14
14
  __author__ = "Laurent-Philippe Albou"
15
15
  __license__ = "MIT"
16
16
 
17
17
  RELEASE_VERSIONS: dict[str, str] = {
18
- "abstractcore": "2.19.2",
19
- "abstractruntime": "0.7.3",
18
+ "abstractcore": "2.20.1",
19
+ "abstractruntime": "0.8.0",
20
20
  "abstractagent": "0.3.17",
21
- "abstractgateway": "0.7.4",
21
+ "abstractgateway": "0.8.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.9.1",
29
+ "abstractassistant": "0.10.0",
30
30
  }
31
31
 
32
32
  PACKAGE_DISTRIBUTIONS: dict[str, str] = {
@@ -46,8 +46,8 @@ PACKAGE_DISTRIBUTIONS: dict[str, str] = {
46
46
 
47
47
  NPM_RELEASE_VERSIONS: dict[str, str] = {
48
48
  "@abstractframework/flow": "0.4.0",
49
- "@abstractframework/code": "0.6.2",
50
- "@abstractframework/observer": "0.2.1",
49
+ "@abstractframework/code": "0.7.0",
50
+ "@abstractframework/observer": "0.3.0",
51
51
  "@abstractframework/continuum": "0.4.0",
52
52
  "@abstractframework/entity": "0.3.0",
53
53
  }
@@ -55,8 +55,8 @@ NPM_RELEASE_VERSIONS: dict[str, str] = {
55
55
  # Terminal tools published on crates.io alongside this release (installed with `cargo install`,
56
56
  # or by the bootstrap scripts: the gateway console and abstractcode by default).
57
57
  CRATE_RELEASE_VERSIONS: dict[str, str] = {
58
- "abstractgateway-console": "0.11.2",
59
- "abstractcore-console": "0.4.1",
58
+ "abstractgateway-console": "0.12.0",
59
+ "abstractcore-console": "0.5.0",
60
60
  "abstractcode": "0.7.1",
61
61
  "abstracttui": "0.6.0",
62
62
  }
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: abstractframework
3
- Version: 0.6.3
3
+ Version: 0.7.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.7.4
27
- Requires-Dist: abstractassistant==0.9.1
28
- Requires-Dist: abstractcore==2.19.2
29
- Requires-Dist: AbstractRuntime==0.7.3
26
+ Requires-Dist: abstractgateway==0.8.0
27
+ Requires-Dist: abstractassistant==0.10.0
28
+ Requires-Dist: abstractcore==2.20.1
29
+ Requires-Dist: AbstractRuntime==0.8.0
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.7.4; extra == "apple"
40
- Requires-Dist: abstractassistant[apple]==0.9.1; platform_system == "Darwin" and extra == "apple"
39
+ Requires-Dist: abstractgateway[apple]==0.8.0; extra == "apple"
40
+ Requires-Dist: abstractassistant[apple]==0.10.0; platform_system == "Darwin" and extra == "apple"
41
41
  Provides-Extra: gpu
42
- Requires-Dist: abstractgateway[gpu]==0.7.4; extra == "gpu"
43
- Requires-Dist: abstractassistant[gpu]==0.9.1; extra == "gpu"
42
+ Requires-Dist: abstractgateway[gpu]==0.8.0; extra == "gpu"
43
+ Requires-Dist: abstractassistant[gpu]==0.10.0; extra == "gpu"
44
44
  Dynamic: license-file
45
45
 
46
46
  # AbstractFramework
@@ -168,7 +168,8 @@ Start here if you're building persistent AI applications — agents that run for
168
168
 
169
169
  - Durable execution that survives crashes and restarts
170
170
  - Append-only ledger (replay-first) for auditability
171
- - Automations: a workflow that runs on a fixed interval or on demand, kept as a readable conversation ([Automations](docs/automations.md))
171
+ - 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))
172
173
  - Multi-client: terminal, browser, tray, Telegram, email
173
174
  - Start on one device, continue on another
174
175
 
@@ -216,7 +217,7 @@ abstractgateway-console --gateway-url http://127.0.0.1:8080 --token <admin token
216
217
  ```
217
218
 
218
219
  Container images are published for the gateway and the AbstractCore server:
219
- `ghcr.io/lpalbou/abstractgateway:0.7.4` and `ghcr.io/lpalbou/abstractcore-server:2.19.2`.
220
+ `ghcr.io/lpalbou/abstractgateway:0.8.0` and `ghcr.io/lpalbou/abstractcore-server:2.20.1`.
220
221
 
221
222
  For artifact and runtime-resource investigation, see
222
223
  [Runtime artifacts and retrieval](docs/guide/runtime-artifacts.md).
@@ -362,7 +363,7 @@ pip install "abstractframework[gpu]"
362
363
  | Apple | `pip install "abstractframework[apple]"` | macOS 14+ on Apple Silicon | 3.10–3.13 (F5-TTS voice cloning needs 3.11+) |
363
364
  | 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+) |
364
365
 
365
- ### Release matrix (abstractframework 0.6.3)
366
+ ### Release matrix (abstractframework 0.7.0)
366
367
 
367
368
  `abstractframework` pins every Python package with `==`, so one version of the
368
369
  meta-package always installs the same stack. The browser apps and Rust tools are
@@ -371,10 +372,10 @@ and tested together.
371
372
 
372
373
  | Registry | Package | Version |
373
374
  |---|---|---|
374
- | PyPI | `abstractgateway` | 0.7.4 |
375
- | PyPI | `abstractassistant` | 0.9.1 |
376
- | PyPI | `abstractcore` | 2.19.2 |
377
- | PyPI | `AbstractRuntime` | 0.7.3 |
375
+ | PyPI | `abstractgateway` | 0.8.0 |
376
+ | PyPI | `abstractassistant` | 0.10.0 |
377
+ | PyPI | `abstractcore` | 2.20.1 |
378
+ | PyPI | `AbstractRuntime` | 0.8.0 |
378
379
  | PyPI | `abstractagent` | 0.3.17 |
379
380
  | PyPI | `abstractskill` | 0.3.0 |
380
381
  | PyPI | `AbstractMemory` | 0.3.0 |
@@ -384,16 +385,16 @@ and tested together.
384
385
  | PyPI | `abstractmusic` | 0.1.15 |
385
386
  | PyPI | `abstract3d` | 0.3.2 |
386
387
  | npm | `@abstractframework/flow` | 0.4.0 |
387
- | npm | `@abstractframework/code` | 0.6.2 |
388
- | npm | `@abstractframework/observer` | 0.2.1 |
388
+ | npm | `@abstractframework/code` | 0.7.0 |
389
+ | npm | `@abstractframework/observer` | 0.3.0 |
389
390
  | npm | `@abstractframework/continuum` | 0.4.0 |
390
391
  | npm | `@abstractframework/entity` | 0.3.0 |
391
392
  | crates.io | `abstractcode` | 0.7.1 |
392
- | crates.io | `abstractgateway-console` | 0.11.2 |
393
- | crates.io | `abstractcore-console` | 0.4.1 |
393
+ | crates.io | `abstractgateway-console` | 0.12.0 |
394
+ | crates.io | `abstractcore-console` | 0.5.0 |
394
395
  | crates.io | `abstracttui` | 0.6.0 |
395
- | GHCR | `ghcr.io/lpalbou/abstractgateway` | 0.7.4 (`gpu-latest` / `<version>-gpu` experimental) |
396
- | GHCR | `ghcr.io/lpalbou/abstractcore-server` | 2.19.2 |
396
+ | GHCR | `ghcr.io/lpalbou/abstractgateway` | 0.8.0 (`gpu-latest` / `<version>-gpu` experimental) |
397
+ | GHCR | `ghcr.io/lpalbou/abstractcore-server` | 2.20.1 |
397
398
 
398
399
  `abstract3d` (pinned above) comes with AbstractCore in every profile. The optional add-on that is
399
400
  not part of any profile installs separately: `pip install abstractcamera` (0.2.1). `abstractskill` (pinned above)
@@ -188,5 +188,6 @@ scripts/tests/test_inventory.sh
188
188
  scripts/tests/test_repo_scripts.sh
189
189
  tests/test_install_profiles.py
190
190
  tests/test_install_ps1_gpu_stack.py
191
+ tests/test_install_ps1_own_gateway.py
191
192
  tests/test_install_sh_gpu_stack.py
192
193
  tests/test_llms_full.py
@@ -1,7 +1,7 @@
1
- abstractgateway==0.7.4
2
- abstractassistant==0.9.1
3
- abstractcore==2.19.2
4
- AbstractRuntime==0.7.3
1
+ abstractgateway==0.8.0
2
+ abstractassistant==0.10.0
3
+ abstractcore==2.20.1
4
+ AbstractRuntime==0.8.0
5
5
  abstractagent==0.3.17
6
6
  abstractskill==0.3.0
7
7
  AbstractMemory==0.3.0
@@ -12,11 +12,11 @@ abstractmusic==0.1.15
12
12
  abstract3d==0.3.2
13
13
 
14
14
  [apple]
15
- abstractgateway[apple]==0.7.4
15
+ abstractgateway[apple]==0.8.0
16
16
 
17
17
  [apple:platform_system == "Darwin"]
18
- abstractassistant[apple]==0.9.1
18
+ abstractassistant[apple]==0.10.0
19
19
 
20
20
  [gpu]
21
- abstractgateway[gpu]==0.7.4
22
- abstractassistant[gpu]==0.9.1
21
+ abstractgateway[gpu]==0.8.0
22
+ abstractassistant[gpu]==0.10.0
@@ -37,7 +37,7 @@ Start with **AbstractGateway** + **AbstractFlow**:
37
37
 
38
38
  - Durable execution that survives crashes and restarts
39
39
  - Append-only ledger (replay-first) for auditability
40
- - Automations: workflows that run on a fixed interval or on demand ([Automations](automations.md))
40
+ - Automations: workflows that run on a fixed interval, when an email arrives, or on demand ([Automations](automations.md))
41
41
  - Multi-client: terminal, browser, tray, Telegram, email
42
42
  - Start on one device, continue on another
43
43
 
@@ -76,9 +76,9 @@ The full component diagram, with memory, semantics and the consoles, is in
76
76
  | **[Install](install.md)** | Mac installer, one-line install (`install.sh` / `install.ps1`), start at login, headless or remote install, the local gateway pointer, options, Network setting and uninstall; Light / Apple / GPU chooser, `abstractframework doctor`, installer manifest contract |
77
77
  | **[Getting Started](getting-started.md)** | The two entry points + first end-to-end run |
78
78
  | **[Agent sessions](agent-sessions.md)** | What every client shares when it chats with an agent: the gateway's default agent workflow, the conversation workspace and its built-in protection, skills, live replies, opening the Assistant signed in |
79
- | **[Automations](automations.md)** | How automations work in practice and how to manage them: an automation is a durable run, each tick a turn; independent vs growing context; creating one from the Assistant, the Observer or a workflow's defaults; two worked examples; reading results in every client; pause, run now, resume, edit, archive, discuss; notifications, typed waits, restart safety, limits, troubleshooting |
79
+ | **[Automations](automations.md)** | How automations work in practice and how to manage them: an automation is a durable run, each tick a turn; independent vs growing context; creating one from the Assistant, the Observer, AbstractCode or a workflow's defaults; email triggers and email notifications; two worked examples; reading results in every client; pause, run now, resume, edit, archive, discuss; notifications, typed waits, restart safety, limits, troubleshooting |
80
80
  | **[Architecture](architecture.md)** | Component diagram, distribution by registry, how a turn flows and the live-reply lane, app proxies, model eject, framework identity, durable execution primitives, comparisons |
81
- | **[Configuration](configuration.md)** | Minimal config, where defaults live, Core vs Gateway |
81
+ | **[Configuration](configuration.md)** | Minimal config, where defaults live, Core vs Gateway, email accounts |
82
82
  | **[Workspace scripts](workspace-scripts.md)** | Working from source: package inventory and tiers, `build.sh`, `status.sh`, `pull.sh`, `commit.sh`, `push.sh`, launchers |
83
83
  | **[Glossary](glossary.md)** | Shared terminology (run, ledger, effect, wait, bundle, …) |
84
84
  | **[ADR index](adr/README.md)** | Cross-package architectural decisions and accepted platform contracts |
@@ -55,14 +55,14 @@ The response type returned by `llm.generate(...)`.
55
55
 
56
56
  ### `__version__`
57
57
 
58
- The meta-package version (`0.6.3` for this release).
58
+ The meta-package version (`0.7.0` for this release).
59
59
 
60
60
  ### `RELEASE_VERSIONS`
61
61
 
62
- Dictionary mapping each ecosystem package name to the pinned version for this release. In 0.6.3:
63
- `abstractcore` 2.19.2, `abstractruntime` 0.7.3, `abstractagent` 0.3.17, `abstractgateway` 0.7.4,
62
+ Dictionary mapping each ecosystem package name to the pinned version for this release. In 0.7.0:
63
+ `abstractcore` 2.20.1, `abstractruntime` 0.8.0, `abstractagent` 0.3.17, `abstractgateway` 0.8.0,
64
64
  `abstractskill` 0.3.0, `abstractmemory` 0.3.0, `abstractsemantics` 0.0.5, `abstractvoice` 0.13.2, `abstractvision` 0.3.33,
65
- `abstractmusic` 0.1.15, `abstract3d` 0.3.2, `abstractassistant` 0.9.1.
65
+ `abstractmusic` 0.1.15, `abstract3d` 0.3.2, `abstractassistant` 0.10.0.
66
66
 
67
67
  ### `PACKAGE_DISTRIBUTIONS`
68
68
 
@@ -72,14 +72,14 @@ Maps each package name in `RELEASE_VERSIONS` to its PyPI distribution name (for
72
72
  ### `NPM_RELEASE_VERSIONS`
73
73
 
74
74
  The npm apps released with this version, each runnable with `npx <package>`:
75
- `@abstractframework/flow` 0.4.0, `@abstractframework/code` 0.6.1,
76
- `@abstractframework/observer` 0.2.1, `@abstractframework/continuum` 0.4.0 and
75
+ `@abstractframework/flow` 0.4.0, `@abstractframework/code` 0.7.0,
76
+ `@abstractframework/observer` 0.3.0, `@abstractframework/continuum` 0.4.0 and
77
77
  `@abstractframework/entity` 0.3.0. They also appear as `npm_apps` in the install manifest.
78
78
 
79
79
  ### `CRATE_RELEASE_VERSIONS`
80
80
 
81
81
  The Rust terminal tools released with this version, installed with `cargo install <crate>`:
82
- `abstractgateway-console` 0.11.2, `abstractcore-console` 0.4.1, `abstractcode` 0.7.1 and the
82
+ `abstractgateway-console` 0.12.0, `abstractcore-console` 0.5.0, `abstractcode` 0.7.1 and the
83
83
  `abstracttui` engine 0.6.0. The bootstrap scripts build `abstractgateway-console` at this version by default
84
84
  (`--no-console` skips it) and `abstractcode` next to it (`--no-code-cli` skips it).
85
85