abstractframework 0.9.2__tar.gz → 0.9.4__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.9.2 → abstractframework-0.9.4}/CHANGELOG.md +22 -0
- {abstractframework-0.9.2/abstractframework.egg-info → abstractframework-0.9.4}/PKG-INFO +19 -19
- {abstractframework-0.9.2 → abstractframework-0.9.4}/README.md +10 -10
- {abstractframework-0.9.2 → abstractframework-0.9.4}/abstractframework/__init__.py +7 -7
- {abstractframework-0.9.2 → abstractframework-0.9.4/abstractframework.egg-info}/PKG-INFO +19 -19
- {abstractframework-0.9.2 → abstractframework-0.9.4}/abstractframework.egg-info/requires.txt +8 -8
- {abstractframework-0.9.2 → abstractframework-0.9.4}/docs/api.md +6 -6
- {abstractframework-0.9.2 → abstractframework-0.9.4}/docs/automations.md +25 -19
- {abstractframework-0.9.2 → abstractframework-0.9.4}/docs/faq.md +1 -1
- {abstractframework-0.9.2 → abstractframework-0.9.4}/docs/guide/email-integration.md +4 -6
- {abstractframework-0.9.2 → abstractframework-0.9.4}/docs/install.md +11 -11
- {abstractframework-0.9.2 → abstractframework-0.9.4}/llms-full.txt +76 -72
- {abstractframework-0.9.2 → abstractframework-0.9.4}/llms.txt +3 -3
- {abstractframework-0.9.2 → abstractframework-0.9.4}/pyproject.toml +9 -9
- {abstractframework-0.9.2 → abstractframework-0.9.4}/scripts/install.sh +4 -4
- {abstractframework-0.9.2 → abstractframework-0.9.4}/scripts/tests/test_inventory.sh +2 -2
- {abstractframework-0.9.2 → abstractframework-0.9.4}/LICENSE +0 -0
- {abstractframework-0.9.2 → abstractframework-0.9.4}/MANIFEST.in +0 -0
- {abstractframework-0.9.2 → abstractframework-0.9.4}/abstractframework/__main__.py +0 -0
- {abstractframework-0.9.2 → abstractframework-0.9.4}/abstractframework/cli.py +0 -0
- {abstractframework-0.9.2 → abstractframework-0.9.4}/abstractframework/install_manifest.py +0 -0
- {abstractframework-0.9.2 → abstractframework-0.9.4}/abstractframework/py.typed +0 -0
- {abstractframework-0.9.2 → abstractframework-0.9.4}/abstractframework.egg-info/SOURCES.txt +0 -0
- {abstractframework-0.9.2 → abstractframework-0.9.4}/abstractframework.egg-info/dependency_links.txt +0 -0
- {abstractframework-0.9.2 → abstractframework-0.9.4}/abstractframework.egg-info/entry_points.txt +0 -0
- {abstractframework-0.9.2 → abstractframework-0.9.4}/abstractframework.egg-info/top_level.txt +0 -0
- {abstractframework-0.9.2 → abstractframework-0.9.4}/docs/README.md +0 -0
- {abstractframework-0.9.2 → abstractframework-0.9.4}/docs/adr/0001-layered-architecture.md +0 -0
- {abstractframework-0.9.2 → abstractframework-0.9.4}/docs/adr/0002-effect-system-design.md +0 -0
- {abstractframework-0.9.2 → abstractframework-0.9.4}/docs/adr/0003-tool-system-architecture.md +0 -0
- {abstractframework-0.9.2 → abstractframework-0.9.4}/docs/adr/0004-observability-strategy.md +0 -0
- {abstractframework-0.9.2 → abstractframework-0.9.4}/docs/adr/0005-memory-architecture.md +0 -0
- {abstractframework-0.9.2 → abstractframework-0.9.4}/docs/adr/0006-durable-tool-execution.md +0 -0
- {abstractframework-0.9.2 → abstractframework-0.9.4}/docs/adr/0007-active-context-and-memory-provenance.md +0 -0
- {abstractframework-0.9.2 → abstractframework-0.9.4}/docs/adr/0008-token-terminology.md +0 -0
- {abstractframework-0.9.2 → abstractframework-0.9.4}/docs/adr/0009-connected-memory-recall-and-provenance.md +0 -0
- {abstractframework-0.9.2 → abstractframework-0.9.4}/docs/adr/0010-runtime-owned-node-traces.md +0 -0
- {abstractframework-0.9.2 → abstractframework-0.9.4}/docs/adr/0011-ledger-subscriptions-and-event-bridge.md +0 -0
- {abstractframework-0.9.2 → abstractframework-0.9.4}/docs/adr/0012-portable-workflowartifact.md +0 -0
- {abstractframework-0.9.2 → abstractframework-0.9.4}/docs/adr/0013-durable-run-controls-pause-resume-cancel.md +0 -0
- {abstractframework-0.9.2 → abstractframework-0.9.4}/docs/adr/0014-runtime-authority-timeouts.md +0 -0
- {abstractframework-0.9.2 → abstractframework-0.9.4}/docs/adr/0015-execution-targets-and-remote-tool-workers.md +0 -0
- {abstractframework-0.9.2 → abstractframework-0.9.4}/docs/adr/0016-tool-calling-pipeline-and-responsibility-boundaries.md +0 -0
- {abstractframework-0.9.2 → abstractframework-0.9.4}/docs/adr/0017-host-ui-events-and-durable-prompts.md +0 -0
- {abstractframework-0.9.2 → abstractframework-0.9.4}/docs/adr/0018-durable-run-gateway-and-remote-host-control-plane.md +0 -0
- {abstractframework-0.9.2 → abstractframework-0.9.4}/docs/adr/0019-testing-strategy-and-levels.md +0 -0
- {abstractframework-0.9.2 → abstractframework-0.9.4}/docs/adr/0020-agent-host-pool-and-orchestrator-placement.md +0 -0
- {abstractframework-0.9.2 → abstractframework-0.9.4}/docs/adr/0021-deployment-topologies-and-supported-scenarios.md +0 -0
- {abstractframework-0.9.2 → abstractframework-0.9.4}/docs/adr/0022-orchestrator-host-and-runtime-daemonization.md +0 -0
- {abstractframework-0.9.2 → abstractframework-0.9.4}/docs/adr/0023-file-attachment-path-resolution-and-authorization.md +0 -0
- {abstractframework-0.9.2 → abstractframework-0.9.4}/docs/adr/0024-attachment-placeholders-and-compaction-invariants.md +0 -0
- {abstractframework-0.9.2 → abstractframework-0.9.4}/docs/adr/0025-kg-entity-normalization-and-dedup.md +0 -0
- {abstractframework-0.9.2 → abstractframework-0.9.4}/docs/adr/0026-truncation-policy-and-contract.md +0 -0
- {abstractframework-0.9.2 → abstractframework-0.9.4}/docs/adr/0027-timeout-policy-and-contract.md +0 -0
- {abstractframework-0.9.2 → abstractframework-0.9.4}/docs/adr/0028-capabilities-plugins-and-library-framework-modes.md +0 -0
- {abstractframework-0.9.2 → abstractframework-0.9.4}/docs/adr/0029-permissive-dependency-and-licensing-policy.md +0 -0
- {abstractframework-0.9.2 → abstractframework-0.9.4}/docs/adr/0030-security-test-fixtures-and-isolation.md +0 -0
- {abstractframework-0.9.2 → abstractframework-0.9.4}/docs/adr/0031-workflow-llm-routing-overrides-provider-model-and-base-url.md +0 -0
- {abstractframework-0.9.2 → abstractframework-0.9.4}/docs/adr/0032-package-dependency-boundaries-and-gateway-first-apps.md +0 -0
- {abstractframework-0.9.2 → abstractframework-0.9.4}/docs/adr/0033-install-profiles-config-entrypoints-and-server-boundaries.md +0 -0
- {abstractframework-0.9.2 → abstractframework-0.9.4}/docs/adr/0034-framework-release-sequence-and-gates.md +0 -0
- {abstractframework-0.9.2 → abstractframework-0.9.4}/docs/adr/0035-capability-routing-defaults.md +0 -0
- {abstractframework-0.9.2 → abstractframework-0.9.4}/docs/adr/0036-artifact-descriptor-contract.md +0 -0
- {abstractframework-0.9.2 → abstractframework-0.9.4}/docs/adr/0037-hosted-file-source-contract-and-workspacepath-authority.md +0 -0
- {abstractframework-0.9.2 → abstractframework-0.9.4}/docs/adr/0038-script-bootstrap-and-gateway-console-install.md +0 -0
- {abstractframework-0.9.2 → abstractframework-0.9.4}/docs/adr/README.md +0 -0
- {abstractframework-0.9.2 → abstractframework-0.9.4}/docs/adr/memory-recall-levels.md +0 -0
- {abstractframework-0.9.2 → abstractframework-0.9.4}/docs/adr/reorg/001_music_as_capability_plugin_via_acestep_api.md +0 -0
- {abstractframework-0.9.2 → abstractframework-0.9.4}/docs/adr/reorg/002_abstractmusic_inprocess_local_generation.md +0 -0
- {abstractframework-0.9.2 → abstractframework-0.9.4}/docs/adr/reorg/003_abstractmusic_acestep_v15_backend_source_strategy.md +0 -0
- {abstractframework-0.9.2 → abstractframework-0.9.4}/docs/adr/reorg/004_smartnote_thin_client_architecture.md +0 -0
- {abstractframework-0.9.2 → abstractframework-0.9.4}/docs/adr/reorg/005_smartnote_artifact_first_cards.md +0 -0
- {abstractframework-0.9.2 → abstractframework-0.9.4}/docs/adr/reorg/2026-02-21_gateway-first-assistant.md +0 -0
- {abstractframework-0.9.2 → abstractframework-0.9.4}/docs/adr/reorg/2026-02-21_installer_manager_strategy.md +0 -0
- {abstractframework-0.9.2 → abstractframework-0.9.4}/docs/adr/reorg/2026-02-21_macos_installer_manager.md +0 -0
- {abstractframework-0.9.2 → abstractframework-0.9.4}/docs/agent-sessions.md +0 -0
- {abstractframework-0.9.2 → abstractframework-0.9.4}/docs/architecture.md +0 -0
- {abstractframework-0.9.2 → abstractframework-0.9.4}/docs/claude/README.md +0 -0
- {abstractframework-0.9.2 → abstractframework-0.9.4}/docs/claude/abstractframework-fit.md +0 -0
- {abstractframework-0.9.2 → abstractframework-0.9.4}/docs/claude/claude-skills-overview.md +0 -0
- {abstractframework-0.9.2 → abstractframework-0.9.4}/docs/claude/claude-skills-sources.md +0 -0
- {abstractframework-0.9.2 → abstractframework-0.9.4}/docs/claude/claude-skills-top-20.md +0 -0
- {abstractframework-0.9.2 → abstractframework-0.9.4}/docs/comparisons/README.md +0 -0
- {abstractframework-0.9.2 → abstractframework-0.9.4}/docs/configuration.md +0 -0
- {abstractframework-0.9.2 → abstractframework-0.9.4}/docs/getting-started.md +0 -0
- {abstractframework-0.9.2 → abstractframework-0.9.4}/docs/glossary.md +0 -0
- {abstractframework-0.9.2 → abstractframework-0.9.4}/docs/guide/LANDING.md +0 -0
- {abstractframework-0.9.2 → abstractframework-0.9.4}/docs/guide/README.md +0 -0
- {abstractframework-0.9.2 → abstractframework-0.9.4}/docs/guide/agent-skills.md +0 -0
- {abstractframework-0.9.2 → abstractframework-0.9.4}/docs/guide/agent-vs-llm.md +0 -0
- {abstractframework-0.9.2 → abstractframework-0.9.4}/docs/guide/agora-workflow-agent.md +0 -0
- {abstractframework-0.9.2 → abstractframework-0.9.4}/docs/guide/apple-local-gateway-flow.md +0 -0
- {abstractframework-0.9.2 → abstractframework-0.9.4}/docs/guide/capability-plugins.md +0 -0
- {abstractframework-0.9.2 → abstractframework-0.9.4}/docs/guide/capability-routing-defaults.md +0 -0
- {abstractframework-0.9.2 → abstractframework-0.9.4}/docs/guide/deployment-iphone.md +0 -0
- {abstractframework-0.9.2 → abstractframework-0.9.4}/docs/guide/deployment-topologies.md +0 -0
- {abstractframework-0.9.2 → abstractframework-0.9.4}/docs/guide/deployment-web.md +0 -0
- {abstractframework-0.9.2 → abstractframework-0.9.4}/docs/guide/event-inbox-agent.md +0 -0
- {abstractframework-0.9.2 → abstractframework-0.9.4}/docs/guide/flow-and-kg-memory.md +0 -0
- {abstractframework-0.9.2 → abstractframework-0.9.4}/docs/guide/gateway-security.md +0 -0
- {abstractframework-0.9.2 → abstractframework-0.9.4}/docs/guide/headless-swarm.md +0 -0
- {abstractframework-0.9.2 → abstractframework-0.9.4}/docs/guide/process-manager-env-vars.md +0 -0
- {abstractframework-0.9.2 → abstractframework-0.9.4}/docs/guide/prompt-caching.md +0 -0
- {abstractframework-0.9.2 → abstractframework-0.9.4}/docs/guide/runtime-artifacts.md +0 -0
- {abstractframework-0.9.2 → abstractframework-0.9.4}/docs/guide/runtime-scope.md +0 -0
- {abstractframework-0.9.2 → abstractframework-0.9.4}/docs/guide/scheduled-workflows.md +0 -0
- {abstractframework-0.9.2 → abstractframework-0.9.4}/docs/guide/summoned-entities.md +0 -0
- {abstractframework-0.9.2 → abstractframework-0.9.4}/docs/guide/telegram-integration.md +0 -0
- {abstractframework-0.9.2 → abstractframework-0.9.4}/docs/guide/workflow-bundles.md +0 -0
- {abstractframework-0.9.2 → abstractframework-0.9.4}/docs/installers/README.md +0 -0
- {abstractframework-0.9.2 → abstractframework-0.9.4}/docs/installers/components.md +0 -0
- {abstractframework-0.9.2 → abstractframework-0.9.4}/docs/installers/implementation-plan.md +0 -0
- {abstractframework-0.9.2 → abstractframework-0.9.4}/docs/installers/operations-and-support.md +0 -0
- {abstractframework-0.9.2 → abstractframework-0.9.4}/docs/installers/release-and-manifest.md +0 -0
- {abstractframework-0.9.2 → abstractframework-0.9.4}/docs/installers/security-and-os-blocks.md +0 -0
- {abstractframework-0.9.2 → abstractframework-0.9.4}/docs/installers/strategy.md +0 -0
- {abstractframework-0.9.2 → abstractframework-0.9.4}/docs/installers/user-journeys.md +0 -0
- {abstractframework-0.9.2 → abstractframework-0.9.4}/docs/prompts/agora-collaboration.md +0 -0
- {abstractframework-0.9.2 → abstractframework-0.9.4}/docs/scenarios/README.md +0 -0
- {abstractframework-0.9.2 → abstractframework-0.9.4}/docs/scenarios/email-inbox-agent.md +0 -0
- {abstractframework-0.9.2 → abstractframework-0.9.4}/docs/scenarios/gateway-first-local-dev.md +0 -0
- {abstractframework-0.9.2 → abstractframework-0.9.4}/docs/scenarios/offline-coding-assistant.md +0 -0
- {abstractframework-0.9.2 → abstractframework-0.9.4}/docs/scenarios/phone-thin-client.md +0 -0
- {abstractframework-0.9.2 → abstractframework-0.9.4}/docs/scenarios/specialized-agent-flow.md +0 -0
- {abstractframework-0.9.2 → abstractframework-0.9.4}/docs/scenarios/telegram-permanent-contact.md +0 -0
- {abstractframework-0.9.2 → abstractframework-0.9.4}/docs/scenarios/workflow-bundle-lifecycle.md +0 -0
- {abstractframework-0.9.2 → abstractframework-0.9.4}/docs/skills/README.md +0 -0
- {abstractframework-0.9.2 → abstractframework-0.9.4}/docs/skills/abstractframework-agent-skills-fit.md +0 -0
- {abstractframework-0.9.2 → abstractframework-0.9.4}/docs/skills/abstractframework-architecture-deep-dive.md +0 -0
- {abstractframework-0.9.2 → abstractframework-0.9.4}/docs/skills/agent-skills-ecosystem-scan.md +0 -0
- {abstractframework-0.9.2 → abstractframework-0.9.4}/docs/skills/agent-skills-ecosystem-sources.md +0 -0
- {abstractframework-0.9.2 → abstractframework-0.9.4}/docs/skills/claude-agent-skills-overview.md +0 -0
- {abstractframework-0.9.2 → abstractframework-0.9.4}/docs/skills/claude-agent-skills-sources.md +0 -0
- {abstractframework-0.9.2 → abstractframework-0.9.4}/docs/skills/claude-agent-skills-top-20.md +0 -0
- {abstractframework-0.9.2 → abstractframework-0.9.4}/docs/troubleshooting.md +0 -0
- {abstractframework-0.9.2 → abstractframework-0.9.4}/docs/workspace-scripts.md +0 -0
- {abstractframework-0.9.2 → abstractframework-0.9.4}/scripts/af-local.sh +0 -0
- {abstractframework-0.9.2 → abstractframework-0.9.4}/scripts/af.sh +0 -0
- {abstractframework-0.9.2 → abstractframework-0.9.4}/scripts/agora_react_flow_smoke.py +0 -0
- {abstractframework-0.9.2 → abstractframework-0.9.4}/scripts/assistant-local.sh +0 -0
- {abstractframework-0.9.2 → abstractframework-0.9.4}/scripts/assistant.sh +0 -0
- {abstractframework-0.9.2 → abstractframework-0.9.4}/scripts/build.sh +0 -0
- {abstractframework-0.9.2 → abstractframework-0.9.4}/scripts/cache_probe_local_backends.py +0 -0
- {abstractframework-0.9.2 → abstractframework-0.9.4}/scripts/cache_steer_repl.py +0 -0
- {abstractframework-0.9.2 → abstractframework-0.9.4}/scripts/check_identity_sync.py +0 -0
- {abstractframework-0.9.2 → abstractframework-0.9.4}/scripts/clone.sh +0 -0
- {abstractframework-0.9.2 → abstractframework-0.9.4}/scripts/code-local.sh +0 -0
- {abstractframework-0.9.2 → abstractframework-0.9.4}/scripts/code.sh +0 -0
- {abstractframework-0.9.2 → abstractframework-0.9.4}/scripts/commit.sh +0 -0
- {abstractframework-0.9.2 → abstractframework-0.9.4}/scripts/console-local.sh +0 -0
- {abstractframework-0.9.2 → abstractframework-0.9.4}/scripts/console.sh +0 -0
- {abstractframework-0.9.2 → abstractframework-0.9.4}/scripts/core_operator_drive.py +0 -0
- {abstractframework-0.9.2 → abstractframework-0.9.4}/scripts/deps.sh +0 -0
- {abstractframework-0.9.2 → abstractframework-0.9.4}/scripts/entity-local.sh +0 -0
- {abstractframework-0.9.2 → abstractframework-0.9.4}/scripts/entity.sh +0 -0
- {abstractframework-0.9.2 → abstractframework-0.9.4}/scripts/event_inbox_flow_smoke.py +0 -0
- {abstractframework-0.9.2 → abstractframework-0.9.4}/scripts/flow-local.sh +0 -0
- {abstractframework-0.9.2 → abstractframework-0.9.4}/scripts/flow.sh +0 -0
- {abstractframework-0.9.2 → abstractframework-0.9.4}/scripts/gateway-flow-local.sh +0 -0
- {abstractframework-0.9.2 → abstractframework-0.9.4}/scripts/gateway-flow.sh +0 -0
- {abstractframework-0.9.2 → abstractframework-0.9.4}/scripts/gateway-local.sh +0 -0
- {abstractframework-0.9.2 → abstractframework-0.9.4}/scripts/gateway.sh +0 -0
- {abstractframework-0.9.2 → abstractframework-0.9.4}/scripts/gen_llms_full.py +0 -0
- {abstractframework-0.9.2 → abstractframework-0.9.4}/scripts/headless_fleet_bridge.py +0 -0
- {abstractframework-0.9.2 → abstractframework-0.9.4}/scripts/headless_fleet_demo.py +0 -0
- {abstractframework-0.9.2 → abstractframework-0.9.4}/scripts/headless_steer_repl.py +0 -0
- {abstractframework-0.9.2 → abstractframework-0.9.4}/scripts/lib/af_inventory.py +0 -0
- {abstractframework-0.9.2 → abstractframework-0.9.4}/scripts/lib/af_stack.sh +0 -0
- {abstractframework-0.9.2 → abstractframework-0.9.4}/scripts/lib/af_supervisor.sh +0 -0
- {abstractframework-0.9.2 → abstractframework-0.9.4}/scripts/lib/apps_common.sh +0 -0
- {abstractframework-0.9.2 → abstractframework-0.9.4}/scripts/lib/build_macos_installer.sh +0 -0
- {abstractframework-0.9.2 → abstractframework-0.9.4}/scripts/lib/gateway_user_tokens.py +0 -0
- {abstractframework-0.9.2 → abstractframework-0.9.4}/scripts/lib/repo_groups.sh +0 -0
- {abstractframework-0.9.2 → abstractframework-0.9.4}/scripts/meet_castor.sh +0 -0
- {abstractframework-0.9.2 → abstractframework-0.9.4}/scripts/observer-local.sh +0 -0
- {abstractframework-0.9.2 → abstractframework-0.9.4}/scripts/observer.sh +0 -0
- {abstractframework-0.9.2 → abstractframework-0.9.4}/scripts/plan_walkthrough.py +0 -0
- {abstractframework-0.9.2 → abstractframework-0.9.4}/scripts/pull.sh +0 -0
- {abstractframework-0.9.2 → abstractframework-0.9.4}/scripts/push.sh +0 -0
- {abstractframework-0.9.2 → abstractframework-0.9.4}/scripts/spawn_demo_agent.sh +0 -0
- {abstractframework-0.9.2 → abstractframework-0.9.4}/scripts/start-local.sh +0 -0
- {abstractframework-0.9.2 → abstractframework-0.9.4}/scripts/start.sh +0 -0
- {abstractframework-0.9.2 → abstractframework-0.9.4}/scripts/status.sh +0 -0
- {abstractframework-0.9.2 → abstractframework-0.9.4}/scripts/steer_repl.py +0 -0
- {abstractframework-0.9.2 → abstractframework-0.9.4}/scripts/tests/test_af_supervisor.sh +0 -0
- {abstractframework-0.9.2 → abstractframework-0.9.4}/scripts/tests/test_install_user_path.sh +0 -0
- {abstractframework-0.9.2 → abstractframework-0.9.4}/scripts/tests/test_repo_scripts.sh +0 -0
- {abstractframework-0.9.2 → abstractframework-0.9.4}/scripts/uninstall.sh +0 -0
- {abstractframework-0.9.2 → abstractframework-0.9.4}/scripts/visit_resume_cache_probe.py +0 -0
- {abstractframework-0.9.2 → abstractframework-0.9.4}/setup.cfg +0 -0
- {abstractframework-0.9.2 → abstractframework-0.9.4}/tests/test_install_app_upgrade.py +0 -0
- {abstractframework-0.9.2 → abstractframework-0.9.4}/tests/test_install_index_lag.py +0 -0
- {abstractframework-0.9.2 → abstractframework-0.9.4}/tests/test_install_profiles.py +0 -0
- {abstractframework-0.9.2 → abstractframework-0.9.4}/tests/test_install_ps1_gpu_stack.py +0 -0
- {abstractframework-0.9.2 → abstractframework-0.9.4}/tests/test_install_ps1_own_gateway.py +0 -0
- {abstractframework-0.9.2 → abstractframework-0.9.4}/tests/test_install_sh_gpu_stack.py +0 -0
- {abstractframework-0.9.2 → abstractframework-0.9.4}/tests/test_install_sh_gpu_twin.py +0 -0
- {abstractframework-0.9.2 → abstractframework-0.9.4}/tests/test_llms_full.py +0 -0
- {abstractframework-0.9.2 → abstractframework-0.9.4}/tests/test_uv_tool_install_atomicity.py +0 -0
|
@@ -6,6 +6,28 @@ All notable changes to AbstractFramework will be documented in this file.
|
|
|
6
6
|
|
|
7
7
|
Nothing yet.
|
|
8
8
|
|
|
9
|
+
## [0.9.4] - 2026-10-02
|
|
10
|
+
|
|
11
|
+
- Automations in Assistant, Code Web and Observer support a configurable growing-context budget at creation and editing, defaulting to 50,000 tokens. The budget control appears only for Growing context.
|
|
12
|
+
- Email result delivers each completed result to the selected Recipients. Code shows loading messages and spinners for conversations and automations, including initial gateway discovery.
|
|
13
|
+
- Pins AbstractRuntime 0.8.4, AbstractGateway 0.11.3 and AbstractAssistant 0.12.2. Installer app versions are Code 0.10.2 and Observer 0.6.1, both using UI Kit 0.5.1 (AbstractUIC release 0.5.2).
|
|
14
|
+
|
|
15
|
+
## [0.9.3] - 2026-10-02
|
|
16
|
+
|
|
17
|
+
### Fixed
|
|
18
|
+
|
|
19
|
+
- Pins abstractcore 2.23.1: on the in-gateway MLX lane the prefix cache is sized to the machine
|
|
20
|
+
(`min(8 GiB, working set / 4)` with a 512 MiB reserve), so a 24 GB Mac running Qwen3.8-27B keeps
|
|
21
|
+
the conversation warm instead of re-prefilling it every turn; and a text route with no
|
|
22
|
+
`speculation` key inherits optional MTP on a verified MTP model (only "Off" turns it off), which
|
|
23
|
+
restores speculative decoding where a console save had dropped the key.
|
|
24
|
+
- Pins abstractgateway 0.11.2: "Default workflow per app" always resolves a default for every app
|
|
25
|
+
interface that has an available workflow (shipped bundle first, else the newest); "Clients choose"
|
|
26
|
+
is gone, and each workflow is listed once across registry scopes.
|
|
27
|
+
- Pins abstractassistant 0.12.1: runs any registry scope the gateway resolves (fixes "Not sent —
|
|
28
|
+
Unsupported workflow registry_scope for AbstractAssistant: private"), and Settings no longer offers
|
|
29
|
+
"Keep the session after this app closes" (sessions belong to the gateway).
|
|
30
|
+
|
|
9
31
|
## [0.9.2] - 2026-10-02
|
|
10
32
|
|
|
11
33
|
### Changed
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: abstractframework
|
|
3
|
-
Version: 0.9.
|
|
3
|
+
Version: 0.9.4
|
|
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.11.
|
|
27
|
-
Requires-Dist: abstractassistant==0.12.
|
|
28
|
-
Requires-Dist: abstractcore==2.23.
|
|
29
|
-
Requires-Dist: AbstractRuntime==0.8.
|
|
26
|
+
Requires-Dist: abstractgateway==0.11.3
|
|
27
|
+
Requires-Dist: abstractassistant==0.12.2
|
|
28
|
+
Requires-Dist: abstractcore==2.23.1
|
|
29
|
+
Requires-Dist: AbstractRuntime==0.8.4
|
|
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.11.
|
|
40
|
-
Requires-Dist: abstractassistant[apple]==0.12.
|
|
39
|
+
Requires-Dist: abstractgateway[apple]==0.11.3; extra == "apple"
|
|
40
|
+
Requires-Dist: abstractassistant[apple]==0.12.2; platform_system == "Darwin" and extra == "apple"
|
|
41
41
|
Provides-Extra: gpu
|
|
42
|
-
Requires-Dist: abstractgateway[gpu]==0.11.
|
|
43
|
-
Requires-Dist: abstractassistant[gpu]==0.12.
|
|
42
|
+
Requires-Dist: abstractgateway[gpu]==0.11.3; extra == "gpu"
|
|
43
|
+
Requires-Dist: abstractassistant[gpu]==0.12.2; extra == "gpu"
|
|
44
44
|
Dynamic: license-file
|
|
45
45
|
|
|
46
46
|
# AbstractFramework
|
|
@@ -219,7 +219,7 @@ abstractgateway-console --gateway-url http://127.0.0.1:8080 --token <admin token
|
|
|
219
219
|
```
|
|
220
220
|
|
|
221
221
|
Container images are published for the gateway and the AbstractCore server:
|
|
222
|
-
`ghcr.io/lpalbou/abstractgateway:0.11.
|
|
222
|
+
`ghcr.io/lpalbou/abstractgateway:0.11.3` and `ghcr.io/lpalbou/abstractcore-server:2.23.1`.
|
|
223
223
|
|
|
224
224
|
For artifact and runtime-resource investigation, see
|
|
225
225
|
[Runtime artifacts and retrieval](docs/guide/runtime-artifacts.md).
|
|
@@ -369,7 +369,7 @@ pip install "abstractframework[gpu]"
|
|
|
369
369
|
| Apple | `pip install "abstractframework[apple]"` | macOS 14+ on Apple Silicon | 3.10–3.13 (F5-TTS voice cloning needs 3.11+) |
|
|
370
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+) |
|
|
371
371
|
|
|
372
|
-
### Release matrix (abstractframework 0.9.
|
|
372
|
+
### Release matrix (abstractframework 0.9.4)
|
|
373
373
|
|
|
374
374
|
`abstractframework` pins every Python package with `==`, so one version of the
|
|
375
375
|
meta-package always installs the same stack. The browser apps and Rust tools are
|
|
@@ -378,10 +378,10 @@ and tested together.
|
|
|
378
378
|
|
|
379
379
|
| Registry | Package | Version |
|
|
380
380
|
|---|---|---|
|
|
381
|
-
| PyPI | `abstractgateway` | 0.11.
|
|
382
|
-
| PyPI | `abstractassistant` | 0.12.
|
|
383
|
-
| PyPI | `abstractcore` | 2.23.
|
|
384
|
-
| PyPI | `AbstractRuntime` | 0.8.
|
|
381
|
+
| PyPI | `abstractgateway` | 0.11.3 |
|
|
382
|
+
| PyPI | `abstractassistant` | 0.12.2 |
|
|
383
|
+
| PyPI | `abstractcore` | 2.23.1 |
|
|
384
|
+
| PyPI | `AbstractRuntime` | 0.8.4 |
|
|
385
385
|
| PyPI | `abstractagent` | 0.3.17 |
|
|
386
386
|
| PyPI | `abstractskill` | 0.3.0 |
|
|
387
387
|
| PyPI | `AbstractMemory` | 0.3.0 |
|
|
@@ -391,16 +391,16 @@ and tested together.
|
|
|
391
391
|
| PyPI | `abstractmusic` | 0.1.15 |
|
|
392
392
|
| PyPI | `abstract3d` | 0.3.2 |
|
|
393
393
|
| npm | `@abstractframework/flow` | 0.7.0 |
|
|
394
|
-
| npm | `@abstractframework/code` | 0.10.
|
|
395
|
-
| npm | `@abstractframework/observer` | 0.6.
|
|
394
|
+
| npm | `@abstractframework/code` | 0.10.2 |
|
|
395
|
+
| npm | `@abstractframework/observer` | 0.6.1 |
|
|
396
396
|
| npm | `@abstractframework/continuum` | 0.6.0 |
|
|
397
397
|
| npm | `@abstractframework/entity` | 0.6.0 |
|
|
398
398
|
| crates.io | `abstractcode` | 0.8.0 |
|
|
399
399
|
| crates.io | `abstractgateway-console` | 0.14.0 |
|
|
400
400
|
| crates.io | `abstractcore-console` | 0.7.0 |
|
|
401
401
|
| crates.io | `abstracttui` | 0.6.0 |
|
|
402
|
-
| GHCR | `ghcr.io/lpalbou/abstractgateway` | 0.11.
|
|
403
|
-
| GHCR | `ghcr.io/lpalbou/abstractcore-server` | 2.23.
|
|
402
|
+
| GHCR | `ghcr.io/lpalbou/abstractgateway` | 0.11.3 (`gpu-latest` / `<version>-gpu` experimental) |
|
|
403
|
+
| GHCR | `ghcr.io/lpalbou/abstractcore-server` | 2.23.1 |
|
|
404
404
|
|
|
405
405
|
`abstract3d` (pinned above) comes with AbstractCore in every profile. The optional add-on that is
|
|
406
406
|
not part of any profile installs separately: `pip install abstractcamera` (0.2.1). `abstractskill` (pinned above)
|
|
@@ -174,7 +174,7 @@ abstractgateway-console --gateway-url http://127.0.0.1:8080 --token <admin token
|
|
|
174
174
|
```
|
|
175
175
|
|
|
176
176
|
Container images are published for the gateway and the AbstractCore server:
|
|
177
|
-
`ghcr.io/lpalbou/abstractgateway:0.11.
|
|
177
|
+
`ghcr.io/lpalbou/abstractgateway:0.11.3` and `ghcr.io/lpalbou/abstractcore-server:2.23.1`.
|
|
178
178
|
|
|
179
179
|
For artifact and runtime-resource investigation, see
|
|
180
180
|
[Runtime artifacts and retrieval](docs/guide/runtime-artifacts.md).
|
|
@@ -324,7 +324,7 @@ pip install "abstractframework[gpu]"
|
|
|
324
324
|
| Apple | `pip install "abstractframework[apple]"` | macOS 14+ on Apple Silicon | 3.10–3.13 (F5-TTS voice cloning needs 3.11+) |
|
|
325
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+) |
|
|
326
326
|
|
|
327
|
-
### Release matrix (abstractframework 0.9.
|
|
327
|
+
### Release matrix (abstractframework 0.9.4)
|
|
328
328
|
|
|
329
329
|
`abstractframework` pins every Python package with `==`, so one version of the
|
|
330
330
|
meta-package always installs the same stack. The browser apps and Rust tools are
|
|
@@ -333,10 +333,10 @@ and tested together.
|
|
|
333
333
|
|
|
334
334
|
| Registry | Package | Version |
|
|
335
335
|
|---|---|---|
|
|
336
|
-
| PyPI | `abstractgateway` | 0.11.
|
|
337
|
-
| PyPI | `abstractassistant` | 0.12.
|
|
338
|
-
| PyPI | `abstractcore` | 2.23.
|
|
339
|
-
| PyPI | `AbstractRuntime` | 0.8.
|
|
336
|
+
| PyPI | `abstractgateway` | 0.11.3 |
|
|
337
|
+
| PyPI | `abstractassistant` | 0.12.2 |
|
|
338
|
+
| PyPI | `abstractcore` | 2.23.1 |
|
|
339
|
+
| PyPI | `AbstractRuntime` | 0.8.4 |
|
|
340
340
|
| PyPI | `abstractagent` | 0.3.17 |
|
|
341
341
|
| PyPI | `abstractskill` | 0.3.0 |
|
|
342
342
|
| PyPI | `AbstractMemory` | 0.3.0 |
|
|
@@ -346,16 +346,16 @@ and tested together.
|
|
|
346
346
|
| PyPI | `abstractmusic` | 0.1.15 |
|
|
347
347
|
| PyPI | `abstract3d` | 0.3.2 |
|
|
348
348
|
| npm | `@abstractframework/flow` | 0.7.0 |
|
|
349
|
-
| npm | `@abstractframework/code` | 0.10.
|
|
350
|
-
| npm | `@abstractframework/observer` | 0.6.
|
|
349
|
+
| npm | `@abstractframework/code` | 0.10.2 |
|
|
350
|
+
| npm | `@abstractframework/observer` | 0.6.1 |
|
|
351
351
|
| npm | `@abstractframework/continuum` | 0.6.0 |
|
|
352
352
|
| npm | `@abstractframework/entity` | 0.6.0 |
|
|
353
353
|
| crates.io | `abstractcode` | 0.8.0 |
|
|
354
354
|
| crates.io | `abstractgateway-console` | 0.14.0 |
|
|
355
355
|
| crates.io | `abstractcore-console` | 0.7.0 |
|
|
356
356
|
| crates.io | `abstracttui` | 0.6.0 |
|
|
357
|
-
| GHCR | `ghcr.io/lpalbou/abstractgateway` | 0.11.
|
|
358
|
-
| GHCR | `ghcr.io/lpalbou/abstractcore-server` | 2.23.
|
|
357
|
+
| GHCR | `ghcr.io/lpalbou/abstractgateway` | 0.11.3 (`gpu-latest` / `<version>-gpu` experimental) |
|
|
358
|
+
| GHCR | `ghcr.io/lpalbou/abstractcore-server` | 2.23.1 |
|
|
359
359
|
|
|
360
360
|
`abstract3d` (pinned above) comes with AbstractCore in every profile. The optional add-on that is
|
|
361
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.9.
|
|
13
|
+
__version__ = "0.9.4"
|
|
14
14
|
__author__ = "Laurent-Philippe Albou"
|
|
15
15
|
__license__ = "MIT"
|
|
16
16
|
|
|
17
17
|
RELEASE_VERSIONS: dict[str, str] = {
|
|
18
|
-
"abstractcore": "2.23.
|
|
19
|
-
"abstractruntime": "0.8.
|
|
18
|
+
"abstractcore": "2.23.1",
|
|
19
|
+
"abstractruntime": "0.8.4",
|
|
20
20
|
"abstractagent": "0.3.17",
|
|
21
|
-
"abstractgateway": "0.11.
|
|
21
|
+
"abstractgateway": "0.11.3",
|
|
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.12.
|
|
29
|
+
"abstractassistant": "0.12.2",
|
|
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.7.0",
|
|
49
|
-
"@abstractframework/code": "0.10.
|
|
50
|
-
"@abstractframework/observer": "0.6.
|
|
49
|
+
"@abstractframework/code": "0.10.2",
|
|
50
|
+
"@abstractframework/observer": "0.6.1",
|
|
51
51
|
"@abstractframework/continuum": "0.6.0",
|
|
52
52
|
"@abstractframework/entity": "0.6.0",
|
|
53
53
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: abstractframework
|
|
3
|
-
Version: 0.9.
|
|
3
|
+
Version: 0.9.4
|
|
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.11.
|
|
27
|
-
Requires-Dist: abstractassistant==0.12.
|
|
28
|
-
Requires-Dist: abstractcore==2.23.
|
|
29
|
-
Requires-Dist: AbstractRuntime==0.8.
|
|
26
|
+
Requires-Dist: abstractgateway==0.11.3
|
|
27
|
+
Requires-Dist: abstractassistant==0.12.2
|
|
28
|
+
Requires-Dist: abstractcore==2.23.1
|
|
29
|
+
Requires-Dist: AbstractRuntime==0.8.4
|
|
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.11.
|
|
40
|
-
Requires-Dist: abstractassistant[apple]==0.12.
|
|
39
|
+
Requires-Dist: abstractgateway[apple]==0.11.3; extra == "apple"
|
|
40
|
+
Requires-Dist: abstractassistant[apple]==0.12.2; platform_system == "Darwin" and extra == "apple"
|
|
41
41
|
Provides-Extra: gpu
|
|
42
|
-
Requires-Dist: abstractgateway[gpu]==0.11.
|
|
43
|
-
Requires-Dist: abstractassistant[gpu]==0.12.
|
|
42
|
+
Requires-Dist: abstractgateway[gpu]==0.11.3; extra == "gpu"
|
|
43
|
+
Requires-Dist: abstractassistant[gpu]==0.12.2; extra == "gpu"
|
|
44
44
|
Dynamic: license-file
|
|
45
45
|
|
|
46
46
|
# AbstractFramework
|
|
@@ -219,7 +219,7 @@ abstractgateway-console --gateway-url http://127.0.0.1:8080 --token <admin token
|
|
|
219
219
|
```
|
|
220
220
|
|
|
221
221
|
Container images are published for the gateway and the AbstractCore server:
|
|
222
|
-
`ghcr.io/lpalbou/abstractgateway:0.11.
|
|
222
|
+
`ghcr.io/lpalbou/abstractgateway:0.11.3` and `ghcr.io/lpalbou/abstractcore-server:2.23.1`.
|
|
223
223
|
|
|
224
224
|
For artifact and runtime-resource investigation, see
|
|
225
225
|
[Runtime artifacts and retrieval](docs/guide/runtime-artifacts.md).
|
|
@@ -369,7 +369,7 @@ pip install "abstractframework[gpu]"
|
|
|
369
369
|
| Apple | `pip install "abstractframework[apple]"` | macOS 14+ on Apple Silicon | 3.10–3.13 (F5-TTS voice cloning needs 3.11+) |
|
|
370
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+) |
|
|
371
371
|
|
|
372
|
-
### Release matrix (abstractframework 0.9.
|
|
372
|
+
### Release matrix (abstractframework 0.9.4)
|
|
373
373
|
|
|
374
374
|
`abstractframework` pins every Python package with `==`, so one version of the
|
|
375
375
|
meta-package always installs the same stack. The browser apps and Rust tools are
|
|
@@ -378,10 +378,10 @@ and tested together.
|
|
|
378
378
|
|
|
379
379
|
| Registry | Package | Version |
|
|
380
380
|
|---|---|---|
|
|
381
|
-
| PyPI | `abstractgateway` | 0.11.
|
|
382
|
-
| PyPI | `abstractassistant` | 0.12.
|
|
383
|
-
| PyPI | `abstractcore` | 2.23.
|
|
384
|
-
| PyPI | `AbstractRuntime` | 0.8.
|
|
381
|
+
| PyPI | `abstractgateway` | 0.11.3 |
|
|
382
|
+
| PyPI | `abstractassistant` | 0.12.2 |
|
|
383
|
+
| PyPI | `abstractcore` | 2.23.1 |
|
|
384
|
+
| PyPI | `AbstractRuntime` | 0.8.4 |
|
|
385
385
|
| PyPI | `abstractagent` | 0.3.17 |
|
|
386
386
|
| PyPI | `abstractskill` | 0.3.0 |
|
|
387
387
|
| PyPI | `AbstractMemory` | 0.3.0 |
|
|
@@ -391,16 +391,16 @@ and tested together.
|
|
|
391
391
|
| PyPI | `abstractmusic` | 0.1.15 |
|
|
392
392
|
| PyPI | `abstract3d` | 0.3.2 |
|
|
393
393
|
| npm | `@abstractframework/flow` | 0.7.0 |
|
|
394
|
-
| npm | `@abstractframework/code` | 0.10.
|
|
395
|
-
| npm | `@abstractframework/observer` | 0.6.
|
|
394
|
+
| npm | `@abstractframework/code` | 0.10.2 |
|
|
395
|
+
| npm | `@abstractframework/observer` | 0.6.1 |
|
|
396
396
|
| npm | `@abstractframework/continuum` | 0.6.0 |
|
|
397
397
|
| npm | `@abstractframework/entity` | 0.6.0 |
|
|
398
398
|
| crates.io | `abstractcode` | 0.8.0 |
|
|
399
399
|
| crates.io | `abstractgateway-console` | 0.14.0 |
|
|
400
400
|
| crates.io | `abstractcore-console` | 0.7.0 |
|
|
401
401
|
| crates.io | `abstracttui` | 0.6.0 |
|
|
402
|
-
| GHCR | `ghcr.io/lpalbou/abstractgateway` | 0.11.
|
|
403
|
-
| GHCR | `ghcr.io/lpalbou/abstractcore-server` | 2.23.
|
|
402
|
+
| GHCR | `ghcr.io/lpalbou/abstractgateway` | 0.11.3 (`gpu-latest` / `<version>-gpu` experimental) |
|
|
403
|
+
| GHCR | `ghcr.io/lpalbou/abstractcore-server` | 2.23.1 |
|
|
404
404
|
|
|
405
405
|
`abstract3d` (pinned above) comes with AbstractCore in every profile. The optional add-on that is
|
|
406
406
|
not part of any profile installs separately: `pip install abstractcamera` (0.2.1). `abstractskill` (pinned above)
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
abstractgateway==0.11.
|
|
2
|
-
abstractassistant==0.12.
|
|
3
|
-
abstractcore==2.23.
|
|
4
|
-
AbstractRuntime==0.8.
|
|
1
|
+
abstractgateway==0.11.3
|
|
2
|
+
abstractassistant==0.12.2
|
|
3
|
+
abstractcore==2.23.1
|
|
4
|
+
AbstractRuntime==0.8.4
|
|
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.11.
|
|
15
|
+
abstractgateway[apple]==0.11.3
|
|
16
16
|
|
|
17
17
|
[apple:platform_system == "Darwin"]
|
|
18
|
-
abstractassistant[apple]==0.12.
|
|
18
|
+
abstractassistant[apple]==0.12.2
|
|
19
19
|
|
|
20
20
|
[gpu]
|
|
21
|
-
abstractgateway[gpu]==0.11.
|
|
22
|
-
abstractassistant[gpu]==0.12.
|
|
21
|
+
abstractgateway[gpu]==0.11.3
|
|
22
|
+
abstractassistant[gpu]==0.12.2
|
|
@@ -55,14 +55,14 @@ The response type returned by `llm.generate(...)`.
|
|
|
55
55
|
|
|
56
56
|
### `__version__`
|
|
57
57
|
|
|
58
|
-
The meta-package version (`0.9.
|
|
58
|
+
The meta-package version (`0.9.4` 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.9.
|
|
63
|
-
`abstractcore` 2.23.
|
|
62
|
+
Dictionary mapping each ecosystem package name to the pinned version for this release. In 0.9.4:
|
|
63
|
+
`abstractcore` 2.23.1, `abstractruntime` 0.8.4, `abstractagent` 0.3.17, `abstractgateway` 0.11.3,
|
|
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.12.
|
|
65
|
+
`abstractmusic` 0.1.15, `abstract3d` 0.3.2, `abstractassistant` 0.12.2.
|
|
66
66
|
|
|
67
67
|
### `PACKAGE_DISTRIBUTIONS`
|
|
68
68
|
|
|
@@ -72,8 +72,8 @@ 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.7.0, `@abstractframework/code` 0.10.
|
|
76
|
-
`@abstractframework/observer` 0.6.
|
|
75
|
+
`@abstractframework/flow` 0.7.0, `@abstractframework/code` 0.10.2,
|
|
76
|
+
`@abstractframework/observer` 0.6.1, `@abstractframework/continuum` 0.6.0 and
|
|
77
77
|
`@abstractframework/entity` 0.6.0. They also appear as `npm_apps` in the install manifest.
|
|
78
78
|
|
|
79
79
|
### `CRATE_RELEASE_VERSIONS`
|
|
@@ -58,12 +58,11 @@ page say so and stay disabled.
|
|
|
58
58
|
one-turn conversation. Use it for checks that stand on their own (memory use, disk space, a
|
|
59
59
|
health probe).
|
|
60
60
|
- *Growing*: every occurrence is the next turn of one conversation (session
|
|
61
|
-
`automation:<id>`) and receives the previous turns as history: the
|
|
62
|
-
of whole turns (no message is ever cut; the model keeps the rest of its context window). Use it
|
|
61
|
+
`automation:<id>`) and receives the previous turns as history: whole turns within the configured budget (50,000 tokens by default) (no message is ever cut; the model keeps the rest of its context window). Use it
|
|
63
62
|
when the answer depends on previous ticks ("the change since the previous check"). Each
|
|
64
63
|
occurrence run records what was replayed and dropped in `_runtime.session_history`.
|
|
65
64
|
- **Quiet by default.** An ordinary result updates the automation's history and notifies no one.
|
|
66
|
-
An occurrence asks for your attention
|
|
65
|
+
An occurrence asks for your attention when result email is enabled, when its output carries `notify`, when it failed after
|
|
67
66
|
its last retry, or while it waits for you (see [What notifies you](#what-notifies-you-and-when)).
|
|
68
67
|
- **Creating an automation is the consent for its tools.** An automation runs unattended, so it
|
|
69
68
|
cannot stop to ask before every tool call. With the default tool approval (`auto`, shown in the
|
|
@@ -132,8 +131,8 @@ The clock button in the palette header opens **Schedule this conversation…**:
|
|
|
132
131
|
minutes/hours/days, or once at a date and time; an optional first-run time (empty means now).
|
|
133
132
|
- **Context**: Independent (default) or Growing.
|
|
134
133
|
- **Tools**: Tools run without asking (default) or Ask each time.
|
|
135
|
-
- **Mailbox**: **When an email arrives** as the When choice, **Email
|
|
136
|
-
recipients
|
|
134
|
+
- **Mailbox**: **When an email arrives** as the When choice, **Email result** and the
|
|
135
|
+
result recipients (see [Email automations](#email-automations)).
|
|
137
136
|
|
|
138
137
|
**Schedule** creates the automation and opens it in the Assistant's Automations section.
|
|
139
138
|
|
|
@@ -147,8 +146,7 @@ Open **Launch** and switch **Run once | Automate** to **Automate**:
|
|
|
147
146
|
2. **When (UTC)**: **Repeat** every N minutes, hours or days, or **Once at** a date and time.
|
|
148
147
|
3. **Context**: Independent or Growing.
|
|
149
148
|
4. **Tools**: Tools run without asking, or Ask each time.
|
|
150
|
-
5. **Mailbox**: **When an email arrives** (a When choice), **Email
|
|
151
|
-
it may email without asking (see [Email automations](#email-automations)).
|
|
149
|
+
5. **Mailbox**: **When an email arrives** (a When choice), **Email result** and the result recipients (see [Email automations](#email-automations)).
|
|
152
150
|
|
|
153
151
|
**Advanced** holds the title, the first run time, "stop after this many runs", "stop at", skills
|
|
154
152
|
and the workspace. **Create automation** opens the new automation on the Automations page.
|
|
@@ -228,20 +226,17 @@ mailbox first — open My email", its controls are unavailable, and nothing emai
|
|
|
228
226
|
none of your email automations was active; mail sent right after you create the automation
|
|
229
227
|
counts. Mail that arrives while the gateway is stopped is read when it is back. The gateway only
|
|
230
228
|
reads the mailbox: it never marks, moves or deletes mail.
|
|
231
|
-
- **Email
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
- **May send email without asking to** — `policy.email_allowed_recipients`: **Only me** (the
|
|
236
|
-
default, `["self"]`) or **Me and these addresses**. A send to anyone else waits for your
|
|
237
|
-
approval, even with "Tools run without asking".
|
|
229
|
+
- **Email result** sends every completed run’s full result through your mailbox.
|
|
230
|
+
- **Recipients** appears when Email result is enabled: **Only me** (default) or **Me and
|
|
231
|
+
these addresses**. Destinations are stored in `notify.recipients`; email-tool permissions
|
|
232
|
+
remain separate. Mailbox availability, recipient policy and send limits still apply.
|
|
238
233
|
|
|
239
234
|
```text
|
|
240
235
|
"trigger": {"source_id": "email.received", "source_version": 1,
|
|
241
236
|
"config": {"every": "1h", "max_batch": 100,
|
|
242
237
|
"filter": {"from_domain_in": ["example.com"], "subject_contains": "invoice"}}},
|
|
243
|
-
"notify": {"channels": ["console", "email"]},
|
|
244
|
-
"policy": {"tool_approval": "auto"
|
|
238
|
+
"notify": {"channels": ["console", "email"], "recipients": ["self"]},
|
|
239
|
+
"policy": {"tool_approval": "auto"}
|
|
245
240
|
```
|
|
246
241
|
|
|
247
242
|
Inbound mail is data, never instructions. The occurrence receives the emails marked as untrusted,
|
|
@@ -489,7 +484,8 @@ disabled, and its tooltip first says why.
|
|
|
489
484
|
| A failure that a retry fixed, or a cancelled run | none | the history |
|
|
490
485
|
| A run waiting for you | counted in `attention.pending_waits` until answered | Assistant tray notification + `WAITING`; Observer "waiting for you" |
|
|
491
486
|
|
|
492
|
-
With **Email
|
|
487
|
+
With **Email result**, every completed run’s full result is emailed to the selected recipients,
|
|
488
|
+
even when the workflow does not return `notify`.
|
|
493
489
|
Your account page's two **Notifications** switches, both on by default once your mailbox is
|
|
494
490
|
connected, email you in any case when an automation fails after its last retry (**Job failed**)
|
|
495
491
|
and when one of your runs waits for your answer (**Approval needed**).
|
|
@@ -568,14 +564,24 @@ recorded. A wait the gateway does not type is shown without answer controls.
|
|
|
568
564
|
| An occurrence reads **running** for a long time | the agent is still working (LLM calls, tools), or waits for the shared model | open its ledger in the Observer to watch the steps |
|
|
569
565
|
| An occurrence reads **waiting** | it waits for a **person** (a question, a tool approval, an event) | answer it in the Assistant or the Observer |
|
|
570
566
|
| Every tick waits for a tool approval | the automation was created with **Ask each time** | answer each wait, or send `PATCH` with `{"changes": {"policy": {"tool_approval": "auto"}}}` (applies from the next run) |
|
|
571
|
-
| No notification ever arrives | quiet is the default
|
|
567
|
+
| No notification ever arrives | quiet is the default unless result email is enabled | enable **Email result** for completed results, or return `notify` from the workflow for selected console notices |
|
|
572
568
|
| Ticks are late or merged | a tick takes longer than the interval; missed ticks are coalesced | lengthen the interval or share the model with fewer automations |
|
|
573
569
|
| An email automation never runs | the mail was already there, arrived while no email automation was active, or is automatic mail (auto-replies, the framework's own mail); a model-running automation runs at most once an hour by default | send a new message after creating it; shorten `every`; set `"auto_submitted": "admit"` for others' automatic mail; check the mailbox state on your account page |
|
|
574
570
|
| "Connect a mailbox first — open My email" in the form | no connected, allowed mailbox | connect it on your account page (**Email** on your row of **Accounts**), or ask an administrator to switch **Mailboxes for users** on |
|
|
575
|
-
| An email send waits or is refused | a recipient other than you (or the automation's listed recipients) waits for approval; the recipient policy or send limits refuse | approve
|
|
571
|
+
| An email send waits or is refused | a recipient other than you (or the automation's listed recipients) waits for approval; the recipient policy or send limits refuse | approve the tool call, or edit the recipient rules and send limits under **Advanced** on your account page |
|
|
576
572
|
| A schedule shows `legacy` | it was created with `POST /api/gateway/runs/schedule` | it keeps its own controls; **Recreate as automation** in the Observer copies it into an automation (suspend the old one yourself) |
|
|
577
573
|
|
|
578
574
|
Legacy schedules are listed on the last page of `GET /api/gateway/automations` with `legacy:
|
|
579
575
|
true`, `revision: null` and `capabilities: ["legacy"]`; they are never converted, and
|
|
580
576
|
`GET /api/gateway/automations/{id}` answers 404 for them. For install, sign-in and provider
|
|
581
577
|
problems, see [Troubleshooting](troubleshooting.md).
|
|
578
|
+
|
|
579
|
+
## Max growing context
|
|
580
|
+
|
|
581
|
+
In Assistant, Code Web and Observer, select **Growing** to reveal **Max growing context
|
|
582
|
+
(tokens)**. Set it when creating or editing an automation; for example, enter `30000`
|
|
583
|
+
for a 30,000-token history budget. It defaults to 50,000 and is hidden for Independent runs.
|
|
584
|
+
The API field is `context.growing.max_tokens`, a positive integer. Changes apply to future
|
|
585
|
+
occurrences; retries retain the history admitted with that occurrence. The newest whole turn
|
|
586
|
+
is retained even when it alone exceeds the budget. These settings and result recipients
|
|
587
|
+
require AbstractGateway 0.11.3 with AbstractRuntime 0.8.4 or later.
|
|
@@ -34,7 +34,7 @@ No.
|
|
|
34
34
|
| Everything at compatible versions | `pip install abstractframework` |
|
|
35
35
|
| A browser app | the gateway console's **Apps** page (served at `/apps/<app>/` on the gateway), or on its own: `npx @abstractframework/<flow\|code\|observer\|continuum\|entity> --gateway-url <url>` |
|
|
36
36
|
| A terminal client | `cargo install abstractcode`, `cargo install abstractgateway-console` or `cargo install abstractcore-console` |
|
|
37
|
-
| A container deployment | `ghcr.io/lpalbou/abstractgateway:0.11.
|
|
37
|
+
| A container deployment | `ghcr.io/lpalbou/abstractgateway:0.11.3` |
|
|
38
38
|
|
|
39
39
|
See [Install AbstractFramework](install.md) for the Light / Apple / GPU chooser. Light is
|
|
40
40
|
remote-first, not reduced-functionality: multimodal and embeddings still work through remote or
|
|
@@ -13,7 +13,7 @@ Every signed-in person can connect **their own** mailbox. It is used for three t
|
|
|
13
13
|
|
|
14
14
|
- **automations on new mail**: the **When an email arrives** trigger (`email.received@1`);
|
|
15
15
|
- **email notifications**: **Job failed** and **Approval needed**, plus the results of automations
|
|
16
|
-
set to **Email
|
|
16
|
+
set to **Email result**, sent through your own mailbox to the selected recipients;
|
|
17
17
|
- **sign-in by email**: **Forgot your token? Email me a sign-in code** on the gateway's sign-in
|
|
18
18
|
page.
|
|
19
19
|
|
|
@@ -110,8 +110,7 @@ switch; they need a connected, allowed mailbox.
|
|
|
110
110
|
## Automations on new mail
|
|
111
111
|
|
|
112
112
|
With your mailbox connected, the Assistant, the Observer and AbstractCode's browser client offer
|
|
113
|
-
**When an email arrives**, **Email
|
|
114
|
-
asking. The rules that matter:
|
|
113
|
+
**When an email arrives**, **Email result** and the result **Recipients**. The rules that matter:
|
|
115
114
|
|
|
116
115
|
- **Only new mail.** Mail already in your mailbox when the watcher starts, or that arrived while none
|
|
117
116
|
of your email automations was active, is never processed. Mail that arrives while the gateway is
|
|
@@ -150,9 +149,8 @@ is connected (until then they show "Connect a mailbox first."):
|
|
|
150
149
|
| **Job failed** | an automation of yours, or a run you asked to be emailed about, failed after its retries |
|
|
151
150
|
| **Approval needed** | a run is waiting for your answer |
|
|
152
151
|
|
|
153
|
-
An automation set to **Email
|
|
154
|
-
|
|
155
|
-
asked. Each notice is queued once and sent once, through your own mailbox, to your email address.
|
|
152
|
+
An automation set to **Email result** emails every completed run’s full result to its selected recipients, and a run started with an email notice emails you when it finishes or fails, as
|
|
153
|
+
asked. Each notice is queued once and sent once, through your own mailbox; other notices use your own email address.
|
|
156
154
|
|
|
157
155
|
**Send a test** sends one notification now and always answers with a sentence: "Sent to
|
|
158
156
|
me@example.com.", or why not ("Not sent: hourly limit reached (100 of 100 this hour) — resets at
|
|
@@ -197,7 +197,7 @@ The line always runs the installer of the latest AbstractFramework release. It:
|
|
|
197
197
|
<latest>`, or `AbstractFramework <yours> found: already up to date` (every part is still checked,
|
|
198
198
|
and repaired when needed). An install made by 0.6.1 or earlier recorded no release, so its first
|
|
199
199
|
upgrade says `AbstractFramework found (abstractgateway 0.7.1; its release was not recorded):
|
|
200
|
-
upgrading to AbstractFramework 0.9.
|
|
200
|
+
upgrading to AbstractFramework 0.9.4` (with the gateway version you have);
|
|
201
201
|
- installs the gateway version that release pins, and every library the gateway uses
|
|
202
202
|
(AbstractCore, AbstractRuntime, AbstractAgent, AbstractSkill, AbstractMemory, AbstractSemantics
|
|
203
203
|
and the voice, vision, music and 3D packages) at the exact version released and tested with it ([Check your versions](#check-your-versions) shows
|
|
@@ -245,7 +245,7 @@ The line always runs the installer of the latest AbstractFramework release. It:
|
|
|
245
245
|
|
|
246
246
|
Installs made by AbstractFramework 0.6.1 or earlier recorded neither their release nor your install
|
|
247
247
|
options. The first re-run says `AbstractFramework found (abstractgateway <version>; its release was
|
|
248
|
-
not recorded): upgrading to AbstractFramework 0.9.
|
|
248
|
+
not recorded): upgrading to AbstractFramework 0.9.4`, and reads your options from what is installed: whether the terminal console and `abstractcode` are
|
|
249
249
|
there, whether the gateway has the tray extra and the AbstractCore commands, whether the compiled
|
|
250
250
|
extras were built (`--full`), and a custom data directory through the gateway pointer. It prints
|
|
251
251
|
what it found (`read from disk: …`) and records it for later runs. An option the installer did not
|
|
@@ -465,7 +465,7 @@ The Mac package, the `.command` files and the one line all run the same script,
|
|
|
465
465
|
login** switch counts), a first install leaves it off.
|
|
466
466
|
3. Installs [uv](https://docs.astral.sh/uv/) when it is missing, then Python 3.12 through uv.
|
|
467
467
|
4. Installs the gateway as an isolated uv tool, pinned to this release:
|
|
468
|
-
`uv tool install --python 3.12 "abstractgateway[<profile>,tray]==0.11.
|
|
468
|
+
`uv tool install --python 3.12 "abstractgateway[<profile>,tray]==0.11.3"`, from prebuilt wheels
|
|
469
469
|
only (see [No compiler needed](#no-compiler-needed)), and checks that the command starts
|
|
470
470
|
(reinstalling it in place when it does not). Every profile also gets local voice,
|
|
471
471
|
`--with "abstractvoice[supertonic,stt]==0.13.2"` (the release's AbstractVoice): Supertonic
|
|
@@ -810,7 +810,7 @@ instead of starting a browser.
|
|
|
810
810
|
```bash
|
|
811
811
|
curl -LsSf https://astral.sh/uv/install.sh | sh # Windows: irm https://astral.sh/uv/install.ps1 | iex
|
|
812
812
|
uv python install 3.12
|
|
813
|
-
uv tool install --python 3.12 "abstractgateway[tray]==0.11.
|
|
813
|
+
uv tool install --python 3.12 "abstractgateway[tray]==0.11.3" # [apple,tray] or [gpu,tray] for local engines
|
|
814
814
|
# (add --with and --overrides as shown by `install.sh --print` to avoid compiling)
|
|
815
815
|
uv tool update-shell # puts ~/.local/bin on PATH; open a new terminal
|
|
816
816
|
abstractgateway service install --port 8080 # or: abstractgateway serve
|
|
@@ -937,8 +937,8 @@ Python 3.11 to 3.13), but it gets PyPI's CPU-only PyTorch and no llama.cpp: use
|
|
|
937
937
|
installer, which adds PyTorch's CUDA build and llama.cpp's prebuilt GPU build
|
|
938
938
|
([GPU on Windows](#gpu-on-windows-nvidia)).
|
|
939
939
|
|
|
940
|
-
`abstractframework` 0.9.
|
|
941
|
-
`abstractcore==2.23.
|
|
940
|
+
`abstractframework` 0.9.4 pins `abstractgateway==0.11.3`, `abstractassistant==0.12.2`,
|
|
941
|
+
`abstractcore==2.23.1`, `AbstractRuntime==0.8.4`, `abstractagent==0.3.17`, `abstractskill==0.3.0`,
|
|
942
942
|
`AbstractMemory==0.3.0`, `abstractsemantics==0.0.5`, `abstractvoice==0.13.2`,
|
|
943
943
|
`abstractvision==0.3.33`, `abstractmusic==0.1.15` and `abstract3d==0.3.2`. The `apple` and `gpu` extras select
|
|
944
944
|
`abstractgateway[apple|gpu]` and `abstractassistant[apple|gpu]` at the same versions
|
|
@@ -1029,12 +1029,12 @@ Run or install them next to the Python stack:
|
|
|
1029
1029
|
| Tool | Command | Version released with 0.8.0 |
|
|
1030
1030
|
|---|---|---|
|
|
1031
1031
|
| Gateway web console | built into `abstractgateway`: open the link `abstractgateway serve` prints (`http://127.0.0.1:8080/console#claim=…`) | 0.10.0 |
|
|
1032
|
-
| Core web console | built into `abstractcore`: open the link `abstractcore serve` prints (`http://127.0.0.1:8000/console#claim=…`) | 2.23.
|
|
1032
|
+
| Core web console | built into `abstractcore`: open the link `abstractcore serve` prints (`http://127.0.0.1:8000/console#claim=…`) | 2.23.1 |
|
|
1033
1033
|
| Core terminal console | `cargo install abstractcore-console` (Rust 1.87+), then `abstractcore-console` (uses the `abstractcore` command). The installers do not build it: it is the console of a standalone `abstractcore serve`, and the gateway's terminal console already has its Models and Engines screens | 0.7.0 |
|
|
1034
1034
|
| Gateway terminal console | built by the installer (`--no-console` skips it), or `cargo install abstractgateway-console` (Rust 1.87+); then `abstractgateway-console --gateway-url http://127.0.0.1:8080 --token <admin token>` | 0.14.0 |
|
|
1035
1035
|
| Flow Editor | the console's **Apps** page (opens at `/apps/flow/`), or on its own: `npx @abstractframework/flow --gateway-url <url>` | 0.7.0 |
|
|
1036
|
-
| Code Web UI | the console's **Apps** page (`/apps/code/`), or `npx @abstractframework/code --gateway-url <url>` | 0.10.
|
|
1037
|
-
| Observer | the console's **Apps** page (`/apps/observer/`), or `npx @abstractframework/observer --gateway-url <url>` | 0.6.
|
|
1036
|
+
| Code Web UI | the console's **Apps** page (`/apps/code/`), or `npx @abstractframework/code --gateway-url <url>` | 0.10.2 |
|
|
1037
|
+
| Observer | the console's **Apps** page (`/apps/observer/`), or `npx @abstractframework/observer --gateway-url <url>` | 0.6.1 |
|
|
1038
1038
|
| Continuum console | the console's **Apps** page (`/apps/continuum/`), or `npx @abstractframework/continuum --gateway-url <url>` | 0.6.0 |
|
|
1039
1039
|
| Entity manager | the console's **Apps** page (`/apps/entity/`), or `npx @abstractframework/entity --gateway-url <url>` | 0.6.0 |
|
|
1040
1040
|
| AbstractCode terminal client | `cargo install abstractcode`, or a prebuilt binary from the [AbstractCode GitHub release](https://github.com/lpalbou/AbstractCode/releases) | 0.8.0 |
|
|
@@ -1080,7 +1080,7 @@ docker run \
|
|
|
1080
1080
|
-v "$PWD/runtime:/data" \
|
|
1081
1081
|
-e ABSTRACTGATEWAY_DATA_DIR=/data \
|
|
1082
1082
|
-e ABSTRACTGATEWAY_USER_AUTH=1 \
|
|
1083
|
-
ghcr.io/lpalbou/abstractgateway:0.11.
|
|
1083
|
+
ghcr.io/lpalbou/abstractgateway:0.11.3
|
|
1084
1084
|
```
|
|
1085
1085
|
|
|
1086
1086
|
This is the Light container: full framework capabilities through remote/endpoint inference, without
|
|
@@ -1088,7 +1088,7 @@ local MLX/CUDA stacks. On first start it creates `default/admin` and writes the
|
|
|
1088
1088
|
`runtime/auth/bootstrap-admin-token`. Use `ghcr.io/lpalbou/abstractgateway:gpu-latest` only on an
|
|
1089
1089
|
NVIDIA host when you explicitly want the local GPU profile (pinned tags are `<version>-gpu`, published on a best-effort basis; this image is
|
|
1090
1090
|
experimental). The AbstractCore OpenAI-compatible server is also published as
|
|
1091
|
-
`ghcr.io/lpalbou/abstractcore-server:2.23.
|
|
1091
|
+
`ghcr.io/lpalbou/abstractcore-server:2.23.1`.
|
|
1092
1092
|
|
|
1093
1093
|
## How installs are designed
|
|
1094
1094
|
|