abstractframework 0.3.2__tar.gz → 0.4.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.3.2 → abstractframework-0.4.0}/CHANGELOG.md +63 -0
  2. {abstractframework-0.3.2 → abstractframework-0.4.0}/PKG-INFO +72 -43
  3. abstractframework-0.3.2/abstractframework.egg-info/PKG-INFO → abstractframework-0.4.0/README.md +61 -76
  4. {abstractframework-0.3.2 → abstractframework-0.4.0}/abstractframework/__init__.py +15 -13
  5. abstractframework-0.3.2/README.md → abstractframework-0.4.0/abstractframework.egg-info/PKG-INFO +105 -33
  6. {abstractframework-0.3.2 → abstractframework-0.4.0}/abstractframework.egg-info/SOURCES.txt +2 -0
  7. abstractframework-0.4.0/abstractframework.egg-info/requires.txt +21 -0
  8. {abstractframework-0.3.2 → abstractframework-0.4.0}/docs/README.md +6 -5
  9. abstractframework-0.4.0/docs/agent-sessions.md +191 -0
  10. {abstractframework-0.3.2 → abstractframework-0.4.0}/docs/api.md +9 -9
  11. {abstractframework-0.3.2 → abstractframework-0.4.0}/docs/architecture.md +181 -22
  12. {abstractframework-0.3.2 → abstractframework-0.4.0}/docs/configuration.md +45 -21
  13. {abstractframework-0.3.2 → abstractframework-0.4.0}/docs/faq.md +49 -3
  14. {abstractframework-0.3.2 → abstractframework-0.4.0}/docs/getting-started.md +28 -20
  15. {abstractframework-0.3.2 → abstractframework-0.4.0}/docs/glossary.md +50 -2
  16. {abstractframework-0.3.2 → abstractframework-0.4.0}/docs/guide/README.md +1 -1
  17. abstractframework-0.4.0/docs/guide/agent-skills.md +62 -0
  18. {abstractframework-0.3.2 → abstractframework-0.4.0}/docs/guide/deployment-web.md +15 -10
  19. {abstractframework-0.3.2 → abstractframework-0.4.0}/docs/guide/gateway-security.md +45 -25
  20. {abstractframework-0.3.2 → abstractframework-0.4.0}/docs/install.md +18 -18
  21. {abstractframework-0.3.2 → abstractframework-0.4.0}/docs/installers/implementation-plan.md +1 -1
  22. {abstractframework-0.3.2 → abstractframework-0.4.0}/docs/scenarios/offline-coding-assistant.md +7 -1
  23. {abstractframework-0.3.2 → abstractframework-0.4.0}/docs/troubleshooting.md +66 -0
  24. {abstractframework-0.3.2 → abstractframework-0.4.0}/llms-full.txt +877 -305
  25. {abstractframework-0.3.2 → abstractframework-0.4.0}/llms.txt +30 -22
  26. {abstractframework-0.3.2 → abstractframework-0.4.0}/pyproject.toml +11 -10
  27. {abstractframework-0.3.2 → abstractframework-0.4.0}/scripts/build.sh +44 -5
  28. abstractframework-0.4.0/scripts/check_identity_sync.py +72 -0
  29. {abstractframework-0.3.2 → abstractframework-0.4.0}/scripts/install.sh +4 -4
  30. {abstractframework-0.3.2 → abstractframework-0.4.0}/scripts/lib/repo_groups.sh +17 -0
  31. abstractframework-0.3.2/abstractframework.egg-info/requires.txt +0 -20
  32. abstractframework-0.3.2/docs/guide/agent-skills.md +0 -105
  33. {abstractframework-0.3.2 → abstractframework-0.4.0}/LICENSE +0 -0
  34. {abstractframework-0.3.2 → abstractframework-0.4.0}/MANIFEST.in +0 -0
  35. {abstractframework-0.3.2 → abstractframework-0.4.0}/abstractframework/__main__.py +0 -0
  36. {abstractframework-0.3.2 → abstractframework-0.4.0}/abstractframework/cli.py +0 -0
  37. {abstractframework-0.3.2 → abstractframework-0.4.0}/abstractframework/install_manifest.py +0 -0
  38. {abstractframework-0.3.2 → abstractframework-0.4.0}/abstractframework/py.typed +0 -0
  39. {abstractframework-0.3.2 → abstractframework-0.4.0}/abstractframework.egg-info/dependency_links.txt +0 -0
  40. {abstractframework-0.3.2 → abstractframework-0.4.0}/abstractframework.egg-info/entry_points.txt +0 -0
  41. {abstractframework-0.3.2 → abstractframework-0.4.0}/abstractframework.egg-info/top_level.txt +0 -0
  42. {abstractframework-0.3.2 → abstractframework-0.4.0}/docs/adr/0001-layered-architecture.md +0 -0
  43. {abstractframework-0.3.2 → abstractframework-0.4.0}/docs/adr/0002-effect-system-design.md +0 -0
  44. {abstractframework-0.3.2 → abstractframework-0.4.0}/docs/adr/0003-tool-system-architecture.md +0 -0
  45. {abstractframework-0.3.2 → abstractframework-0.4.0}/docs/adr/0004-observability-strategy.md +0 -0
  46. {abstractframework-0.3.2 → abstractframework-0.4.0}/docs/adr/0005-memory-architecture.md +0 -0
  47. {abstractframework-0.3.2 → abstractframework-0.4.0}/docs/adr/0006-durable-tool-execution.md +0 -0
  48. {abstractframework-0.3.2 → abstractframework-0.4.0}/docs/adr/0007-active-context-and-memory-provenance.md +0 -0
  49. {abstractframework-0.3.2 → abstractframework-0.4.0}/docs/adr/0008-token-terminology.md +0 -0
  50. {abstractframework-0.3.2 → abstractframework-0.4.0}/docs/adr/0009-connected-memory-recall-and-provenance.md +0 -0
  51. {abstractframework-0.3.2 → abstractframework-0.4.0}/docs/adr/0010-runtime-owned-node-traces.md +0 -0
  52. {abstractframework-0.3.2 → abstractframework-0.4.0}/docs/adr/0011-ledger-subscriptions-and-event-bridge.md +0 -0
  53. {abstractframework-0.3.2 → abstractframework-0.4.0}/docs/adr/0012-portable-workflowartifact.md +0 -0
  54. {abstractframework-0.3.2 → abstractframework-0.4.0}/docs/adr/0013-durable-run-controls-pause-resume-cancel.md +0 -0
  55. {abstractframework-0.3.2 → abstractframework-0.4.0}/docs/adr/0014-runtime-authority-timeouts.md +0 -0
  56. {abstractframework-0.3.2 → abstractframework-0.4.0}/docs/adr/0015-execution-targets-and-remote-tool-workers.md +0 -0
  57. {abstractframework-0.3.2 → abstractframework-0.4.0}/docs/adr/0016-tool-calling-pipeline-and-responsibility-boundaries.md +0 -0
  58. {abstractframework-0.3.2 → abstractframework-0.4.0}/docs/adr/0017-host-ui-events-and-durable-prompts.md +0 -0
  59. {abstractframework-0.3.2 → abstractframework-0.4.0}/docs/adr/0018-durable-run-gateway-and-remote-host-control-plane.md +0 -0
  60. {abstractframework-0.3.2 → abstractframework-0.4.0}/docs/adr/0019-testing-strategy-and-levels.md +0 -0
  61. {abstractframework-0.3.2 → abstractframework-0.4.0}/docs/adr/0020-agent-host-pool-and-orchestrator-placement.md +0 -0
  62. {abstractframework-0.3.2 → abstractframework-0.4.0}/docs/adr/0021-deployment-topologies-and-supported-scenarios.md +0 -0
  63. {abstractframework-0.3.2 → abstractframework-0.4.0}/docs/adr/0022-orchestrator-host-and-runtime-daemonization.md +0 -0
  64. {abstractframework-0.3.2 → abstractframework-0.4.0}/docs/adr/0023-file-attachment-path-resolution-and-authorization.md +0 -0
  65. {abstractframework-0.3.2 → abstractframework-0.4.0}/docs/adr/0024-attachment-placeholders-and-compaction-invariants.md +0 -0
  66. {abstractframework-0.3.2 → abstractframework-0.4.0}/docs/adr/0025-kg-entity-normalization-and-dedup.md +0 -0
  67. {abstractframework-0.3.2 → abstractframework-0.4.0}/docs/adr/0026-truncation-policy-and-contract.md +0 -0
  68. {abstractframework-0.3.2 → abstractframework-0.4.0}/docs/adr/0027-timeout-policy-and-contract.md +0 -0
  69. {abstractframework-0.3.2 → abstractframework-0.4.0}/docs/adr/0028-capabilities-plugins-and-library-framework-modes.md +0 -0
  70. {abstractframework-0.3.2 → abstractframework-0.4.0}/docs/adr/0029-permissive-dependency-and-licensing-policy.md +0 -0
  71. {abstractframework-0.3.2 → abstractframework-0.4.0}/docs/adr/0030-security-test-fixtures-and-isolation.md +0 -0
  72. {abstractframework-0.3.2 → abstractframework-0.4.0}/docs/adr/0031-workflow-llm-routing-overrides-provider-model-and-base-url.md +0 -0
  73. {abstractframework-0.3.2 → abstractframework-0.4.0}/docs/adr/0032-package-dependency-boundaries-and-gateway-first-apps.md +0 -0
  74. {abstractframework-0.3.2 → abstractframework-0.4.0}/docs/adr/0033-install-profiles-config-entrypoints-and-server-boundaries.md +0 -0
  75. {abstractframework-0.3.2 → abstractframework-0.4.0}/docs/adr/0034-framework-release-sequence-and-gates.md +0 -0
  76. {abstractframework-0.3.2 → abstractframework-0.4.0}/docs/adr/0035-capability-routing-defaults.md +0 -0
  77. {abstractframework-0.3.2 → abstractframework-0.4.0}/docs/adr/0036-artifact-descriptor-contract.md +0 -0
  78. {abstractframework-0.3.2 → abstractframework-0.4.0}/docs/adr/0037-hosted-file-source-contract-and-workspacepath-authority.md +0 -0
  79. {abstractframework-0.3.2 → abstractframework-0.4.0}/docs/adr/0038-script-bootstrap-and-gateway-console-install.md +0 -0
  80. {abstractframework-0.3.2 → abstractframework-0.4.0}/docs/adr/README.md +0 -0
  81. {abstractframework-0.3.2 → abstractframework-0.4.0}/docs/adr/memory-recall-levels.md +0 -0
  82. {abstractframework-0.3.2 → abstractframework-0.4.0}/docs/adr/reorg/001_music_as_capability_plugin_via_acestep_api.md +0 -0
  83. {abstractframework-0.3.2 → abstractframework-0.4.0}/docs/adr/reorg/002_abstractmusic_inprocess_local_generation.md +0 -0
  84. {abstractframework-0.3.2 → abstractframework-0.4.0}/docs/adr/reorg/003_abstractmusic_acestep_v15_backend_source_strategy.md +0 -0
  85. {abstractframework-0.3.2 → abstractframework-0.4.0}/docs/adr/reorg/004_smartnote_thin_client_architecture.md +0 -0
  86. {abstractframework-0.3.2 → abstractframework-0.4.0}/docs/adr/reorg/005_smartnote_artifact_first_cards.md +0 -0
  87. {abstractframework-0.3.2 → abstractframework-0.4.0}/docs/adr/reorg/2026-02-21_gateway-first-assistant.md +0 -0
  88. {abstractframework-0.3.2 → abstractframework-0.4.0}/docs/adr/reorg/2026-02-21_installer_manager_strategy.md +0 -0
  89. {abstractframework-0.3.2 → abstractframework-0.4.0}/docs/adr/reorg/2026-02-21_macos_installer_manager.md +0 -0
  90. {abstractframework-0.3.2 → abstractframework-0.4.0}/docs/claude/README.md +0 -0
  91. {abstractframework-0.3.2 → abstractframework-0.4.0}/docs/claude/abstractframework-fit.md +0 -0
  92. {abstractframework-0.3.2 → abstractframework-0.4.0}/docs/claude/claude-skills-overview.md +0 -0
  93. {abstractframework-0.3.2 → abstractframework-0.4.0}/docs/claude/claude-skills-sources.md +0 -0
  94. {abstractframework-0.3.2 → abstractframework-0.4.0}/docs/claude/claude-skills-top-20.md +0 -0
  95. {abstractframework-0.3.2 → abstractframework-0.4.0}/docs/comparisons/README.md +0 -0
  96. {abstractframework-0.3.2 → abstractframework-0.4.0}/docs/guide/LANDING.md +0 -0
  97. {abstractframework-0.3.2 → abstractframework-0.4.0}/docs/guide/agent-vs-llm.md +0 -0
  98. {abstractframework-0.3.2 → abstractframework-0.4.0}/docs/guide/agora-workflow-agent.md +0 -0
  99. {abstractframework-0.3.2 → abstractframework-0.4.0}/docs/guide/apple-local-gateway-flow.md +0 -0
  100. {abstractframework-0.3.2 → abstractframework-0.4.0}/docs/guide/capability-plugins.md +0 -0
  101. {abstractframework-0.3.2 → abstractframework-0.4.0}/docs/guide/capability-routing-defaults.md +0 -0
  102. {abstractframework-0.3.2 → abstractframework-0.4.0}/docs/guide/deployment-iphone.md +0 -0
  103. {abstractframework-0.3.2 → abstractframework-0.4.0}/docs/guide/deployment-topologies.md +0 -0
  104. {abstractframework-0.3.2 → abstractframework-0.4.0}/docs/guide/email-integration.md +0 -0
  105. {abstractframework-0.3.2 → abstractframework-0.4.0}/docs/guide/event-inbox-agent.md +0 -0
  106. {abstractframework-0.3.2 → abstractframework-0.4.0}/docs/guide/flow-and-kg-memory.md +0 -0
  107. {abstractframework-0.3.2 → abstractframework-0.4.0}/docs/guide/headless-swarm.md +0 -0
  108. {abstractframework-0.3.2 → abstractframework-0.4.0}/docs/guide/process-manager-env-vars.md +0 -0
  109. {abstractframework-0.3.2 → abstractframework-0.4.0}/docs/guide/prompt-caching.md +0 -0
  110. {abstractframework-0.3.2 → abstractframework-0.4.0}/docs/guide/runtime-artifacts.md +0 -0
  111. {abstractframework-0.3.2 → abstractframework-0.4.0}/docs/guide/runtime-scope.md +0 -0
  112. {abstractframework-0.3.2 → abstractframework-0.4.0}/docs/guide/scheduled-workflows.md +0 -0
  113. {abstractframework-0.3.2 → abstractframework-0.4.0}/docs/guide/summoned-entities.md +0 -0
  114. {abstractframework-0.3.2 → abstractframework-0.4.0}/docs/guide/telegram-integration.md +0 -0
  115. {abstractframework-0.3.2 → abstractframework-0.4.0}/docs/guide/workflow-bundles.md +0 -0
  116. {abstractframework-0.3.2 → abstractframework-0.4.0}/docs/installers/README.md +0 -0
  117. {abstractframework-0.3.2 → abstractframework-0.4.0}/docs/installers/components.md +0 -0
  118. {abstractframework-0.3.2 → abstractframework-0.4.0}/docs/installers/operations-and-support.md +0 -0
  119. {abstractframework-0.3.2 → abstractframework-0.4.0}/docs/installers/release-and-manifest.md +0 -0
  120. {abstractframework-0.3.2 → abstractframework-0.4.0}/docs/installers/security-and-os-blocks.md +0 -0
  121. {abstractframework-0.3.2 → abstractframework-0.4.0}/docs/installers/strategy.md +0 -0
  122. {abstractframework-0.3.2 → abstractframework-0.4.0}/docs/installers/user-journeys.md +0 -0
  123. {abstractframework-0.3.2 → abstractframework-0.4.0}/docs/prompts/agora-collaboration.md +0 -0
  124. {abstractframework-0.3.2 → abstractframework-0.4.0}/docs/scenarios/README.md +0 -0
  125. {abstractframework-0.3.2 → abstractframework-0.4.0}/docs/scenarios/email-inbox-agent.md +0 -0
  126. {abstractframework-0.3.2 → abstractframework-0.4.0}/docs/scenarios/gateway-first-local-dev.md +0 -0
  127. {abstractframework-0.3.2 → abstractframework-0.4.0}/docs/scenarios/phone-thin-client.md +0 -0
  128. {abstractframework-0.3.2 → abstractframework-0.4.0}/docs/scenarios/specialized-agent-flow.md +0 -0
  129. {abstractframework-0.3.2 → abstractframework-0.4.0}/docs/scenarios/telegram-permanent-contact.md +0 -0
  130. {abstractframework-0.3.2 → abstractframework-0.4.0}/docs/scenarios/workflow-bundle-lifecycle.md +0 -0
  131. {abstractframework-0.3.2 → abstractframework-0.4.0}/docs/skills/README.md +0 -0
  132. {abstractframework-0.3.2 → abstractframework-0.4.0}/docs/skills/abstractframework-agent-skills-fit.md +0 -0
  133. {abstractframework-0.3.2 → abstractframework-0.4.0}/docs/skills/abstractframework-architecture-deep-dive.md +0 -0
  134. {abstractframework-0.3.2 → abstractframework-0.4.0}/docs/skills/agent-skills-ecosystem-scan.md +0 -0
  135. {abstractframework-0.3.2 → abstractframework-0.4.0}/docs/skills/agent-skills-ecosystem-sources.md +0 -0
  136. {abstractframework-0.3.2 → abstractframework-0.4.0}/docs/skills/claude-agent-skills-overview.md +0 -0
  137. {abstractframework-0.3.2 → abstractframework-0.4.0}/docs/skills/claude-agent-skills-sources.md +0 -0
  138. {abstractframework-0.3.2 → abstractframework-0.4.0}/docs/skills/claude-agent-skills-top-20.md +0 -0
  139. {abstractframework-0.3.2 → abstractframework-0.4.0}/docs/workspace-scripts.md +0 -0
  140. {abstractframework-0.3.2 → abstractframework-0.4.0}/scripts/af-local.sh +0 -0
  141. {abstractframework-0.3.2 → abstractframework-0.4.0}/scripts/af.sh +0 -0
  142. {abstractframework-0.3.2 → abstractframework-0.4.0}/scripts/agora_react_flow_smoke.py +0 -0
  143. {abstractframework-0.3.2 → abstractframework-0.4.0}/scripts/assistant-local.sh +0 -0
  144. {abstractframework-0.3.2 → abstractframework-0.4.0}/scripts/assistant.sh +0 -0
  145. {abstractframework-0.3.2 → abstractframework-0.4.0}/scripts/cache_probe_local_backends.py +0 -0
  146. {abstractframework-0.3.2 → abstractframework-0.4.0}/scripts/cache_steer_repl.py +0 -0
  147. {abstractframework-0.3.2 → abstractframework-0.4.0}/scripts/clone.sh +0 -0
  148. {abstractframework-0.3.2 → abstractframework-0.4.0}/scripts/code-local.sh +0 -0
  149. {abstractframework-0.3.2 → abstractframework-0.4.0}/scripts/code.sh +0 -0
  150. {abstractframework-0.3.2 → abstractframework-0.4.0}/scripts/commit.sh +0 -0
  151. {abstractframework-0.3.2 → abstractframework-0.4.0}/scripts/console-local.sh +0 -0
  152. {abstractframework-0.3.2 → abstractframework-0.4.0}/scripts/console.sh +0 -0
  153. {abstractframework-0.3.2 → abstractframework-0.4.0}/scripts/core_operator_drive.py +0 -0
  154. {abstractframework-0.3.2 → abstractframework-0.4.0}/scripts/deps.sh +0 -0
  155. {abstractframework-0.3.2 → abstractframework-0.4.0}/scripts/entity-local.sh +0 -0
  156. {abstractframework-0.3.2 → abstractframework-0.4.0}/scripts/entity.sh +0 -0
  157. {abstractframework-0.3.2 → abstractframework-0.4.0}/scripts/event_inbox_flow_smoke.py +0 -0
  158. {abstractframework-0.3.2 → abstractframework-0.4.0}/scripts/flow-local.sh +0 -0
  159. {abstractframework-0.3.2 → abstractframework-0.4.0}/scripts/flow.sh +0 -0
  160. {abstractframework-0.3.2 → abstractframework-0.4.0}/scripts/gateway-flow-local.sh +0 -0
  161. {abstractframework-0.3.2 → abstractframework-0.4.0}/scripts/gateway-flow.sh +0 -0
  162. {abstractframework-0.3.2 → abstractframework-0.4.0}/scripts/gateway-local.sh +0 -0
  163. {abstractframework-0.3.2 → abstractframework-0.4.0}/scripts/gateway.sh +0 -0
  164. {abstractframework-0.3.2 → abstractframework-0.4.0}/scripts/gen_llms_full.py +0 -0
  165. {abstractframework-0.3.2 → abstractframework-0.4.0}/scripts/headless_fleet_bridge.py +0 -0
  166. {abstractframework-0.3.2 → abstractframework-0.4.0}/scripts/headless_fleet_demo.py +0 -0
  167. {abstractframework-0.3.2 → abstractframework-0.4.0}/scripts/headless_steer_repl.py +0 -0
  168. {abstractframework-0.3.2 → abstractframework-0.4.0}/scripts/lib/af_inventory.py +0 -0
  169. {abstractframework-0.3.2 → abstractframework-0.4.0}/scripts/lib/af_stack.sh +0 -0
  170. {abstractframework-0.3.2 → abstractframework-0.4.0}/scripts/lib/af_supervisor.sh +0 -0
  171. {abstractframework-0.3.2 → abstractframework-0.4.0}/scripts/lib/apps_common.sh +0 -0
  172. {abstractframework-0.3.2 → abstractframework-0.4.0}/scripts/lib/build_macos_installer.sh +0 -0
  173. {abstractframework-0.3.2 → abstractframework-0.4.0}/scripts/lib/gateway_user_tokens.py +0 -0
  174. {abstractframework-0.3.2 → abstractframework-0.4.0}/scripts/meet_castor.sh +0 -0
  175. {abstractframework-0.3.2 → abstractframework-0.4.0}/scripts/observer-local.sh +0 -0
  176. {abstractframework-0.3.2 → abstractframework-0.4.0}/scripts/observer.sh +0 -0
  177. {abstractframework-0.3.2 → abstractframework-0.4.0}/scripts/plan_walkthrough.py +0 -0
  178. {abstractframework-0.3.2 → abstractframework-0.4.0}/scripts/pull.sh +0 -0
  179. {abstractframework-0.3.2 → abstractframework-0.4.0}/scripts/push.sh +0 -0
  180. {abstractframework-0.3.2 → abstractframework-0.4.0}/scripts/spawn_demo_agent.sh +0 -0
  181. {abstractframework-0.3.2 → abstractframework-0.4.0}/scripts/start-local.sh +0 -0
  182. {abstractframework-0.3.2 → abstractframework-0.4.0}/scripts/start.sh +0 -0
  183. {abstractframework-0.3.2 → abstractframework-0.4.0}/scripts/status.sh +0 -0
  184. {abstractframework-0.3.2 → abstractframework-0.4.0}/scripts/steer_repl.py +0 -0
  185. {abstractframework-0.3.2 → abstractframework-0.4.0}/scripts/tests/test_af_supervisor.sh +0 -0
  186. {abstractframework-0.3.2 → abstractframework-0.4.0}/scripts/tests/test_install_user_path.sh +0 -0
  187. {abstractframework-0.3.2 → abstractframework-0.4.0}/scripts/tests/test_inventory.sh +0 -0
  188. {abstractframework-0.3.2 → abstractframework-0.4.0}/scripts/tests/test_repo_scripts.sh +0 -0
  189. {abstractframework-0.3.2 → abstractframework-0.4.0}/scripts/uninstall.sh +0 -0
  190. {abstractframework-0.3.2 → abstractframework-0.4.0}/scripts/visit_resume_cache_probe.py +0 -0
  191. {abstractframework-0.3.2 → abstractframework-0.4.0}/setup.cfg +0 -0
  192. {abstractframework-0.3.2 → abstractframework-0.4.0}/tests/test_install_profiles.py +0 -0
  193. {abstractframework-0.3.2 → abstractframework-0.4.0}/tests/test_llms_full.py +0 -0
@@ -4,6 +4,69 @@ All notable changes to AbstractFramework will be documented in this file.
4
4
 
5
5
  ## [Unreleased]
6
6
 
7
+ ## [0.4.0] - 2026-09-26
8
+
9
+ A feature release of the whole framework. The gateway picks the agent workflow for AbstractCode
10
+ and the Assistant, AbstractCode can browse the conversation's workspace, the gateway serves a
11
+ curated skill shelf, replies stream live into every client, the console opens the Assistant
12
+ already signed in, and every app has an About dialog. Ejecting a model frees its memory from the
13
+ whole gateway process. This release replaces the 0.3.3 matrix, which was prepared but never
14
+ published.
15
+
16
+ ### Changed (pins)
17
+ - The dev build (`scripts/build.sh`) installs the sibling kit packages an app takes from npm (app-server, ui-kit, panel-chat, monitors) from local packs of the checkouts, so an app builds locally even when its kit floor is ahead of the registry. The manifests and lockfiles are left untouched.
18
+
19
+ - **abstractgateway 0.5.0** (was 0.4.3 on PyPI): the default agent workflow setting
20
+ (`agents.default_workflow`, used by AbstractCode and the Assistant, changeable in the console or
21
+ with `abstractgateway config set`), the conversation workspace routes (browse and preview files,
22
+ with a built-in deny list for credential folders and the gateway data folder), the skill shelf
23
+ seeded from `abstractskill`, opening the Assistant signed in from the console, live replies
24
+ (`agents.streaming_default`), `GET /about`, the same-machine rule behind the app proxies, and
25
+ About in the web console and the terminal console. Ejecting a model frees its memory from the
26
+ whole gateway process and the memory figures show what the process really holds; gateways
27
+ started with an earlier version must be restarted once to reclaim memory already held. The
28
+ trust-proxy switch saved in the console now wins over `ABSTRACTGATEWAY_TRUST_PROXY`, which only
29
+ applies while nothing is saved.
30
+ - **abstractcore 2.16.0** (was 2.15.2 in 0.3.2): framework identity for About screens
31
+ (`abstractcore.utils.identity`), process-wide model eject and memory reporting, embeddings
32
+ eject and reload, live-reply telemetry for MLX, and streamed and non-streamed replies that split
33
+ thinking from the answer the same way.
34
+ - **AbstractRuntime 0.5.0** (was 0.4.35): live replies (`_runtime.stream`), workspace
35
+ built-in deny list, deferred model ejects with diagnostics.
36
+ - **abstractagent 0.3.14** (was 0.3.13): delegated sub-agents inherit the live-reply switch.
37
+ - **abstractskill 0.3.0** (new pin): the curated skill shelf ships inside the package.
38
+ - **abstractassistant 0.6.0** (was 0.5.0): opens signed in when launched from the gateway
39
+ console, a workflow selector that follows the gateway default, live replies, About, and window
40
+ defaults.
41
+ - The pins apply to the base install and to the `apple` / `gpu` extras
42
+ (`abstractgateway[apple|gpu]==0.5.0`, `abstractassistant[apple|gpu]==0.6.0`); the bootstrap
43
+ scripts install `abstractgateway[<profile>,tray]==0.5.0`. Unchanged: AbstractMemory 0.3.0,
44
+ abstractsemantics 0.0.5, abstractvoice 0.11.4, abstractvision 0.3.29, abstractmusic 0.1.15.
45
+ - Browser apps released with it (`--with-apps`, `npx`): `@abstractframework/flow` 0.3.21,
46
+ `@abstractframework/code` 0.5.0, `@abstractframework/observer` 0.1.13,
47
+ `@abstractframework/continuum` 0.3.2 and `@abstractframework/entity` 0.2.2, built on
48
+ `@abstractframework/ui-kit` 0.1.12, `@abstractframework/app-server` 0.1.10 and
49
+ `@abstractframework/panel-chat` 0.1.17.
50
+ - Terminal tools released with it: `abstractcode` 0.6.0 and `abstractgateway-console` 0.9.0
51
+ (`--with-code-cli`, `--with-console`); `abstractcore-console` 0.2.0 and `abstracttui` 0.6.0 are
52
+ unchanged.
53
+ - Container images released with it: `ghcr.io/lpalbou/abstractgateway:0.5.0` (and `0.5.0-gpu`)
54
+ and `ghcr.io/lpalbou/abstractcore-server:2.16.0`.
55
+
56
+ ### Documentation
57
+
58
+ - New [Agent sessions](docs/agent-sessions.md) page: the gateway's default agent workflow and how
59
+ AbstractCode and the Assistant follow it, the conversation workspace (browse and preview from
60
+ AbstractCode, the built-in deny list for credential folders and the gateway data folder), the
61
+ curated skill shelf, live replies, and opening the Assistant signed in from the console.
62
+ - [Architecture](docs/architecture.md) adds diagrams of how a turn flows, the live-reply lane and
63
+ the framework identity flow, plus the app proxies' forwarded-address rule and model eject.
64
+ - [CONTRIBUTING](CONTRIBUTING.md) documents the framework identity rule
65
+ (`identity/abstractframework.json` and `scripts/check_identity_sync.py`).
66
+ - [Agent Skills](docs/guide/agent-skills.md) describes the shipped skills support; FAQ,
67
+ Troubleshooting, Configuration and Glossary cover the new settings; gateway examples use launch
68
+ flags (`serve --data-dir`, `network set --allowed-origins`).
69
+
7
70
  ## [0.3.2] - 2026-09-25
8
71
 
9
72
  A patch release: installing the Assistant and the engines works when the data folder path
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: abstractframework
3
- Version: 0.3.2
3
+ Version: 0.4.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,22 +23,23 @@ Classifier: Typing :: Typed
23
23
  Requires-Python: >=3.10
24
24
  Description-Content-Type: text/markdown
25
25
  License-File: LICENSE
26
- Requires-Dist: abstractgateway==0.4.3
27
- Requires-Dist: abstractassistant==0.5.0
28
- Requires-Dist: abstractcore==2.15.2
29
- Requires-Dist: AbstractRuntime==0.4.35
30
- Requires-Dist: abstractagent==0.3.13
26
+ Requires-Dist: abstractgateway==0.5.0
27
+ Requires-Dist: abstractassistant==0.6.0
28
+ Requires-Dist: abstractcore==2.16.0
29
+ Requires-Dist: AbstractRuntime==0.5.0
30
+ Requires-Dist: abstractagent==0.3.14
31
+ Requires-Dist: abstractskill==0.3.0
31
32
  Requires-Dist: AbstractMemory==0.3.0
32
33
  Requires-Dist: abstractsemantics==0.0.5
33
34
  Requires-Dist: abstractvoice==0.11.4
34
35
  Requires-Dist: abstractvision==0.3.29
35
36
  Requires-Dist: abstractmusic==0.1.15
36
37
  Provides-Extra: apple
37
- Requires-Dist: abstractgateway[apple]==0.4.3; extra == "apple"
38
- Requires-Dist: abstractassistant[apple]==0.5.0; platform_system == "Darwin" and extra == "apple"
38
+ Requires-Dist: abstractgateway[apple]==0.5.0; extra == "apple"
39
+ Requires-Dist: abstractassistant[apple]==0.6.0; platform_system == "Darwin" and extra == "apple"
39
40
  Provides-Extra: gpu
40
- Requires-Dist: abstractgateway[gpu]==0.4.3; extra == "gpu"
41
- Requires-Dist: abstractassistant[gpu]==0.5.0; extra == "gpu"
41
+ Requires-Dist: abstractgateway[gpu]==0.5.0; extra == "gpu"
42
+ Requires-Dist: abstractassistant[gpu]==0.6.0; extra == "gpu"
42
43
  Dynamic: license-file
43
44
 
44
45
  # AbstractFramework
@@ -159,19 +160,17 @@ creates `default/admin` in the per-user data folder, and prints a one-time sign-
159
160
  web console and its first-run guide. `abstractgateway claim` mints a new link;
160
161
  `abstractgateway service install` starts the gateway at login.
161
162
 
162
- To choose the data folder, the allowed browser origins or your own workflow bundles, set the
163
- environment explicitly:
163
+ Browser apps on `http://localhost:*` and `http://127.0.0.1:*` may always call it. To choose
164
+ another data folder or allow another browser origin:
164
165
 
165
166
  ```bash
166
- export ABSTRACTGATEWAY_USER_AUTH=1
167
- export ABSTRACTGATEWAY_ALLOWED_ORIGINS="http://localhost:*,http://127.0.0.1:*"
168
- export ABSTRACTGATEWAY_WORKFLOW_SOURCE=bundle
169
- export ABSTRACTGATEWAY_DATA_DIR="$PWD/runtime/gateway"
170
- # export ABSTRACTGATEWAY_FLOWS_DIR="$PWD/bundles" # serve your own bundle registry
171
-
172
- abstractgateway serve --host 127.0.0.1 --port 8080
167
+ abstractgateway serve --data-dir "$PWD/runtime/gateway"
168
+ abstractgateway network set --allowed-origins https://ui.example.com
173
169
  ```
174
170
 
171
+ To serve your own workflow bundles instead of the shipped ones, start the gateway with
172
+ `ABSTRACTGATEWAY_FLOWS_DIR` pointing at your bundle folder.
173
+
175
174
  Out of the box this serves a ready set of workflows — a verify-gated coding
176
175
  agent, `deep-research`, and `co-scientist` among them. See
177
176
  [shipped workflows](https://github.com/lpalbou/AbstractGateway/blob/main/docs/shipped-workflows.md).
@@ -191,11 +190,38 @@ ABSTRACTGATEWAY_AUTH_TOKEN=<token> abstractgateway-console --url http://127.0.0.
191
190
  ```
192
191
 
193
192
  Container images are published for the gateway and the AbstractCore server:
194
- `ghcr.io/lpalbou/abstractgateway:0.4.3` and `ghcr.io/lpalbou/abstractcore-server:2.15.2`.
193
+ `ghcr.io/lpalbou/abstractgateway:0.5.0` and `ghcr.io/lpalbou/abstractcore-server:2.16.0`.
195
194
 
196
195
  For artifact and runtime-resource investigation, see
197
196
  [Runtime artifacts and retrieval](docs/guide/runtime-artifacts.md).
198
197
 
198
+ ### Agent sessions on the gateway
199
+
200
+ Every client (AbstractCode in the terminal and the browser, AbstractAssistant, your own app)
201
+ chats with agents through the same gateway rules:
202
+
203
+ - **One default agent workflow.** The gateway decides which workflow answers each agent interface
204
+ (`agents.default_workflow.<interface>`; the shipped `basic-agent` for AbstractCode until you
205
+ choose another). Clients list **Gateway default** first and follow a change at the next turn.
206
+ - **A workspace you can see, with built-in protection.** An agent works in a folder on the
207
+ gateway's computer; AbstractCode's **Files** tab and `/files` show its absolute path and
208
+ preview its files. Credential folders (`~/.ssh`, `~/.aws`, …) and the gateway's data folder are
209
+ denied to every run.
210
+ - **Curated skills.** The skill shelf that ships with `abstractskill` is copied into the gateway's
211
+ data folder at each start, without overwriting your edits (`skills.shelf` points elsewhere).
212
+ - **Live replies.** Watch answers as the model writes them: the gateway's
213
+ `agents.streaming_default` plus a **Stream replies** choice in each client.
214
+ - **The Assistant, signed in for you.** **Open** in the gateway console starts the desktop
215
+ Assistant already signed in; no token to type.
216
+ - **About everywhere.** Every app's About screen shows the framework identity and the versions
217
+ the connected gateway runs (`GET /api/gateway/about`).
218
+ - **Clean model eject.** Ejecting a model frees it from the whole gateway process (MLX, GGUF,
219
+ transformers, embeddings); the console shows the memory the process holds and how it was
220
+ measured.
221
+
222
+ Each setting is available in the web console, the terminal console and `abstractgateway config`.
223
+ See [Agent sessions](docs/agent-sessions.md).
224
+
199
225
  ---
200
226
 
201
227
  ## Author once, run everywhere (AbstractFlow)
@@ -260,14 +286,14 @@ The ecosystem, grouped by layer. Each name links to the package's repository.
260
286
 
261
287
  | App | What it does | Install |
262
288
  |---|---|---|
263
- | [AbstractCode](https://github.com/lpalbou/AbstractCode) | Terminal agentic dev client (Rust, on the AbstractTUI engine) — durable sessions, tool approvals, `/workflow` support | `cargo install abstractcode`, or a prebuilt binary from the [GitHub release](https://github.com/lpalbou/AbstractCode/releases) |
264
- | [AbstractAssistant](https://github.com/lpalbou/AbstractAssistant) | macOS tray client — gateway-native, workflow picker per session, voice support | `pip install abstractassistant` |
289
+ | [AbstractCode](https://github.com/lpalbou/AbstractCode) | Terminal agentic dev client (Rust, on the AbstractTUI engine) — durable sessions, tool approvals, the gateway's default workflow, workspace files, live replies | `cargo install abstractcode`, or a prebuilt binary from the [GitHub release](https://github.com/lpalbou/AbstractCode/releases) |
290
+ | [AbstractAssistant](https://github.com/lpalbou/AbstractAssistant) | macOS tray client — gateway-native, follows the gateway's default workflow or your pick, live replies, voice support | `pip install abstractassistant`, or **Open** in the gateway console (starts it signed in) |
265
291
  | [AbstractObserver](https://github.com/lpalbou/AbstractObserver) | Browser UI — monitor, control, and schedule gateway runs | `npx @abstractframework/observer` |
266
292
  | [AbstractEntity](https://github.com/lpalbou/AbstractEntity) | Summoned-entity manager — roster, blueprint (cognition map + editing), chat drawer, live replay | `npx @abstractframework/entity` |
267
293
  | [AbstractContinuum](https://github.com/lpalbou/AbstractContinuum) | Continuous iterative development and deployment console | `npx @abstractframework/continuum` |
268
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` |
269
295
  | **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` |
270
- | **Code Web UI** | Browser client of AbstractCode (gateway-backed) | `npx @abstractframework/code` |
296
+ | **Code Web UI** | Browser client of AbstractCode (gateway-backed): workflow selector, Files tab, live replies | `npx @abstractframework/code` |
271
297
  | **Flow Editor** | Visual workflow authoring in the browser | `npx @abstractframework/flow` |
272
298
 
273
299
  ### Shared libraries
@@ -275,8 +301,8 @@ The ecosystem, grouped by layer. Each name links to the package's repository.
275
301
  | Package | What it is |
276
302
  |---|---|
277
303
  | [abstracttui](https://github.com/lpalbou/AbstractTUI) | Rust terminal-UI engine built on fine-grained reactive signals |
278
- | [abstractuic](https://github.com/lpalbou/AbstractUIC) | Reusable UI kit for framework clients (React components + Web Components) |
279
- | [abstractskill](https://github.com/lpalbou/AbstractSkill) | Shared library for Agent Skills (`SKILL.md` folders: load, trust-gate, activate) |
304
+ | [abstractuic](https://github.com/lpalbou/AbstractUIC) | Reusable UI kit for framework clients (React components + Web Components): chat panel with live replies, the shared About dialog, the app-server proxy |
305
+ | [abstractskill](https://github.com/lpalbou/AbstractSkill) | Shared library for Agent Skills (`SKILL.md` folders: load, trust-gate, activate) and the curated skill shelf the gateway serves |
280
306
 
281
307
  ---
282
308
 
@@ -310,7 +336,7 @@ pip install "abstractframework[gpu]"
310
336
  | Apple | `pip install "abstractframework[apple]"` | macOS 14+ on Apple Silicon | 3.10–3.13 (F5-TTS voice cloning needs 3.11+) |
311
337
  | GPU | `pip install "abstractframework[gpu]"` | Linux / Windows with a CUDA or ROCm GPU | 3.10–3.13 (F5-TTS voice cloning needs 3.11+) |
312
338
 
313
- ### Release matrix (abstractframework 0.3.2)
339
+ ### Release matrix (abstractframework 0.4.0)
314
340
 
315
341
  `abstractframework` pins every Python package with `==`, so one version of the
316
342
  meta-package always installs the same stack. The browser apps and Rust tools are
@@ -319,31 +345,33 @@ and tested together.
319
345
 
320
346
  | Registry | Package | Version |
321
347
  |---|---|---|
322
- | PyPI | `abstractgateway` | 0.4.3 |
323
- | PyPI | `abstractassistant` | 0.5.0 |
324
- | PyPI | `abstractcore` | 2.15.2 |
325
- | PyPI | `AbstractRuntime` | 0.4.35 |
326
- | PyPI | `abstractagent` | 0.3.13 |
348
+ | PyPI | `abstractgateway` | 0.5.0 |
349
+ | PyPI | `abstractassistant` | 0.6.0 |
350
+ | PyPI | `abstractcore` | 2.16.0 |
351
+ | PyPI | `AbstractRuntime` | 0.5.0 |
352
+ | PyPI | `abstractagent` | 0.3.14 |
353
+ | PyPI | `abstractskill` | 0.3.0 |
327
354
  | PyPI | `AbstractMemory` | 0.3.0 |
328
355
  | PyPI | `abstractsemantics` | 0.0.5 |
329
356
  | PyPI | `abstractvoice` | 0.11.4 |
330
357
  | PyPI | `abstractvision` | 0.3.29 |
331
358
  | PyPI | `abstractmusic` | 0.1.15 |
332
- | npm | `@abstractframework/flow` | 0.3.20 |
333
- | npm | `@abstractframework/code` | 0.4.2 |
334
- | npm | `@abstractframework/observer` | 0.1.12 |
335
- | npm | `@abstractframework/continuum` | 0.3.1 |
336
- | npm | `@abstractframework/entity` | 0.2.1 |
337
- | crates.io | `abstractcode` | 0.5.1 |
338
- | crates.io | `abstractgateway-console` | 0.8.0 |
359
+ | npm | `@abstractframework/flow` | 0.3.21 |
360
+ | npm | `@abstractframework/code` | 0.5.0 |
361
+ | npm | `@abstractframework/observer` | 0.1.13 |
362
+ | npm | `@abstractframework/continuum` | 0.3.2 |
363
+ | npm | `@abstractframework/entity` | 0.2.2 |
364
+ | crates.io | `abstractcode` | 0.6.0 |
365
+ | crates.io | `abstractgateway-console` | 0.9.0 |
339
366
  | crates.io | `abstractcore-console` | 0.2.0 |
340
367
  | crates.io | `abstracttui` | 0.6.0 |
341
- | GHCR | `ghcr.io/lpalbou/abstractgateway` | 0.4.3 (`gpu-latest` / `<version>-gpu` experimental) |
342
- | GHCR | `ghcr.io/lpalbou/abstractcore-server` | 2.15.2 |
368
+ | GHCR | `ghcr.io/lpalbou/abstractgateway` | 0.5.0 (`gpu-latest` / `<version>-gpu` experimental) |
369
+ | GHCR | `ghcr.io/lpalbou/abstractcore-server` | 2.16.0 |
343
370
 
344
371
  Optional add-ons that are not part of any profile install separately:
345
- `pip install abstract3d` (0.3.1), `pip install abstractcamera` (0.2.0) and
346
- `pip install abstractskill` (0.2.1).
372
+ `pip install abstract3d` (0.3.1) and `pip install abstractcamera` (0.2.0). `abstractskill` (pinned above)
373
+ comes with the gateway, which carries its curated skill shelf; install it on its own with
374
+ `pip install abstractskill`.
347
375
 
348
376
  See [docs/install.md](docs/install.md) for the full install chooser, `uv`/venv guidance,
349
377
  `abstractframework doctor`, and the generated installer manifest contract.
@@ -357,7 +385,8 @@ See [docs/install.md](docs/install.md) for the full install chooser, `uv`/venv g
357
385
  | [docs/README.md](docs/README.md) | Documentation hub — pick your starting point |
358
386
  | [docs/install.md](docs/install.md) | Light / Apple / GPU install chooser and first checks |
359
387
  | [docs/getting-started.md](docs/getting-started.md) | Two entry points + first end-to-end run |
360
- | [docs/architecture.md](docs/architecture.md) | Layered model, durable execution primitives, comparisons |
388
+ | [docs/agent-sessions.md](docs/agent-sessions.md) | Default agent workflow, the conversation workspace and its protection, skills, live replies, the Assistant hand-over |
389
+ | [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 |
361
390
  | [docs/configuration.md](docs/configuration.md) | Minimal config, where defaults live, Core vs Gateway |
362
391
  | [docs/glossary.md](docs/glossary.md) | Shared terminology (run, ledger, effect, wait, bundle, …) |
363
392
  | [docs/faq.md](docs/faq.md) | Common questions, comparisons, limits |
@@ -1,46 +1,3 @@
1
- Metadata-Version: 2.4
2
- Name: abstractframework
3
- Version: 0.3.2
4
- Summary: Unified installer and documentation hub for the AbstractFramework ecosystem
5
- Author-email: Laurent-Philippe Albou <contact@abstractframework.ai>
6
- License: MIT
7
- Project-URL: Homepage, https://github.com/lpalbou/AbstractFramework
8
- Project-URL: Documentation, https://github.com/lpalbou/AbstractFramework/tree/main/docs
9
- Project-URL: Repository, https://github.com/lpalbou/AbstractFramework
10
- Project-URL: Issues, https://github.com/lpalbou/AbstractFramework/issues
11
- Keywords: agentic-os,ai-agents,llm,autonomous-agents,workflows,multi-agent,durable-execution,knowledge-graph,openai,anthropic,ollama,local-llm
12
- Classifier: Development Status :: 4 - Beta
13
- Classifier: Intended Audience :: Developers
14
- Classifier: License :: OSI Approved :: MIT License
15
- Classifier: Operating System :: OS Independent
16
- Classifier: Programming Language :: Python :: 3
17
- Classifier: Programming Language :: Python :: 3.10
18
- Classifier: Programming Language :: Python :: 3.11
19
- Classifier: Programming Language :: Python :: 3.12
20
- Classifier: Programming Language :: Python :: 3.13
21
- Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
22
- Classifier: Typing :: Typed
23
- Requires-Python: >=3.10
24
- Description-Content-Type: text/markdown
25
- License-File: LICENSE
26
- Requires-Dist: abstractgateway==0.4.3
27
- Requires-Dist: abstractassistant==0.5.0
28
- Requires-Dist: abstractcore==2.15.2
29
- Requires-Dist: AbstractRuntime==0.4.35
30
- Requires-Dist: abstractagent==0.3.13
31
- Requires-Dist: AbstractMemory==0.3.0
32
- Requires-Dist: abstractsemantics==0.0.5
33
- Requires-Dist: abstractvoice==0.11.4
34
- Requires-Dist: abstractvision==0.3.29
35
- Requires-Dist: abstractmusic==0.1.15
36
- Provides-Extra: apple
37
- Requires-Dist: abstractgateway[apple]==0.4.3; extra == "apple"
38
- Requires-Dist: abstractassistant[apple]==0.5.0; platform_system == "Darwin" and extra == "apple"
39
- Provides-Extra: gpu
40
- Requires-Dist: abstractgateway[gpu]==0.4.3; extra == "gpu"
41
- Requires-Dist: abstractassistant[gpu]==0.5.0; extra == "gpu"
42
- Dynamic: license-file
43
-
44
1
  # AbstractFramework
45
2
 
46
3
  **Write once. Generate everything.**
@@ -159,19 +116,17 @@ creates `default/admin` in the per-user data folder, and prints a one-time sign-
159
116
  web console and its first-run guide. `abstractgateway claim` mints a new link;
160
117
  `abstractgateway service install` starts the gateway at login.
161
118
 
162
- To choose the data folder, the allowed browser origins or your own workflow bundles, set the
163
- environment explicitly:
119
+ Browser apps on `http://localhost:*` and `http://127.0.0.1:*` may always call it. To choose
120
+ another data folder or allow another browser origin:
164
121
 
165
122
  ```bash
166
- export ABSTRACTGATEWAY_USER_AUTH=1
167
- export ABSTRACTGATEWAY_ALLOWED_ORIGINS="http://localhost:*,http://127.0.0.1:*"
168
- export ABSTRACTGATEWAY_WORKFLOW_SOURCE=bundle
169
- export ABSTRACTGATEWAY_DATA_DIR="$PWD/runtime/gateway"
170
- # export ABSTRACTGATEWAY_FLOWS_DIR="$PWD/bundles" # serve your own bundle registry
171
-
172
- abstractgateway serve --host 127.0.0.1 --port 8080
123
+ abstractgateway serve --data-dir "$PWD/runtime/gateway"
124
+ abstractgateway network set --allowed-origins https://ui.example.com
173
125
  ```
174
126
 
127
+ To serve your own workflow bundles instead of the shipped ones, start the gateway with
128
+ `ABSTRACTGATEWAY_FLOWS_DIR` pointing at your bundle folder.
129
+
175
130
  Out of the box this serves a ready set of workflows — a verify-gated coding
176
131
  agent, `deep-research`, and `co-scientist` among them. See
177
132
  [shipped workflows](https://github.com/lpalbou/AbstractGateway/blob/main/docs/shipped-workflows.md).
@@ -191,11 +146,38 @@ ABSTRACTGATEWAY_AUTH_TOKEN=<token> abstractgateway-console --url http://127.0.0.
191
146
  ```
192
147
 
193
148
  Container images are published for the gateway and the AbstractCore server:
194
- `ghcr.io/lpalbou/abstractgateway:0.4.3` and `ghcr.io/lpalbou/abstractcore-server:2.15.2`.
149
+ `ghcr.io/lpalbou/abstractgateway:0.5.0` and `ghcr.io/lpalbou/abstractcore-server:2.16.0`.
195
150
 
196
151
  For artifact and runtime-resource investigation, see
197
152
  [Runtime artifacts and retrieval](docs/guide/runtime-artifacts.md).
198
153
 
154
+ ### Agent sessions on the gateway
155
+
156
+ Every client (AbstractCode in the terminal and the browser, AbstractAssistant, your own app)
157
+ chats with agents through the same gateway rules:
158
+
159
+ - **One default agent workflow.** The gateway decides which workflow answers each agent interface
160
+ (`agents.default_workflow.<interface>`; the shipped `basic-agent` for AbstractCode until you
161
+ choose another). Clients list **Gateway default** first and follow a change at the next turn.
162
+ - **A workspace you can see, with built-in protection.** An agent works in a folder on the
163
+ gateway's computer; AbstractCode's **Files** tab and `/files` show its absolute path and
164
+ preview its files. Credential folders (`~/.ssh`, `~/.aws`, …) and the gateway's data folder are
165
+ denied to every run.
166
+ - **Curated skills.** The skill shelf that ships with `abstractskill` is copied into the gateway's
167
+ data folder at each start, without overwriting your edits (`skills.shelf` points elsewhere).
168
+ - **Live replies.** Watch answers as the model writes them: the gateway's
169
+ `agents.streaming_default` plus a **Stream replies** choice in each client.
170
+ - **The Assistant, signed in for you.** **Open** in the gateway console starts the desktop
171
+ Assistant already signed in; no token to type.
172
+ - **About everywhere.** Every app's About screen shows the framework identity and the versions
173
+ the connected gateway runs (`GET /api/gateway/about`).
174
+ - **Clean model eject.** Ejecting a model frees it from the whole gateway process (MLX, GGUF,
175
+ transformers, embeddings); the console shows the memory the process holds and how it was
176
+ measured.
177
+
178
+ Each setting is available in the web console, the terminal console and `abstractgateway config`.
179
+ See [Agent sessions](docs/agent-sessions.md).
180
+
199
181
  ---
200
182
 
201
183
  ## Author once, run everywhere (AbstractFlow)
@@ -260,14 +242,14 @@ The ecosystem, grouped by layer. Each name links to the package's repository.
260
242
 
261
243
  | App | What it does | Install |
262
244
  |---|---|---|
263
- | [AbstractCode](https://github.com/lpalbou/AbstractCode) | Terminal agentic dev client (Rust, on the AbstractTUI engine) — durable sessions, tool approvals, `/workflow` support | `cargo install abstractcode`, or a prebuilt binary from the [GitHub release](https://github.com/lpalbou/AbstractCode/releases) |
264
- | [AbstractAssistant](https://github.com/lpalbou/AbstractAssistant) | macOS tray client — gateway-native, workflow picker per session, voice support | `pip install abstractassistant` |
245
+ | [AbstractCode](https://github.com/lpalbou/AbstractCode) | Terminal agentic dev client (Rust, on the AbstractTUI engine) — durable sessions, tool approvals, the gateway's default workflow, workspace files, live replies | `cargo install abstractcode`, or a prebuilt binary from the [GitHub release](https://github.com/lpalbou/AbstractCode/releases) |
246
+ | [AbstractAssistant](https://github.com/lpalbou/AbstractAssistant) | macOS tray client — gateway-native, follows the gateway's default workflow or your pick, live replies, voice support | `pip install abstractassistant`, or **Open** in the gateway console (starts it signed in) |
265
247
  | [AbstractObserver](https://github.com/lpalbou/AbstractObserver) | Browser UI — monitor, control, and schedule gateway runs | `npx @abstractframework/observer` |
266
248
  | [AbstractEntity](https://github.com/lpalbou/AbstractEntity) | Summoned-entity manager — roster, blueprint (cognition map + editing), chat drawer, live replay | `npx @abstractframework/entity` |
267
249
  | [AbstractContinuum](https://github.com/lpalbou/AbstractContinuum) | Continuous iterative development and deployment console | `npx @abstractframework/continuum` |
268
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` |
269
251
  | **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` |
270
- | **Code Web UI** | Browser client of AbstractCode (gateway-backed) | `npx @abstractframework/code` |
252
+ | **Code Web UI** | Browser client of AbstractCode (gateway-backed): workflow selector, Files tab, live replies | `npx @abstractframework/code` |
271
253
  | **Flow Editor** | Visual workflow authoring in the browser | `npx @abstractframework/flow` |
272
254
 
273
255
  ### Shared libraries
@@ -275,8 +257,8 @@ The ecosystem, grouped by layer. Each name links to the package's repository.
275
257
  | Package | What it is |
276
258
  |---|---|
277
259
  | [abstracttui](https://github.com/lpalbou/AbstractTUI) | Rust terminal-UI engine built on fine-grained reactive signals |
278
- | [abstractuic](https://github.com/lpalbou/AbstractUIC) | Reusable UI kit for framework clients (React components + Web Components) |
279
- | [abstractskill](https://github.com/lpalbou/AbstractSkill) | Shared library for Agent Skills (`SKILL.md` folders: load, trust-gate, activate) |
260
+ | [abstractuic](https://github.com/lpalbou/AbstractUIC) | Reusable UI kit for framework clients (React components + Web Components): chat panel with live replies, the shared About dialog, the app-server proxy |
261
+ | [abstractskill](https://github.com/lpalbou/AbstractSkill) | Shared library for Agent Skills (`SKILL.md` folders: load, trust-gate, activate) and the curated skill shelf the gateway serves |
280
262
 
281
263
  ---
282
264
 
@@ -310,7 +292,7 @@ pip install "abstractframework[gpu]"
310
292
  | Apple | `pip install "abstractframework[apple]"` | macOS 14+ on Apple Silicon | 3.10–3.13 (F5-TTS voice cloning needs 3.11+) |
311
293
  | GPU | `pip install "abstractframework[gpu]"` | Linux / Windows with a CUDA or ROCm GPU | 3.10–3.13 (F5-TTS voice cloning needs 3.11+) |
312
294
 
313
- ### Release matrix (abstractframework 0.3.2)
295
+ ### Release matrix (abstractframework 0.4.0)
314
296
 
315
297
  `abstractframework` pins every Python package with `==`, so one version of the
316
298
  meta-package always installs the same stack. The browser apps and Rust tools are
@@ -319,31 +301,33 @@ and tested together.
319
301
 
320
302
  | Registry | Package | Version |
321
303
  |---|---|---|
322
- | PyPI | `abstractgateway` | 0.4.3 |
323
- | PyPI | `abstractassistant` | 0.5.0 |
324
- | PyPI | `abstractcore` | 2.15.2 |
325
- | PyPI | `AbstractRuntime` | 0.4.35 |
326
- | PyPI | `abstractagent` | 0.3.13 |
304
+ | PyPI | `abstractgateway` | 0.5.0 |
305
+ | PyPI | `abstractassistant` | 0.6.0 |
306
+ | PyPI | `abstractcore` | 2.16.0 |
307
+ | PyPI | `AbstractRuntime` | 0.5.0 |
308
+ | PyPI | `abstractagent` | 0.3.14 |
309
+ | PyPI | `abstractskill` | 0.3.0 |
327
310
  | PyPI | `AbstractMemory` | 0.3.0 |
328
311
  | PyPI | `abstractsemantics` | 0.0.5 |
329
312
  | PyPI | `abstractvoice` | 0.11.4 |
330
313
  | PyPI | `abstractvision` | 0.3.29 |
331
314
  | PyPI | `abstractmusic` | 0.1.15 |
332
- | npm | `@abstractframework/flow` | 0.3.20 |
333
- | npm | `@abstractframework/code` | 0.4.2 |
334
- | npm | `@abstractframework/observer` | 0.1.12 |
335
- | npm | `@abstractframework/continuum` | 0.3.1 |
336
- | npm | `@abstractframework/entity` | 0.2.1 |
337
- | crates.io | `abstractcode` | 0.5.1 |
338
- | crates.io | `abstractgateway-console` | 0.8.0 |
315
+ | npm | `@abstractframework/flow` | 0.3.21 |
316
+ | npm | `@abstractframework/code` | 0.5.0 |
317
+ | npm | `@abstractframework/observer` | 0.1.13 |
318
+ | npm | `@abstractframework/continuum` | 0.3.2 |
319
+ | npm | `@abstractframework/entity` | 0.2.2 |
320
+ | crates.io | `abstractcode` | 0.6.0 |
321
+ | crates.io | `abstractgateway-console` | 0.9.0 |
339
322
  | crates.io | `abstractcore-console` | 0.2.0 |
340
323
  | crates.io | `abstracttui` | 0.6.0 |
341
- | GHCR | `ghcr.io/lpalbou/abstractgateway` | 0.4.3 (`gpu-latest` / `<version>-gpu` experimental) |
342
- | GHCR | `ghcr.io/lpalbou/abstractcore-server` | 2.15.2 |
324
+ | GHCR | `ghcr.io/lpalbou/abstractgateway` | 0.5.0 (`gpu-latest` / `<version>-gpu` experimental) |
325
+ | GHCR | `ghcr.io/lpalbou/abstractcore-server` | 2.16.0 |
343
326
 
344
327
  Optional add-ons that are not part of any profile install separately:
345
- `pip install abstract3d` (0.3.1), `pip install abstractcamera` (0.2.0) and
346
- `pip install abstractskill` (0.2.1).
328
+ `pip install abstract3d` (0.3.1) and `pip install abstractcamera` (0.2.0). `abstractskill` (pinned above)
329
+ comes with the gateway, which carries its curated skill shelf; install it on its own with
330
+ `pip install abstractskill`.
347
331
 
348
332
  See [docs/install.md](docs/install.md) for the full install chooser, `uv`/venv guidance,
349
333
  `abstractframework doctor`, and the generated installer manifest contract.
@@ -357,7 +341,8 @@ See [docs/install.md](docs/install.md) for the full install chooser, `uv`/venv g
357
341
  | [docs/README.md](docs/README.md) | Documentation hub — pick your starting point |
358
342
  | [docs/install.md](docs/install.md) | Light / Apple / GPU install chooser and first checks |
359
343
  | [docs/getting-started.md](docs/getting-started.md) | Two entry points + first end-to-end run |
360
- | [docs/architecture.md](docs/architecture.md) | Layered model, durable execution primitives, comparisons |
344
+ | [docs/agent-sessions.md](docs/agent-sessions.md) | Default agent workflow, the conversation workspace and its protection, skills, live replies, the Assistant hand-over |
345
+ | [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 |
361
346
  | [docs/configuration.md](docs/configuration.md) | Minimal config, where defaults live, Core vs Gateway |
362
347
  | [docs/glossary.md](docs/glossary.md) | Shared terminology (run, ledger, effect, wait, bundle, …) |
363
348
  | [docs/faq.md](docs/faq.md) | Common questions, comparisons, limits |
@@ -10,21 +10,22 @@ Most implementation functionality still lives in component projects.
10
10
 
11
11
  from __future__ import annotations
12
12
 
13
- __version__ = "0.3.2"
13
+ __version__ = "0.4.0"
14
14
  __author__ = "Laurent-Philippe Albou"
15
15
  __license__ = "MIT"
16
16
 
17
17
  RELEASE_VERSIONS: dict[str, str] = {
18
- "abstractcore": "2.15.2",
19
- "abstractruntime": "0.4.35",
20
- "abstractagent": "0.3.13",
21
- "abstractgateway": "0.4.3",
18
+ "abstractcore": "2.16.0",
19
+ "abstractruntime": "0.5.0",
20
+ "abstractagent": "0.3.14",
21
+ "abstractgateway": "0.5.0",
22
+ "abstractskill": "0.3.0",
22
23
  "abstractmemory": "0.3.0",
23
24
  "abstractsemantics": "0.0.5",
24
25
  "abstractvoice": "0.11.4",
25
26
  "abstractvision": "0.3.29",
26
27
  "abstractmusic": "0.1.15",
27
- "abstractassistant": "0.5.0",
28
+ "abstractassistant": "0.6.0",
28
29
  }
29
30
 
30
31
  PACKAGE_DISTRIBUTIONS: dict[str, str] = {
@@ -32,6 +33,7 @@ PACKAGE_DISTRIBUTIONS: dict[str, str] = {
32
33
  "abstractruntime": "AbstractRuntime",
33
34
  "abstractagent": "abstractagent",
34
35
  "abstractgateway": "abstractgateway",
36
+ "abstractskill": "abstractskill",
35
37
  "abstractmemory": "AbstractMemory",
36
38
  "abstractsemantics": "abstractsemantics",
37
39
  "abstractvoice": "abstractvoice",
@@ -41,19 +43,19 @@ PACKAGE_DISTRIBUTIONS: dict[str, str] = {
41
43
  }
42
44
 
43
45
  NPM_RELEASE_VERSIONS: dict[str, str] = {
44
- "@abstractframework/flow": "0.3.20",
45
- "@abstractframework/code": "0.4.2",
46
- "@abstractframework/observer": "0.1.12",
47
- "@abstractframework/continuum": "0.3.1",
48
- "@abstractframework/entity": "0.2.1",
46
+ "@abstractframework/flow": "0.3.21",
47
+ "@abstractframework/code": "0.5.0",
48
+ "@abstractframework/observer": "0.1.13",
49
+ "@abstractframework/continuum": "0.3.2",
50
+ "@abstractframework/entity": "0.2.2",
49
51
  }
50
52
 
51
53
  # Terminal tools published on crates.io alongside this release (installed with `cargo install`,
52
54
  # or by the bootstrap scripts' --with-console / --with-code-cli flags).
53
55
  CRATE_RELEASE_VERSIONS: dict[str, str] = {
54
- "abstractgateway-console": "0.8.0",
56
+ "abstractgateway-console": "0.9.0",
55
57
  "abstractcore-console": "0.2.0",
56
- "abstractcode": "0.5.1",
58
+ "abstractcode": "0.6.0",
57
59
  "abstracttui": "0.6.0",
58
60
  }
59
61