abstractframework 0.6.1__tar.gz → 0.6.2__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.1 → abstractframework-0.6.2}/CHANGELOG.md +105 -0
- {abstractframework-0.6.1/abstractframework.egg-info → abstractframework-0.6.2}/PKG-INFO +42 -30
- {abstractframework-0.6.1 → abstractframework-0.6.2}/README.md +35 -24
- {abstractframework-0.6.1 → abstractframework-0.6.2}/abstractframework/__init__.py +12 -15
- {abstractframework-0.6.1 → abstractframework-0.6.2/abstractframework.egg-info}/PKG-INFO +42 -30
- {abstractframework-0.6.1 → abstractframework-0.6.2}/abstractframework.egg-info/requires.txt +6 -5
- {abstractframework-0.6.1 → abstractframework-0.6.2}/docs/api.md +11 -7
- {abstractframework-0.6.1 → abstractframework-0.6.2}/docs/automations.md +1 -1
- {abstractframework-0.6.1 → abstractframework-0.6.2}/docs/faq.md +13 -3
- {abstractframework-0.6.1 → abstractframework-0.6.2}/docs/getting-started.md +43 -28
- {abstractframework-0.6.1 → abstractframework-0.6.2}/docs/guide/apple-local-gateway-flow.md +5 -10
- {abstractframework-0.6.1 → abstractframework-0.6.2}/docs/guide/scheduled-workflows.md +6 -2
- {abstractframework-0.6.1 → abstractframework-0.6.2}/docs/guide/summoned-entities.md +4 -4
- {abstractframework-0.6.1 → abstractframework-0.6.2}/docs/guide/telegram-integration.md +3 -2
- {abstractframework-0.6.1 → abstractframework-0.6.2}/docs/install.md +222 -22
- {abstractframework-0.6.1 → abstractframework-0.6.2}/docs/installers/implementation-plan.md +1 -1
- {abstractframework-0.6.1 → abstractframework-0.6.2}/docs/installers/strategy.md +3 -2
- {abstractframework-0.6.1 → abstractframework-0.6.2}/docs/installers/user-journeys.md +9 -4
- {abstractframework-0.6.1 → abstractframework-0.6.2}/docs/scenarios/gateway-first-local-dev.md +3 -5
- {abstractframework-0.6.1 → abstractframework-0.6.2}/docs/scenarios/telegram-permanent-contact.md +3 -2
- {abstractframework-0.6.1 → abstractframework-0.6.2}/docs/workspace-scripts.md +1 -1
- {abstractframework-0.6.1 → abstractframework-0.6.2}/llms-full.txt +377 -128
- {abstractframework-0.6.1 → abstractframework-0.6.2}/llms.txt +4 -3
- {abstractframework-0.6.1 → abstractframework-0.6.2}/pyproject.toml +7 -6
- {abstractframework-0.6.1 → abstractframework-0.6.2}/scripts/build.sh +11 -3
- {abstractframework-0.6.1 → abstractframework-0.6.2}/scripts/install.sh +382 -71
- {abstractframework-0.6.1 → abstractframework-0.6.2}/scripts/start-local.sh +2 -2
- {abstractframework-0.6.1 → abstractframework-0.6.2}/scripts/tests/test_install_user_path.sh +230 -6
- {abstractframework-0.6.1 → abstractframework-0.6.2}/scripts/tests/test_inventory.sh +16 -2
- {abstractframework-0.6.1 → abstractframework-0.6.2}/tests/test_install_profiles.py +204 -5
- {abstractframework-0.6.1 → abstractframework-0.6.2}/LICENSE +0 -0
- {abstractframework-0.6.1 → abstractframework-0.6.2}/MANIFEST.in +0 -0
- {abstractframework-0.6.1 → abstractframework-0.6.2}/abstractframework/__main__.py +0 -0
- {abstractframework-0.6.1 → abstractframework-0.6.2}/abstractframework/cli.py +0 -0
- {abstractframework-0.6.1 → abstractframework-0.6.2}/abstractframework/install_manifest.py +0 -0
- {abstractframework-0.6.1 → abstractframework-0.6.2}/abstractframework/py.typed +0 -0
- {abstractframework-0.6.1 → abstractframework-0.6.2}/abstractframework.egg-info/SOURCES.txt +0 -0
- {abstractframework-0.6.1 → abstractframework-0.6.2}/abstractframework.egg-info/dependency_links.txt +0 -0
- {abstractframework-0.6.1 → abstractframework-0.6.2}/abstractframework.egg-info/entry_points.txt +0 -0
- {abstractframework-0.6.1 → abstractframework-0.6.2}/abstractframework.egg-info/top_level.txt +0 -0
- {abstractframework-0.6.1 → abstractframework-0.6.2}/docs/README.md +0 -0
- {abstractframework-0.6.1 → abstractframework-0.6.2}/docs/adr/0001-layered-architecture.md +0 -0
- {abstractframework-0.6.1 → abstractframework-0.6.2}/docs/adr/0002-effect-system-design.md +0 -0
- {abstractframework-0.6.1 → abstractframework-0.6.2}/docs/adr/0003-tool-system-architecture.md +0 -0
- {abstractframework-0.6.1 → abstractframework-0.6.2}/docs/adr/0004-observability-strategy.md +0 -0
- {abstractframework-0.6.1 → abstractframework-0.6.2}/docs/adr/0005-memory-architecture.md +0 -0
- {abstractframework-0.6.1 → abstractframework-0.6.2}/docs/adr/0006-durable-tool-execution.md +0 -0
- {abstractframework-0.6.1 → abstractframework-0.6.2}/docs/adr/0007-active-context-and-memory-provenance.md +0 -0
- {abstractframework-0.6.1 → abstractframework-0.6.2}/docs/adr/0008-token-terminology.md +0 -0
- {abstractframework-0.6.1 → abstractframework-0.6.2}/docs/adr/0009-connected-memory-recall-and-provenance.md +0 -0
- {abstractframework-0.6.1 → abstractframework-0.6.2}/docs/adr/0010-runtime-owned-node-traces.md +0 -0
- {abstractframework-0.6.1 → abstractframework-0.6.2}/docs/adr/0011-ledger-subscriptions-and-event-bridge.md +0 -0
- {abstractframework-0.6.1 → abstractframework-0.6.2}/docs/adr/0012-portable-workflowartifact.md +0 -0
- {abstractframework-0.6.1 → abstractframework-0.6.2}/docs/adr/0013-durable-run-controls-pause-resume-cancel.md +0 -0
- {abstractframework-0.6.1 → abstractframework-0.6.2}/docs/adr/0014-runtime-authority-timeouts.md +0 -0
- {abstractframework-0.6.1 → abstractframework-0.6.2}/docs/adr/0015-execution-targets-and-remote-tool-workers.md +0 -0
- {abstractframework-0.6.1 → abstractframework-0.6.2}/docs/adr/0016-tool-calling-pipeline-and-responsibility-boundaries.md +0 -0
- {abstractframework-0.6.1 → abstractframework-0.6.2}/docs/adr/0017-host-ui-events-and-durable-prompts.md +0 -0
- {abstractframework-0.6.1 → abstractframework-0.6.2}/docs/adr/0018-durable-run-gateway-and-remote-host-control-plane.md +0 -0
- {abstractframework-0.6.1 → abstractframework-0.6.2}/docs/adr/0019-testing-strategy-and-levels.md +0 -0
- {abstractframework-0.6.1 → abstractframework-0.6.2}/docs/adr/0020-agent-host-pool-and-orchestrator-placement.md +0 -0
- {abstractframework-0.6.1 → abstractframework-0.6.2}/docs/adr/0021-deployment-topologies-and-supported-scenarios.md +0 -0
- {abstractframework-0.6.1 → abstractframework-0.6.2}/docs/adr/0022-orchestrator-host-and-runtime-daemonization.md +0 -0
- {abstractframework-0.6.1 → abstractframework-0.6.2}/docs/adr/0023-file-attachment-path-resolution-and-authorization.md +0 -0
- {abstractframework-0.6.1 → abstractframework-0.6.2}/docs/adr/0024-attachment-placeholders-and-compaction-invariants.md +0 -0
- {abstractframework-0.6.1 → abstractframework-0.6.2}/docs/adr/0025-kg-entity-normalization-and-dedup.md +0 -0
- {abstractframework-0.6.1 → abstractframework-0.6.2}/docs/adr/0026-truncation-policy-and-contract.md +0 -0
- {abstractframework-0.6.1 → abstractframework-0.6.2}/docs/adr/0027-timeout-policy-and-contract.md +0 -0
- {abstractframework-0.6.1 → abstractframework-0.6.2}/docs/adr/0028-capabilities-plugins-and-library-framework-modes.md +0 -0
- {abstractframework-0.6.1 → abstractframework-0.6.2}/docs/adr/0029-permissive-dependency-and-licensing-policy.md +0 -0
- {abstractframework-0.6.1 → abstractframework-0.6.2}/docs/adr/0030-security-test-fixtures-and-isolation.md +0 -0
- {abstractframework-0.6.1 → abstractframework-0.6.2}/docs/adr/0031-workflow-llm-routing-overrides-provider-model-and-base-url.md +0 -0
- {abstractframework-0.6.1 → abstractframework-0.6.2}/docs/adr/0032-package-dependency-boundaries-and-gateway-first-apps.md +0 -0
- {abstractframework-0.6.1 → abstractframework-0.6.2}/docs/adr/0033-install-profiles-config-entrypoints-and-server-boundaries.md +0 -0
- {abstractframework-0.6.1 → abstractframework-0.6.2}/docs/adr/0034-framework-release-sequence-and-gates.md +0 -0
- {abstractframework-0.6.1 → abstractframework-0.6.2}/docs/adr/0035-capability-routing-defaults.md +0 -0
- {abstractframework-0.6.1 → abstractframework-0.6.2}/docs/adr/0036-artifact-descriptor-contract.md +0 -0
- {abstractframework-0.6.1 → abstractframework-0.6.2}/docs/adr/0037-hosted-file-source-contract-and-workspacepath-authority.md +0 -0
- {abstractframework-0.6.1 → abstractframework-0.6.2}/docs/adr/0038-script-bootstrap-and-gateway-console-install.md +0 -0
- {abstractframework-0.6.1 → abstractframework-0.6.2}/docs/adr/README.md +0 -0
- {abstractframework-0.6.1 → abstractframework-0.6.2}/docs/adr/memory-recall-levels.md +0 -0
- {abstractframework-0.6.1 → abstractframework-0.6.2}/docs/adr/reorg/001_music_as_capability_plugin_via_acestep_api.md +0 -0
- {abstractframework-0.6.1 → abstractframework-0.6.2}/docs/adr/reorg/002_abstractmusic_inprocess_local_generation.md +0 -0
- {abstractframework-0.6.1 → abstractframework-0.6.2}/docs/adr/reorg/003_abstractmusic_acestep_v15_backend_source_strategy.md +0 -0
- {abstractframework-0.6.1 → abstractframework-0.6.2}/docs/adr/reorg/004_smartnote_thin_client_architecture.md +0 -0
- {abstractframework-0.6.1 → abstractframework-0.6.2}/docs/adr/reorg/005_smartnote_artifact_first_cards.md +0 -0
- {abstractframework-0.6.1 → abstractframework-0.6.2}/docs/adr/reorg/2026-02-21_gateway-first-assistant.md +0 -0
- {abstractframework-0.6.1 → abstractframework-0.6.2}/docs/adr/reorg/2026-02-21_installer_manager_strategy.md +0 -0
- {abstractframework-0.6.1 → abstractframework-0.6.2}/docs/adr/reorg/2026-02-21_macos_installer_manager.md +0 -0
- {abstractframework-0.6.1 → abstractframework-0.6.2}/docs/agent-sessions.md +0 -0
- {abstractframework-0.6.1 → abstractframework-0.6.2}/docs/architecture.md +0 -0
- {abstractframework-0.6.1 → abstractframework-0.6.2}/docs/claude/README.md +0 -0
- {abstractframework-0.6.1 → abstractframework-0.6.2}/docs/claude/abstractframework-fit.md +0 -0
- {abstractframework-0.6.1 → abstractframework-0.6.2}/docs/claude/claude-skills-overview.md +0 -0
- {abstractframework-0.6.1 → abstractframework-0.6.2}/docs/claude/claude-skills-sources.md +0 -0
- {abstractframework-0.6.1 → abstractframework-0.6.2}/docs/claude/claude-skills-top-20.md +0 -0
- {abstractframework-0.6.1 → abstractframework-0.6.2}/docs/comparisons/README.md +0 -0
- {abstractframework-0.6.1 → abstractframework-0.6.2}/docs/configuration.md +0 -0
- {abstractframework-0.6.1 → abstractframework-0.6.2}/docs/glossary.md +0 -0
- {abstractframework-0.6.1 → abstractframework-0.6.2}/docs/guide/LANDING.md +0 -0
- {abstractframework-0.6.1 → abstractframework-0.6.2}/docs/guide/README.md +0 -0
- {abstractframework-0.6.1 → abstractframework-0.6.2}/docs/guide/agent-skills.md +0 -0
- {abstractframework-0.6.1 → abstractframework-0.6.2}/docs/guide/agent-vs-llm.md +0 -0
- {abstractframework-0.6.1 → abstractframework-0.6.2}/docs/guide/agora-workflow-agent.md +0 -0
- {abstractframework-0.6.1 → abstractframework-0.6.2}/docs/guide/capability-plugins.md +0 -0
- {abstractframework-0.6.1 → abstractframework-0.6.2}/docs/guide/capability-routing-defaults.md +0 -0
- {abstractframework-0.6.1 → abstractframework-0.6.2}/docs/guide/deployment-iphone.md +0 -0
- {abstractframework-0.6.1 → abstractframework-0.6.2}/docs/guide/deployment-topologies.md +0 -0
- {abstractframework-0.6.1 → abstractframework-0.6.2}/docs/guide/deployment-web.md +0 -0
- {abstractframework-0.6.1 → abstractframework-0.6.2}/docs/guide/email-integration.md +0 -0
- {abstractframework-0.6.1 → abstractframework-0.6.2}/docs/guide/event-inbox-agent.md +0 -0
- {abstractframework-0.6.1 → abstractframework-0.6.2}/docs/guide/flow-and-kg-memory.md +0 -0
- {abstractframework-0.6.1 → abstractframework-0.6.2}/docs/guide/gateway-security.md +0 -0
- {abstractframework-0.6.1 → abstractframework-0.6.2}/docs/guide/headless-swarm.md +0 -0
- {abstractframework-0.6.1 → abstractframework-0.6.2}/docs/guide/process-manager-env-vars.md +0 -0
- {abstractframework-0.6.1 → abstractframework-0.6.2}/docs/guide/prompt-caching.md +0 -0
- {abstractframework-0.6.1 → abstractframework-0.6.2}/docs/guide/runtime-artifacts.md +0 -0
- {abstractframework-0.6.1 → abstractframework-0.6.2}/docs/guide/runtime-scope.md +0 -0
- {abstractframework-0.6.1 → abstractframework-0.6.2}/docs/guide/workflow-bundles.md +0 -0
- {abstractframework-0.6.1 → abstractframework-0.6.2}/docs/installers/README.md +0 -0
- {abstractframework-0.6.1 → abstractframework-0.6.2}/docs/installers/components.md +0 -0
- {abstractframework-0.6.1 → abstractframework-0.6.2}/docs/installers/operations-and-support.md +0 -0
- {abstractframework-0.6.1 → abstractframework-0.6.2}/docs/installers/release-and-manifest.md +0 -0
- {abstractframework-0.6.1 → abstractframework-0.6.2}/docs/installers/security-and-os-blocks.md +0 -0
- {abstractframework-0.6.1 → abstractframework-0.6.2}/docs/prompts/agora-collaboration.md +0 -0
- {abstractframework-0.6.1 → abstractframework-0.6.2}/docs/scenarios/README.md +0 -0
- {abstractframework-0.6.1 → abstractframework-0.6.2}/docs/scenarios/email-inbox-agent.md +0 -0
- {abstractframework-0.6.1 → abstractframework-0.6.2}/docs/scenarios/offline-coding-assistant.md +0 -0
- {abstractframework-0.6.1 → abstractframework-0.6.2}/docs/scenarios/phone-thin-client.md +0 -0
- {abstractframework-0.6.1 → abstractframework-0.6.2}/docs/scenarios/specialized-agent-flow.md +0 -0
- {abstractframework-0.6.1 → abstractframework-0.6.2}/docs/scenarios/workflow-bundle-lifecycle.md +0 -0
- {abstractframework-0.6.1 → abstractframework-0.6.2}/docs/skills/README.md +0 -0
- {abstractframework-0.6.1 → abstractframework-0.6.2}/docs/skills/abstractframework-agent-skills-fit.md +0 -0
- {abstractframework-0.6.1 → abstractframework-0.6.2}/docs/skills/abstractframework-architecture-deep-dive.md +0 -0
- {abstractframework-0.6.1 → abstractframework-0.6.2}/docs/skills/agent-skills-ecosystem-scan.md +0 -0
- {abstractframework-0.6.1 → abstractframework-0.6.2}/docs/skills/agent-skills-ecosystem-sources.md +0 -0
- {abstractframework-0.6.1 → abstractframework-0.6.2}/docs/skills/claude-agent-skills-overview.md +0 -0
- {abstractframework-0.6.1 → abstractframework-0.6.2}/docs/skills/claude-agent-skills-sources.md +0 -0
- {abstractframework-0.6.1 → abstractframework-0.6.2}/docs/skills/claude-agent-skills-top-20.md +0 -0
- {abstractframework-0.6.1 → abstractframework-0.6.2}/docs/troubleshooting.md +0 -0
- {abstractframework-0.6.1 → abstractframework-0.6.2}/scripts/af-local.sh +0 -0
- {abstractframework-0.6.1 → abstractframework-0.6.2}/scripts/af.sh +0 -0
- {abstractframework-0.6.1 → abstractframework-0.6.2}/scripts/agora_react_flow_smoke.py +0 -0
- {abstractframework-0.6.1 → abstractframework-0.6.2}/scripts/assistant-local.sh +0 -0
- {abstractframework-0.6.1 → abstractframework-0.6.2}/scripts/assistant.sh +0 -0
- {abstractframework-0.6.1 → abstractframework-0.6.2}/scripts/cache_probe_local_backends.py +0 -0
- {abstractframework-0.6.1 → abstractframework-0.6.2}/scripts/cache_steer_repl.py +0 -0
- {abstractframework-0.6.1 → abstractframework-0.6.2}/scripts/check_identity_sync.py +0 -0
- {abstractframework-0.6.1 → abstractframework-0.6.2}/scripts/clone.sh +0 -0
- {abstractframework-0.6.1 → abstractframework-0.6.2}/scripts/code-local.sh +0 -0
- {abstractframework-0.6.1 → abstractframework-0.6.2}/scripts/code.sh +0 -0
- {abstractframework-0.6.1 → abstractframework-0.6.2}/scripts/commit.sh +0 -0
- {abstractframework-0.6.1 → abstractframework-0.6.2}/scripts/console-local.sh +0 -0
- {abstractframework-0.6.1 → abstractframework-0.6.2}/scripts/console.sh +0 -0
- {abstractframework-0.6.1 → abstractframework-0.6.2}/scripts/core_operator_drive.py +0 -0
- {abstractframework-0.6.1 → abstractframework-0.6.2}/scripts/deps.sh +0 -0
- {abstractframework-0.6.1 → abstractframework-0.6.2}/scripts/entity-local.sh +0 -0
- {abstractframework-0.6.1 → abstractframework-0.6.2}/scripts/entity.sh +0 -0
- {abstractframework-0.6.1 → abstractframework-0.6.2}/scripts/event_inbox_flow_smoke.py +0 -0
- {abstractframework-0.6.1 → abstractframework-0.6.2}/scripts/flow-local.sh +0 -0
- {abstractframework-0.6.1 → abstractframework-0.6.2}/scripts/flow.sh +0 -0
- {abstractframework-0.6.1 → abstractframework-0.6.2}/scripts/gateway-flow-local.sh +0 -0
- {abstractframework-0.6.1 → abstractframework-0.6.2}/scripts/gateway-flow.sh +0 -0
- {abstractframework-0.6.1 → abstractframework-0.6.2}/scripts/gateway-local.sh +0 -0
- {abstractframework-0.6.1 → abstractframework-0.6.2}/scripts/gateway.sh +0 -0
- {abstractframework-0.6.1 → abstractframework-0.6.2}/scripts/gen_llms_full.py +0 -0
- {abstractframework-0.6.1 → abstractframework-0.6.2}/scripts/headless_fleet_bridge.py +0 -0
- {abstractframework-0.6.1 → abstractframework-0.6.2}/scripts/headless_fleet_demo.py +0 -0
- {abstractframework-0.6.1 → abstractframework-0.6.2}/scripts/headless_steer_repl.py +0 -0
- {abstractframework-0.6.1 → abstractframework-0.6.2}/scripts/lib/af_inventory.py +0 -0
- {abstractframework-0.6.1 → abstractframework-0.6.2}/scripts/lib/af_stack.sh +0 -0
- {abstractframework-0.6.1 → abstractframework-0.6.2}/scripts/lib/af_supervisor.sh +0 -0
- {abstractframework-0.6.1 → abstractframework-0.6.2}/scripts/lib/apps_common.sh +0 -0
- {abstractframework-0.6.1 → abstractframework-0.6.2}/scripts/lib/build_macos_installer.sh +0 -0
- {abstractframework-0.6.1 → abstractframework-0.6.2}/scripts/lib/gateway_user_tokens.py +0 -0
- {abstractframework-0.6.1 → abstractframework-0.6.2}/scripts/lib/repo_groups.sh +0 -0
- {abstractframework-0.6.1 → abstractframework-0.6.2}/scripts/meet_castor.sh +0 -0
- {abstractframework-0.6.1 → abstractframework-0.6.2}/scripts/observer-local.sh +0 -0
- {abstractframework-0.6.1 → abstractframework-0.6.2}/scripts/observer.sh +0 -0
- {abstractframework-0.6.1 → abstractframework-0.6.2}/scripts/plan_walkthrough.py +0 -0
- {abstractframework-0.6.1 → abstractframework-0.6.2}/scripts/pull.sh +0 -0
- {abstractframework-0.6.1 → abstractframework-0.6.2}/scripts/push.sh +0 -0
- {abstractframework-0.6.1 → abstractframework-0.6.2}/scripts/spawn_demo_agent.sh +0 -0
- {abstractframework-0.6.1 → abstractframework-0.6.2}/scripts/start.sh +0 -0
- {abstractframework-0.6.1 → abstractframework-0.6.2}/scripts/status.sh +0 -0
- {abstractframework-0.6.1 → abstractframework-0.6.2}/scripts/steer_repl.py +0 -0
- {abstractframework-0.6.1 → abstractframework-0.6.2}/scripts/tests/test_af_supervisor.sh +0 -0
- {abstractframework-0.6.1 → abstractframework-0.6.2}/scripts/tests/test_repo_scripts.sh +0 -0
- {abstractframework-0.6.1 → abstractframework-0.6.2}/scripts/uninstall.sh +0 -0
- {abstractframework-0.6.1 → abstractframework-0.6.2}/scripts/visit_resume_cache_probe.py +0 -0
- {abstractframework-0.6.1 → abstractframework-0.6.2}/setup.cfg +0 -0
- {abstractframework-0.6.1 → abstractframework-0.6.2}/tests/test_llms_full.py +0 -0
|
@@ -4,6 +4,111 @@ All notable changes to AbstractFramework will be documented in this file.
|
|
|
4
4
|
|
|
5
5
|
## [Unreleased]
|
|
6
6
|
|
|
7
|
+
## [0.6.2] - 2026-09-29
|
|
8
|
+
|
|
9
|
+
One line installs, upgrades and repairs AbstractFramework, and **Update** in the consoles and the
|
|
10
|
+
menu-bar icon runs that same line. Pins: AbstractGateway 0.7.2, AbstractCore 2.19.0,
|
|
11
|
+
AbstractVision 0.3.31, Abstract3D 0.3.1 (new in the matrix: AbstractCore now installs it) and the
|
|
12
|
+
terminal consoles `abstractgateway-console` 0.11.1 and
|
|
13
|
+
`abstractcore-console` 0.4.1; every other version is unchanged from 0.6.1.
|
|
14
|
+
|
|
15
|
+
### Changed
|
|
16
|
+
|
|
17
|
+
- **One line installs, upgrades and repairs.** Re-running the install line (or double-clicking
|
|
18
|
+
**Install AbstractFramework.command** again) finds the existing install and says what it does:
|
|
19
|
+
`AbstractFramework <yours> found: upgrading to AbstractFramework <latest>` or `already up to
|
|
20
|
+
date` for installs from 0.6.2 on, which record their release. An install made by 0.6.1 or
|
|
21
|
+
earlier recorded none, so its first upgrade says `AbstractFramework found (abstractgateway 0.7.1;
|
|
22
|
+
its release was not recorded): upgrading to AbstractFramework 0.6.2`.
|
|
23
|
+
The summary lists what changed, old -> new, under **Changes**, and ends with `Upgraded: …` or
|
|
24
|
+
`Already up to date: …; nothing changed.` `install.ps1` does the same on Windows. See
|
|
25
|
+
[Upgrade](docs/install.md#upgrade).
|
|
26
|
+
- **Update in the web console, the terminal console and the menu-bar icon runs the installer**
|
|
27
|
+
(AbstractGateway 0.7.2). For an install made by the AbstractFramework installer, the check
|
|
28
|
+
compares your AbstractFramework release with the latest one, and **Update** runs the latest
|
|
29
|
+
`install.sh` with `--no-start`. Before you confirm, it shows the installer's address, commit,
|
|
30
|
+
sha256 and the exact command. The result says what moved and offers the restart, says
|
|
31
|
+
**already up to date**, or shows why it didn't finish. On Windows, the check shows the PowerShell
|
|
32
|
+
line to paste. See [From the console or the menu-bar icon](docs/install.md#from-the-console-or-the-menu-bar-icon).
|
|
33
|
+
- **Your install options are remembered.** A re-run keeps the profile, port, start at login, a
|
|
34
|
+
custom `--data-dir`, and `--no-console`, `--no-code-cli`, `--no-core-cli`, `--no-tray` and
|
|
35
|
+
`--full`, and says which ones it kept. `--with-console`, `--with-code-cli`, `--with-core-cli`,
|
|
36
|
+
`--with-tray` and `--no-full` (Windows: `-WithConsole`, `-WithCodeCli`, `-WithCoreCli`,
|
|
37
|
+
`-WithTray`, `-NoFull`) turn one back.
|
|
38
|
+
- **The libraries land on the release's tested versions.** The installer installs AbstractCore,
|
|
39
|
+
AbstractRuntime, AbstractAgent, AbstractSkill, AbstractMemory, AbstractSemantics and the voice,
|
|
40
|
+
vision, music and 3D packages at exactly the versions of the AbstractFramework release, not only at
|
|
41
|
+
the gateway's minimums. `--print-versions` (`-PrintVersions`) lists the release and that matrix.
|
|
42
|
+
`--pin latest` still installs the newest gateway and libraries, and records no release.
|
|
43
|
+
- **The gateway restarts whenever anything changed**, a library alone included: the macOS login
|
|
44
|
+
item through launchd, a running Linux `systemd --user` service with `systemctl --user restart`,
|
|
45
|
+
and a background gateway by starting it again. On Windows the installer stops the gateway before
|
|
46
|
+
it changes any file and starts it again afterwards. AbstractGateway 0.7.2 fixes the macOS
|
|
47
|
+
`5: Input/output error` when the login item is replaced: it waits until launchd has removed the
|
|
48
|
+
previous job and retries. When the login item cannot be registered, the gateway starts in the
|
|
49
|
+
background instead, so an upgrade never leaves it stopped.
|
|
50
|
+
- **Upgrading from 0.6.1 or earlier.** Those installs did not record their options, so the first
|
|
51
|
+
re-run reads them from what is installed (the terminal console, `abstractcode`, the tray extra,
|
|
52
|
+
the AbstractCore commands, a `--full` build, a custom data directory through the gateway
|
|
53
|
+
pointer), says what it found and records it; you can also repeat your options once. The Update
|
|
54
|
+
button of AbstractGateway 0.7.1 and earlier cannot upgrade an installer install: re-run the line
|
|
55
|
+
once. See [Upgrading from 0.6.1 or earlier](docs/install.md#upgrading-from-061-or-earlier).
|
|
56
|
+
- **`--no-start` (`-NoStart`)** upgrades without starting or restarting the gateway and says when a
|
|
57
|
+
restart is due. It keeps this install's port even when a program the installer did not start
|
|
58
|
+
holds it.
|
|
59
|
+
- **One installer at a time.** A second installer for the same data directory (the line re-run
|
|
60
|
+
while a console's Update runs, or the other way round) stops with `another AbstractFramework
|
|
61
|
+
installer is already running` and changes nothing. The lock of an interrupted run is taken over
|
|
62
|
+
by the next one.
|
|
63
|
+
- **Install AbstractFramework.command runs the latest installer** from GitHub, so double-clicking
|
|
64
|
+
it again upgrades. It uses the copy it came with only when GitHub cannot be reached, and says so.
|
|
65
|
+
- **`--pin latest` (`-Pin latest`) upgrades an existing install** with the same profile, voice and
|
|
66
|
+
llama.cpp setup (`uv tool install --upgrade`), and the summary's upgrade lines give the commands
|
|
67
|
+
that work.
|
|
68
|
+
- **AbstractCore has three install settings** (AbstractCore 2.19.0): `pip install abstractcore`
|
|
69
|
+
(light: every remote provider, the built-in tools, media inputs, the server and console, and the
|
|
70
|
+
voice, vision, music and 3D plugins with their remote backends; about 600 MB for AbstractCore
|
|
71
|
+
alone in a fresh Python 3.12 environment), `pip install
|
|
72
|
+
"abstractcore[apple]"` (adds every local engine an Apple silicon Mac runs) and `pip install
|
|
73
|
+
"abstractcore[gpu]"` (adds every local engine an NVIDIA or AMD machine runs). The earlier extra
|
|
74
|
+
names still install as deprecated aliases; see AbstractCore's
|
|
75
|
+
[Installation](https://github.com/lpalbou/abstractcore/blob/main/docs/installation.md#deprecated-aliases).
|
|
76
|
+
`abstract3d` now comes with AbstractCore in every profile, pinned at 0.3.1.
|
|
77
|
+
- **Recommendations for every capability** (AbstractCore 2.19.0).
|
|
78
|
+
`abstractcore models recommendations` shows the recommended model for text, image input, speech
|
|
79
|
+
output, speech input, image, video and music on every kind of machine (`--host`: this one), with
|
|
80
|
+
the engine, the download size, the memory need and whether it fits. On Apple silicon the fit
|
|
81
|
+
estimate follows the measured GPU memory limit (about 75% of unified memory by default). The text
|
|
82
|
+
tiers are unchanged: Qwen3.5 9B below 24 GB (on an 8 GB Mac it reads as tight, with a small context), Qwen3.8 27B
|
|
83
|
+
from 24 GB, Qwen3.8 Flash-Next from 128 GB. A model that runs only with a small context, such as
|
|
84
|
+
Qwen3.8 27B on a 24 GB Mac, says so and prints the `sudo sysctl iogpu.wired_limit_mb=…` command
|
|
85
|
+
that gives it more (20480 on 24 GB, 114688 for Flash-Next on 128 GB); nothing runs it for you.
|
|
86
|
+
The recommended image model is memory-gated: on an 8 GB Mac the gateway's first-run guide shows
|
|
87
|
+
it as not available here, with the reason, and a saved image or video route that does not fit is
|
|
88
|
+
flagged. See AbstractCore's
|
|
89
|
+
[Recommended models](https://github.com/lpalbou/abstractcore/blob/main/docs/recommended-models.md).
|
|
90
|
+
- **Faster video by default** (AbstractVision 0.3.31). Each Wan2.2 model has its own
|
|
91
|
+
speed-oriented default size: 832x480 (TI2V-5B: 121 frames at 24 fps; T2V-A14B and I2V-A14B: 81
|
|
92
|
+
frames at 16 fps), and the video is decoded in overlapping tiles, so the decode no longer sets the
|
|
93
|
+
memory peak. Measured on Apple silicon (MLX peaks at 832x480 with tiled decode), TI2V-5B needs
|
|
94
|
+
about 16.3 GiB for text-to-video and 16.6 GiB for image-to-video (about 60 GiB at the previous
|
|
95
|
+
1280x704 default), so the recommended video route is written on Macs with 32 GB of unified memory
|
|
96
|
+
or more, and a 24 GB Mac is told the GPU memory limit that makes it fit. T2V-A14B and I2V-A14B
|
|
97
|
+
(about 38.3 and 38.4 GiB, measured) fit a 48 GB Mac once its GPU memory limit is raised. Pass `width`, `height`, `num_frames`, `fps` and `steps` for
|
|
98
|
+
another size. The memory figures are AbstractVision/mlx-gen's measurements (the engine keeps the
|
|
99
|
+
text encoder and VAE in memory), not the model's own requirement.
|
|
100
|
+
- **Left and Right switch screens in both terminal consoles** (`abstractgateway-console` 0.11.1,
|
|
101
|
+
`abstractcore-console` 0.4.1): the previous or next screen in browse mode, wrapping at both ends,
|
|
102
|
+
like `Ctrl+P` / `Ctrl+N`. A focused element that uses the arrows keeps them: a text field moves
|
|
103
|
+
its caret, a list or tabs bar changes its selection, a dialog keeps every key, and a focused
|
|
104
|
+
scrolling pane scrolls.
|
|
105
|
+
|
|
106
|
+
### Documentation
|
|
107
|
+
|
|
108
|
+
- **[Upgrade](docs/install.md#upgrade)**: upgrading everything, the gateway only, from the consoles
|
|
109
|
+
or the menu-bar icon, restarting the gateway, upgrading the apps and checking versions. README and
|
|
110
|
+
Getting started lead with an **Install** section: the Mac package and the one-line commands.
|
|
111
|
+
|
|
7
112
|
## [0.6.1] - 2026-09-28
|
|
8
113
|
|
|
9
114
|
Every terminal command lands on your PATH, AbstractCode's terminal client says how to sign in, and
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: abstractframework
|
|
3
|
-
Version: 0.6.
|
|
3
|
+
Version: 0.6.2
|
|
4
4
|
Summary: Unified installer and documentation hub for the AbstractFramework ecosystem
|
|
5
5
|
Author-email: Laurent-Philippe Albou <contact@abstractframework.ai>
|
|
6
6
|
License: MIT
|
|
@@ -23,22 +23,23 @@ Classifier: Typing :: Typed
|
|
|
23
23
|
Requires-Python: >=3.10
|
|
24
24
|
Description-Content-Type: text/markdown
|
|
25
25
|
License-File: LICENSE
|
|
26
|
-
Requires-Dist: abstractgateway==0.7.
|
|
26
|
+
Requires-Dist: abstractgateway==0.7.2
|
|
27
27
|
Requires-Dist: abstractassistant==0.9.1
|
|
28
|
-
Requires-Dist: abstractcore==2.
|
|
28
|
+
Requires-Dist: abstractcore==2.19.0
|
|
29
29
|
Requires-Dist: AbstractRuntime==0.7.1
|
|
30
30
|
Requires-Dist: abstractagent==0.3.17
|
|
31
31
|
Requires-Dist: abstractskill==0.3.0
|
|
32
32
|
Requires-Dist: AbstractMemory==0.3.0
|
|
33
33
|
Requires-Dist: abstractsemantics==0.0.5
|
|
34
34
|
Requires-Dist: abstractvoice==0.13.0
|
|
35
|
-
Requires-Dist: abstractvision==0.3.
|
|
35
|
+
Requires-Dist: abstractvision==0.3.31
|
|
36
36
|
Requires-Dist: abstractmusic==0.1.15
|
|
37
|
+
Requires-Dist: abstract3d==0.3.1
|
|
37
38
|
Provides-Extra: apple
|
|
38
|
-
Requires-Dist: abstractgateway[apple]==0.7.
|
|
39
|
+
Requires-Dist: abstractgateway[apple]==0.7.2; extra == "apple"
|
|
39
40
|
Requires-Dist: abstractassistant[apple]==0.9.1; platform_system == "Darwin" and extra == "apple"
|
|
40
41
|
Provides-Extra: gpu
|
|
41
|
-
Requires-Dist: abstractgateway[gpu]==0.7.
|
|
42
|
+
Requires-Dist: abstractgateway[gpu]==0.7.2; extra == "gpu"
|
|
42
43
|
Requires-Dist: abstractassistant[gpu]==0.9.1; extra == "gpu"
|
|
43
44
|
Dynamic: license-file
|
|
44
45
|
|
|
@@ -61,17 +62,7 @@ Think of it as an **agentic OS**: durable runs + replay-first observability + mu
|
|
|
61
62
|
|
|
62
63
|
---
|
|
63
64
|
|
|
64
|
-
##
|
|
65
|
-
|
|
66
|
-
The installer sets up the gateway in your user account (no admin password, no system Python),
|
|
67
|
-
with local voice (Supertonic text-to-speech and Whisper speech-to-text), asks whether to start it
|
|
68
|
-
at login (Enter = yes; an unattended install leaves it off and says how to turn it on), starts it
|
|
69
|
-
on `127.0.0.1:8080`, and opens its web console in your browser already signed in. A first-run guide
|
|
70
|
-
then sets up a local engine (Ollama, LM Studio, MLX, llama.cpp), downloads a model that fits your
|
|
71
|
-
machine, and lists the apps; the gateway serves them on its own address at `/apps/<app>/`. The
|
|
72
|
-
installer also builds the terminal console, `abstractgateway-console`, which runs the same guide on
|
|
73
|
-
a server without a browser and offers itself at the end of an install over SSH
|
|
74
|
-
([Headless or remote machine](docs/install.md#headless-or-remote-machine)).
|
|
65
|
+
## Install
|
|
75
66
|
|
|
76
67
|
- **Mac, no Terminal:** download and double-click
|
|
77
68
|
[AbstractFramework-Installer.pkg](https://github.com/lpalbou/AbstractFramework/releases/latest/download/AbstractFramework-Installer.pkg).
|
|
@@ -90,7 +81,25 @@ a server without a browser and offers itself at the end of an install over SSH
|
|
|
90
81
|
powershell -ExecutionPolicy ByPass -c "irm https://raw.githubusercontent.com/lpalbou/AbstractFramework/main/scripts/install.ps1 | iex"
|
|
91
82
|
```
|
|
92
83
|
|
|
93
|
-
|
|
84
|
+
To upgrade, run the same line again (on a Mac, double-clicking **Install AbstractFramework.command**
|
|
85
|
+
again does the same), or, on macOS and Linux, press **Update** in the web console, the terminal console or the menu-bar
|
|
86
|
+
icon: each runs the same installer, which installs the latest AbstractFramework release, keeps your
|
|
87
|
+
settings, options and data, and lists what changed. Coming from 0.6.1 or earlier, re-run the line
|
|
88
|
+
once: it reads your earlier options from what is installed (or repeat them once), and the Update
|
|
89
|
+
button of gateway 0.7.1 cannot upgrade. Gateway only, apps, and version checks:
|
|
90
|
+
[Upgrade](docs/install.md#upgrade).
|
|
91
|
+
|
|
92
|
+
The installer sets up the gateway in your user account (no admin password, no system Python),
|
|
93
|
+
with local voice (Supertonic text-to-speech and Whisper speech-to-text), asks whether to start it
|
|
94
|
+
at login (Enter = yes; an unattended install leaves it off and says how to turn it on), starts it
|
|
95
|
+
on `127.0.0.1:8080`, and opens its web console in your browser already signed in. A first-run guide
|
|
96
|
+
then sets up a local engine (Ollama, LM Studio, MLX, llama.cpp), downloads a model that fits your
|
|
97
|
+
machine, and lists the apps; the gateway serves them on its own address at `/apps/<app>/`. The
|
|
98
|
+
installer also builds the terminal console, `abstractgateway-console`, which runs the same guide on
|
|
99
|
+
a server without a browser and offers itself at the end of an install over SSH
|
|
100
|
+
([Headless or remote machine](docs/install.md#headless-or-remote-machine)).
|
|
101
|
+
|
|
102
|
+
Every failure says what to do next; running the installer again repairs the install in place. To
|
|
94
103
|
remove it, double-click `Uninstall AbstractFramework.command` (in
|
|
95
104
|
`~/Library/Application Support/AbstractFramework/Installer` after a package install), or run
|
|
96
105
|
`curl -LsSf https://raw.githubusercontent.com/lpalbou/AbstractFramework/main/scripts/uninstall.sh | sh`.
|
|
@@ -125,7 +134,9 @@ Start here if you need a lightweight LLM library for scripts, notebooks, or exis
|
|
|
125
134
|
- Multimodal via capability plugins (Voice, Vision, Music)
|
|
126
135
|
|
|
127
136
|
```bash
|
|
128
|
-
pip install abstractcore
|
|
137
|
+
pip install abstractcore # light: every remote provider (OpenAI, Anthropic, OpenRouter, Ollama, LM Studio, ...)
|
|
138
|
+
pip install "abstractcore[apple]" # + the local engines of an Apple silicon Mac (MLX, voice, image, video, music)
|
|
139
|
+
pip install "abstractcore[gpu]" # + the local engines of an NVIDIA or AMD machine (vLLM, voice, image, video, music)
|
|
129
140
|
```
|
|
130
141
|
|
|
131
142
|
```python
|
|
@@ -198,7 +209,7 @@ abstractgateway-console --gateway-url http://127.0.0.1:8080 --token <admin token
|
|
|
198
209
|
```
|
|
199
210
|
|
|
200
211
|
Container images are published for the gateway and the AbstractCore server:
|
|
201
|
-
`ghcr.io/lpalbou/abstractgateway:0.7.
|
|
212
|
+
`ghcr.io/lpalbou/abstractgateway:0.7.2` and `ghcr.io/lpalbou/abstractcore-server:2.19.0`.
|
|
202
213
|
|
|
203
214
|
For artifact and runtime-resource investigation, see
|
|
204
215
|
[Runtime artifacts and retrieval](docs/guide/runtime-artifacts.md).
|
|
@@ -344,7 +355,7 @@ pip install "abstractframework[gpu]"
|
|
|
344
355
|
| Apple | `pip install "abstractframework[apple]"` | macOS 14+ on Apple Silicon | 3.10–3.13 (F5-TTS voice cloning needs 3.11+) |
|
|
345
356
|
| GPU | `pip install "abstractframework[gpu]"` | Linux / Windows with a CUDA or ROCm GPU | 3.10–3.13 (F5-TTS voice cloning needs 3.11+) |
|
|
346
357
|
|
|
347
|
-
### Release matrix (abstractframework 0.6.
|
|
358
|
+
### Release matrix (abstractframework 0.6.2)
|
|
348
359
|
|
|
349
360
|
`abstractframework` pins every Python package with `==`, so one version of the
|
|
350
361
|
meta-package always installs the same stack. The browser apps and Rust tools are
|
|
@@ -353,31 +364,32 @@ and tested together.
|
|
|
353
364
|
|
|
354
365
|
| Registry | Package | Version |
|
|
355
366
|
|---|---|---|
|
|
356
|
-
| PyPI | `abstractgateway` | 0.7.
|
|
367
|
+
| PyPI | `abstractgateway` | 0.7.2 |
|
|
357
368
|
| PyPI | `abstractassistant` | 0.9.1 |
|
|
358
|
-
| PyPI | `abstractcore` | 2.
|
|
369
|
+
| PyPI | `abstractcore` | 2.19.0 |
|
|
359
370
|
| PyPI | `AbstractRuntime` | 0.7.1 |
|
|
360
371
|
| PyPI | `abstractagent` | 0.3.17 |
|
|
361
372
|
| PyPI | `abstractskill` | 0.3.0 |
|
|
362
373
|
| PyPI | `AbstractMemory` | 0.3.0 |
|
|
363
374
|
| PyPI | `abstractsemantics` | 0.0.5 |
|
|
364
375
|
| PyPI | `abstractvoice` | 0.13.0 |
|
|
365
|
-
| PyPI | `abstractvision` | 0.3.
|
|
376
|
+
| PyPI | `abstractvision` | 0.3.31 |
|
|
366
377
|
| PyPI | `abstractmusic` | 0.1.15 |
|
|
378
|
+
| PyPI | `abstract3d` | 0.3.1 |
|
|
367
379
|
| npm | `@abstractframework/flow` | 0.4.0 |
|
|
368
380
|
| npm | `@abstractframework/code` | 0.6.1 |
|
|
369
381
|
| npm | `@abstractframework/observer` | 0.2.1 |
|
|
370
382
|
| npm | `@abstractframework/continuum` | 0.4.0 |
|
|
371
383
|
| npm | `@abstractframework/entity` | 0.3.0 |
|
|
372
384
|
| crates.io | `abstractcode` | 0.7.1 |
|
|
373
|
-
| crates.io | `abstractgateway-console` | 0.11.
|
|
374
|
-
| crates.io | `abstractcore-console` | 0.4.
|
|
385
|
+
| crates.io | `abstractgateway-console` | 0.11.1 |
|
|
386
|
+
| crates.io | `abstractcore-console` | 0.4.1 |
|
|
375
387
|
| crates.io | `abstracttui` | 0.6.0 |
|
|
376
|
-
| GHCR | `ghcr.io/lpalbou/abstractgateway` | 0.7.
|
|
377
|
-
| GHCR | `ghcr.io/lpalbou/abstractcore-server` | 2.
|
|
388
|
+
| GHCR | `ghcr.io/lpalbou/abstractgateway` | 0.7.2 (`gpu-latest` / `<version>-gpu` experimental) |
|
|
389
|
+
| GHCR | `ghcr.io/lpalbou/abstractcore-server` | 2.19.0 |
|
|
378
390
|
|
|
379
|
-
|
|
380
|
-
|
|
391
|
+
`abstract3d` (pinned above) comes with AbstractCore in every profile. The optional add-on that is
|
|
392
|
+
not part of any profile installs separately: `pip install abstractcamera` (0.2.0). `abstractskill` (pinned above)
|
|
381
393
|
comes with the gateway, which carries its curated skill shelf; install it on its own with
|
|
382
394
|
`pip install abstractskill`.
|
|
383
395
|
|
|
@@ -17,17 +17,7 @@ Think of it as an **agentic OS**: durable runs + replay-first observability + mu
|
|
|
17
17
|
|
|
18
18
|
---
|
|
19
19
|
|
|
20
|
-
##
|
|
21
|
-
|
|
22
|
-
The installer sets up the gateway in your user account (no admin password, no system Python),
|
|
23
|
-
with local voice (Supertonic text-to-speech and Whisper speech-to-text), asks whether to start it
|
|
24
|
-
at login (Enter = yes; an unattended install leaves it off and says how to turn it on), starts it
|
|
25
|
-
on `127.0.0.1:8080`, and opens its web console in your browser already signed in. A first-run guide
|
|
26
|
-
then sets up a local engine (Ollama, LM Studio, MLX, llama.cpp), downloads a model that fits your
|
|
27
|
-
machine, and lists the apps; the gateway serves them on its own address at `/apps/<app>/`. The
|
|
28
|
-
installer also builds the terminal console, `abstractgateway-console`, which runs the same guide on
|
|
29
|
-
a server without a browser and offers itself at the end of an install over SSH
|
|
30
|
-
([Headless or remote machine](docs/install.md#headless-or-remote-machine)).
|
|
20
|
+
## Install
|
|
31
21
|
|
|
32
22
|
- **Mac, no Terminal:** download and double-click
|
|
33
23
|
[AbstractFramework-Installer.pkg](https://github.com/lpalbou/AbstractFramework/releases/latest/download/AbstractFramework-Installer.pkg).
|
|
@@ -46,7 +36,25 @@ a server without a browser and offers itself at the end of an install over SSH
|
|
|
46
36
|
powershell -ExecutionPolicy ByPass -c "irm https://raw.githubusercontent.com/lpalbou/AbstractFramework/main/scripts/install.ps1 | iex"
|
|
47
37
|
```
|
|
48
38
|
|
|
49
|
-
|
|
39
|
+
To upgrade, run the same line again (on a Mac, double-clicking **Install AbstractFramework.command**
|
|
40
|
+
again does the same), or, on macOS and Linux, press **Update** in the web console, the terminal console or the menu-bar
|
|
41
|
+
icon: each runs the same installer, which installs the latest AbstractFramework release, keeps your
|
|
42
|
+
settings, options and data, and lists what changed. Coming from 0.6.1 or earlier, re-run the line
|
|
43
|
+
once: it reads your earlier options from what is installed (or repeat them once), and the Update
|
|
44
|
+
button of gateway 0.7.1 cannot upgrade. Gateway only, apps, and version checks:
|
|
45
|
+
[Upgrade](docs/install.md#upgrade).
|
|
46
|
+
|
|
47
|
+
The installer sets up the gateway in your user account (no admin password, no system Python),
|
|
48
|
+
with local voice (Supertonic text-to-speech and Whisper speech-to-text), asks whether to start it
|
|
49
|
+
at login (Enter = yes; an unattended install leaves it off and says how to turn it on), starts it
|
|
50
|
+
on `127.0.0.1:8080`, and opens its web console in your browser already signed in. A first-run guide
|
|
51
|
+
then sets up a local engine (Ollama, LM Studio, MLX, llama.cpp), downloads a model that fits your
|
|
52
|
+
machine, and lists the apps; the gateway serves them on its own address at `/apps/<app>/`. The
|
|
53
|
+
installer also builds the terminal console, `abstractgateway-console`, which runs the same guide on
|
|
54
|
+
a server without a browser and offers itself at the end of an install over SSH
|
|
55
|
+
([Headless or remote machine](docs/install.md#headless-or-remote-machine)).
|
|
56
|
+
|
|
57
|
+
Every failure says what to do next; running the installer again repairs the install in place. To
|
|
50
58
|
remove it, double-click `Uninstall AbstractFramework.command` (in
|
|
51
59
|
`~/Library/Application Support/AbstractFramework/Installer` after a package install), or run
|
|
52
60
|
`curl -LsSf https://raw.githubusercontent.com/lpalbou/AbstractFramework/main/scripts/uninstall.sh | sh`.
|
|
@@ -81,7 +89,9 @@ Start here if you need a lightweight LLM library for scripts, notebooks, or exis
|
|
|
81
89
|
- Multimodal via capability plugins (Voice, Vision, Music)
|
|
82
90
|
|
|
83
91
|
```bash
|
|
84
|
-
pip install abstractcore
|
|
92
|
+
pip install abstractcore # light: every remote provider (OpenAI, Anthropic, OpenRouter, Ollama, LM Studio, ...)
|
|
93
|
+
pip install "abstractcore[apple]" # + the local engines of an Apple silicon Mac (MLX, voice, image, video, music)
|
|
94
|
+
pip install "abstractcore[gpu]" # + the local engines of an NVIDIA or AMD machine (vLLM, voice, image, video, music)
|
|
85
95
|
```
|
|
86
96
|
|
|
87
97
|
```python
|
|
@@ -154,7 +164,7 @@ abstractgateway-console --gateway-url http://127.0.0.1:8080 --token <admin token
|
|
|
154
164
|
```
|
|
155
165
|
|
|
156
166
|
Container images are published for the gateway and the AbstractCore server:
|
|
157
|
-
`ghcr.io/lpalbou/abstractgateway:0.7.
|
|
167
|
+
`ghcr.io/lpalbou/abstractgateway:0.7.2` and `ghcr.io/lpalbou/abstractcore-server:2.19.0`.
|
|
158
168
|
|
|
159
169
|
For artifact and runtime-resource investigation, see
|
|
160
170
|
[Runtime artifacts and retrieval](docs/guide/runtime-artifacts.md).
|
|
@@ -300,7 +310,7 @@ pip install "abstractframework[gpu]"
|
|
|
300
310
|
| Apple | `pip install "abstractframework[apple]"` | macOS 14+ on Apple Silicon | 3.10–3.13 (F5-TTS voice cloning needs 3.11+) |
|
|
301
311
|
| GPU | `pip install "abstractframework[gpu]"` | Linux / Windows with a CUDA or ROCm GPU | 3.10–3.13 (F5-TTS voice cloning needs 3.11+) |
|
|
302
312
|
|
|
303
|
-
### Release matrix (abstractframework 0.6.
|
|
313
|
+
### Release matrix (abstractframework 0.6.2)
|
|
304
314
|
|
|
305
315
|
`abstractframework` pins every Python package with `==`, so one version of the
|
|
306
316
|
meta-package always installs the same stack. The browser apps and Rust tools are
|
|
@@ -309,31 +319,32 @@ and tested together.
|
|
|
309
319
|
|
|
310
320
|
| Registry | Package | Version |
|
|
311
321
|
|---|---|---|
|
|
312
|
-
| PyPI | `abstractgateway` | 0.7.
|
|
322
|
+
| PyPI | `abstractgateway` | 0.7.2 |
|
|
313
323
|
| PyPI | `abstractassistant` | 0.9.1 |
|
|
314
|
-
| PyPI | `abstractcore` | 2.
|
|
324
|
+
| PyPI | `abstractcore` | 2.19.0 |
|
|
315
325
|
| PyPI | `AbstractRuntime` | 0.7.1 |
|
|
316
326
|
| PyPI | `abstractagent` | 0.3.17 |
|
|
317
327
|
| PyPI | `abstractskill` | 0.3.0 |
|
|
318
328
|
| PyPI | `AbstractMemory` | 0.3.0 |
|
|
319
329
|
| PyPI | `abstractsemantics` | 0.0.5 |
|
|
320
330
|
| PyPI | `abstractvoice` | 0.13.0 |
|
|
321
|
-
| PyPI | `abstractvision` | 0.3.
|
|
331
|
+
| PyPI | `abstractvision` | 0.3.31 |
|
|
322
332
|
| PyPI | `abstractmusic` | 0.1.15 |
|
|
333
|
+
| PyPI | `abstract3d` | 0.3.1 |
|
|
323
334
|
| npm | `@abstractframework/flow` | 0.4.0 |
|
|
324
335
|
| npm | `@abstractframework/code` | 0.6.1 |
|
|
325
336
|
| npm | `@abstractframework/observer` | 0.2.1 |
|
|
326
337
|
| npm | `@abstractframework/continuum` | 0.4.0 |
|
|
327
338
|
| npm | `@abstractframework/entity` | 0.3.0 |
|
|
328
339
|
| crates.io | `abstractcode` | 0.7.1 |
|
|
329
|
-
| crates.io | `abstractgateway-console` | 0.11.
|
|
330
|
-
| crates.io | `abstractcore-console` | 0.4.
|
|
340
|
+
| crates.io | `abstractgateway-console` | 0.11.1 |
|
|
341
|
+
| crates.io | `abstractcore-console` | 0.4.1 |
|
|
331
342
|
| crates.io | `abstracttui` | 0.6.0 |
|
|
332
|
-
| GHCR | `ghcr.io/lpalbou/abstractgateway` | 0.7.
|
|
333
|
-
| GHCR | `ghcr.io/lpalbou/abstractcore-server` | 2.
|
|
343
|
+
| GHCR | `ghcr.io/lpalbou/abstractgateway` | 0.7.2 (`gpu-latest` / `<version>-gpu` experimental) |
|
|
344
|
+
| GHCR | `ghcr.io/lpalbou/abstractcore-server` | 2.19.0 |
|
|
334
345
|
|
|
335
|
-
|
|
336
|
-
|
|
346
|
+
`abstract3d` (pinned above) comes with AbstractCore in every profile. The optional add-on that is
|
|
347
|
+
not part of any profile installs separately: `pip install abstractcamera` (0.2.0). `abstractskill` (pinned above)
|
|
337
348
|
comes with the gateway, which carries its curated skill shelf; install it on its own with
|
|
338
349
|
`pip install abstractskill`.
|
|
339
350
|
|
|
@@ -10,21 +10,22 @@ Most implementation functionality still lives in component projects.
|
|
|
10
10
|
|
|
11
11
|
from __future__ import annotations
|
|
12
12
|
|
|
13
|
-
__version__ = "0.6.
|
|
13
|
+
__version__ = "0.6.2"
|
|
14
14
|
__author__ = "Laurent-Philippe Albou"
|
|
15
15
|
__license__ = "MIT"
|
|
16
16
|
|
|
17
17
|
RELEASE_VERSIONS: dict[str, str] = {
|
|
18
|
-
"abstractcore": "2.
|
|
18
|
+
"abstractcore": "2.19.0",
|
|
19
19
|
"abstractruntime": "0.7.1",
|
|
20
20
|
"abstractagent": "0.3.17",
|
|
21
|
-
"abstractgateway": "0.7.
|
|
21
|
+
"abstractgateway": "0.7.2",
|
|
22
22
|
"abstractskill": "0.3.0",
|
|
23
23
|
"abstractmemory": "0.3.0",
|
|
24
24
|
"abstractsemantics": "0.0.5",
|
|
25
25
|
"abstractvoice": "0.13.0",
|
|
26
|
-
"abstractvision": "0.3.
|
|
26
|
+
"abstractvision": "0.3.31",
|
|
27
27
|
"abstractmusic": "0.1.15",
|
|
28
|
+
"abstract3d": "0.3.1",
|
|
28
29
|
"abstractassistant": "0.9.1",
|
|
29
30
|
}
|
|
30
31
|
|
|
@@ -39,6 +40,7 @@ PACKAGE_DISTRIBUTIONS: dict[str, str] = {
|
|
|
39
40
|
"abstractvoice": "abstractvoice",
|
|
40
41
|
"abstractvision": "abstractvision",
|
|
41
42
|
"abstractmusic": "abstractmusic",
|
|
43
|
+
"abstract3d": "abstract3d",
|
|
42
44
|
"abstractassistant": "abstractassistant",
|
|
43
45
|
}
|
|
44
46
|
|
|
@@ -53,21 +55,16 @@ NPM_RELEASE_VERSIONS: dict[str, str] = {
|
|
|
53
55
|
# Terminal tools published on crates.io alongside this release (installed with `cargo install`,
|
|
54
56
|
# or by the bootstrap scripts: the gateway console and abstractcode by default).
|
|
55
57
|
CRATE_RELEASE_VERSIONS: dict[str, str] = {
|
|
56
|
-
"abstractgateway-console": "0.11.
|
|
57
|
-
"abstractcore-console": "0.4.
|
|
58
|
+
"abstractgateway-console": "0.11.1",
|
|
59
|
+
"abstractcore-console": "0.4.1",
|
|
58
60
|
"abstractcode": "0.7.1",
|
|
59
61
|
"abstracttui": "0.6.0",
|
|
60
62
|
}
|
|
61
63
|
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
"vision",
|
|
67
|
-
"voice",
|
|
68
|
-
"audio",
|
|
69
|
-
"music",
|
|
70
|
-
]
|
|
64
|
+
# The light profile installs plain `abstractcore` (no extra): AbstractCore's light setting already
|
|
65
|
+
# carries every remote provider, the tools, media and the capability plugins. The apple and gpu
|
|
66
|
+
# profiles get AbstractCore's local engines through the gateway's profile.
|
|
67
|
+
CORE_DEFAULT_EXTRAS: list[str] = []
|
|
71
68
|
|
|
72
69
|
# Convenience re-exports (AbstractCore is a base dependency of this meta-package).
|
|
73
70
|
# Keep this import lightweight: do not import optional tool/media deps here.
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: abstractframework
|
|
3
|
-
Version: 0.6.
|
|
3
|
+
Version: 0.6.2
|
|
4
4
|
Summary: Unified installer and documentation hub for the AbstractFramework ecosystem
|
|
5
5
|
Author-email: Laurent-Philippe Albou <contact@abstractframework.ai>
|
|
6
6
|
License: MIT
|
|
@@ -23,22 +23,23 @@ Classifier: Typing :: Typed
|
|
|
23
23
|
Requires-Python: >=3.10
|
|
24
24
|
Description-Content-Type: text/markdown
|
|
25
25
|
License-File: LICENSE
|
|
26
|
-
Requires-Dist: abstractgateway==0.7.
|
|
26
|
+
Requires-Dist: abstractgateway==0.7.2
|
|
27
27
|
Requires-Dist: abstractassistant==0.9.1
|
|
28
|
-
Requires-Dist: abstractcore==2.
|
|
28
|
+
Requires-Dist: abstractcore==2.19.0
|
|
29
29
|
Requires-Dist: AbstractRuntime==0.7.1
|
|
30
30
|
Requires-Dist: abstractagent==0.3.17
|
|
31
31
|
Requires-Dist: abstractskill==0.3.0
|
|
32
32
|
Requires-Dist: AbstractMemory==0.3.0
|
|
33
33
|
Requires-Dist: abstractsemantics==0.0.5
|
|
34
34
|
Requires-Dist: abstractvoice==0.13.0
|
|
35
|
-
Requires-Dist: abstractvision==0.3.
|
|
35
|
+
Requires-Dist: abstractvision==0.3.31
|
|
36
36
|
Requires-Dist: abstractmusic==0.1.15
|
|
37
|
+
Requires-Dist: abstract3d==0.3.1
|
|
37
38
|
Provides-Extra: apple
|
|
38
|
-
Requires-Dist: abstractgateway[apple]==0.7.
|
|
39
|
+
Requires-Dist: abstractgateway[apple]==0.7.2; extra == "apple"
|
|
39
40
|
Requires-Dist: abstractassistant[apple]==0.9.1; platform_system == "Darwin" and extra == "apple"
|
|
40
41
|
Provides-Extra: gpu
|
|
41
|
-
Requires-Dist: abstractgateway[gpu]==0.7.
|
|
42
|
+
Requires-Dist: abstractgateway[gpu]==0.7.2; extra == "gpu"
|
|
42
43
|
Requires-Dist: abstractassistant[gpu]==0.9.1; extra == "gpu"
|
|
43
44
|
Dynamic: license-file
|
|
44
45
|
|
|
@@ -61,17 +62,7 @@ Think of it as an **agentic OS**: durable runs + replay-first observability + mu
|
|
|
61
62
|
|
|
62
63
|
---
|
|
63
64
|
|
|
64
|
-
##
|
|
65
|
-
|
|
66
|
-
The installer sets up the gateway in your user account (no admin password, no system Python),
|
|
67
|
-
with local voice (Supertonic text-to-speech and Whisper speech-to-text), asks whether to start it
|
|
68
|
-
at login (Enter = yes; an unattended install leaves it off and says how to turn it on), starts it
|
|
69
|
-
on `127.0.0.1:8080`, and opens its web console in your browser already signed in. A first-run guide
|
|
70
|
-
then sets up a local engine (Ollama, LM Studio, MLX, llama.cpp), downloads a model that fits your
|
|
71
|
-
machine, and lists the apps; the gateway serves them on its own address at `/apps/<app>/`. The
|
|
72
|
-
installer also builds the terminal console, `abstractgateway-console`, which runs the same guide on
|
|
73
|
-
a server without a browser and offers itself at the end of an install over SSH
|
|
74
|
-
([Headless or remote machine](docs/install.md#headless-or-remote-machine)).
|
|
65
|
+
## Install
|
|
75
66
|
|
|
76
67
|
- **Mac, no Terminal:** download and double-click
|
|
77
68
|
[AbstractFramework-Installer.pkg](https://github.com/lpalbou/AbstractFramework/releases/latest/download/AbstractFramework-Installer.pkg).
|
|
@@ -90,7 +81,25 @@ a server without a browser and offers itself at the end of an install over SSH
|
|
|
90
81
|
powershell -ExecutionPolicy ByPass -c "irm https://raw.githubusercontent.com/lpalbou/AbstractFramework/main/scripts/install.ps1 | iex"
|
|
91
82
|
```
|
|
92
83
|
|
|
93
|
-
|
|
84
|
+
To upgrade, run the same line again (on a Mac, double-clicking **Install AbstractFramework.command**
|
|
85
|
+
again does the same), or, on macOS and Linux, press **Update** in the web console, the terminal console or the menu-bar
|
|
86
|
+
icon: each runs the same installer, which installs the latest AbstractFramework release, keeps your
|
|
87
|
+
settings, options and data, and lists what changed. Coming from 0.6.1 or earlier, re-run the line
|
|
88
|
+
once: it reads your earlier options from what is installed (or repeat them once), and the Update
|
|
89
|
+
button of gateway 0.7.1 cannot upgrade. Gateway only, apps, and version checks:
|
|
90
|
+
[Upgrade](docs/install.md#upgrade).
|
|
91
|
+
|
|
92
|
+
The installer sets up the gateway in your user account (no admin password, no system Python),
|
|
93
|
+
with local voice (Supertonic text-to-speech and Whisper speech-to-text), asks whether to start it
|
|
94
|
+
at login (Enter = yes; an unattended install leaves it off and says how to turn it on), starts it
|
|
95
|
+
on `127.0.0.1:8080`, and opens its web console in your browser already signed in. A first-run guide
|
|
96
|
+
then sets up a local engine (Ollama, LM Studio, MLX, llama.cpp), downloads a model that fits your
|
|
97
|
+
machine, and lists the apps; the gateway serves them on its own address at `/apps/<app>/`. The
|
|
98
|
+
installer also builds the terminal console, `abstractgateway-console`, which runs the same guide on
|
|
99
|
+
a server without a browser and offers itself at the end of an install over SSH
|
|
100
|
+
([Headless or remote machine](docs/install.md#headless-or-remote-machine)).
|
|
101
|
+
|
|
102
|
+
Every failure says what to do next; running the installer again repairs the install in place. To
|
|
94
103
|
remove it, double-click `Uninstall AbstractFramework.command` (in
|
|
95
104
|
`~/Library/Application Support/AbstractFramework/Installer` after a package install), or run
|
|
96
105
|
`curl -LsSf https://raw.githubusercontent.com/lpalbou/AbstractFramework/main/scripts/uninstall.sh | sh`.
|
|
@@ -125,7 +134,9 @@ Start here if you need a lightweight LLM library for scripts, notebooks, or exis
|
|
|
125
134
|
- Multimodal via capability plugins (Voice, Vision, Music)
|
|
126
135
|
|
|
127
136
|
```bash
|
|
128
|
-
pip install abstractcore
|
|
137
|
+
pip install abstractcore # light: every remote provider (OpenAI, Anthropic, OpenRouter, Ollama, LM Studio, ...)
|
|
138
|
+
pip install "abstractcore[apple]" # + the local engines of an Apple silicon Mac (MLX, voice, image, video, music)
|
|
139
|
+
pip install "abstractcore[gpu]" # + the local engines of an NVIDIA or AMD machine (vLLM, voice, image, video, music)
|
|
129
140
|
```
|
|
130
141
|
|
|
131
142
|
```python
|
|
@@ -198,7 +209,7 @@ abstractgateway-console --gateway-url http://127.0.0.1:8080 --token <admin token
|
|
|
198
209
|
```
|
|
199
210
|
|
|
200
211
|
Container images are published for the gateway and the AbstractCore server:
|
|
201
|
-
`ghcr.io/lpalbou/abstractgateway:0.7.
|
|
212
|
+
`ghcr.io/lpalbou/abstractgateway:0.7.2` and `ghcr.io/lpalbou/abstractcore-server:2.19.0`.
|
|
202
213
|
|
|
203
214
|
For artifact and runtime-resource investigation, see
|
|
204
215
|
[Runtime artifacts and retrieval](docs/guide/runtime-artifacts.md).
|
|
@@ -344,7 +355,7 @@ pip install "abstractframework[gpu]"
|
|
|
344
355
|
| Apple | `pip install "abstractframework[apple]"` | macOS 14+ on Apple Silicon | 3.10–3.13 (F5-TTS voice cloning needs 3.11+) |
|
|
345
356
|
| GPU | `pip install "abstractframework[gpu]"` | Linux / Windows with a CUDA or ROCm GPU | 3.10–3.13 (F5-TTS voice cloning needs 3.11+) |
|
|
346
357
|
|
|
347
|
-
### Release matrix (abstractframework 0.6.
|
|
358
|
+
### Release matrix (abstractframework 0.6.2)
|
|
348
359
|
|
|
349
360
|
`abstractframework` pins every Python package with `==`, so one version of the
|
|
350
361
|
meta-package always installs the same stack. The browser apps and Rust tools are
|
|
@@ -353,31 +364,32 @@ and tested together.
|
|
|
353
364
|
|
|
354
365
|
| Registry | Package | Version |
|
|
355
366
|
|---|---|---|
|
|
356
|
-
| PyPI | `abstractgateway` | 0.7.
|
|
367
|
+
| PyPI | `abstractgateway` | 0.7.2 |
|
|
357
368
|
| PyPI | `abstractassistant` | 0.9.1 |
|
|
358
|
-
| PyPI | `abstractcore` | 2.
|
|
369
|
+
| PyPI | `abstractcore` | 2.19.0 |
|
|
359
370
|
| PyPI | `AbstractRuntime` | 0.7.1 |
|
|
360
371
|
| PyPI | `abstractagent` | 0.3.17 |
|
|
361
372
|
| PyPI | `abstractskill` | 0.3.0 |
|
|
362
373
|
| PyPI | `AbstractMemory` | 0.3.0 |
|
|
363
374
|
| PyPI | `abstractsemantics` | 0.0.5 |
|
|
364
375
|
| PyPI | `abstractvoice` | 0.13.0 |
|
|
365
|
-
| PyPI | `abstractvision` | 0.3.
|
|
376
|
+
| PyPI | `abstractvision` | 0.3.31 |
|
|
366
377
|
| PyPI | `abstractmusic` | 0.1.15 |
|
|
378
|
+
| PyPI | `abstract3d` | 0.3.1 |
|
|
367
379
|
| npm | `@abstractframework/flow` | 0.4.0 |
|
|
368
380
|
| npm | `@abstractframework/code` | 0.6.1 |
|
|
369
381
|
| npm | `@abstractframework/observer` | 0.2.1 |
|
|
370
382
|
| npm | `@abstractframework/continuum` | 0.4.0 |
|
|
371
383
|
| npm | `@abstractframework/entity` | 0.3.0 |
|
|
372
384
|
| crates.io | `abstractcode` | 0.7.1 |
|
|
373
|
-
| crates.io | `abstractgateway-console` | 0.11.
|
|
374
|
-
| crates.io | `abstractcore-console` | 0.4.
|
|
385
|
+
| crates.io | `abstractgateway-console` | 0.11.1 |
|
|
386
|
+
| crates.io | `abstractcore-console` | 0.4.1 |
|
|
375
387
|
| crates.io | `abstracttui` | 0.6.0 |
|
|
376
|
-
| GHCR | `ghcr.io/lpalbou/abstractgateway` | 0.7.
|
|
377
|
-
| GHCR | `ghcr.io/lpalbou/abstractcore-server` | 2.
|
|
388
|
+
| GHCR | `ghcr.io/lpalbou/abstractgateway` | 0.7.2 (`gpu-latest` / `<version>-gpu` experimental) |
|
|
389
|
+
| GHCR | `ghcr.io/lpalbou/abstractcore-server` | 2.19.0 |
|
|
378
390
|
|
|
379
|
-
|
|
380
|
-
|
|
391
|
+
`abstract3d` (pinned above) comes with AbstractCore in every profile. The optional add-on that is
|
|
392
|
+
not part of any profile installs separately: `pip install abstractcamera` (0.2.0). `abstractskill` (pinned above)
|
|
381
393
|
comes with the gateway, which carries its curated skill shelf; install it on its own with
|
|
382
394
|
`pip install abstractskill`.
|
|
383
395
|
|
|
@@ -1,21 +1,22 @@
|
|
|
1
|
-
abstractgateway==0.7.
|
|
1
|
+
abstractgateway==0.7.2
|
|
2
2
|
abstractassistant==0.9.1
|
|
3
|
-
abstractcore==2.
|
|
3
|
+
abstractcore==2.19.0
|
|
4
4
|
AbstractRuntime==0.7.1
|
|
5
5
|
abstractagent==0.3.17
|
|
6
6
|
abstractskill==0.3.0
|
|
7
7
|
AbstractMemory==0.3.0
|
|
8
8
|
abstractsemantics==0.0.5
|
|
9
9
|
abstractvoice==0.13.0
|
|
10
|
-
abstractvision==0.3.
|
|
10
|
+
abstractvision==0.3.31
|
|
11
11
|
abstractmusic==0.1.15
|
|
12
|
+
abstract3d==0.3.1
|
|
12
13
|
|
|
13
14
|
[apple]
|
|
14
|
-
abstractgateway[apple]==0.7.
|
|
15
|
+
abstractgateway[apple]==0.7.2
|
|
15
16
|
|
|
16
17
|
[apple:platform_system == "Darwin"]
|
|
17
18
|
abstractassistant[apple]==0.9.1
|
|
18
19
|
|
|
19
20
|
[gpu]
|
|
20
|
-
abstractgateway[gpu]==0.7.
|
|
21
|
+
abstractgateway[gpu]==0.7.2
|
|
21
22
|
abstractassistant[gpu]==0.9.1
|