abstractframework 0.2.0__tar.gz → 0.2.1__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.2.0 → abstractframework-0.2.1}/CHANGELOG.md +31 -1
- {abstractframework-0.2.0/abstractframework.egg-info → abstractframework-0.2.1}/PKG-INFO +4 -4
- {abstractframework-0.2.0 → abstractframework-0.2.1}/README.md +2 -2
- {abstractframework-0.2.0 → abstractframework-0.2.1}/abstractframework/__init__.py +2 -2
- {abstractframework-0.2.0 → abstractframework-0.2.1/abstractframework.egg-info}/PKG-INFO +4 -4
- {abstractframework-0.2.0 → abstractframework-0.2.1}/abstractframework.egg-info/requires.txt +1 -1
- {abstractframework-0.2.0 → abstractframework-0.2.1}/docs/api.md +1 -1
- {abstractframework-0.2.0 → abstractframework-0.2.1}/docs/faq.md +7 -0
- {abstractframework-0.2.0 → abstractframework-0.2.1}/docs/install.md +32 -2
- {abstractframework-0.2.0 → abstractframework-0.2.1}/llms-full.txt +47 -10
- {abstractframework-0.2.0 → abstractframework-0.2.1}/llms.txt +1 -1
- {abstractframework-0.2.0 → abstractframework-0.2.1}/pyproject.toml +2 -2
- {abstractframework-0.2.0 → abstractframework-0.2.1}/scripts/install.sh +71 -4
- {abstractframework-0.2.0 → abstractframework-0.2.1}/tests/test_install_profiles.py +144 -0
- {abstractframework-0.2.0 → abstractframework-0.2.1}/LICENSE +0 -0
- {abstractframework-0.2.0 → abstractframework-0.2.1}/MANIFEST.in +0 -0
- {abstractframework-0.2.0 → abstractframework-0.2.1}/abstractframework/__main__.py +0 -0
- {abstractframework-0.2.0 → abstractframework-0.2.1}/abstractframework/cli.py +0 -0
- {abstractframework-0.2.0 → abstractframework-0.2.1}/abstractframework/install_manifest.py +0 -0
- {abstractframework-0.2.0 → abstractframework-0.2.1}/abstractframework/py.typed +0 -0
- {abstractframework-0.2.0 → abstractframework-0.2.1}/abstractframework.egg-info/SOURCES.txt +0 -0
- {abstractframework-0.2.0 → abstractframework-0.2.1}/abstractframework.egg-info/dependency_links.txt +0 -0
- {abstractframework-0.2.0 → abstractframework-0.2.1}/abstractframework.egg-info/entry_points.txt +0 -0
- {abstractframework-0.2.0 → abstractframework-0.2.1}/abstractframework.egg-info/top_level.txt +0 -0
- {abstractframework-0.2.0 → abstractframework-0.2.1}/docs/README.md +0 -0
- {abstractframework-0.2.0 → abstractframework-0.2.1}/docs/adr/0001-layered-architecture.md +0 -0
- {abstractframework-0.2.0 → abstractframework-0.2.1}/docs/adr/0002-effect-system-design.md +0 -0
- {abstractframework-0.2.0 → abstractframework-0.2.1}/docs/adr/0003-tool-system-architecture.md +0 -0
- {abstractframework-0.2.0 → abstractframework-0.2.1}/docs/adr/0004-observability-strategy.md +0 -0
- {abstractframework-0.2.0 → abstractframework-0.2.1}/docs/adr/0005-memory-architecture.md +0 -0
- {abstractframework-0.2.0 → abstractframework-0.2.1}/docs/adr/0006-durable-tool-execution.md +0 -0
- {abstractframework-0.2.0 → abstractframework-0.2.1}/docs/adr/0007-active-context-and-memory-provenance.md +0 -0
- {abstractframework-0.2.0 → abstractframework-0.2.1}/docs/adr/0008-token-terminology.md +0 -0
- {abstractframework-0.2.0 → abstractframework-0.2.1}/docs/adr/0009-connected-memory-recall-and-provenance.md +0 -0
- {abstractframework-0.2.0 → abstractframework-0.2.1}/docs/adr/0010-runtime-owned-node-traces.md +0 -0
- {abstractframework-0.2.0 → abstractframework-0.2.1}/docs/adr/0011-ledger-subscriptions-and-event-bridge.md +0 -0
- {abstractframework-0.2.0 → abstractframework-0.2.1}/docs/adr/0012-portable-workflowartifact.md +0 -0
- {abstractframework-0.2.0 → abstractframework-0.2.1}/docs/adr/0013-durable-run-controls-pause-resume-cancel.md +0 -0
- {abstractframework-0.2.0 → abstractframework-0.2.1}/docs/adr/0014-runtime-authority-timeouts.md +0 -0
- {abstractframework-0.2.0 → abstractframework-0.2.1}/docs/adr/0015-execution-targets-and-remote-tool-workers.md +0 -0
- {abstractframework-0.2.0 → abstractframework-0.2.1}/docs/adr/0016-tool-calling-pipeline-and-responsibility-boundaries.md +0 -0
- {abstractframework-0.2.0 → abstractframework-0.2.1}/docs/adr/0017-host-ui-events-and-durable-prompts.md +0 -0
- {abstractframework-0.2.0 → abstractframework-0.2.1}/docs/adr/0018-durable-run-gateway-and-remote-host-control-plane.md +0 -0
- {abstractframework-0.2.0 → abstractframework-0.2.1}/docs/adr/0019-testing-strategy-and-levels.md +0 -0
- {abstractframework-0.2.0 → abstractframework-0.2.1}/docs/adr/0020-agent-host-pool-and-orchestrator-placement.md +0 -0
- {abstractframework-0.2.0 → abstractframework-0.2.1}/docs/adr/0021-deployment-topologies-and-supported-scenarios.md +0 -0
- {abstractframework-0.2.0 → abstractframework-0.2.1}/docs/adr/0022-orchestrator-host-and-runtime-daemonization.md +0 -0
- {abstractframework-0.2.0 → abstractframework-0.2.1}/docs/adr/0023-file-attachment-path-resolution-and-authorization.md +0 -0
- {abstractframework-0.2.0 → abstractframework-0.2.1}/docs/adr/0024-attachment-placeholders-and-compaction-invariants.md +0 -0
- {abstractframework-0.2.0 → abstractframework-0.2.1}/docs/adr/0025-kg-entity-normalization-and-dedup.md +0 -0
- {abstractframework-0.2.0 → abstractframework-0.2.1}/docs/adr/0026-truncation-policy-and-contract.md +0 -0
- {abstractframework-0.2.0 → abstractframework-0.2.1}/docs/adr/0027-timeout-policy-and-contract.md +0 -0
- {abstractframework-0.2.0 → abstractframework-0.2.1}/docs/adr/0028-capabilities-plugins-and-library-framework-modes.md +0 -0
- {abstractframework-0.2.0 → abstractframework-0.2.1}/docs/adr/0029-permissive-dependency-and-licensing-policy.md +0 -0
- {abstractframework-0.2.0 → abstractframework-0.2.1}/docs/adr/0030-security-test-fixtures-and-isolation.md +0 -0
- {abstractframework-0.2.0 → abstractframework-0.2.1}/docs/adr/0031-workflow-llm-routing-overrides-provider-model-and-base-url.md +0 -0
- {abstractframework-0.2.0 → abstractframework-0.2.1}/docs/adr/0032-package-dependency-boundaries-and-gateway-first-apps.md +0 -0
- {abstractframework-0.2.0 → abstractframework-0.2.1}/docs/adr/0033-install-profiles-config-entrypoints-and-server-boundaries.md +0 -0
- {abstractframework-0.2.0 → abstractframework-0.2.1}/docs/adr/0034-framework-release-sequence-and-gates.md +0 -0
- {abstractframework-0.2.0 → abstractframework-0.2.1}/docs/adr/0035-capability-routing-defaults.md +0 -0
- {abstractframework-0.2.0 → abstractframework-0.2.1}/docs/adr/0036-artifact-descriptor-contract.md +0 -0
- {abstractframework-0.2.0 → abstractframework-0.2.1}/docs/adr/0037-hosted-file-source-contract-and-workspacepath-authority.md +0 -0
- {abstractframework-0.2.0 → abstractframework-0.2.1}/docs/adr/0038-script-bootstrap-and-gateway-console-install.md +0 -0
- {abstractframework-0.2.0 → abstractframework-0.2.1}/docs/adr/README.md +0 -0
- {abstractframework-0.2.0 → abstractframework-0.2.1}/docs/adr/memory-recall-levels.md +0 -0
- {abstractframework-0.2.0 → abstractframework-0.2.1}/docs/adr/reorg/001_music_as_capability_plugin_via_acestep_api.md +0 -0
- {abstractframework-0.2.0 → abstractframework-0.2.1}/docs/adr/reorg/002_abstractmusic_inprocess_local_generation.md +0 -0
- {abstractframework-0.2.0 → abstractframework-0.2.1}/docs/adr/reorg/003_abstractmusic_acestep_v15_backend_source_strategy.md +0 -0
- {abstractframework-0.2.0 → abstractframework-0.2.1}/docs/adr/reorg/004_smartnote_thin_client_architecture.md +0 -0
- {abstractframework-0.2.0 → abstractframework-0.2.1}/docs/adr/reorg/005_smartnote_artifact_first_cards.md +0 -0
- {abstractframework-0.2.0 → abstractframework-0.2.1}/docs/adr/reorg/2026-02-21_gateway-first-assistant.md +0 -0
- {abstractframework-0.2.0 → abstractframework-0.2.1}/docs/adr/reorg/2026-02-21_installer_manager_strategy.md +0 -0
- {abstractframework-0.2.0 → abstractframework-0.2.1}/docs/adr/reorg/2026-02-21_macos_installer_manager.md +0 -0
- {abstractframework-0.2.0 → abstractframework-0.2.1}/docs/architecture.md +0 -0
- {abstractframework-0.2.0 → abstractframework-0.2.1}/docs/claude/README.md +0 -0
- {abstractframework-0.2.0 → abstractframework-0.2.1}/docs/claude/abstractframework-fit.md +0 -0
- {abstractframework-0.2.0 → abstractframework-0.2.1}/docs/claude/claude-skills-overview.md +0 -0
- {abstractframework-0.2.0 → abstractframework-0.2.1}/docs/claude/claude-skills-sources.md +0 -0
- {abstractframework-0.2.0 → abstractframework-0.2.1}/docs/claude/claude-skills-top-20.md +0 -0
- {abstractframework-0.2.0 → abstractframework-0.2.1}/docs/comparisons/README.md +0 -0
- {abstractframework-0.2.0 → abstractframework-0.2.1}/docs/configuration.md +0 -0
- {abstractframework-0.2.0 → abstractframework-0.2.1}/docs/getting-started.md +0 -0
- {abstractframework-0.2.0 → abstractframework-0.2.1}/docs/glossary.md +0 -0
- {abstractframework-0.2.0 → abstractframework-0.2.1}/docs/guide/LANDING.md +0 -0
- {abstractframework-0.2.0 → abstractframework-0.2.1}/docs/guide/README.md +0 -0
- {abstractframework-0.2.0 → abstractframework-0.2.1}/docs/guide/agent-skills.md +0 -0
- {abstractframework-0.2.0 → abstractframework-0.2.1}/docs/guide/agent-vs-llm.md +0 -0
- {abstractframework-0.2.0 → abstractframework-0.2.1}/docs/guide/agora-workflow-agent.md +0 -0
- {abstractframework-0.2.0 → abstractframework-0.2.1}/docs/guide/apple-local-gateway-flow.md +0 -0
- {abstractframework-0.2.0 → abstractframework-0.2.1}/docs/guide/capability-plugins.md +0 -0
- {abstractframework-0.2.0 → abstractframework-0.2.1}/docs/guide/capability-routing-defaults.md +0 -0
- {abstractframework-0.2.0 → abstractframework-0.2.1}/docs/guide/deployment-iphone.md +0 -0
- {abstractframework-0.2.0 → abstractframework-0.2.1}/docs/guide/deployment-topologies.md +0 -0
- {abstractframework-0.2.0 → abstractframework-0.2.1}/docs/guide/deployment-web.md +0 -0
- {abstractframework-0.2.0 → abstractframework-0.2.1}/docs/guide/email-integration.md +0 -0
- {abstractframework-0.2.0 → abstractframework-0.2.1}/docs/guide/event-inbox-agent.md +0 -0
- {abstractframework-0.2.0 → abstractframework-0.2.1}/docs/guide/flow-and-kg-memory.md +0 -0
- {abstractframework-0.2.0 → abstractframework-0.2.1}/docs/guide/gateway-security.md +0 -0
- {abstractframework-0.2.0 → abstractframework-0.2.1}/docs/guide/headless-swarm.md +0 -0
- {abstractframework-0.2.0 → abstractframework-0.2.1}/docs/guide/process-manager-env-vars.md +0 -0
- {abstractframework-0.2.0 → abstractframework-0.2.1}/docs/guide/prompt-caching.md +0 -0
- {abstractframework-0.2.0 → abstractframework-0.2.1}/docs/guide/runtime-artifacts.md +0 -0
- {abstractframework-0.2.0 → abstractframework-0.2.1}/docs/guide/runtime-scope.md +0 -0
- {abstractframework-0.2.0 → abstractframework-0.2.1}/docs/guide/scheduled-workflows.md +0 -0
- {abstractframework-0.2.0 → abstractframework-0.2.1}/docs/guide/summoned-entities.md +0 -0
- {abstractframework-0.2.0 → abstractframework-0.2.1}/docs/guide/telegram-integration.md +0 -0
- {abstractframework-0.2.0 → abstractframework-0.2.1}/docs/guide/workflow-bundles.md +0 -0
- {abstractframework-0.2.0 → abstractframework-0.2.1}/docs/installers/README.md +0 -0
- {abstractframework-0.2.0 → abstractframework-0.2.1}/docs/installers/components.md +0 -0
- {abstractframework-0.2.0 → abstractframework-0.2.1}/docs/installers/implementation-plan.md +0 -0
- {abstractframework-0.2.0 → abstractframework-0.2.1}/docs/installers/operations-and-support.md +0 -0
- {abstractframework-0.2.0 → abstractframework-0.2.1}/docs/installers/release-and-manifest.md +0 -0
- {abstractframework-0.2.0 → abstractframework-0.2.1}/docs/installers/security-and-os-blocks.md +0 -0
- {abstractframework-0.2.0 → abstractframework-0.2.1}/docs/installers/strategy.md +0 -0
- {abstractframework-0.2.0 → abstractframework-0.2.1}/docs/installers/user-journeys.md +0 -0
- {abstractframework-0.2.0 → abstractframework-0.2.1}/docs/prompts/agora-collaboration.md +0 -0
- {abstractframework-0.2.0 → abstractframework-0.2.1}/docs/scenarios/README.md +0 -0
- {abstractframework-0.2.0 → abstractframework-0.2.1}/docs/scenarios/email-inbox-agent.md +0 -0
- {abstractframework-0.2.0 → abstractframework-0.2.1}/docs/scenarios/gateway-first-local-dev.md +0 -0
- {abstractframework-0.2.0 → abstractframework-0.2.1}/docs/scenarios/offline-coding-assistant.md +0 -0
- {abstractframework-0.2.0 → abstractframework-0.2.1}/docs/scenarios/phone-thin-client.md +0 -0
- {abstractframework-0.2.0 → abstractframework-0.2.1}/docs/scenarios/specialized-agent-flow.md +0 -0
- {abstractframework-0.2.0 → abstractframework-0.2.1}/docs/scenarios/telegram-permanent-contact.md +0 -0
- {abstractframework-0.2.0 → abstractframework-0.2.1}/docs/scenarios/workflow-bundle-lifecycle.md +0 -0
- {abstractframework-0.2.0 → abstractframework-0.2.1}/docs/skills/README.md +0 -0
- {abstractframework-0.2.0 → abstractframework-0.2.1}/docs/skills/abstractframework-agent-skills-fit.md +0 -0
- {abstractframework-0.2.0 → abstractframework-0.2.1}/docs/skills/abstractframework-architecture-deep-dive.md +0 -0
- {abstractframework-0.2.0 → abstractframework-0.2.1}/docs/skills/agent-skills-ecosystem-scan.md +0 -0
- {abstractframework-0.2.0 → abstractframework-0.2.1}/docs/skills/agent-skills-ecosystem-sources.md +0 -0
- {abstractframework-0.2.0 → abstractframework-0.2.1}/docs/skills/claude-agent-skills-overview.md +0 -0
- {abstractframework-0.2.0 → abstractframework-0.2.1}/docs/skills/claude-agent-skills-sources.md +0 -0
- {abstractframework-0.2.0 → abstractframework-0.2.1}/docs/skills/claude-agent-skills-top-20.md +0 -0
- {abstractframework-0.2.0 → abstractframework-0.2.1}/docs/workspace-scripts.md +0 -0
- {abstractframework-0.2.0 → abstractframework-0.2.1}/scripts/af-local.sh +0 -0
- {abstractframework-0.2.0 → abstractframework-0.2.1}/scripts/af.sh +0 -0
- {abstractframework-0.2.0 → abstractframework-0.2.1}/scripts/agora_react_flow_smoke.py +0 -0
- {abstractframework-0.2.0 → abstractframework-0.2.1}/scripts/assistant-local.sh +0 -0
- {abstractframework-0.2.0 → abstractframework-0.2.1}/scripts/assistant.sh +0 -0
- {abstractframework-0.2.0 → abstractframework-0.2.1}/scripts/build.sh +0 -0
- {abstractframework-0.2.0 → abstractframework-0.2.1}/scripts/cache_probe_local_backends.py +0 -0
- {abstractframework-0.2.0 → abstractframework-0.2.1}/scripts/cache_steer_repl.py +0 -0
- {abstractframework-0.2.0 → abstractframework-0.2.1}/scripts/clone.sh +0 -0
- {abstractframework-0.2.0 → abstractframework-0.2.1}/scripts/code-local.sh +0 -0
- {abstractframework-0.2.0 → abstractframework-0.2.1}/scripts/code.sh +0 -0
- {abstractframework-0.2.0 → abstractframework-0.2.1}/scripts/commit.sh +0 -0
- {abstractframework-0.2.0 → abstractframework-0.2.1}/scripts/console-local.sh +0 -0
- {abstractframework-0.2.0 → abstractframework-0.2.1}/scripts/console.sh +0 -0
- {abstractframework-0.2.0 → abstractframework-0.2.1}/scripts/core_operator_drive.py +0 -0
- {abstractframework-0.2.0 → abstractframework-0.2.1}/scripts/deps.sh +0 -0
- {abstractframework-0.2.0 → abstractframework-0.2.1}/scripts/entity-local.sh +0 -0
- {abstractframework-0.2.0 → abstractframework-0.2.1}/scripts/entity.sh +0 -0
- {abstractframework-0.2.0 → abstractframework-0.2.1}/scripts/event_inbox_flow_smoke.py +0 -0
- {abstractframework-0.2.0 → abstractframework-0.2.1}/scripts/flow-local.sh +0 -0
- {abstractframework-0.2.0 → abstractframework-0.2.1}/scripts/flow.sh +0 -0
- {abstractframework-0.2.0 → abstractframework-0.2.1}/scripts/gateway-flow-local.sh +0 -0
- {abstractframework-0.2.0 → abstractframework-0.2.1}/scripts/gateway-flow.sh +0 -0
- {abstractframework-0.2.0 → abstractframework-0.2.1}/scripts/gateway-local.sh +0 -0
- {abstractframework-0.2.0 → abstractframework-0.2.1}/scripts/gateway.sh +0 -0
- {abstractframework-0.2.0 → abstractframework-0.2.1}/scripts/gen_llms_full.py +0 -0
- {abstractframework-0.2.0 → abstractframework-0.2.1}/scripts/headless_fleet_bridge.py +0 -0
- {abstractframework-0.2.0 → abstractframework-0.2.1}/scripts/headless_fleet_demo.py +0 -0
- {abstractframework-0.2.0 → abstractframework-0.2.1}/scripts/headless_steer_repl.py +0 -0
- {abstractframework-0.2.0 → abstractframework-0.2.1}/scripts/lib/af_inventory.py +0 -0
- {abstractframework-0.2.0 → abstractframework-0.2.1}/scripts/lib/af_stack.sh +0 -0
- {abstractframework-0.2.0 → abstractframework-0.2.1}/scripts/lib/af_supervisor.sh +0 -0
- {abstractframework-0.2.0 → abstractframework-0.2.1}/scripts/lib/apps_common.sh +0 -0
- {abstractframework-0.2.0 → abstractframework-0.2.1}/scripts/lib/gateway_user_tokens.py +0 -0
- {abstractframework-0.2.0 → abstractframework-0.2.1}/scripts/lib/repo_groups.sh +0 -0
- {abstractframework-0.2.0 → abstractframework-0.2.1}/scripts/meet_castor.sh +0 -0
- {abstractframework-0.2.0 → abstractframework-0.2.1}/scripts/observer-local.sh +0 -0
- {abstractframework-0.2.0 → abstractframework-0.2.1}/scripts/observer.sh +0 -0
- {abstractframework-0.2.0 → abstractframework-0.2.1}/scripts/plan_walkthrough.py +0 -0
- {abstractframework-0.2.0 → abstractframework-0.2.1}/scripts/pull.sh +0 -0
- {abstractframework-0.2.0 → abstractframework-0.2.1}/scripts/push.sh +0 -0
- {abstractframework-0.2.0 → abstractframework-0.2.1}/scripts/spawn_demo_agent.sh +0 -0
- {abstractframework-0.2.0 → abstractframework-0.2.1}/scripts/start-local.sh +0 -0
- {abstractframework-0.2.0 → abstractframework-0.2.1}/scripts/start.sh +0 -0
- {abstractframework-0.2.0 → abstractframework-0.2.1}/scripts/status.sh +0 -0
- {abstractframework-0.2.0 → abstractframework-0.2.1}/scripts/steer_repl.py +0 -0
- {abstractframework-0.2.0 → abstractframework-0.2.1}/scripts/tests/test_af_supervisor.sh +0 -0
- {abstractframework-0.2.0 → abstractframework-0.2.1}/scripts/tests/test_inventory.sh +0 -0
- {abstractframework-0.2.0 → abstractframework-0.2.1}/scripts/tests/test_repo_scripts.sh +0 -0
- {abstractframework-0.2.0 → abstractframework-0.2.1}/scripts/visit_resume_cache_probe.py +0 -0
- {abstractframework-0.2.0 → abstractframework-0.2.1}/setup.cfg +0 -0
|
@@ -2,7 +2,37 @@
|
|
|
2
2
|
|
|
3
3
|
All notable changes to AbstractFramework will be documented in this file.
|
|
4
4
|
|
|
5
|
-
## [
|
|
5
|
+
## [0.2.1] - 2026-09-24
|
|
6
|
+
|
|
7
|
+
Patch release: the one-line install works on a machine without a C compiler, and the
|
|
8
|
+
meta-package pins abstractvoice 0.11.4. Everything else is unchanged from 0.2.0.
|
|
9
|
+
|
|
10
|
+
### Changed
|
|
11
|
+
|
|
12
|
+
- **abstractvoice 0.11.4** (was 0.11.3). It takes voice activity detection from
|
|
13
|
+
`webrtcvad-wheels`, which ships prebuilt wheels for macOS arm64, Linux and Windows, instead
|
|
14
|
+
of `webrtcvad`, which is source-only on PyPI and needs a compiler. This is the pin that made
|
|
15
|
+
`pip install abstractframework[apple]` build `webrtcvad` from source. The other pins are
|
|
16
|
+
unchanged: abstractgateway 0.3.0, abstractcore 2.14.0, AbstractRuntime 0.4.33.
|
|
17
|
+
|
|
18
|
+
### Fixed
|
|
19
|
+
|
|
20
|
+
- **One-line install needs no compiler.** On a Mac without Xcode Command Line Tools the gateway
|
|
21
|
+
install failed building `webrtcvad` from source, and `llama-cpp-python`,
|
|
22
|
+
`stable-diffusion-cpp-python` and `aec-audio-processing` would have failed next. `install.sh` and
|
|
23
|
+
`install.ps1` now run `uv tool install` with `--with 'webrtcvad-wheels>=2.0.14'`, an overrides
|
|
24
|
+
file (`uv-overrides.txt` in the gateway data directory) that drops `webrtcvad`, keeps `vllm` to
|
|
25
|
+
Linux and leaves out the three compiled extras, plus `--no-build-package` for those packages so
|
|
26
|
+
a missing wheel fails fast instead of starting a compiler. The install runs from the data
|
|
27
|
+
directory and names the file relatively, because uv splits an `--overrides` value at whitespace
|
|
28
|
+
(`Application Support`). On macOS, Linux and Windows the preflight says when no compiler is
|
|
29
|
+
present, and that this is fine; the summary says what was skipped.
|
|
30
|
+
|
|
31
|
+
### Added
|
|
32
|
+
|
|
33
|
+
- **`--full` (Windows: `-Full`)** keeps the compiled extras (llama.cpp GGUF, stable-diffusion.cpp,
|
|
34
|
+
echo cancellation) and builds them from source. It needs a C/C++ compiler and stops before
|
|
35
|
+
installing when none is found.
|
|
6
36
|
|
|
7
37
|
## [0.2.0] - 2026-09-23
|
|
8
38
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: abstractframework
|
|
3
|
-
Version: 0.2.
|
|
3
|
+
Version: 0.2.1
|
|
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
|
|
@@ -30,7 +30,7 @@ Requires-Dist: AbstractRuntime==0.4.33
|
|
|
30
30
|
Requires-Dist: abstractagent==0.3.13
|
|
31
31
|
Requires-Dist: AbstractMemory==0.3.0
|
|
32
32
|
Requires-Dist: abstractsemantics==0.0.5
|
|
33
|
-
Requires-Dist: abstractvoice==0.11.
|
|
33
|
+
Requires-Dist: abstractvoice==0.11.4
|
|
34
34
|
Requires-Dist: abstractvision==0.3.29
|
|
35
35
|
Requires-Dist: abstractmusic==0.1.15
|
|
36
36
|
Provides-Extra: apple
|
|
@@ -300,7 +300,7 @@ pip install "abstractframework[gpu]"
|
|
|
300
300
|
| Apple | `pip install "abstractframework[apple]"` | macOS 14+ on Apple Silicon | 3.10–3.13 (F5-TTS voice cloning needs 3.11+) |
|
|
301
301
|
| 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
302
|
|
|
303
|
-
### Release matrix (abstractframework 0.2.
|
|
303
|
+
### Release matrix (abstractframework 0.2.1)
|
|
304
304
|
|
|
305
305
|
`abstractframework` pins every Python package with `==`, so one version of the
|
|
306
306
|
meta-package always installs the same stack. The browser apps and Rust tools are
|
|
@@ -316,7 +316,7 @@ and tested together.
|
|
|
316
316
|
| PyPI | `abstractagent` | 0.3.13 |
|
|
317
317
|
| PyPI | `AbstractMemory` | 0.3.0 |
|
|
318
318
|
| PyPI | `abstractsemantics` | 0.0.5 |
|
|
319
|
-
| PyPI | `abstractvoice` | 0.11.
|
|
319
|
+
| PyPI | `abstractvoice` | 0.11.4 |
|
|
320
320
|
| PyPI | `abstractvision` | 0.3.29 |
|
|
321
321
|
| PyPI | `abstractmusic` | 0.1.15 |
|
|
322
322
|
| npm | `@abstractframework/flow` | 0.3.20 |
|
|
@@ -257,7 +257,7 @@ pip install "abstractframework[gpu]"
|
|
|
257
257
|
| Apple | `pip install "abstractframework[apple]"` | macOS 14+ on Apple Silicon | 3.10–3.13 (F5-TTS voice cloning needs 3.11+) |
|
|
258
258
|
| GPU | `pip install "abstractframework[gpu]"` | Linux / Windows with a CUDA or ROCm GPU | 3.10–3.13 (F5-TTS voice cloning needs 3.11+) |
|
|
259
259
|
|
|
260
|
-
### Release matrix (abstractframework 0.2.
|
|
260
|
+
### Release matrix (abstractframework 0.2.1)
|
|
261
261
|
|
|
262
262
|
`abstractframework` pins every Python package with `==`, so one version of the
|
|
263
263
|
meta-package always installs the same stack. The browser apps and Rust tools are
|
|
@@ -273,7 +273,7 @@ and tested together.
|
|
|
273
273
|
| PyPI | `abstractagent` | 0.3.13 |
|
|
274
274
|
| PyPI | `AbstractMemory` | 0.3.0 |
|
|
275
275
|
| PyPI | `abstractsemantics` | 0.0.5 |
|
|
276
|
-
| PyPI | `abstractvoice` | 0.11.
|
|
276
|
+
| PyPI | `abstractvoice` | 0.11.4 |
|
|
277
277
|
| PyPI | `abstractvision` | 0.3.29 |
|
|
278
278
|
| PyPI | `abstractmusic` | 0.1.15 |
|
|
279
279
|
| npm | `@abstractframework/flow` | 0.3.20 |
|
|
@@ -10,7 +10,7 @@ Most implementation functionality still lives in component projects.
|
|
|
10
10
|
|
|
11
11
|
from __future__ import annotations
|
|
12
12
|
|
|
13
|
-
__version__ = "0.2.
|
|
13
|
+
__version__ = "0.2.1"
|
|
14
14
|
__author__ = "Laurent-Philippe Albou"
|
|
15
15
|
__license__ = "MIT"
|
|
16
16
|
|
|
@@ -21,7 +21,7 @@ RELEASE_VERSIONS: dict[str, str] = {
|
|
|
21
21
|
"abstractgateway": "0.3.0",
|
|
22
22
|
"abstractmemory": "0.3.0",
|
|
23
23
|
"abstractsemantics": "0.0.5",
|
|
24
|
-
"abstractvoice": "0.11.
|
|
24
|
+
"abstractvoice": "0.11.4",
|
|
25
25
|
"abstractvision": "0.3.29",
|
|
26
26
|
"abstractmusic": "0.1.15",
|
|
27
27
|
"abstractassistant": "0.5.0",
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: abstractframework
|
|
3
|
-
Version: 0.2.
|
|
3
|
+
Version: 0.2.1
|
|
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
|
|
@@ -30,7 +30,7 @@ Requires-Dist: AbstractRuntime==0.4.33
|
|
|
30
30
|
Requires-Dist: abstractagent==0.3.13
|
|
31
31
|
Requires-Dist: AbstractMemory==0.3.0
|
|
32
32
|
Requires-Dist: abstractsemantics==0.0.5
|
|
33
|
-
Requires-Dist: abstractvoice==0.11.
|
|
33
|
+
Requires-Dist: abstractvoice==0.11.4
|
|
34
34
|
Requires-Dist: abstractvision==0.3.29
|
|
35
35
|
Requires-Dist: abstractmusic==0.1.15
|
|
36
36
|
Provides-Extra: apple
|
|
@@ -300,7 +300,7 @@ pip install "abstractframework[gpu]"
|
|
|
300
300
|
| Apple | `pip install "abstractframework[apple]"` | macOS 14+ on Apple Silicon | 3.10–3.13 (F5-TTS voice cloning needs 3.11+) |
|
|
301
301
|
| 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
302
|
|
|
303
|
-
### Release matrix (abstractframework 0.2.
|
|
303
|
+
### Release matrix (abstractframework 0.2.1)
|
|
304
304
|
|
|
305
305
|
`abstractframework` pins every Python package with `==`, so one version of the
|
|
306
306
|
meta-package always installs the same stack. The browser apps and Rust tools are
|
|
@@ -316,7 +316,7 @@ and tested together.
|
|
|
316
316
|
| PyPI | `abstractagent` | 0.3.13 |
|
|
317
317
|
| PyPI | `AbstractMemory` | 0.3.0 |
|
|
318
318
|
| PyPI | `abstractsemantics` | 0.0.5 |
|
|
319
|
-
| PyPI | `abstractvoice` | 0.11.
|
|
319
|
+
| PyPI | `abstractvoice` | 0.11.4 |
|
|
320
320
|
| PyPI | `abstractvision` | 0.3.29 |
|
|
321
321
|
| PyPI | `abstractmusic` | 0.1.15 |
|
|
322
322
|
| npm | `@abstractframework/flow` | 0.3.20 |
|
|
@@ -57,7 +57,7 @@ The response type returned by `llm.generate(...)`.
|
|
|
57
57
|
|
|
58
58
|
Dictionary mapping each ecosystem package name to the pinned version for this release. In 0.2.0:
|
|
59
59
|
`abstractcore` 2.14.0, `abstractruntime` 0.4.33, `abstractagent` 0.3.13, `abstractgateway` 0.3.0,
|
|
60
|
-
`abstractmemory` 0.3.0, `abstractsemantics` 0.0.5, `abstractvoice` 0.11.
|
|
60
|
+
`abstractmemory` 0.3.0, `abstractsemantics` 0.0.5, `abstractvoice` 0.11.4, `abstractvision` 0.3.29,
|
|
61
61
|
`abstractmusic` 0.1.15, `abstractassistant` 0.5.0.
|
|
62
62
|
|
|
63
63
|
### `PACKAGE_DISTRIBUTIONS`
|
|
@@ -179,6 +179,13 @@ user account. Only optional vendor installers may: Ollama on Linux uses sudo (it
|
|
|
179
179
|
service), Ollama on macOS may ask to link `/usr/local/bin/ollama`, and LM Studio on Linux may ask
|
|
180
180
|
to install `libatomic1`. The script tells you before running them.
|
|
181
181
|
|
|
182
|
+
### Do I need Xcode or a C compiler?
|
|
183
|
+
|
|
184
|
+
No. The default install uses prebuilt wheels only. If macOS shows an "install the command line
|
|
185
|
+
developer tools" prompt, cancel it and re-run the current one-liner: an older copy of the script
|
|
186
|
+
compiled a few packages. You need a compiler only for `--full`, which adds llama.cpp GGUF,
|
|
187
|
+
stable-diffusion.cpp and echo cancellation ([Compiled extras](install.md#compiled-extras)).
|
|
188
|
+
|
|
182
189
|
### Windows says scripts are disabled on this system
|
|
183
190
|
|
|
184
191
|
Pasting the one-liner works under the default `Restricted` policy because
|
|
@@ -30,7 +30,8 @@ default model picked from the models that fit your machine, and the apps. The **
|
|
|
30
30
|
`light` otherwise.
|
|
31
31
|
2. Installs [uv](https://docs.astral.sh/uv/) when it is missing, then Python 3.12 through uv.
|
|
32
32
|
3. Installs the gateway as an isolated uv tool, pinned to this release:
|
|
33
|
-
`uv tool install --python 3.12 "abstractgateway[<profile>,tray]==0.3.0"
|
|
33
|
+
`uv tool install --python 3.12 "abstractgateway[<profile>,tray]==0.3.0"`, from prebuilt wheels
|
|
34
|
+
only (see [No compiler needed](#no-compiler-needed)).
|
|
34
35
|
4. Optionally installs Node.js for the browser apps, terminal tools, Ollama or LM Studio (flags
|
|
35
36
|
below).
|
|
36
37
|
5. Registers the gateway to start at login with `abstractgateway service install` (a LaunchAgent on
|
|
@@ -44,6 +45,28 @@ default model picked from the models that fit your machine, and the apps. The **
|
|
|
44
45
|
Every command is printed as it runs, and the summary lists them all. Re-running the script
|
|
45
46
|
upgrades or repairs the install in place.
|
|
46
47
|
|
|
48
|
+
### No compiler needed
|
|
49
|
+
|
|
50
|
+
By default the script never compiles anything, so you do not need Xcode Command Line Tools, gcc
|
|
51
|
+
or the MSVC Build Tools. It passes uv a small overrides file (`uv-overrides.txt` in the gateway
|
|
52
|
+
data directory; `--print` shows it) that swaps `webrtcvad` for `webrtcvad-wheels`, keeps `vllm`
|
|
53
|
+
to Linux, and leaves out the three compiled extras below, and it refuses to build those packages
|
|
54
|
+
from source, so a gap fails with a clear error instead of starting a compiler. If macOS asks you
|
|
55
|
+
to install the command line developer tools (an `xcode-select` prompt) during an install, you are
|
|
56
|
+
running an older copy of the script: cancel the prompt, fetch the script again with the one-liner
|
|
57
|
+
above and re-run it.
|
|
58
|
+
|
|
59
|
+
### Compiled extras
|
|
60
|
+
|
|
61
|
+
Three optional engines publish no wheel on PyPI and are skipped by default: llama.cpp GGUF models
|
|
62
|
+
in-process (`llama-cpp-python`), stable-diffusion.cpp image generation
|
|
63
|
+
(`stable-diffusion-cpp-python`) and voice echo cancellation (`aec-audio-processing`). `--full`
|
|
64
|
+
(Windows: `-Full`) keeps them and builds them from source, which takes several minutes and needs a
|
|
65
|
+
C/C++ compiler (macOS: `xcode-select --install`; Debian/Ubuntu: `sudo apt-get install -y
|
|
66
|
+
build-essential`; Windows: Visual Studio Build Tools with "Desktop development with C++"). Without
|
|
67
|
+
a compiler, `--full` stops before installing anything. You do not need them for MLX on Apple
|
|
68
|
+
Silicon, for Ollama, LM Studio or other endpoint engines, or for cloud providers.
|
|
69
|
+
|
|
47
70
|
### Options
|
|
48
71
|
|
|
49
72
|
| macOS/Linux | Windows | What it does |
|
|
@@ -56,6 +79,7 @@ upgrades or repairs the install in place.
|
|
|
56
79
|
| `--with-console` | `-WithConsole` | Install the `abstractgateway-console` crate with cargo (terminal console; needs Rust) |
|
|
57
80
|
| `--with-code-cli` | `-WithCodeCli` | Install the `abstractcode` crate with cargo (terminal client; needs Rust) |
|
|
58
81
|
| `--with-core-cli` | `-WithCoreCli` | Also put the `abstractcore` command on PATH |
|
|
82
|
+
| `--full` | `-Full` | Also build the [compiled extras](#compiled-extras) from source (needs a C compiler) |
|
|
59
83
|
| `--no-service` | `-NoService` | Do not register a login service |
|
|
60
84
|
| `--no-open` | `-NoOpen` | Do not open the browser |
|
|
61
85
|
| `--pin X` / `--from PATH` | `-Pin` / `-From` | Install another gateway version or a local checkout |
|
|
@@ -79,6 +103,7 @@ curl -LsSf https://raw.githubusercontent.com/lpalbou/AbstractFramework/main/scri
|
|
|
79
103
|
curl -LsSf https://astral.sh/uv/install.sh | sh # Windows: irm https://astral.sh/uv/install.ps1 | iex
|
|
80
104
|
uv python install 3.12
|
|
81
105
|
uv tool install --python 3.12 "abstractgateway[tray]==0.3.0" # [apple,tray] or [gpu,tray] for local engines
|
|
106
|
+
# (add --with and --overrides as shown by `install.sh --print` to avoid compiling)
|
|
82
107
|
uv tool update-shell # puts ~/.local/bin on PATH; open a new terminal
|
|
83
108
|
abstractgateway service install --host 127.0.0.1 --port 8080 # or: abstractgateway serve
|
|
84
109
|
abstractgateway-config claim-url --base-url http://127.0.0.1:8080 # prints a one-time console link
|
|
@@ -155,9 +180,14 @@ whether local inference engines are installed.
|
|
|
155
180
|
| Apple | macOS 14 or later on Apple Silicon | 3.10–3.13 | MLX wheels need macOS 14+. F5-TTS voice cloning needs Python 3.11+; the rest of the profile works on 3.10. |
|
|
156
181
|
| GPU | Linux (and Windows where the engines publish wheels) with NVIDIA CUDA or AMD ROCm drivers | 3.10–3.13 | F5-TTS voice cloning needs Python 3.11+; the rest of the profile works on 3.10. |
|
|
157
182
|
|
|
183
|
+
A plain `pip install` of the `apple` or `gpu` profile builds the
|
|
184
|
+
[compiled extras](#compiled-extras) (`llama-cpp-python`, `stable-diffusion-cpp-python`,
|
|
185
|
+
`aec-audio-processing`) from source, so it needs a C/C++ compiler. The one-line install above
|
|
186
|
+
does not.
|
|
187
|
+
|
|
158
188
|
`abstractframework` 0.2.0 pins `abstractgateway==0.3.0`, `abstractassistant==0.5.0`,
|
|
159
189
|
`abstractcore==2.14.0`, `AbstractRuntime==0.4.33`, `abstractagent==0.3.13`,
|
|
160
|
-
`AbstractMemory==0.3.0`, `abstractsemantics==0.0.5`, `abstractvoice==0.11.
|
|
190
|
+
`AbstractMemory==0.3.0`, `abstractsemantics==0.0.5`, `abstractvoice==0.11.4`,
|
|
161
191
|
`abstractvision==0.3.29` and `abstractmusic==0.1.15`. The `apple` and `gpu` extras select
|
|
162
192
|
`abstractgateway[apple|gpu]` and `abstractassistant[apple|gpu]` at the same versions
|
|
163
193
|
(`abstractassistant[apple]` is installed on macOS only). `abstractframework doctor` reports any
|
|
@@ -261,7 +261,7 @@ pip install "abstractframework[gpu]"
|
|
|
261
261
|
| Apple | `pip install "abstractframework[apple]"` | macOS 14+ on Apple Silicon | 3.10–3.13 (F5-TTS voice cloning needs 3.11+) |
|
|
262
262
|
| GPU | `pip install "abstractframework[gpu]"` | Linux / Windows with a CUDA or ROCm GPU | 3.10–3.13 (F5-TTS voice cloning needs 3.11+) |
|
|
263
263
|
|
|
264
|
-
### Release matrix (abstractframework 0.2.
|
|
264
|
+
### Release matrix (abstractframework 0.2.1)
|
|
265
265
|
|
|
266
266
|
`abstractframework` pins every Python package with `==`, so one version of the
|
|
267
267
|
meta-package always installs the same stack. The browser apps and Rust tools are
|
|
@@ -277,7 +277,7 @@ and tested together.
|
|
|
277
277
|
| PyPI | `abstractagent` | 0.3.13 |
|
|
278
278
|
| PyPI | `AbstractMemory` | 0.3.0 |
|
|
279
279
|
| PyPI | `abstractsemantics` | 0.0.5 |
|
|
280
|
-
| PyPI | `abstractvoice` | 0.11.
|
|
280
|
+
| PyPI | `abstractvoice` | 0.11.4 |
|
|
281
281
|
| PyPI | `abstractvision` | 0.3.29 |
|
|
282
282
|
| PyPI | `abstractmusic` | 0.1.15 |
|
|
283
283
|
| npm | `@abstractframework/flow` | 0.3.20 |
|
|
@@ -471,7 +471,7 @@ Notes for LLMs working in this repo:
|
|
|
471
471
|
- [abstractframework/__init__.py](abstractframework/__init__.py): `RELEASE_VERSIONS`, `NPM_RELEASE_VERSIONS`, `get_release_profile()`, `print_status()`.
|
|
472
472
|
- [docs/installers/install-manifest.json](docs/installers/install-manifest.json): Generated install manifest, schema v2 (pins, profiles, npm apps, `bootstrap` gateway pin/scripts/flags, console-first `post_install`).
|
|
473
473
|
- [scripts/install.sh](scripts/install.sh) / [scripts/install.ps1](scripts/install.ps1): The bootstrap installers.
|
|
474
|
-
- abstractframework 0.2.
|
|
474
|
+
- abstractframework 0.2.1 pins (PyPI, `==`): abstractgateway 0.3.0, abstractassistant 0.5.0, abstractcore 2.14.0, AbstractRuntime 0.4.33, abstractagent 0.3.13, AbstractMemory 0.3.0, abstractsemantics 0.0.5, abstractvoice 0.11.4, abstractvision 0.3.29, abstractmusic 0.1.15.
|
|
475
475
|
- Released with it: npm `@abstractframework/flow` 0.3.20, `code` 0.4.2, `observer` 0.1.12, `continuum` 0.2.0, `entity` 0.1.0 (run with `npx`); crates (`CRATE_RELEASE_VERSIONS`) `abstractgateway-console` 0.7.0, `abstractcore-console` 0.2.0, `abstractcode` 0.5.1, `abstracttui` 0.6.0; images `ghcr.io/lpalbou/abstractgateway:0.3.0`, `ghcr.io/lpalbou/abstractcore-server:2.14.0`.
|
|
476
476
|
- Profiles: light (remote-only), apple (`abstractframework[apple]`, macOS 14+ Apple Silicon), gpu (`abstractframework[gpu]`); Python 3.10-3.13 (F5-TTS voice cloning in apple/gpu needs 3.11+).
|
|
477
477
|
|
|
@@ -512,7 +512,7 @@ build-backend = "setuptools.build_meta"
|
|
|
512
512
|
|
|
513
513
|
[project]
|
|
514
514
|
name = "abstractframework"
|
|
515
|
-
version = "0.2.
|
|
515
|
+
version = "0.2.1"
|
|
516
516
|
description = "Unified installer and documentation hub for the AbstractFramework ecosystem"
|
|
517
517
|
readme = "README.md"
|
|
518
518
|
license = {text = "MIT"}
|
|
@@ -570,7 +570,7 @@ dependencies = [
|
|
|
570
570
|
|
|
571
571
|
# Capability plugins are remote-first by default; local runtimes live behind
|
|
572
572
|
# their package-specific `apple`/`gpu` (or `all-*`) extras.
|
|
573
|
-
"abstractvoice==0.11.
|
|
573
|
+
"abstractvoice==0.11.4",
|
|
574
574
|
"abstractvision==0.3.29",
|
|
575
575
|
"abstractmusic==0.1.15",
|
|
576
576
|
]
|
|
@@ -644,7 +644,7 @@ Most implementation functionality still lives in component projects.
|
|
|
644
644
|
|
|
645
645
|
from __future__ import annotations
|
|
646
646
|
|
|
647
|
-
__version__ = "0.2.
|
|
647
|
+
__version__ = "0.2.1"
|
|
648
648
|
__author__ = "Laurent-Philippe Albou"
|
|
649
649
|
__license__ = "MIT"
|
|
650
650
|
|
|
@@ -655,7 +655,7 @@ RELEASE_VERSIONS: dict[str, str] = {
|
|
|
655
655
|
"abstractgateway": "0.3.0",
|
|
656
656
|
"abstractmemory": "0.3.0",
|
|
657
657
|
"abstractsemantics": "0.0.5",
|
|
658
|
-
"abstractvoice": "0.11.
|
|
658
|
+
"abstractvoice": "0.11.4",
|
|
659
659
|
"abstractvision": "0.3.29",
|
|
660
660
|
"abstractmusic": "0.1.15",
|
|
661
661
|
"abstractassistant": "0.5.0",
|
|
@@ -1796,7 +1796,8 @@ default model picked from the models that fit your machine, and the apps. The **
|
|
|
1796
1796
|
`light` otherwise.
|
|
1797
1797
|
2. Installs [uv](https://docs.astral.sh/uv/) when it is missing, then Python 3.12 through uv.
|
|
1798
1798
|
3. Installs the gateway as an isolated uv tool, pinned to this release:
|
|
1799
|
-
`uv tool install --python 3.12 "abstractgateway[<profile>,tray]==0.3.0"
|
|
1799
|
+
`uv tool install --python 3.12 "abstractgateway[<profile>,tray]==0.3.0"`, from prebuilt wheels
|
|
1800
|
+
only (see [No compiler needed](#no-compiler-needed)).
|
|
1800
1801
|
4. Optionally installs Node.js for the browser apps, terminal tools, Ollama or LM Studio (flags
|
|
1801
1802
|
below).
|
|
1802
1803
|
5. Registers the gateway to start at login with `abstractgateway service install` (a LaunchAgent on
|
|
@@ -1810,6 +1811,28 @@ default model picked from the models that fit your machine, and the apps. The **
|
|
|
1810
1811
|
Every command is printed as it runs, and the summary lists them all. Re-running the script
|
|
1811
1812
|
upgrades or repairs the install in place.
|
|
1812
1813
|
|
|
1814
|
+
### No compiler needed
|
|
1815
|
+
|
|
1816
|
+
By default the script never compiles anything, so you do not need Xcode Command Line Tools, gcc
|
|
1817
|
+
or the MSVC Build Tools. It passes uv a small overrides file (`uv-overrides.txt` in the gateway
|
|
1818
|
+
data directory; `--print` shows it) that swaps `webrtcvad` for `webrtcvad-wheels`, keeps `vllm`
|
|
1819
|
+
to Linux, and leaves out the three compiled extras below, and it refuses to build those packages
|
|
1820
|
+
from source, so a gap fails with a clear error instead of starting a compiler. If macOS asks you
|
|
1821
|
+
to install the command line developer tools (an `xcode-select` prompt) during an install, you are
|
|
1822
|
+
running an older copy of the script: cancel the prompt, fetch the script again with the one-liner
|
|
1823
|
+
above and re-run it.
|
|
1824
|
+
|
|
1825
|
+
### Compiled extras
|
|
1826
|
+
|
|
1827
|
+
Three optional engines publish no wheel on PyPI and are skipped by default: llama.cpp GGUF models
|
|
1828
|
+
in-process (`llama-cpp-python`), stable-diffusion.cpp image generation
|
|
1829
|
+
(`stable-diffusion-cpp-python`) and voice echo cancellation (`aec-audio-processing`). `--full`
|
|
1830
|
+
(Windows: `-Full`) keeps them and builds them from source, which takes several minutes and needs a
|
|
1831
|
+
C/C++ compiler (macOS: `xcode-select --install`; Debian/Ubuntu: `sudo apt-get install -y
|
|
1832
|
+
build-essential`; Windows: Visual Studio Build Tools with "Desktop development with C++"). Without
|
|
1833
|
+
a compiler, `--full` stops before installing anything. You do not need them for MLX on Apple
|
|
1834
|
+
Silicon, for Ollama, LM Studio or other endpoint engines, or for cloud providers.
|
|
1835
|
+
|
|
1813
1836
|
### Options
|
|
1814
1837
|
|
|
1815
1838
|
| macOS/Linux | Windows | What it does |
|
|
@@ -1822,6 +1845,7 @@ upgrades or repairs the install in place.
|
|
|
1822
1845
|
| `--with-console` | `-WithConsole` | Install the `abstractgateway-console` crate with cargo (terminal console; needs Rust) |
|
|
1823
1846
|
| `--with-code-cli` | `-WithCodeCli` | Install the `abstractcode` crate with cargo (terminal client; needs Rust) |
|
|
1824
1847
|
| `--with-core-cli` | `-WithCoreCli` | Also put the `abstractcore` command on PATH |
|
|
1848
|
+
| `--full` | `-Full` | Also build the [compiled extras](#compiled-extras) from source (needs a C compiler) |
|
|
1825
1849
|
| `--no-service` | `-NoService` | Do not register a login service |
|
|
1826
1850
|
| `--no-open` | `-NoOpen` | Do not open the browser |
|
|
1827
1851
|
| `--pin X` / `--from PATH` | `-Pin` / `-From` | Install another gateway version or a local checkout |
|
|
@@ -1845,6 +1869,7 @@ curl -LsSf https://raw.githubusercontent.com/lpalbou/AbstractFramework/main/scri
|
|
|
1845
1869
|
curl -LsSf https://astral.sh/uv/install.sh | sh # Windows: irm https://astral.sh/uv/install.ps1 | iex
|
|
1846
1870
|
uv python install 3.12
|
|
1847
1871
|
uv tool install --python 3.12 "abstractgateway[tray]==0.3.0" # [apple,tray] or [gpu,tray] for local engines
|
|
1872
|
+
# (add --with and --overrides as shown by `install.sh --print` to avoid compiling)
|
|
1848
1873
|
uv tool update-shell # puts ~/.local/bin on PATH; open a new terminal
|
|
1849
1874
|
abstractgateway service install --host 127.0.0.1 --port 8080 # or: abstractgateway serve
|
|
1850
1875
|
abstractgateway-config claim-url --base-url http://127.0.0.1:8080 # prints a one-time console link
|
|
@@ -1921,9 +1946,14 @@ whether local inference engines are installed.
|
|
|
1921
1946
|
| Apple | macOS 14 or later on Apple Silicon | 3.10–3.13 | MLX wheels need macOS 14+. F5-TTS voice cloning needs Python 3.11+; the rest of the profile works on 3.10. |
|
|
1922
1947
|
| GPU | Linux (and Windows where the engines publish wheels) with NVIDIA CUDA or AMD ROCm drivers | 3.10–3.13 | F5-TTS voice cloning needs Python 3.11+; the rest of the profile works on 3.10. |
|
|
1923
1948
|
|
|
1949
|
+
A plain `pip install` of the `apple` or `gpu` profile builds the
|
|
1950
|
+
[compiled extras](#compiled-extras) (`llama-cpp-python`, `stable-diffusion-cpp-python`,
|
|
1951
|
+
`aec-audio-processing`) from source, so it needs a C/C++ compiler. The one-line install above
|
|
1952
|
+
does not.
|
|
1953
|
+
|
|
1924
1954
|
`abstractframework` 0.2.0 pins `abstractgateway==0.3.0`, `abstractassistant==0.5.0`,
|
|
1925
1955
|
`abstractcore==2.14.0`, `AbstractRuntime==0.4.33`, `abstractagent==0.3.13`,
|
|
1926
|
-
`AbstractMemory==0.3.0`, `abstractsemantics==0.0.5`, `abstractvoice==0.11.
|
|
1956
|
+
`AbstractMemory==0.3.0`, `abstractsemantics==0.0.5`, `abstractvoice==0.11.4`,
|
|
1927
1957
|
`abstractvision==0.3.29` and `abstractmusic==0.1.15`. The `apple` and `gpu` extras select
|
|
1928
1958
|
`abstractgateway[apple|gpu]` and `abstractassistant[apple|gpu]` at the same versions
|
|
1929
1959
|
(`abstractassistant[apple]` is installed on macOS only). `abstractframework doctor` reports any
|
|
@@ -3118,7 +3148,7 @@ The response type returned by `llm.generate(...)`.
|
|
|
3118
3148
|
|
|
3119
3149
|
Dictionary mapping each ecosystem package name to the pinned version for this release. In 0.2.0:
|
|
3120
3150
|
`abstractcore` 2.14.0, `abstractruntime` 0.4.33, `abstractagent` 0.3.13, `abstractgateway` 0.3.0,
|
|
3121
|
-
`abstractmemory` 0.3.0, `abstractsemantics` 0.0.5, `abstractvoice` 0.11.
|
|
3151
|
+
`abstractmemory` 0.3.0, `abstractsemantics` 0.0.5, `abstractvoice` 0.11.4, `abstractvision` 0.3.29,
|
|
3122
3152
|
`abstractmusic` 0.1.15, `abstractassistant` 0.5.0.
|
|
3123
3153
|
|
|
3124
3154
|
### `PACKAGE_DISTRIBUTIONS`
|
|
@@ -3449,6 +3479,13 @@ user account. Only optional vendor installers may: Ollama on Linux uses sudo (it
|
|
|
3449
3479
|
service), Ollama on macOS may ask to link `/usr/local/bin/ollama`, and LM Studio on Linux may ask
|
|
3450
3480
|
to install `libatomic1`. The script tells you before running them.
|
|
3451
3481
|
|
|
3482
|
+
### Do I need Xcode or a C compiler?
|
|
3483
|
+
|
|
3484
|
+
No. The default install uses prebuilt wheels only. If macOS shows an "install the command line
|
|
3485
|
+
developer tools" prompt, cancel it and re-run the current one-liner: an older copy of the script
|
|
3486
|
+
compiled a few packages. You need a compiler only for `--full`, which adds llama.cpp GGUF,
|
|
3487
|
+
stable-diffusion.cpp and echo cancellation ([Compiled extras](install.md#compiled-extras)).
|
|
3488
|
+
|
|
3452
3489
|
### Windows says scripts are disabled on this system
|
|
3453
3490
|
|
|
3454
3491
|
Pasting the one-liner works under the default `Restricted` policy because
|
|
@@ -122,7 +122,7 @@ Notes for LLMs working in this repo:
|
|
|
122
122
|
- [abstractframework/__init__.py](abstractframework/__init__.py): `RELEASE_VERSIONS`, `NPM_RELEASE_VERSIONS`, `get_release_profile()`, `print_status()`.
|
|
123
123
|
- [docs/installers/install-manifest.json](docs/installers/install-manifest.json): Generated install manifest, schema v2 (pins, profiles, npm apps, `bootstrap` gateway pin/scripts/flags, console-first `post_install`).
|
|
124
124
|
- [scripts/install.sh](scripts/install.sh) / [scripts/install.ps1](scripts/install.ps1): The bootstrap installers.
|
|
125
|
-
- abstractframework 0.2.
|
|
125
|
+
- abstractframework 0.2.1 pins (PyPI, `==`): abstractgateway 0.3.0, abstractassistant 0.5.0, abstractcore 2.14.0, AbstractRuntime 0.4.33, abstractagent 0.3.13, AbstractMemory 0.3.0, abstractsemantics 0.0.5, abstractvoice 0.11.4, abstractvision 0.3.29, abstractmusic 0.1.15.
|
|
126
126
|
- Released with it: npm `@abstractframework/flow` 0.3.20, `code` 0.4.2, `observer` 0.1.12, `continuum` 0.2.0, `entity` 0.1.0 (run with `npx`); crates (`CRATE_RELEASE_VERSIONS`) `abstractgateway-console` 0.7.0, `abstractcore-console` 0.2.0, `abstractcode` 0.5.1, `abstracttui` 0.6.0; images `ghcr.io/lpalbou/abstractgateway:0.3.0`, `ghcr.io/lpalbou/abstractcore-server:2.14.0`.
|
|
127
127
|
- Profiles: light (remote-only), apple (`abstractframework[apple]`, macOS 14+ Apple Silicon), gpu (`abstractframework[gpu]`); Python 3.10-3.13 (F5-TTS voice cloning in apple/gpu needs 3.11+).
|
|
128
128
|
|
|
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "abstractframework"
|
|
7
|
-
version = "0.2.
|
|
7
|
+
version = "0.2.1"
|
|
8
8
|
description = "Unified installer and documentation hub for the AbstractFramework ecosystem"
|
|
9
9
|
readme = "README.md"
|
|
10
10
|
license = {text = "MIT"}
|
|
@@ -62,7 +62,7 @@ dependencies = [
|
|
|
62
62
|
|
|
63
63
|
# Capability plugins are remote-first by default; local runtimes live behind
|
|
64
64
|
# their package-specific `apple`/`gpu` (or `all-*`) extras.
|
|
65
|
-
"abstractvoice==0.11.
|
|
65
|
+
"abstractvoice==0.11.4",
|
|
66
66
|
"abstractvision==0.3.29",
|
|
67
67
|
"abstractmusic==0.1.15",
|
|
68
68
|
]
|
|
@@ -13,7 +13,8 @@
|
|
|
13
13
|
# profile), free disk, a free port, systemd user bus (Linux)
|
|
14
14
|
# 2. uv (https://docs.astral.sh/uv) if missing, then Python 3.12 through uv
|
|
15
15
|
# 3. `uv tool install --python 3.12 "abstractgateway[<profile>,tray]==<pin>"`
|
|
16
|
-
# (isolated, user-scoped; commands land in ~/.local/bin
|
|
16
|
+
# (isolated, user-scoped; commands land in ~/.local/bin; prebuilt wheels
|
|
17
|
+
# only, so no C compiler / Xcode tools are needed)
|
|
17
18
|
# 4. optional: Node.js for the browser apps, terminal tools, Ollama, LM Studio
|
|
18
19
|
# 5. registers the gateway as a user service when the installed gateway
|
|
19
20
|
# supports `abstractgateway service install`, otherwise starts it in the
|
|
@@ -35,6 +36,8 @@
|
|
|
35
36
|
# --with-core-cli also expose the `abstractcore` command
|
|
36
37
|
# --with-ollama run Ollama's official installer (may ask for sudo)
|
|
37
38
|
# --with-lmstudio run LM Studio's headless installer (llmster)
|
|
39
|
+
# --full also build the compiled extras (llama.cpp GGUF,
|
|
40
|
+
# stable-diffusion.cpp, echo cancellation); needs a C compiler
|
|
38
41
|
# --no-tray skip the tray extra
|
|
39
42
|
# --no-service do not register a login service; start in background
|
|
40
43
|
# --no-start install only; do not start the gateway
|
|
@@ -64,6 +67,40 @@ AF_CRATE_CODE_CLI="abstractcode@0.5.1"
|
|
|
64
67
|
AF_DOCS="https://github.com/lpalbou/AbstractFramework/blob/main/docs/install.md"
|
|
65
68
|
AF_SCRIPT_URL="https://raw.githubusercontent.com/lpalbou/AbstractFramework/main/scripts/install.sh"
|
|
66
69
|
|
|
70
|
+
# ---------------------------------------------------------------------------
|
|
71
|
+
# Prebuilt wheels only: by default no C compiler (Xcode CLT, gcc) is needed.
|
|
72
|
+
# A few packages in the gateway tree publish no usable wheel on PyPI, so a plain
|
|
73
|
+
# install compiles them (and on a fresh Mac pops the Xcode tools dialog).
|
|
74
|
+
# `uv tool install` gets an overrides file (an override whose marker is never
|
|
75
|
+
# true drops the package) and --no-build-package for the same packages, so a gap
|
|
76
|
+
# fails fast with a resolver error instead of starting a compiler:
|
|
77
|
+
# webrtcvad always dropped; `webrtcvad-wheels` (same module) via --with
|
|
78
|
+
# vllm Linux only (no Windows build exists)
|
|
79
|
+
# the compiled extras, dropped unless --full: llama-cpp-python (llama.cpp
|
|
80
|
+
# GGUF), stable-diffusion-cpp-python (stable-diffusion.cpp), aec-audio-processing
|
|
81
|
+
# (echo cancellation). All three are optional and imported lazily; MLX on
|
|
82
|
+
# Apple Silicon does not need them. --full keeps them and builds them from
|
|
83
|
+
# source, so it requires a compiler.
|
|
84
|
+
# Pure-Python sdists (langdetect, antlr4-python3-runtime, encodec,
|
|
85
|
+
# transformers-stream-generator) still build: they need no compiler, which is
|
|
86
|
+
# why there is no global --no-build. install.ps1 carries the same lists
|
|
87
|
+
# (tests/test_install_profiles.py keeps them in sync).
|
|
88
|
+
# ---------------------------------------------------------------------------
|
|
89
|
+
AF_WITH_WHEELS="webrtcvad-wheels>=2.0.14"
|
|
90
|
+
AF_COMPILED_EXTRAS="llama-cpp-python stable-diffusion-cpp-python aec-audio-processing"
|
|
91
|
+
AF_SKIPPED_LINE="Skipped compiled extras (llama.cpp GGUF, stable-diffusion.cpp, echo cancellation): re-run with --full after installing a C compiler."
|
|
92
|
+
af_uv_overrides() {
|
|
93
|
+
echo "webrtcvad; sys_platform == 'never'"
|
|
94
|
+
echo "vllm>=0.6.0,<1.0.0; sys_platform == 'linux'"
|
|
95
|
+
if [ "$FULL" = 0 ]; then
|
|
96
|
+
for _p in $AF_COMPILED_EXTRAS; do echo "$_p; sys_platform == 'never'"; done
|
|
97
|
+
fi
|
|
98
|
+
}
|
|
99
|
+
af_no_build_packages() {
|
|
100
|
+
echo "webrtcvad vllm"
|
|
101
|
+
[ "$FULL" = 1 ] || echo "$AF_COMPILED_EXTRAS"
|
|
102
|
+
}
|
|
103
|
+
|
|
67
104
|
# ---------------------------------------------------------------------------
|
|
68
105
|
# Options
|
|
69
106
|
# ---------------------------------------------------------------------------
|
|
@@ -75,12 +112,12 @@ MANIFEST=""
|
|
|
75
112
|
DATA_DIR="${AF_DATA_DIR:-${ABSTRACTGATEWAY_DATA_DIR:-}}"
|
|
76
113
|
WITH_APPS=0; WITH_CONSOLE=0; WITH_CODE_CLI=0; WITH_CORE_CLI=0
|
|
77
114
|
WITH_OLLAMA=0; WITH_LMSTUDIO=0
|
|
78
|
-
NO_TRAY=0; NO_SERVICE=0; NO_START=0; NO_OPEN=0; NO_MODIFY_PATH=0
|
|
115
|
+
FULL=0; NO_TRAY=0; NO_SERVICE=0; NO_START=0; NO_OPEN=0; NO_MODIFY_PATH=0
|
|
79
116
|
PRINT=0; UNINSTALL=0; PURGE=0; VERBOSE=0
|
|
80
117
|
|
|
81
118
|
usage() {
|
|
82
119
|
if [ -f "$0" ] && head -n 3 "$0" 2>/dev/null | grep -q "AbstractFramework bootstrap"; then
|
|
83
|
-
sed -n '2,
|
|
120
|
+
sed -n '2,52p' "$0" | sed 's/^# \{0,1\}//'
|
|
84
121
|
else
|
|
85
122
|
echo "Usage: install.sh [--profile auto|light|apple|gpu] [--port N] [--pin X] [--with-apps]"
|
|
86
123
|
echo " [--with-ollama] [--with-lmstudio] [--no-service] [--no-open] [--print] [--uninstall]"
|
|
@@ -111,6 +148,7 @@ while [ $# -gt 0 ]; do
|
|
|
111
148
|
--with-core-cli) WITH_CORE_CLI=1 ;;
|
|
112
149
|
--with-ollama) WITH_OLLAMA=1 ;;
|
|
113
150
|
--with-lmstudio) WITH_LMSTUDIO=1 ;;
|
|
151
|
+
--full) FULL=1 ;;
|
|
114
152
|
--no-tray) NO_TRAY=1 ;;
|
|
115
153
|
--no-service) NO_SERVICE=1 ;;
|
|
116
154
|
--no-start) NO_START=1 ;;
|
|
@@ -350,6 +388,18 @@ printf '%sAbstractFramework bootstrap%s %s%s%s\n' "$C_B" "$C_0" "$C_D" \
|
|
|
350
388
|
|
|
351
389
|
step "Preflight"
|
|
352
390
|
ok "system: $OS_ID $ARCH$([ -n "$MACOS_VERSION" ] && echo " (macOS $MACOS_VERSION)")"
|
|
391
|
+
HAS_CC=1
|
|
392
|
+
if [ "$OS_ID" = macos ]; then xcode-select -p >/dev/null 2>&1 || HAS_CC=0
|
|
393
|
+
elif ! have cc && ! have gcc; then HAS_CC=0; fi
|
|
394
|
+
if [ "$HAS_CC" = 0 ]; then
|
|
395
|
+
if [ "$FULL" = 1 ]; then
|
|
396
|
+
if [ "$OS_ID" = macos ]; then die "--full builds llama.cpp, stable-diffusion.cpp and echo cancellation from source and needs a C compiler: run 'xcode-select --install', then re-run with --full"
|
|
397
|
+
else die "--full builds llama.cpp, stable-diffusion.cpp and echo cancellation from source and needs a C compiler: install one (Debian/Ubuntu: sudo apt-get install -y build-essential), then re-run with --full"; fi
|
|
398
|
+
fi
|
|
399
|
+
info "no C compiler ($([ "$OS_ID" = macos ] && echo 'Xcode CLT' || echo 'cc/gcc')) – fine, all packages install as prebuilt wheels"
|
|
400
|
+
elif [ "$FULL" = 1 ]; then
|
|
401
|
+
ok "C compiler found: --full builds the compiled extras from source (several minutes)"
|
|
402
|
+
fi
|
|
353
403
|
DL="$(fetch_cmd)"
|
|
354
404
|
[ -n "$DL" ] || die "need curl or wget"
|
|
355
405
|
|
|
@@ -499,13 +549,27 @@ run "install Python $AF_PYTHON" "$UV" python install "$AF_PYTHON"
|
|
|
499
549
|
step "AbstractGateway"
|
|
500
550
|
BEFORE=""
|
|
501
551
|
if [ "$PRINT" = 0 ]; then BEFORE="$("$UV" tool list 2>/dev/null | sed -n 's/^abstractgateway v\([^ ]*\).*/\1/p' | head -n 1)"; fi
|
|
502
|
-
|
|
552
|
+
OVERRIDES_FILE="$DATA_DIR/uv-overrides.txt"
|
|
553
|
+
if [ "$PRINT" = 1 ]; then
|
|
554
|
+
info "$OVERRIDES_FILE (written at install time; see the top of install.sh):"
|
|
555
|
+
af_uv_overrides | sed 's/^/ /'
|
|
556
|
+
else
|
|
557
|
+
af_uv_overrides >"$OVERRIDES_FILE"
|
|
558
|
+
fi
|
|
559
|
+
# uv splits an --overrides value at whitespace ("Application Support"), so the install
|
|
560
|
+
# runs from the data dir and names the file relatively.
|
|
561
|
+
set -- "$UV" tool install --python "$AF_PYTHON" --with "$AF_WITH_WHEELS" --overrides uv-overrides.txt
|
|
562
|
+
for _p in $(af_no_build_packages); do set -- "$@" --no-build-package "$_p"; done
|
|
503
563
|
[ "$WITH_CORE_CLI" = 1 ] && set -- "$@" --with-executables-from abstractcore
|
|
504
564
|
if [ -n "$BEFORE" ] && [ "$PIN" = latest ] && [ -z "$FROM" ] && [ "$ST_PROFILE" = "$PROFILE" ]; then
|
|
505
565
|
run "upgrade abstractgateway" "$UV" tool upgrade abstractgateway
|
|
506
566
|
else
|
|
507
567
|
[ -n "$FROM" ] && set -- "$@" --reinstall
|
|
568
|
+
_cwd="$(pwd)"
|
|
569
|
+
RUN_SHOW="cd $(q "$DATA_DIR") && $(show_cmd "$@" "$GW_SPEC")"
|
|
570
|
+
[ "$PRINT" = 1 ] || cd "$DATA_DIR"
|
|
508
571
|
run "install abstractgateway" "$@" "$GW_SPEC"
|
|
572
|
+
[ "$PRINT" = 1 ] || cd "$_cwd" 2>/dev/null || cd "$HOME"
|
|
509
573
|
fi
|
|
510
574
|
AFTER="$BEFORE"
|
|
511
575
|
if [ "$PRINT" = 0 ]; then
|
|
@@ -728,6 +792,9 @@ echo " Start: $([ "$MODE" = service ] && echo "abstractgateway service ins
|
|
|
728
792
|
echo " Upgrade: re-run this installer (or: uv tool upgrade abstractgateway)"
|
|
729
793
|
echo " Uninstall: sh install.sh --uninstall (or: $([ "$MODE" = service ] && echo 'abstractgateway service uninstall && ')uv tool uninstall abstractgateway)"
|
|
730
794
|
echo " Check: uvx abstractframework doctor"
|
|
795
|
+
if [ "$FULL" = 0 ] && { [ "$PROFILE" = apple ] || [ "$PROFILE" = gpu ]; }; then
|
|
796
|
+
echo " $AF_SKIPPED_LINE"
|
|
797
|
+
fi
|
|
731
798
|
echo " Apps: npx -y @abstractframework/flow (also: code, observer, continuum, entity)"
|
|
732
799
|
echo " Docs: $AF_DOCS"
|
|
733
800
|
if [ -n "$TWINS" ]; then
|