abstractframework 0.4.2__tar.gz → 0.5.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 (193) hide show
  1. {abstractframework-0.4.2 → abstractframework-0.5.0}/CHANGELOG.md +72 -0
  2. {abstractframework-0.4.2/abstractframework.egg-info → abstractframework-0.5.0}/PKG-INFO +34 -31
  3. {abstractframework-0.4.2 → abstractframework-0.5.0}/README.md +23 -20
  4. {abstractframework-0.4.2 → abstractframework-0.5.0}/abstractframework/__init__.py +12 -12
  5. {abstractframework-0.4.2 → abstractframework-0.5.0}/abstractframework/install_manifest.py +4 -2
  6. {abstractframework-0.4.2 → abstractframework-0.5.0/abstractframework.egg-info}/PKG-INFO +34 -31
  7. {abstractframework-0.4.2 → abstractframework-0.5.0}/abstractframework.egg-info/SOURCES.txt +1 -0
  8. abstractframework-0.5.0/abstractframework.egg-info/requires.txt +21 -0
  9. {abstractframework-0.4.2 → abstractframework-0.5.0}/docs/README.md +3 -2
  10. {abstractframework-0.4.2 → abstractframework-0.5.0}/docs/api.md +33 -11
  11. {abstractframework-0.4.2 → abstractframework-0.5.0}/docs/architecture.md +4 -3
  12. abstractframework-0.5.0/docs/automations.md +481 -0
  13. {abstractframework-0.4.2 → abstractframework-0.5.0}/docs/faq.md +23 -3
  14. {abstractframework-0.4.2 → abstractframework-0.5.0}/docs/getting-started.md +18 -5
  15. {abstractframework-0.4.2 → abstractframework-0.5.0}/docs/glossary.md +30 -3
  16. {abstractframework-0.4.2 → abstractframework-0.5.0}/docs/install.md +40 -20
  17. {abstractframework-0.4.2 → abstractframework-0.5.0}/docs/installers/components.md +1 -1
  18. {abstractframework-0.4.2 → abstractframework-0.5.0}/docs/installers/implementation-plan.md +1 -1
  19. {abstractframework-0.4.2 → abstractframework-0.5.0}/docs/installers/user-journeys.md +5 -3
  20. {abstractframework-0.4.2 → abstractframework-0.5.0}/docs/troubleshooting.md +7 -0
  21. {abstractframework-0.4.2 → abstractframework-0.5.0}/llms-full.txt +702 -100
  22. {abstractframework-0.4.2 → abstractframework-0.5.0}/llms.txt +4 -3
  23. {abstractframework-0.4.2 → abstractframework-0.5.0}/pyproject.toml +11 -11
  24. {abstractframework-0.4.2 → abstractframework-0.5.0}/scripts/check_identity_sync.py +5 -0
  25. {abstractframework-0.4.2 → abstractframework-0.5.0}/scripts/install.sh +161 -32
  26. {abstractframework-0.4.2 → abstractframework-0.5.0}/scripts/tests/test_install_user_path.sh +54 -2
  27. {abstractframework-0.4.2 → abstractframework-0.5.0}/tests/test_install_profiles.py +62 -1
  28. abstractframework-0.4.2/abstractframework.egg-info/requires.txt +0 -21
  29. {abstractframework-0.4.2 → abstractframework-0.5.0}/LICENSE +0 -0
  30. {abstractframework-0.4.2 → abstractframework-0.5.0}/MANIFEST.in +0 -0
  31. {abstractframework-0.4.2 → abstractframework-0.5.0}/abstractframework/__main__.py +0 -0
  32. {abstractframework-0.4.2 → abstractframework-0.5.0}/abstractframework/cli.py +0 -0
  33. {abstractframework-0.4.2 → abstractframework-0.5.0}/abstractframework/py.typed +0 -0
  34. {abstractframework-0.4.2 → abstractframework-0.5.0}/abstractframework.egg-info/dependency_links.txt +0 -0
  35. {abstractframework-0.4.2 → abstractframework-0.5.0}/abstractframework.egg-info/entry_points.txt +0 -0
  36. {abstractframework-0.4.2 → abstractframework-0.5.0}/abstractframework.egg-info/top_level.txt +0 -0
  37. {abstractframework-0.4.2 → abstractframework-0.5.0}/docs/adr/0001-layered-architecture.md +0 -0
  38. {abstractframework-0.4.2 → abstractframework-0.5.0}/docs/adr/0002-effect-system-design.md +0 -0
  39. {abstractframework-0.4.2 → abstractframework-0.5.0}/docs/adr/0003-tool-system-architecture.md +0 -0
  40. {abstractframework-0.4.2 → abstractframework-0.5.0}/docs/adr/0004-observability-strategy.md +0 -0
  41. {abstractframework-0.4.2 → abstractframework-0.5.0}/docs/adr/0005-memory-architecture.md +0 -0
  42. {abstractframework-0.4.2 → abstractframework-0.5.0}/docs/adr/0006-durable-tool-execution.md +0 -0
  43. {abstractframework-0.4.2 → abstractframework-0.5.0}/docs/adr/0007-active-context-and-memory-provenance.md +0 -0
  44. {abstractframework-0.4.2 → abstractframework-0.5.0}/docs/adr/0008-token-terminology.md +0 -0
  45. {abstractframework-0.4.2 → abstractframework-0.5.0}/docs/adr/0009-connected-memory-recall-and-provenance.md +0 -0
  46. {abstractframework-0.4.2 → abstractframework-0.5.0}/docs/adr/0010-runtime-owned-node-traces.md +0 -0
  47. {abstractframework-0.4.2 → abstractframework-0.5.0}/docs/adr/0011-ledger-subscriptions-and-event-bridge.md +0 -0
  48. {abstractframework-0.4.2 → abstractframework-0.5.0}/docs/adr/0012-portable-workflowartifact.md +0 -0
  49. {abstractframework-0.4.2 → abstractframework-0.5.0}/docs/adr/0013-durable-run-controls-pause-resume-cancel.md +0 -0
  50. {abstractframework-0.4.2 → abstractframework-0.5.0}/docs/adr/0014-runtime-authority-timeouts.md +0 -0
  51. {abstractframework-0.4.2 → abstractframework-0.5.0}/docs/adr/0015-execution-targets-and-remote-tool-workers.md +0 -0
  52. {abstractframework-0.4.2 → abstractframework-0.5.0}/docs/adr/0016-tool-calling-pipeline-and-responsibility-boundaries.md +0 -0
  53. {abstractframework-0.4.2 → abstractframework-0.5.0}/docs/adr/0017-host-ui-events-and-durable-prompts.md +0 -0
  54. {abstractframework-0.4.2 → abstractframework-0.5.0}/docs/adr/0018-durable-run-gateway-and-remote-host-control-plane.md +0 -0
  55. {abstractframework-0.4.2 → abstractframework-0.5.0}/docs/adr/0019-testing-strategy-and-levels.md +0 -0
  56. {abstractframework-0.4.2 → abstractframework-0.5.0}/docs/adr/0020-agent-host-pool-and-orchestrator-placement.md +0 -0
  57. {abstractframework-0.4.2 → abstractframework-0.5.0}/docs/adr/0021-deployment-topologies-and-supported-scenarios.md +0 -0
  58. {abstractframework-0.4.2 → abstractframework-0.5.0}/docs/adr/0022-orchestrator-host-and-runtime-daemonization.md +0 -0
  59. {abstractframework-0.4.2 → abstractframework-0.5.0}/docs/adr/0023-file-attachment-path-resolution-and-authorization.md +0 -0
  60. {abstractframework-0.4.2 → abstractframework-0.5.0}/docs/adr/0024-attachment-placeholders-and-compaction-invariants.md +0 -0
  61. {abstractframework-0.4.2 → abstractframework-0.5.0}/docs/adr/0025-kg-entity-normalization-and-dedup.md +0 -0
  62. {abstractframework-0.4.2 → abstractframework-0.5.0}/docs/adr/0026-truncation-policy-and-contract.md +0 -0
  63. {abstractframework-0.4.2 → abstractframework-0.5.0}/docs/adr/0027-timeout-policy-and-contract.md +0 -0
  64. {abstractframework-0.4.2 → abstractframework-0.5.0}/docs/adr/0028-capabilities-plugins-and-library-framework-modes.md +0 -0
  65. {abstractframework-0.4.2 → abstractframework-0.5.0}/docs/adr/0029-permissive-dependency-and-licensing-policy.md +0 -0
  66. {abstractframework-0.4.2 → abstractframework-0.5.0}/docs/adr/0030-security-test-fixtures-and-isolation.md +0 -0
  67. {abstractframework-0.4.2 → abstractframework-0.5.0}/docs/adr/0031-workflow-llm-routing-overrides-provider-model-and-base-url.md +0 -0
  68. {abstractframework-0.4.2 → abstractframework-0.5.0}/docs/adr/0032-package-dependency-boundaries-and-gateway-first-apps.md +0 -0
  69. {abstractframework-0.4.2 → abstractframework-0.5.0}/docs/adr/0033-install-profiles-config-entrypoints-and-server-boundaries.md +0 -0
  70. {abstractframework-0.4.2 → abstractframework-0.5.0}/docs/adr/0034-framework-release-sequence-and-gates.md +0 -0
  71. {abstractframework-0.4.2 → abstractframework-0.5.0}/docs/adr/0035-capability-routing-defaults.md +0 -0
  72. {abstractframework-0.4.2 → abstractframework-0.5.0}/docs/adr/0036-artifact-descriptor-contract.md +0 -0
  73. {abstractframework-0.4.2 → abstractframework-0.5.0}/docs/adr/0037-hosted-file-source-contract-and-workspacepath-authority.md +0 -0
  74. {abstractframework-0.4.2 → abstractframework-0.5.0}/docs/adr/0038-script-bootstrap-and-gateway-console-install.md +0 -0
  75. {abstractframework-0.4.2 → abstractframework-0.5.0}/docs/adr/README.md +0 -0
  76. {abstractframework-0.4.2 → abstractframework-0.5.0}/docs/adr/memory-recall-levels.md +0 -0
  77. {abstractframework-0.4.2 → abstractframework-0.5.0}/docs/adr/reorg/001_music_as_capability_plugin_via_acestep_api.md +0 -0
  78. {abstractframework-0.4.2 → abstractframework-0.5.0}/docs/adr/reorg/002_abstractmusic_inprocess_local_generation.md +0 -0
  79. {abstractframework-0.4.2 → abstractframework-0.5.0}/docs/adr/reorg/003_abstractmusic_acestep_v15_backend_source_strategy.md +0 -0
  80. {abstractframework-0.4.2 → abstractframework-0.5.0}/docs/adr/reorg/004_smartnote_thin_client_architecture.md +0 -0
  81. {abstractframework-0.4.2 → abstractframework-0.5.0}/docs/adr/reorg/005_smartnote_artifact_first_cards.md +0 -0
  82. {abstractframework-0.4.2 → abstractframework-0.5.0}/docs/adr/reorg/2026-02-21_gateway-first-assistant.md +0 -0
  83. {abstractframework-0.4.2 → abstractframework-0.5.0}/docs/adr/reorg/2026-02-21_installer_manager_strategy.md +0 -0
  84. {abstractframework-0.4.2 → abstractframework-0.5.0}/docs/adr/reorg/2026-02-21_macos_installer_manager.md +0 -0
  85. {abstractframework-0.4.2 → abstractframework-0.5.0}/docs/agent-sessions.md +0 -0
  86. {abstractframework-0.4.2 → abstractframework-0.5.0}/docs/claude/README.md +0 -0
  87. {abstractframework-0.4.2 → abstractframework-0.5.0}/docs/claude/abstractframework-fit.md +0 -0
  88. {abstractframework-0.4.2 → abstractframework-0.5.0}/docs/claude/claude-skills-overview.md +0 -0
  89. {abstractframework-0.4.2 → abstractframework-0.5.0}/docs/claude/claude-skills-sources.md +0 -0
  90. {abstractframework-0.4.2 → abstractframework-0.5.0}/docs/claude/claude-skills-top-20.md +0 -0
  91. {abstractframework-0.4.2 → abstractframework-0.5.0}/docs/comparisons/README.md +0 -0
  92. {abstractframework-0.4.2 → abstractframework-0.5.0}/docs/configuration.md +0 -0
  93. {abstractframework-0.4.2 → abstractframework-0.5.0}/docs/guide/LANDING.md +0 -0
  94. {abstractframework-0.4.2 → abstractframework-0.5.0}/docs/guide/README.md +0 -0
  95. {abstractframework-0.4.2 → abstractframework-0.5.0}/docs/guide/agent-skills.md +0 -0
  96. {abstractframework-0.4.2 → abstractframework-0.5.0}/docs/guide/agent-vs-llm.md +0 -0
  97. {abstractframework-0.4.2 → abstractframework-0.5.0}/docs/guide/agora-workflow-agent.md +0 -0
  98. {abstractframework-0.4.2 → abstractframework-0.5.0}/docs/guide/apple-local-gateway-flow.md +0 -0
  99. {abstractframework-0.4.2 → abstractframework-0.5.0}/docs/guide/capability-plugins.md +0 -0
  100. {abstractframework-0.4.2 → abstractframework-0.5.0}/docs/guide/capability-routing-defaults.md +0 -0
  101. {abstractframework-0.4.2 → abstractframework-0.5.0}/docs/guide/deployment-iphone.md +0 -0
  102. {abstractframework-0.4.2 → abstractframework-0.5.0}/docs/guide/deployment-topologies.md +0 -0
  103. {abstractframework-0.4.2 → abstractframework-0.5.0}/docs/guide/deployment-web.md +0 -0
  104. {abstractframework-0.4.2 → abstractframework-0.5.0}/docs/guide/email-integration.md +0 -0
  105. {abstractframework-0.4.2 → abstractframework-0.5.0}/docs/guide/event-inbox-agent.md +0 -0
  106. {abstractframework-0.4.2 → abstractframework-0.5.0}/docs/guide/flow-and-kg-memory.md +0 -0
  107. {abstractframework-0.4.2 → abstractframework-0.5.0}/docs/guide/gateway-security.md +0 -0
  108. {abstractframework-0.4.2 → abstractframework-0.5.0}/docs/guide/headless-swarm.md +0 -0
  109. {abstractframework-0.4.2 → abstractframework-0.5.0}/docs/guide/process-manager-env-vars.md +0 -0
  110. {abstractframework-0.4.2 → abstractframework-0.5.0}/docs/guide/prompt-caching.md +0 -0
  111. {abstractframework-0.4.2 → abstractframework-0.5.0}/docs/guide/runtime-artifacts.md +0 -0
  112. {abstractframework-0.4.2 → abstractframework-0.5.0}/docs/guide/runtime-scope.md +0 -0
  113. {abstractframework-0.4.2 → abstractframework-0.5.0}/docs/guide/scheduled-workflows.md +0 -0
  114. {abstractframework-0.4.2 → abstractframework-0.5.0}/docs/guide/summoned-entities.md +0 -0
  115. {abstractframework-0.4.2 → abstractframework-0.5.0}/docs/guide/telegram-integration.md +0 -0
  116. {abstractframework-0.4.2 → abstractframework-0.5.0}/docs/guide/workflow-bundles.md +0 -0
  117. {abstractframework-0.4.2 → abstractframework-0.5.0}/docs/installers/README.md +0 -0
  118. {abstractframework-0.4.2 → abstractframework-0.5.0}/docs/installers/operations-and-support.md +0 -0
  119. {abstractframework-0.4.2 → abstractframework-0.5.0}/docs/installers/release-and-manifest.md +0 -0
  120. {abstractframework-0.4.2 → abstractframework-0.5.0}/docs/installers/security-and-os-blocks.md +0 -0
  121. {abstractframework-0.4.2 → abstractframework-0.5.0}/docs/installers/strategy.md +0 -0
  122. {abstractframework-0.4.2 → abstractframework-0.5.0}/docs/prompts/agora-collaboration.md +0 -0
  123. {abstractframework-0.4.2 → abstractframework-0.5.0}/docs/scenarios/README.md +0 -0
  124. {abstractframework-0.4.2 → abstractframework-0.5.0}/docs/scenarios/email-inbox-agent.md +0 -0
  125. {abstractframework-0.4.2 → abstractframework-0.5.0}/docs/scenarios/gateway-first-local-dev.md +0 -0
  126. {abstractframework-0.4.2 → abstractframework-0.5.0}/docs/scenarios/offline-coding-assistant.md +0 -0
  127. {abstractframework-0.4.2 → abstractframework-0.5.0}/docs/scenarios/phone-thin-client.md +0 -0
  128. {abstractframework-0.4.2 → abstractframework-0.5.0}/docs/scenarios/specialized-agent-flow.md +0 -0
  129. {abstractframework-0.4.2 → abstractframework-0.5.0}/docs/scenarios/telegram-permanent-contact.md +0 -0
  130. {abstractframework-0.4.2 → abstractframework-0.5.0}/docs/scenarios/workflow-bundle-lifecycle.md +0 -0
  131. {abstractframework-0.4.2 → abstractframework-0.5.0}/docs/skills/README.md +0 -0
  132. {abstractframework-0.4.2 → abstractframework-0.5.0}/docs/skills/abstractframework-agent-skills-fit.md +0 -0
  133. {abstractframework-0.4.2 → abstractframework-0.5.0}/docs/skills/abstractframework-architecture-deep-dive.md +0 -0
  134. {abstractframework-0.4.2 → abstractframework-0.5.0}/docs/skills/agent-skills-ecosystem-scan.md +0 -0
  135. {abstractframework-0.4.2 → abstractframework-0.5.0}/docs/skills/agent-skills-ecosystem-sources.md +0 -0
  136. {abstractframework-0.4.2 → abstractframework-0.5.0}/docs/skills/claude-agent-skills-overview.md +0 -0
  137. {abstractframework-0.4.2 → abstractframework-0.5.0}/docs/skills/claude-agent-skills-sources.md +0 -0
  138. {abstractframework-0.4.2 → abstractframework-0.5.0}/docs/skills/claude-agent-skills-top-20.md +0 -0
  139. {abstractframework-0.4.2 → abstractframework-0.5.0}/docs/workspace-scripts.md +0 -0
  140. {abstractframework-0.4.2 → abstractframework-0.5.0}/scripts/af-local.sh +0 -0
  141. {abstractframework-0.4.2 → abstractframework-0.5.0}/scripts/af.sh +0 -0
  142. {abstractframework-0.4.2 → abstractframework-0.5.0}/scripts/agora_react_flow_smoke.py +0 -0
  143. {abstractframework-0.4.2 → abstractframework-0.5.0}/scripts/assistant-local.sh +0 -0
  144. {abstractframework-0.4.2 → abstractframework-0.5.0}/scripts/assistant.sh +0 -0
  145. {abstractframework-0.4.2 → abstractframework-0.5.0}/scripts/build.sh +0 -0
  146. {abstractframework-0.4.2 → abstractframework-0.5.0}/scripts/cache_probe_local_backends.py +0 -0
  147. {abstractframework-0.4.2 → abstractframework-0.5.0}/scripts/cache_steer_repl.py +0 -0
  148. {abstractframework-0.4.2 → abstractframework-0.5.0}/scripts/clone.sh +0 -0
  149. {abstractframework-0.4.2 → abstractframework-0.5.0}/scripts/code-local.sh +0 -0
  150. {abstractframework-0.4.2 → abstractframework-0.5.0}/scripts/code.sh +0 -0
  151. {abstractframework-0.4.2 → abstractframework-0.5.0}/scripts/commit.sh +0 -0
  152. {abstractframework-0.4.2 → abstractframework-0.5.0}/scripts/console-local.sh +0 -0
  153. {abstractframework-0.4.2 → abstractframework-0.5.0}/scripts/console.sh +0 -0
  154. {abstractframework-0.4.2 → abstractframework-0.5.0}/scripts/core_operator_drive.py +0 -0
  155. {abstractframework-0.4.2 → abstractframework-0.5.0}/scripts/deps.sh +0 -0
  156. {abstractframework-0.4.2 → abstractframework-0.5.0}/scripts/entity-local.sh +0 -0
  157. {abstractframework-0.4.2 → abstractframework-0.5.0}/scripts/entity.sh +0 -0
  158. {abstractframework-0.4.2 → abstractframework-0.5.0}/scripts/event_inbox_flow_smoke.py +0 -0
  159. {abstractframework-0.4.2 → abstractframework-0.5.0}/scripts/flow-local.sh +0 -0
  160. {abstractframework-0.4.2 → abstractframework-0.5.0}/scripts/flow.sh +0 -0
  161. {abstractframework-0.4.2 → abstractframework-0.5.0}/scripts/gateway-flow-local.sh +0 -0
  162. {abstractframework-0.4.2 → abstractframework-0.5.0}/scripts/gateway-flow.sh +0 -0
  163. {abstractframework-0.4.2 → abstractframework-0.5.0}/scripts/gateway-local.sh +0 -0
  164. {abstractframework-0.4.2 → abstractframework-0.5.0}/scripts/gateway.sh +0 -0
  165. {abstractframework-0.4.2 → abstractframework-0.5.0}/scripts/gen_llms_full.py +0 -0
  166. {abstractframework-0.4.2 → abstractframework-0.5.0}/scripts/headless_fleet_bridge.py +0 -0
  167. {abstractframework-0.4.2 → abstractframework-0.5.0}/scripts/headless_fleet_demo.py +0 -0
  168. {abstractframework-0.4.2 → abstractframework-0.5.0}/scripts/headless_steer_repl.py +0 -0
  169. {abstractframework-0.4.2 → abstractframework-0.5.0}/scripts/lib/af_inventory.py +0 -0
  170. {abstractframework-0.4.2 → abstractframework-0.5.0}/scripts/lib/af_stack.sh +0 -0
  171. {abstractframework-0.4.2 → abstractframework-0.5.0}/scripts/lib/af_supervisor.sh +0 -0
  172. {abstractframework-0.4.2 → abstractframework-0.5.0}/scripts/lib/apps_common.sh +0 -0
  173. {abstractframework-0.4.2 → abstractframework-0.5.0}/scripts/lib/build_macos_installer.sh +0 -0
  174. {abstractframework-0.4.2 → abstractframework-0.5.0}/scripts/lib/gateway_user_tokens.py +0 -0
  175. {abstractframework-0.4.2 → abstractframework-0.5.0}/scripts/lib/repo_groups.sh +0 -0
  176. {abstractframework-0.4.2 → abstractframework-0.5.0}/scripts/meet_castor.sh +0 -0
  177. {abstractframework-0.4.2 → abstractframework-0.5.0}/scripts/observer-local.sh +0 -0
  178. {abstractframework-0.4.2 → abstractframework-0.5.0}/scripts/observer.sh +0 -0
  179. {abstractframework-0.4.2 → abstractframework-0.5.0}/scripts/plan_walkthrough.py +0 -0
  180. {abstractframework-0.4.2 → abstractframework-0.5.0}/scripts/pull.sh +0 -0
  181. {abstractframework-0.4.2 → abstractframework-0.5.0}/scripts/push.sh +0 -0
  182. {abstractframework-0.4.2 → abstractframework-0.5.0}/scripts/spawn_demo_agent.sh +0 -0
  183. {abstractframework-0.4.2 → abstractframework-0.5.0}/scripts/start-local.sh +0 -0
  184. {abstractframework-0.4.2 → abstractframework-0.5.0}/scripts/start.sh +0 -0
  185. {abstractframework-0.4.2 → abstractframework-0.5.0}/scripts/status.sh +0 -0
  186. {abstractframework-0.4.2 → abstractframework-0.5.0}/scripts/steer_repl.py +0 -0
  187. {abstractframework-0.4.2 → abstractframework-0.5.0}/scripts/tests/test_af_supervisor.sh +0 -0
  188. {abstractframework-0.4.2 → abstractframework-0.5.0}/scripts/tests/test_inventory.sh +0 -0
  189. {abstractframework-0.4.2 → abstractframework-0.5.0}/scripts/tests/test_repo_scripts.sh +0 -0
  190. {abstractframework-0.4.2 → abstractframework-0.5.0}/scripts/uninstall.sh +0 -0
  191. {abstractframework-0.4.2 → abstractframework-0.5.0}/scripts/visit_resume_cache_probe.py +0 -0
  192. {abstractframework-0.4.2 → abstractframework-0.5.0}/setup.cfg +0 -0
  193. {abstractframework-0.4.2 → abstractframework-0.5.0}/tests/test_llms_full.py +0 -0
@@ -4,6 +4,78 @@ All notable changes to AbstractFramework will be documented in this file.
4
4
 
5
5
  ## [Unreleased]
6
6
 
7
+ ## [0.5.0] - 2026-09-27
8
+
9
+ Automations, a terminal console installed by default, and a headless setup path: installing and
10
+ configuring AbstractFramework on a remote Linux server without a browser works like it does on a Mac.
11
+
12
+ ### Added
13
+
14
+ - **Automations v1.** Run a workflow or the gateway's default agent again and again on a fixed UTC
15
+ interval or on request, read every run as a chat turn, and be notified only when a run asks for
16
+ you or fails. Create and manage them in the Assistant (session switcher, **Automations** tab), the
17
+ Observer (**Launch → Automate**, **Automations** page) or from a workflow's automation defaults in
18
+ the Flow editor. See [Automations](docs/automations.md).
19
+ - **The terminal console is installed by default.** The installer builds `abstractgateway-console`
20
+ with cargo next to the `abstractgateway` command. On macOS and Linux, when cargo is missing or
21
+ older than Rust 1.87, it adds Rust with rustup, user-scoped (`~/.rustup`, `~/.cargo`, about
22
+ 600 MB, shell profile untouched); Windows builds it when Rust is already installed. The build
23
+ needs a C compiler; without one, or if it fails, the installer says why and continues.
24
+ `--no-console` (`-NoConsole`) skips it; `--with-console` is accepted and has no effect. The
25
+ uninstaller removes the console it built and keeps Rust.
26
+ - **Both consoles in the installer summary.** The summary shows the web console link and the
27
+ terminal console command, `abstractgateway-console --url <gateway> --token-file <data dir>/auth/bootstrap-admin-token`:
28
+ the token is read from the gateway's data dir and never appears on the command line or in the
29
+ environment.
30
+ - **Headless or remote machine** ([Install](docs/install.md#headless-or-remote-machine)): configure
31
+ the gateway from the terminal console on the server, or tunnel the web console over SSH.
32
+ - **The terminal console matches the web console** (`abstractgateway-console` 0.10.0): the setup
33
+ guide for a headless first run (Connection, Setup, Engines, Providers, Routes, Models, Apps,
34
+ Review), twelve screens including **Setup** and **A Apps**, the **F2** docs assistant, the **F3**
35
+ host panel, every sandbox mode, entity summon and workflow import, with the same admin rules.
36
+ `abstractcore-console` 0.3.0 adds Hugging Face search, parallel downloads, engine start/stop and
37
+ a video filter to the shared Models and Engines screens.
38
+ - **Recommended defaults fit the machine** (AbstractCore 2.17.0): every recommended route is written
39
+ only where its engine runs, and a route this computer cannot run says why. Video joins the model
40
+ catalog and the recommendations (MLX-Gen Wan2.2 TI2V-5B on Apple silicon with enough memory), and
41
+ the web console has a **Video** filter and card.
42
+
43
+ ### Changed
44
+
45
+ - **App hints use launch flags.** With `--with-apps`, the installer prints
46
+ `npx -y @abstractframework/flow@<version> --gateway-url <gateway>` (Continuum likewise); Code,
47
+ Observer and Entity take a gateway other than `http://127.0.0.1:8080` on their sign-in screen.
48
+ `--with-code-cli` prints `abstractcode --gateway <gateway>`.
49
+
50
+ ### Changed (pins)
51
+
52
+ - **abstractgateway 0.6.0** (was 0.5.1): the Automations API, run lists attributed to automations,
53
+ web console video and host-aware routes, and the terminal console 0.10.0.
54
+ - **abstractcore 2.17.0** (was 2.16.1): host-aware recommended defaults, video models and routes,
55
+ `route_unavailable` on routes this computer cannot run, a voice-clone fix for local engines.
56
+ - **AbstractRuntime 0.6.0** (was 0.5.1): the durable automation controller and its occurrences.
57
+ - **abstractassistant 0.8.0** (was 0.7.0): automations in the session switcher (schedule a
58
+ conversation, read runs as a chat, answer waiting runs, discuss a run); it finds a gateway the
59
+ installer moved off a busy port 8080.
60
+ - **abstractvoice 0.12.0** (was 0.11.4): Qwen3-TTS checkpoint selection, directed speech and a
61
+ steadier codebook predictor.
62
+ - **abstractvision 0.3.30** (was 0.3.29): unloading an MLX-Gen model returns its memory to the
63
+ operating system.
64
+ - npm: **@abstractframework/flow 0.3.22** (automation defaults on workflows) and
65
+ **@abstractframework/observer 0.1.14** (Automate mode and the Automations page).
66
+ - crates.io: **abstractgateway-console 0.10.0** and **abstractcore-console 0.3.0**.
67
+ - The pins apply to the base install and to the `apple` / `gpu` extras. Unchanged:
68
+ abstractagent 0.3.16, abstractskill 0.3.0, AbstractMemory 0.3.0, abstractsemantics 0.0.5,
69
+ abstractmusic 0.1.15, @abstractframework/code 0.5.0, continuum 0.3.2, entity 0.2.2,
70
+ `abstractcode` 0.6.0 and `abstracttui` 0.6.0.
71
+
72
+ ### Documentation
73
+
74
+ - **Automations guide** ([docs/automations.md](docs/automations.md)): how automations work, creating
75
+ them from each client, two worked examples, managing them, notifications and typed waits, restart
76
+ safety, limits and troubleshooting. A discussion about a run works in its own folder with the
77
+ automation's folder mounted read-only.
78
+
7
79
  ## [0.4.2] - 2026-09-27
8
80
 
9
81
  A patch release for the uninstaller and two package updates.
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: abstractframework
3
- Version: 0.4.2
3
+ Version: 0.5.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,23 +23,23 @@ Classifier: Typing :: Typed
23
23
  Requires-Python: >=3.10
24
24
  Description-Content-Type: text/markdown
25
25
  License-File: LICENSE
26
- Requires-Dist: abstractgateway==0.5.1
27
- Requires-Dist: abstractassistant==0.7.0
28
- Requires-Dist: abstractcore==2.16.1
29
- Requires-Dist: AbstractRuntime==0.5.1
26
+ Requires-Dist: abstractgateway==0.6.0
27
+ Requires-Dist: abstractassistant==0.8.0
28
+ Requires-Dist: abstractcore==2.17.0
29
+ Requires-Dist: AbstractRuntime==0.6.0
30
30
  Requires-Dist: abstractagent==0.3.16
31
31
  Requires-Dist: abstractskill==0.3.0
32
32
  Requires-Dist: AbstractMemory==0.3.0
33
33
  Requires-Dist: abstractsemantics==0.0.5
34
- Requires-Dist: abstractvoice==0.11.4
35
- Requires-Dist: abstractvision==0.3.29
34
+ Requires-Dist: abstractvoice==0.12.0
35
+ Requires-Dist: abstractvision==0.3.30
36
36
  Requires-Dist: abstractmusic==0.1.15
37
37
  Provides-Extra: apple
38
- Requires-Dist: abstractgateway[apple]==0.5.1; extra == "apple"
39
- Requires-Dist: abstractassistant[apple]==0.7.0; platform_system == "Darwin" and extra == "apple"
38
+ Requires-Dist: abstractgateway[apple]==0.6.0; extra == "apple"
39
+ Requires-Dist: abstractassistant[apple]==0.8.0; platform_system == "Darwin" and extra == "apple"
40
40
  Provides-Extra: gpu
41
- Requires-Dist: abstractgateway[gpu]==0.5.1; extra == "gpu"
42
- Requires-Dist: abstractassistant[gpu]==0.7.0; extra == "gpu"
41
+ Requires-Dist: abstractgateway[gpu]==0.6.0; extra == "gpu"
42
+ Requires-Dist: abstractassistant[gpu]==0.8.0; extra == "gpu"
43
43
  Dynamic: license-file
44
44
 
45
45
  # AbstractFramework
@@ -66,7 +66,9 @@ Think of it as an **agentic OS**: durable runs + replay-first observability + mu
66
66
  The installer sets up the gateway in your user account (no admin password, no system Python),
67
67
  asks whether to start it at login, starts it on `127.0.0.1:8080`, and opens its web console in
68
68
  your browser already signed in. A first-run guide then sets up a local engine (Ollama, LM Studio,
69
- MLX, llama.cpp), downloads a model that fits your machine, and lists the apps.
69
+ MLX, llama.cpp), downloads a model that fits your machine, and lists the apps. The installer also
70
+ builds the terminal console, `abstractgateway-console`, which runs the same guide on a server without
71
+ a browser ([Headless or remote machine](docs/install.md#headless-or-remote-machine)).
70
72
 
71
73
  - **Mac, no Terminal:** download and double-click
72
74
  [AbstractFramework-Installer.pkg](https://github.com/lpalbou/AbstractFramework/releases/latest/download/AbstractFramework-Installer.pkg).
@@ -145,7 +147,7 @@ Start here if you're building persistent AI applications — agents that run for
145
147
 
146
148
  - Durable execution that survives crashes and restarts
147
149
  - Append-only ledger (replay-first) for auditability
148
- - Scheduled workflows (cron-style, recurring)
150
+ - Automations: a workflow that runs on a fixed interval or on demand, kept as a readable conversation ([Automations](docs/automations.md))
149
151
  - Multi-client: terminal, browser, tray, Telegram, email
150
152
  - Start on one device, continue on another
151
153
 
@@ -185,12 +187,12 @@ Monitor runs from a browser, or from a terminal with the gateway console:
185
187
  ```bash
186
188
  npx @abstractframework/observer # open http://localhost:3001
187
189
 
188
- cargo install abstractgateway-console # Rust 1.87+
189
- ABSTRACTGATEWAY_AUTH_TOKEN=<token> abstractgateway-console --url http://127.0.0.1:8080
190
+ cargo install abstractgateway-console # Rust 1.87+; the installer builds it for you
191
+ abstractgateway-console --url http://127.0.0.1:8080 --token <admin token> # <data dir>/auth/bootstrap-admin-token
190
192
  ```
191
193
 
192
194
  Container images are published for the gateway and the AbstractCore server:
193
- `ghcr.io/lpalbou/abstractgateway:0.5.1` and `ghcr.io/lpalbou/abstractcore-server:2.16.1`.
195
+ `ghcr.io/lpalbou/abstractgateway:0.6.0` and `ghcr.io/lpalbou/abstractcore-server:2.17.0`.
194
196
 
195
197
  For artifact and runtime-resource investigation, see
196
198
  [Runtime artifacts and retrieval](docs/guide/runtime-artifacts.md).
@@ -241,7 +243,7 @@ AbstractFlow lets you author complex agentic orchestration as portable `.flow` b
241
243
 
242
244
  - **Observe**: replay the full ledger of any run, or watch one live over SSE
243
245
  - **Control**: cancel, resume, or inspect runs from the browser
244
- - **Schedule**: durable schedules (cron-style) owned by the gateway — they survive restarts
246
+ - **Automate**: create and manage automations (Launch → Automate, the Automations page); they run on the gateway and survive restarts. See [Automations](docs/automations.md)
245
247
 
246
248
  ---
247
249
 
@@ -291,7 +293,7 @@ The ecosystem, grouped by layer. Each name links to the package's repository.
291
293
  | [AbstractObserver](https://github.com/lpalbou/AbstractObserver) | Browser UI — monitor, control, and schedule gateway runs | `npx @abstractframework/observer` |
292
294
  | [AbstractEntity](https://github.com/lpalbou/AbstractEntity) | Summoned-entity manager — roster, blueprint (cognition map + editing), chat drawer, live replay | `npx @abstractframework/entity` |
293
295
  | [AbstractContinuum](https://github.com/lpalbou/AbstractContinuum) | Continuous iterative development and deployment console | `npx @abstractframework/continuum` |
294
- | **Gateway consoles** | Operator consoles for a running gateway: web at `/console` (first-run guide, Models, Engines, providers, users), terminal via `abstractgateway-console` | built into `abstractgateway`; `cargo install abstractgateway-console` |
296
+ | **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 twelve screens, for headless hosts) | built into `abstractgateway`; built by the installer, or `cargo install abstractgateway-console` |
295
297
  | **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` |
296
298
  | **Code Web UI** | Browser client of AbstractCode (gateway-backed): workflow selector, Files tab, live replies | `npx @abstractframework/code` |
297
299
  | **Flow Editor** | Visual workflow authoring in the browser | `npx @abstractframework/flow` |
@@ -336,7 +338,7 @@ pip install "abstractframework[gpu]"
336
338
  | Apple | `pip install "abstractframework[apple]"` | macOS 14+ on Apple Silicon | 3.10–3.13 (F5-TTS voice cloning needs 3.11+) |
337
339
  | GPU | `pip install "abstractframework[gpu]"` | Linux / Windows with a CUDA or ROCm GPU | 3.10–3.13 (F5-TTS voice cloning needs 3.11+) |
338
340
 
339
- ### Release matrix (abstractframework 0.4.2)
341
+ ### Release matrix (abstractframework 0.5.0)
340
342
 
341
343
  `abstractframework` pins every Python package with `==`, so one version of the
342
344
  meta-package always installs the same stack. The browser apps and Rust tools are
@@ -345,28 +347,28 @@ and tested together.
345
347
 
346
348
  | Registry | Package | Version |
347
349
  |---|---|---|
348
- | PyPI | `abstractgateway` | 0.5.1 |
349
- | PyPI | `abstractassistant` | 0.7.0 |
350
- | PyPI | `abstractcore` | 2.16.1 |
351
- | PyPI | `AbstractRuntime` | 0.5.1 |
350
+ | PyPI | `abstractgateway` | 0.6.0 |
351
+ | PyPI | `abstractassistant` | 0.8.0 |
352
+ | PyPI | `abstractcore` | 2.17.0 |
353
+ | PyPI | `AbstractRuntime` | 0.6.0 |
352
354
  | PyPI | `abstractagent` | 0.3.16 |
353
355
  | PyPI | `abstractskill` | 0.3.0 |
354
356
  | PyPI | `AbstractMemory` | 0.3.0 |
355
357
  | PyPI | `abstractsemantics` | 0.0.5 |
356
- | PyPI | `abstractvoice` | 0.11.4 |
357
- | PyPI | `abstractvision` | 0.3.29 |
358
+ | PyPI | `abstractvoice` | 0.12.0 |
359
+ | PyPI | `abstractvision` | 0.3.30 |
358
360
  | PyPI | `abstractmusic` | 0.1.15 |
359
- | npm | `@abstractframework/flow` | 0.3.21 |
361
+ | npm | `@abstractframework/flow` | 0.3.22 |
360
362
  | npm | `@abstractframework/code` | 0.5.0 |
361
- | npm | `@abstractframework/observer` | 0.1.13 |
363
+ | npm | `@abstractframework/observer` | 0.1.14 |
362
364
  | npm | `@abstractframework/continuum` | 0.3.2 |
363
365
  | npm | `@abstractframework/entity` | 0.2.2 |
364
366
  | crates.io | `abstractcode` | 0.6.0 |
365
- | crates.io | `abstractgateway-console` | 0.9.0 |
366
- | crates.io | `abstractcore-console` | 0.2.0 |
367
+ | crates.io | `abstractgateway-console` | 0.10.0 |
368
+ | crates.io | `abstractcore-console` | 0.3.0 |
367
369
  | crates.io | `abstracttui` | 0.6.0 |
368
- | GHCR | `ghcr.io/lpalbou/abstractgateway` | 0.5.1 (`gpu-latest` / `<version>-gpu` experimental) |
369
- | GHCR | `ghcr.io/lpalbou/abstractcore-server` | 2.16.1 |
370
+ | GHCR | `ghcr.io/lpalbou/abstractgateway` | 0.6.0 (`gpu-latest` / `<version>-gpu` experimental) |
371
+ | GHCR | `ghcr.io/lpalbou/abstractcore-server` | 2.17.0 |
370
372
 
371
373
  Optional add-ons that are not part of any profile install separately:
372
374
  `pip install abstract3d` (0.3.1) and `pip install abstractcamera` (0.2.0). `abstractskill` (pinned above)
@@ -386,6 +388,7 @@ See [docs/install.md](docs/install.md) for the full install chooser, `uv`/venv g
386
388
  | [docs/install.md](docs/install.md) | Light / Apple / GPU install chooser and first checks |
387
389
  | [docs/getting-started.md](docs/getting-started.md) | Two entry points + first end-to-end run |
388
390
  | [docs/agent-sessions.md](docs/agent-sessions.md) | Default agent workflow, the conversation workspace and its protection, skills, live replies, the Assistant hand-over |
391
+ | [docs/automations.md](docs/automations.md) | Automations: how they work (controller run, occurrences, independent vs growing context), creating and managing them from the Assistant, the Observer or a workflow, notifications, limits |
389
392
  | [docs/architecture.md](docs/architecture.md) | Component diagram, how a turn flows, the live-reply lane, app proxies, model eject, framework identity, durable execution primitives |
390
393
  | [docs/configuration.md](docs/configuration.md) | Minimal config, where defaults live, Core vs Gateway |
391
394
  | [docs/glossary.md](docs/glossary.md) | Shared terminology (run, ledger, effect, wait, bundle, …) |
@@ -22,7 +22,9 @@ Think of it as an **agentic OS**: durable runs + replay-first observability + mu
22
22
  The installer sets up the gateway in your user account (no admin password, no system Python),
23
23
  asks whether to start it at login, starts it on `127.0.0.1:8080`, and opens its web console in
24
24
  your browser already signed in. A first-run guide then sets up a local engine (Ollama, LM Studio,
25
- MLX, llama.cpp), downloads a model that fits your machine, and lists the apps.
25
+ MLX, llama.cpp), downloads a model that fits your machine, and lists the apps. The installer also
26
+ builds the terminal console, `abstractgateway-console`, which runs the same guide on a server without
27
+ a browser ([Headless or remote machine](docs/install.md#headless-or-remote-machine)).
26
28
 
27
29
  - **Mac, no Terminal:** download and double-click
28
30
  [AbstractFramework-Installer.pkg](https://github.com/lpalbou/AbstractFramework/releases/latest/download/AbstractFramework-Installer.pkg).
@@ -101,7 +103,7 @@ Start here if you're building persistent AI applications — agents that run for
101
103
 
102
104
  - Durable execution that survives crashes and restarts
103
105
  - Append-only ledger (replay-first) for auditability
104
- - Scheduled workflows (cron-style, recurring)
106
+ - Automations: a workflow that runs on a fixed interval or on demand, kept as a readable conversation ([Automations](docs/automations.md))
105
107
  - Multi-client: terminal, browser, tray, Telegram, email
106
108
  - Start on one device, continue on another
107
109
 
@@ -141,12 +143,12 @@ Monitor runs from a browser, or from a terminal with the gateway console:
141
143
  ```bash
142
144
  npx @abstractframework/observer # open http://localhost:3001
143
145
 
144
- cargo install abstractgateway-console # Rust 1.87+
145
- ABSTRACTGATEWAY_AUTH_TOKEN=<token> abstractgateway-console --url http://127.0.0.1:8080
146
+ cargo install abstractgateway-console # Rust 1.87+; the installer builds it for you
147
+ abstractgateway-console --url http://127.0.0.1:8080 --token <admin token> # <data dir>/auth/bootstrap-admin-token
146
148
  ```
147
149
 
148
150
  Container images are published for the gateway and the AbstractCore server:
149
- `ghcr.io/lpalbou/abstractgateway:0.5.1` and `ghcr.io/lpalbou/abstractcore-server:2.16.1`.
151
+ `ghcr.io/lpalbou/abstractgateway:0.6.0` and `ghcr.io/lpalbou/abstractcore-server:2.17.0`.
150
152
 
151
153
  For artifact and runtime-resource investigation, see
152
154
  [Runtime artifacts and retrieval](docs/guide/runtime-artifacts.md).
@@ -197,7 +199,7 @@ AbstractFlow lets you author complex agentic orchestration as portable `.flow` b
197
199
 
198
200
  - **Observe**: replay the full ledger of any run, or watch one live over SSE
199
201
  - **Control**: cancel, resume, or inspect runs from the browser
200
- - **Schedule**: durable schedules (cron-style) owned by the gateway — they survive restarts
202
+ - **Automate**: create and manage automations (Launch → Automate, the Automations page); they run on the gateway and survive restarts. See [Automations](docs/automations.md)
201
203
 
202
204
  ---
203
205
 
@@ -247,7 +249,7 @@ The ecosystem, grouped by layer. Each name links to the package's repository.
247
249
  | [AbstractObserver](https://github.com/lpalbou/AbstractObserver) | Browser UI — monitor, control, and schedule gateway runs | `npx @abstractframework/observer` |
248
250
  | [AbstractEntity](https://github.com/lpalbou/AbstractEntity) | Summoned-entity manager — roster, blueprint (cognition map + editing), chat drawer, live replay | `npx @abstractframework/entity` |
249
251
  | [AbstractContinuum](https://github.com/lpalbou/AbstractContinuum) | Continuous iterative development and deployment console | `npx @abstractframework/continuum` |
250
- | **Gateway consoles** | Operator consoles for a running gateway: web at `/console` (first-run guide, Models, Engines, providers, users), terminal via `abstractgateway-console` | built into `abstractgateway`; `cargo install abstractgateway-console` |
252
+ | **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 twelve screens, for headless hosts) | built into `abstractgateway`; built by the installer, or `cargo install abstractgateway-console` |
251
253
  | **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` |
252
254
  | **Code Web UI** | Browser client of AbstractCode (gateway-backed): workflow selector, Files tab, live replies | `npx @abstractframework/code` |
253
255
  | **Flow Editor** | Visual workflow authoring in the browser | `npx @abstractframework/flow` |
@@ -292,7 +294,7 @@ pip install "abstractframework[gpu]"
292
294
  | Apple | `pip install "abstractframework[apple]"` | macOS 14+ on Apple Silicon | 3.10–3.13 (F5-TTS voice cloning needs 3.11+) |
293
295
  | GPU | `pip install "abstractframework[gpu]"` | Linux / Windows with a CUDA or ROCm GPU | 3.10–3.13 (F5-TTS voice cloning needs 3.11+) |
294
296
 
295
- ### Release matrix (abstractframework 0.4.2)
297
+ ### Release matrix (abstractframework 0.5.0)
296
298
 
297
299
  `abstractframework` pins every Python package with `==`, so one version of the
298
300
  meta-package always installs the same stack. The browser apps and Rust tools are
@@ -301,28 +303,28 @@ and tested together.
301
303
 
302
304
  | Registry | Package | Version |
303
305
  |---|---|---|
304
- | PyPI | `abstractgateway` | 0.5.1 |
305
- | PyPI | `abstractassistant` | 0.7.0 |
306
- | PyPI | `abstractcore` | 2.16.1 |
307
- | PyPI | `AbstractRuntime` | 0.5.1 |
306
+ | PyPI | `abstractgateway` | 0.6.0 |
307
+ | PyPI | `abstractassistant` | 0.8.0 |
308
+ | PyPI | `abstractcore` | 2.17.0 |
309
+ | PyPI | `AbstractRuntime` | 0.6.0 |
308
310
  | PyPI | `abstractagent` | 0.3.16 |
309
311
  | PyPI | `abstractskill` | 0.3.0 |
310
312
  | PyPI | `AbstractMemory` | 0.3.0 |
311
313
  | PyPI | `abstractsemantics` | 0.0.5 |
312
- | PyPI | `abstractvoice` | 0.11.4 |
313
- | PyPI | `abstractvision` | 0.3.29 |
314
+ | PyPI | `abstractvoice` | 0.12.0 |
315
+ | PyPI | `abstractvision` | 0.3.30 |
314
316
  | PyPI | `abstractmusic` | 0.1.15 |
315
- | npm | `@abstractframework/flow` | 0.3.21 |
317
+ | npm | `@abstractframework/flow` | 0.3.22 |
316
318
  | npm | `@abstractframework/code` | 0.5.0 |
317
- | npm | `@abstractframework/observer` | 0.1.13 |
319
+ | npm | `@abstractframework/observer` | 0.1.14 |
318
320
  | npm | `@abstractframework/continuum` | 0.3.2 |
319
321
  | npm | `@abstractframework/entity` | 0.2.2 |
320
322
  | crates.io | `abstractcode` | 0.6.0 |
321
- | crates.io | `abstractgateway-console` | 0.9.0 |
322
- | crates.io | `abstractcore-console` | 0.2.0 |
323
+ | crates.io | `abstractgateway-console` | 0.10.0 |
324
+ | crates.io | `abstractcore-console` | 0.3.0 |
323
325
  | crates.io | `abstracttui` | 0.6.0 |
324
- | GHCR | `ghcr.io/lpalbou/abstractgateway` | 0.5.1 (`gpu-latest` / `<version>-gpu` experimental) |
325
- | GHCR | `ghcr.io/lpalbou/abstractcore-server` | 2.16.1 |
326
+ | GHCR | `ghcr.io/lpalbou/abstractgateway` | 0.6.0 (`gpu-latest` / `<version>-gpu` experimental) |
327
+ | GHCR | `ghcr.io/lpalbou/abstractcore-server` | 2.17.0 |
326
328
 
327
329
  Optional add-ons that are not part of any profile install separately:
328
330
  `pip install abstract3d` (0.3.1) and `pip install abstractcamera` (0.2.0). `abstractskill` (pinned above)
@@ -342,6 +344,7 @@ See [docs/install.md](docs/install.md) for the full install chooser, `uv`/venv g
342
344
  | [docs/install.md](docs/install.md) | Light / Apple / GPU install chooser and first checks |
343
345
  | [docs/getting-started.md](docs/getting-started.md) | Two entry points + first end-to-end run |
344
346
  | [docs/agent-sessions.md](docs/agent-sessions.md) | Default agent workflow, the conversation workspace and its protection, skills, live replies, the Assistant hand-over |
347
+ | [docs/automations.md](docs/automations.md) | Automations: how they work (controller run, occurrences, independent vs growing context), creating and managing them from the Assistant, the Observer or a workflow, notifications, limits |
345
348
  | [docs/architecture.md](docs/architecture.md) | Component diagram, how a turn flows, the live-reply lane, app proxies, model eject, framework identity, durable execution primitives |
346
349
  | [docs/configuration.md](docs/configuration.md) | Minimal config, where defaults live, Core vs Gateway |
347
350
  | [docs/glossary.md](docs/glossary.md) | Shared terminology (run, ledger, effect, wait, bundle, …) |
@@ -10,22 +10,22 @@ Most implementation functionality still lives in component projects.
10
10
 
11
11
  from __future__ import annotations
12
12
 
13
- __version__ = "0.4.2"
13
+ __version__ = "0.5.0"
14
14
  __author__ = "Laurent-Philippe Albou"
15
15
  __license__ = "MIT"
16
16
 
17
17
  RELEASE_VERSIONS: dict[str, str] = {
18
- "abstractcore": "2.16.1",
19
- "abstractruntime": "0.5.1",
18
+ "abstractcore": "2.17.0",
19
+ "abstractruntime": "0.6.0",
20
20
  "abstractagent": "0.3.16",
21
- "abstractgateway": "0.5.1",
21
+ "abstractgateway": "0.6.0",
22
22
  "abstractskill": "0.3.0",
23
23
  "abstractmemory": "0.3.0",
24
24
  "abstractsemantics": "0.0.5",
25
- "abstractvoice": "0.11.4",
26
- "abstractvision": "0.3.29",
25
+ "abstractvoice": "0.12.0",
26
+ "abstractvision": "0.3.30",
27
27
  "abstractmusic": "0.1.15",
28
- "abstractassistant": "0.7.0",
28
+ "abstractassistant": "0.8.0",
29
29
  }
30
30
 
31
31
  PACKAGE_DISTRIBUTIONS: dict[str, str] = {
@@ -43,18 +43,18 @@ PACKAGE_DISTRIBUTIONS: dict[str, str] = {
43
43
  }
44
44
 
45
45
  NPM_RELEASE_VERSIONS: dict[str, str] = {
46
- "@abstractframework/flow": "0.3.21",
46
+ "@abstractframework/flow": "0.3.22",
47
47
  "@abstractframework/code": "0.5.0",
48
- "@abstractframework/observer": "0.1.13",
48
+ "@abstractframework/observer": "0.1.14",
49
49
  "@abstractframework/continuum": "0.3.2",
50
50
  "@abstractframework/entity": "0.2.2",
51
51
  }
52
52
 
53
53
  # Terminal tools published on crates.io alongside this release (installed with `cargo install`,
54
- # or by the bootstrap scripts' --with-console / --with-code-cli flags).
54
+ # or by the bootstrap scripts: the gateway console by default, abstractcode with --with-code-cli).
55
55
  CRATE_RELEASE_VERSIONS: dict[str, str] = {
56
- "abstractgateway-console": "0.9.0",
57
- "abstractcore-console": "0.2.0",
56
+ "abstractgateway-console": "0.10.0",
57
+ "abstractcore-console": "0.3.0",
58
58
  "abstractcode": "0.6.0",
59
59
  "abstracttui": "0.6.0",
60
60
  }
@@ -34,8 +34,10 @@ BOOTSTRAP_FLAGS: list[dict[str, str]] = [
34
34
  "summary": "Gateway data dir (default: the per-OS user data dir)."},
35
35
  {"sh": "--with-apps", "ps": "-WithApps", "env": "",
36
36
  "summary": "Ensure Node.js >= 18 for the npx browser apps (uv tool install nodejs-wheel)."},
37
- {"sh": "--with-console", "ps": "-WithConsole", "env": "",
38
- "summary": "cargo install abstractgateway-console when cargo exists."},
37
+ {"sh": "--no-console", "ps": "-NoConsole", "env": "",
38
+ "summary": "Skip the terminal console. By default abstractgateway-console is built "
39
+ "with cargo (install.sh adds Rust through rustup when cargo is missing; "
40
+ "needs a C compiler)."},
39
41
  {"sh": "--with-code-cli", "ps": "-WithCodeCli", "env": "",
40
42
  "summary": "cargo install abstractcode (terminal client) when cargo exists."},
41
43
  {"sh": "--with-core-cli", "ps": "-WithCoreCli", "env": "",
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: abstractframework
3
- Version: 0.4.2
3
+ Version: 0.5.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,23 +23,23 @@ Classifier: Typing :: Typed
23
23
  Requires-Python: >=3.10
24
24
  Description-Content-Type: text/markdown
25
25
  License-File: LICENSE
26
- Requires-Dist: abstractgateway==0.5.1
27
- Requires-Dist: abstractassistant==0.7.0
28
- Requires-Dist: abstractcore==2.16.1
29
- Requires-Dist: AbstractRuntime==0.5.1
26
+ Requires-Dist: abstractgateway==0.6.0
27
+ Requires-Dist: abstractassistant==0.8.0
28
+ Requires-Dist: abstractcore==2.17.0
29
+ Requires-Dist: AbstractRuntime==0.6.0
30
30
  Requires-Dist: abstractagent==0.3.16
31
31
  Requires-Dist: abstractskill==0.3.0
32
32
  Requires-Dist: AbstractMemory==0.3.0
33
33
  Requires-Dist: abstractsemantics==0.0.5
34
- Requires-Dist: abstractvoice==0.11.4
35
- Requires-Dist: abstractvision==0.3.29
34
+ Requires-Dist: abstractvoice==0.12.0
35
+ Requires-Dist: abstractvision==0.3.30
36
36
  Requires-Dist: abstractmusic==0.1.15
37
37
  Provides-Extra: apple
38
- Requires-Dist: abstractgateway[apple]==0.5.1; extra == "apple"
39
- Requires-Dist: abstractassistant[apple]==0.7.0; platform_system == "Darwin" and extra == "apple"
38
+ Requires-Dist: abstractgateway[apple]==0.6.0; extra == "apple"
39
+ Requires-Dist: abstractassistant[apple]==0.8.0; platform_system == "Darwin" and extra == "apple"
40
40
  Provides-Extra: gpu
41
- Requires-Dist: abstractgateway[gpu]==0.5.1; extra == "gpu"
42
- Requires-Dist: abstractassistant[gpu]==0.7.0; extra == "gpu"
41
+ Requires-Dist: abstractgateway[gpu]==0.6.0; extra == "gpu"
42
+ Requires-Dist: abstractassistant[gpu]==0.8.0; extra == "gpu"
43
43
  Dynamic: license-file
44
44
 
45
45
  # AbstractFramework
@@ -66,7 +66,9 @@ Think of it as an **agentic OS**: durable runs + replay-first observability + mu
66
66
  The installer sets up the gateway in your user account (no admin password, no system Python),
67
67
  asks whether to start it at login, starts it on `127.0.0.1:8080`, and opens its web console in
68
68
  your browser already signed in. A first-run guide then sets up a local engine (Ollama, LM Studio,
69
- MLX, llama.cpp), downloads a model that fits your machine, and lists the apps.
69
+ MLX, llama.cpp), downloads a model that fits your machine, and lists the apps. The installer also
70
+ builds the terminal console, `abstractgateway-console`, which runs the same guide on a server without
71
+ a browser ([Headless or remote machine](docs/install.md#headless-or-remote-machine)).
70
72
 
71
73
  - **Mac, no Terminal:** download and double-click
72
74
  [AbstractFramework-Installer.pkg](https://github.com/lpalbou/AbstractFramework/releases/latest/download/AbstractFramework-Installer.pkg).
@@ -145,7 +147,7 @@ Start here if you're building persistent AI applications — agents that run for
145
147
 
146
148
  - Durable execution that survives crashes and restarts
147
149
  - Append-only ledger (replay-first) for auditability
148
- - Scheduled workflows (cron-style, recurring)
150
+ - Automations: a workflow that runs on a fixed interval or on demand, kept as a readable conversation ([Automations](docs/automations.md))
149
151
  - Multi-client: terminal, browser, tray, Telegram, email
150
152
  - Start on one device, continue on another
151
153
 
@@ -185,12 +187,12 @@ Monitor runs from a browser, or from a terminal with the gateway console:
185
187
  ```bash
186
188
  npx @abstractframework/observer # open http://localhost:3001
187
189
 
188
- cargo install abstractgateway-console # Rust 1.87+
189
- ABSTRACTGATEWAY_AUTH_TOKEN=<token> abstractgateway-console --url http://127.0.0.1:8080
190
+ cargo install abstractgateway-console # Rust 1.87+; the installer builds it for you
191
+ abstractgateway-console --url http://127.0.0.1:8080 --token <admin token> # <data dir>/auth/bootstrap-admin-token
190
192
  ```
191
193
 
192
194
  Container images are published for the gateway and the AbstractCore server:
193
- `ghcr.io/lpalbou/abstractgateway:0.5.1` and `ghcr.io/lpalbou/abstractcore-server:2.16.1`.
195
+ `ghcr.io/lpalbou/abstractgateway:0.6.0` and `ghcr.io/lpalbou/abstractcore-server:2.17.0`.
194
196
 
195
197
  For artifact and runtime-resource investigation, see
196
198
  [Runtime artifacts and retrieval](docs/guide/runtime-artifacts.md).
@@ -241,7 +243,7 @@ AbstractFlow lets you author complex agentic orchestration as portable `.flow` b
241
243
 
242
244
  - **Observe**: replay the full ledger of any run, or watch one live over SSE
243
245
  - **Control**: cancel, resume, or inspect runs from the browser
244
- - **Schedule**: durable schedules (cron-style) owned by the gateway — they survive restarts
246
+ - **Automate**: create and manage automations (Launch → Automate, the Automations page); they run on the gateway and survive restarts. See [Automations](docs/automations.md)
245
247
 
246
248
  ---
247
249
 
@@ -291,7 +293,7 @@ The ecosystem, grouped by layer. Each name links to the package's repository.
291
293
  | [AbstractObserver](https://github.com/lpalbou/AbstractObserver) | Browser UI — monitor, control, and schedule gateway runs | `npx @abstractframework/observer` |
292
294
  | [AbstractEntity](https://github.com/lpalbou/AbstractEntity) | Summoned-entity manager — roster, blueprint (cognition map + editing), chat drawer, live replay | `npx @abstractframework/entity` |
293
295
  | [AbstractContinuum](https://github.com/lpalbou/AbstractContinuum) | Continuous iterative development and deployment console | `npx @abstractframework/continuum` |
294
- | **Gateway consoles** | Operator consoles for a running gateway: web at `/console` (first-run guide, Models, Engines, providers, users), terminal via `abstractgateway-console` | built into `abstractgateway`; `cargo install abstractgateway-console` |
296
+ | **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 twelve screens, for headless hosts) | built into `abstractgateway`; built by the installer, or `cargo install abstractgateway-console` |
295
297
  | **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` |
296
298
  | **Code Web UI** | Browser client of AbstractCode (gateway-backed): workflow selector, Files tab, live replies | `npx @abstractframework/code` |
297
299
  | **Flow Editor** | Visual workflow authoring in the browser | `npx @abstractframework/flow` |
@@ -336,7 +338,7 @@ pip install "abstractframework[gpu]"
336
338
  | Apple | `pip install "abstractframework[apple]"` | macOS 14+ on Apple Silicon | 3.10–3.13 (F5-TTS voice cloning needs 3.11+) |
337
339
  | GPU | `pip install "abstractframework[gpu]"` | Linux / Windows with a CUDA or ROCm GPU | 3.10–3.13 (F5-TTS voice cloning needs 3.11+) |
338
340
 
339
- ### Release matrix (abstractframework 0.4.2)
341
+ ### Release matrix (abstractframework 0.5.0)
340
342
 
341
343
  `abstractframework` pins every Python package with `==`, so one version of the
342
344
  meta-package always installs the same stack. The browser apps and Rust tools are
@@ -345,28 +347,28 @@ and tested together.
345
347
 
346
348
  | Registry | Package | Version |
347
349
  |---|---|---|
348
- | PyPI | `abstractgateway` | 0.5.1 |
349
- | PyPI | `abstractassistant` | 0.7.0 |
350
- | PyPI | `abstractcore` | 2.16.1 |
351
- | PyPI | `AbstractRuntime` | 0.5.1 |
350
+ | PyPI | `abstractgateway` | 0.6.0 |
351
+ | PyPI | `abstractassistant` | 0.8.0 |
352
+ | PyPI | `abstractcore` | 2.17.0 |
353
+ | PyPI | `AbstractRuntime` | 0.6.0 |
352
354
  | PyPI | `abstractagent` | 0.3.16 |
353
355
  | PyPI | `abstractskill` | 0.3.0 |
354
356
  | PyPI | `AbstractMemory` | 0.3.0 |
355
357
  | PyPI | `abstractsemantics` | 0.0.5 |
356
- | PyPI | `abstractvoice` | 0.11.4 |
357
- | PyPI | `abstractvision` | 0.3.29 |
358
+ | PyPI | `abstractvoice` | 0.12.0 |
359
+ | PyPI | `abstractvision` | 0.3.30 |
358
360
  | PyPI | `abstractmusic` | 0.1.15 |
359
- | npm | `@abstractframework/flow` | 0.3.21 |
361
+ | npm | `@abstractframework/flow` | 0.3.22 |
360
362
  | npm | `@abstractframework/code` | 0.5.0 |
361
- | npm | `@abstractframework/observer` | 0.1.13 |
363
+ | npm | `@abstractframework/observer` | 0.1.14 |
362
364
  | npm | `@abstractframework/continuum` | 0.3.2 |
363
365
  | npm | `@abstractframework/entity` | 0.2.2 |
364
366
  | crates.io | `abstractcode` | 0.6.0 |
365
- | crates.io | `abstractgateway-console` | 0.9.0 |
366
- | crates.io | `abstractcore-console` | 0.2.0 |
367
+ | crates.io | `abstractgateway-console` | 0.10.0 |
368
+ | crates.io | `abstractcore-console` | 0.3.0 |
367
369
  | crates.io | `abstracttui` | 0.6.0 |
368
- | GHCR | `ghcr.io/lpalbou/abstractgateway` | 0.5.1 (`gpu-latest` / `<version>-gpu` experimental) |
369
- | GHCR | `ghcr.io/lpalbou/abstractcore-server` | 2.16.1 |
370
+ | GHCR | `ghcr.io/lpalbou/abstractgateway` | 0.6.0 (`gpu-latest` / `<version>-gpu` experimental) |
371
+ | GHCR | `ghcr.io/lpalbou/abstractcore-server` | 2.17.0 |
370
372
 
371
373
  Optional add-ons that are not part of any profile install separately:
372
374
  `pip install abstract3d` (0.3.1) and `pip install abstractcamera` (0.2.0). `abstractskill` (pinned above)
@@ -386,6 +388,7 @@ See [docs/install.md](docs/install.md) for the full install chooser, `uv`/venv g
386
388
  | [docs/install.md](docs/install.md) | Light / Apple / GPU install chooser and first checks |
387
389
  | [docs/getting-started.md](docs/getting-started.md) | Two entry points + first end-to-end run |
388
390
  | [docs/agent-sessions.md](docs/agent-sessions.md) | Default agent workflow, the conversation workspace and its protection, skills, live replies, the Assistant hand-over |
391
+ | [docs/automations.md](docs/automations.md) | Automations: how they work (controller run, occurrences, independent vs growing context), creating and managing them from the Assistant, the Observer or a workflow, notifications, limits |
389
392
  | [docs/architecture.md](docs/architecture.md) | Component diagram, how a turn flows, the live-reply lane, app proxies, model eject, framework identity, durable execution primitives |
390
393
  | [docs/configuration.md](docs/configuration.md) | Minimal config, where defaults live, Core vs Gateway |
391
394
  | [docs/glossary.md](docs/glossary.md) | Shared terminology (run, ledger, effect, wait, bundle, …) |
@@ -20,6 +20,7 @@ docs/README.md
20
20
  docs/agent-sessions.md
21
21
  docs/api.md
22
22
  docs/architecture.md
23
+ docs/automations.md
23
24
  docs/configuration.md
24
25
  docs/faq.md
25
26
  docs/getting-started.md
@@ -0,0 +1,21 @@
1
+ abstractgateway==0.6.0
2
+ abstractassistant==0.8.0
3
+ abstractcore==2.17.0
4
+ AbstractRuntime==0.6.0
5
+ abstractagent==0.3.16
6
+ abstractskill==0.3.0
7
+ AbstractMemory==0.3.0
8
+ abstractsemantics==0.0.5
9
+ abstractvoice==0.12.0
10
+ abstractvision==0.3.30
11
+ abstractmusic==0.1.15
12
+
13
+ [apple]
14
+ abstractgateway[apple]==0.6.0
15
+
16
+ [apple:platform_system == "Darwin"]
17
+ abstractassistant[apple]==0.8.0
18
+
19
+ [gpu]
20
+ abstractgateway[gpu]==0.6.0
21
+ abstractassistant[gpu]==0.8.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
- - Scheduled workflows (cron-style, recurring)
40
+ - Automations: workflows that run on a fixed interval 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,6 +76,7 @@ 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`), 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
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 |
80
81
  | **[Configuration](configuration.md)** | Minimal config, where defaults live, Core vs Gateway |
81
82
  | **[Workspace scripts](workspace-scripts.md)** | Working from source: package inventory and tiers, `build.sh`, `status.sh`, `pull.sh`, `commit.sh`, `push.sh`, launchers |
@@ -153,7 +154,7 @@ keeps the docs hub cross-linked to the package owners' entrypoints.
153
154
  |---|---|
154
155
  | **AbstractCode** | Terminal agentic dev client (local, durable sessions) |
155
156
  | **AbstractAssistant** | macOS tray client (gateway-first, gateway default or picked workflow, live replies, voice); **Open** in the gateway console starts it signed in |
156
- | **AbstractObserver** | Browser UI to monitor, control, and schedule gateway runs |
157
+ | **AbstractObserver** | Browser UI to monitor and control gateway runs and to create and manage [automations](automations.md) |
157
158
  | **Code Web UI** | Browser coding assistant (gateway-backed): workflow selector, Files tab, live replies |
158
159
 
159
160
  ---