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