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