abstractframework 0.9.6__tar.gz → 0.10.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {abstractframework-0.9.6 → abstractframework-0.10.0}/CHANGELOG.md +89 -0
- {abstractframework-0.9.6/abstractframework.egg-info → abstractframework-0.10.0}/PKG-INFO +43 -38
- {abstractframework-0.9.6 → abstractframework-0.10.0}/README.md +31 -26
- {abstractframework-0.9.6 → abstractframework-0.10.0}/abstractframework/__init__.py +16 -16
- {abstractframework-0.9.6 → abstractframework-0.10.0/abstractframework.egg-info}/PKG-INFO +43 -38
- abstractframework-0.10.0/abstractframework.egg-info/requires.txt +22 -0
- {abstractframework-0.9.6 → abstractframework-0.10.0}/docs/agent-sessions.md +44 -5
- {abstractframework-0.9.6 → abstractframework-0.10.0}/docs/api.md +9 -9
- {abstractframework-0.9.6 → abstractframework-0.10.0}/docs/architecture.md +8 -5
- {abstractframework-0.9.6 → abstractframework-0.10.0}/docs/faq.md +10 -6
- {abstractframework-0.9.6 → abstractframework-0.10.0}/docs/getting-started.md +2 -2
- {abstractframework-0.9.6 → abstractframework-0.10.0}/docs/glossary.md +19 -4
- {abstractframework-0.9.6 → abstractframework-0.10.0}/docs/install.md +31 -23
- {abstractframework-0.9.6 → abstractframework-0.10.0}/docs/troubleshooting.md +2 -2
- {abstractframework-0.9.6 → abstractframework-0.10.0}/llms-full.txt +186 -112
- {abstractframework-0.9.6 → abstractframework-0.10.0}/llms.txt +2 -2
- {abstractframework-0.9.6 → abstractframework-0.10.0}/pyproject.toml +12 -12
- {abstractframework-0.9.6 → abstractframework-0.10.0}/scripts/install.sh +6 -6
- abstractframework-0.9.6/abstractframework.egg-info/requires.txt +0 -22
- {abstractframework-0.9.6 → abstractframework-0.10.0}/LICENSE +0 -0
- {abstractframework-0.9.6 → abstractframework-0.10.0}/MANIFEST.in +0 -0
- {abstractframework-0.9.6 → abstractframework-0.10.0}/abstractframework/__main__.py +0 -0
- {abstractframework-0.9.6 → abstractframework-0.10.0}/abstractframework/cli.py +0 -0
- {abstractframework-0.9.6 → abstractframework-0.10.0}/abstractframework/install_manifest.py +0 -0
- {abstractframework-0.9.6 → abstractframework-0.10.0}/abstractframework/py.typed +0 -0
- {abstractframework-0.9.6 → abstractframework-0.10.0}/abstractframework.egg-info/SOURCES.txt +0 -0
- {abstractframework-0.9.6 → abstractframework-0.10.0}/abstractframework.egg-info/dependency_links.txt +0 -0
- {abstractframework-0.9.6 → abstractframework-0.10.0}/abstractframework.egg-info/entry_points.txt +0 -0
- {abstractframework-0.9.6 → abstractframework-0.10.0}/abstractframework.egg-info/top_level.txt +0 -0
- {abstractframework-0.9.6 → abstractframework-0.10.0}/docs/README.md +0 -0
- {abstractframework-0.9.6 → abstractframework-0.10.0}/docs/adr/0001-layered-architecture.md +0 -0
- {abstractframework-0.9.6 → abstractframework-0.10.0}/docs/adr/0002-effect-system-design.md +0 -0
- {abstractframework-0.9.6 → abstractframework-0.10.0}/docs/adr/0003-tool-system-architecture.md +0 -0
- {abstractframework-0.9.6 → abstractframework-0.10.0}/docs/adr/0004-observability-strategy.md +0 -0
- {abstractframework-0.9.6 → abstractframework-0.10.0}/docs/adr/0005-memory-architecture.md +0 -0
- {abstractframework-0.9.6 → abstractframework-0.10.0}/docs/adr/0006-durable-tool-execution.md +0 -0
- {abstractframework-0.9.6 → abstractframework-0.10.0}/docs/adr/0007-active-context-and-memory-provenance.md +0 -0
- {abstractframework-0.9.6 → abstractframework-0.10.0}/docs/adr/0008-token-terminology.md +0 -0
- {abstractframework-0.9.6 → abstractframework-0.10.0}/docs/adr/0009-connected-memory-recall-and-provenance.md +0 -0
- {abstractframework-0.9.6 → abstractframework-0.10.0}/docs/adr/0010-runtime-owned-node-traces.md +0 -0
- {abstractframework-0.9.6 → abstractframework-0.10.0}/docs/adr/0011-ledger-subscriptions-and-event-bridge.md +0 -0
- {abstractframework-0.9.6 → abstractframework-0.10.0}/docs/adr/0012-portable-workflowartifact.md +0 -0
- {abstractframework-0.9.6 → abstractframework-0.10.0}/docs/adr/0013-durable-run-controls-pause-resume-cancel.md +0 -0
- {abstractframework-0.9.6 → abstractframework-0.10.0}/docs/adr/0014-runtime-authority-timeouts.md +0 -0
- {abstractframework-0.9.6 → abstractframework-0.10.0}/docs/adr/0015-execution-targets-and-remote-tool-workers.md +0 -0
- {abstractframework-0.9.6 → abstractframework-0.10.0}/docs/adr/0016-tool-calling-pipeline-and-responsibility-boundaries.md +0 -0
- {abstractframework-0.9.6 → abstractframework-0.10.0}/docs/adr/0017-host-ui-events-and-durable-prompts.md +0 -0
- {abstractframework-0.9.6 → abstractframework-0.10.0}/docs/adr/0018-durable-run-gateway-and-remote-host-control-plane.md +0 -0
- {abstractframework-0.9.6 → abstractframework-0.10.0}/docs/adr/0019-testing-strategy-and-levels.md +0 -0
- {abstractframework-0.9.6 → abstractframework-0.10.0}/docs/adr/0020-agent-host-pool-and-orchestrator-placement.md +0 -0
- {abstractframework-0.9.6 → abstractframework-0.10.0}/docs/adr/0021-deployment-topologies-and-supported-scenarios.md +0 -0
- {abstractframework-0.9.6 → abstractframework-0.10.0}/docs/adr/0022-orchestrator-host-and-runtime-daemonization.md +0 -0
- {abstractframework-0.9.6 → abstractframework-0.10.0}/docs/adr/0023-file-attachment-path-resolution-and-authorization.md +0 -0
- {abstractframework-0.9.6 → abstractframework-0.10.0}/docs/adr/0024-attachment-placeholders-and-compaction-invariants.md +0 -0
- {abstractframework-0.9.6 → abstractframework-0.10.0}/docs/adr/0025-kg-entity-normalization-and-dedup.md +0 -0
- {abstractframework-0.9.6 → abstractframework-0.10.0}/docs/adr/0026-truncation-policy-and-contract.md +0 -0
- {abstractframework-0.9.6 → abstractframework-0.10.0}/docs/adr/0027-timeout-policy-and-contract.md +0 -0
- {abstractframework-0.9.6 → abstractframework-0.10.0}/docs/adr/0028-capabilities-plugins-and-library-framework-modes.md +0 -0
- {abstractframework-0.9.6 → abstractframework-0.10.0}/docs/adr/0029-permissive-dependency-and-licensing-policy.md +0 -0
- {abstractframework-0.9.6 → abstractframework-0.10.0}/docs/adr/0030-security-test-fixtures-and-isolation.md +0 -0
- {abstractframework-0.9.6 → abstractframework-0.10.0}/docs/adr/0031-workflow-llm-routing-overrides-provider-model-and-base-url.md +0 -0
- {abstractframework-0.9.6 → abstractframework-0.10.0}/docs/adr/0032-package-dependency-boundaries-and-gateway-first-apps.md +0 -0
- {abstractframework-0.9.6 → abstractframework-0.10.0}/docs/adr/0033-install-profiles-config-entrypoints-and-server-boundaries.md +0 -0
- {abstractframework-0.9.6 → abstractframework-0.10.0}/docs/adr/0034-framework-release-sequence-and-gates.md +0 -0
- {abstractframework-0.9.6 → abstractframework-0.10.0}/docs/adr/0035-capability-routing-defaults.md +0 -0
- {abstractframework-0.9.6 → abstractframework-0.10.0}/docs/adr/0036-artifact-descriptor-contract.md +0 -0
- {abstractframework-0.9.6 → abstractframework-0.10.0}/docs/adr/0037-hosted-file-source-contract-and-workspacepath-authority.md +0 -0
- {abstractframework-0.9.6 → abstractframework-0.10.0}/docs/adr/0038-script-bootstrap-and-gateway-console-install.md +0 -0
- {abstractframework-0.9.6 → abstractframework-0.10.0}/docs/adr/README.md +0 -0
- {abstractframework-0.9.6 → abstractframework-0.10.0}/docs/adr/memory-recall-levels.md +0 -0
- {abstractframework-0.9.6 → abstractframework-0.10.0}/docs/adr/reorg/001_music_as_capability_plugin_via_acestep_api.md +0 -0
- {abstractframework-0.9.6 → abstractframework-0.10.0}/docs/adr/reorg/002_abstractmusic_inprocess_local_generation.md +0 -0
- {abstractframework-0.9.6 → abstractframework-0.10.0}/docs/adr/reorg/003_abstractmusic_acestep_v15_backend_source_strategy.md +0 -0
- {abstractframework-0.9.6 → abstractframework-0.10.0}/docs/adr/reorg/004_smartnote_thin_client_architecture.md +0 -0
- {abstractframework-0.9.6 → abstractframework-0.10.0}/docs/adr/reorg/005_smartnote_artifact_first_cards.md +0 -0
- {abstractframework-0.9.6 → abstractframework-0.10.0}/docs/adr/reorg/2026-02-21_gateway-first-assistant.md +0 -0
- {abstractframework-0.9.6 → abstractframework-0.10.0}/docs/adr/reorg/2026-02-21_installer_manager_strategy.md +0 -0
- {abstractframework-0.9.6 → abstractframework-0.10.0}/docs/adr/reorg/2026-02-21_macos_installer_manager.md +0 -0
- {abstractframework-0.9.6 → abstractframework-0.10.0}/docs/automations.md +0 -0
- {abstractframework-0.9.6 → abstractframework-0.10.0}/docs/claude/README.md +0 -0
- {abstractframework-0.9.6 → abstractframework-0.10.0}/docs/claude/abstractframework-fit.md +0 -0
- {abstractframework-0.9.6 → abstractframework-0.10.0}/docs/claude/claude-skills-overview.md +0 -0
- {abstractframework-0.9.6 → abstractframework-0.10.0}/docs/claude/claude-skills-sources.md +0 -0
- {abstractframework-0.9.6 → abstractframework-0.10.0}/docs/claude/claude-skills-top-20.md +0 -0
- {abstractframework-0.9.6 → abstractframework-0.10.0}/docs/comparisons/README.md +0 -0
- {abstractframework-0.9.6 → abstractframework-0.10.0}/docs/configuration.md +0 -0
- {abstractframework-0.9.6 → abstractframework-0.10.0}/docs/guide/LANDING.md +0 -0
- {abstractframework-0.9.6 → abstractframework-0.10.0}/docs/guide/README.md +0 -0
- {abstractframework-0.9.6 → abstractframework-0.10.0}/docs/guide/agent-skills.md +0 -0
- {abstractframework-0.9.6 → abstractframework-0.10.0}/docs/guide/agent-vs-llm.md +0 -0
- {abstractframework-0.9.6 → abstractframework-0.10.0}/docs/guide/agora-workflow-agent.md +0 -0
- {abstractframework-0.9.6 → abstractframework-0.10.0}/docs/guide/apple-local-gateway-flow.md +0 -0
- {abstractframework-0.9.6 → abstractframework-0.10.0}/docs/guide/capability-plugins.md +0 -0
- {abstractframework-0.9.6 → abstractframework-0.10.0}/docs/guide/capability-routing-defaults.md +0 -0
- {abstractframework-0.9.6 → abstractframework-0.10.0}/docs/guide/deployment-iphone.md +0 -0
- {abstractframework-0.9.6 → abstractframework-0.10.0}/docs/guide/deployment-topologies.md +0 -0
- {abstractframework-0.9.6 → abstractframework-0.10.0}/docs/guide/deployment-web.md +0 -0
- {abstractframework-0.9.6 → abstractframework-0.10.0}/docs/guide/email-integration.md +0 -0
- {abstractframework-0.9.6 → abstractframework-0.10.0}/docs/guide/event-inbox-agent.md +0 -0
- {abstractframework-0.9.6 → abstractframework-0.10.0}/docs/guide/flow-and-kg-memory.md +0 -0
- {abstractframework-0.9.6 → abstractframework-0.10.0}/docs/guide/gateway-security.md +0 -0
- {abstractframework-0.9.6 → abstractframework-0.10.0}/docs/guide/headless-swarm.md +0 -0
- {abstractframework-0.9.6 → abstractframework-0.10.0}/docs/guide/process-manager-env-vars.md +0 -0
- {abstractframework-0.9.6 → abstractframework-0.10.0}/docs/guide/prompt-caching.md +0 -0
- {abstractframework-0.9.6 → abstractframework-0.10.0}/docs/guide/runtime-artifacts.md +0 -0
- {abstractframework-0.9.6 → abstractframework-0.10.0}/docs/guide/runtime-scope.md +0 -0
- {abstractframework-0.9.6 → abstractframework-0.10.0}/docs/guide/scheduled-workflows.md +0 -0
- {abstractframework-0.9.6 → abstractframework-0.10.0}/docs/guide/summoned-entities.md +0 -0
- {abstractframework-0.9.6 → abstractframework-0.10.0}/docs/guide/telegram-integration.md +0 -0
- {abstractframework-0.9.6 → abstractframework-0.10.0}/docs/guide/workflow-bundles.md +0 -0
- {abstractframework-0.9.6 → abstractframework-0.10.0}/docs/installers/README.md +0 -0
- {abstractframework-0.9.6 → abstractframework-0.10.0}/docs/installers/components.md +0 -0
- {abstractframework-0.9.6 → abstractframework-0.10.0}/docs/installers/implementation-plan.md +0 -0
- {abstractframework-0.9.6 → abstractframework-0.10.0}/docs/installers/operations-and-support.md +0 -0
- {abstractframework-0.9.6 → abstractframework-0.10.0}/docs/installers/release-and-manifest.md +0 -0
- {abstractframework-0.9.6 → abstractframework-0.10.0}/docs/installers/security-and-os-blocks.md +0 -0
- {abstractframework-0.9.6 → abstractframework-0.10.0}/docs/installers/strategy.md +0 -0
- {abstractframework-0.9.6 → abstractframework-0.10.0}/docs/installers/user-journeys.md +0 -0
- {abstractframework-0.9.6 → abstractframework-0.10.0}/docs/prompts/agora-collaboration.md +0 -0
- {abstractframework-0.9.6 → abstractframework-0.10.0}/docs/scenarios/README.md +0 -0
- {abstractframework-0.9.6 → abstractframework-0.10.0}/docs/scenarios/email-inbox-agent.md +0 -0
- {abstractframework-0.9.6 → abstractframework-0.10.0}/docs/scenarios/gateway-first-local-dev.md +0 -0
- {abstractframework-0.9.6 → abstractframework-0.10.0}/docs/scenarios/offline-coding-assistant.md +0 -0
- {abstractframework-0.9.6 → abstractframework-0.10.0}/docs/scenarios/phone-thin-client.md +0 -0
- {abstractframework-0.9.6 → abstractframework-0.10.0}/docs/scenarios/specialized-agent-flow.md +0 -0
- {abstractframework-0.9.6 → abstractframework-0.10.0}/docs/scenarios/telegram-permanent-contact.md +0 -0
- {abstractframework-0.9.6 → abstractframework-0.10.0}/docs/scenarios/workflow-bundle-lifecycle.md +0 -0
- {abstractframework-0.9.6 → abstractframework-0.10.0}/docs/skills/README.md +0 -0
- {abstractframework-0.9.6 → abstractframework-0.10.0}/docs/skills/abstractframework-agent-skills-fit.md +0 -0
- {abstractframework-0.9.6 → abstractframework-0.10.0}/docs/skills/abstractframework-architecture-deep-dive.md +0 -0
- {abstractframework-0.9.6 → abstractframework-0.10.0}/docs/skills/agent-skills-ecosystem-scan.md +0 -0
- {abstractframework-0.9.6 → abstractframework-0.10.0}/docs/skills/agent-skills-ecosystem-sources.md +0 -0
- {abstractframework-0.9.6 → abstractframework-0.10.0}/docs/skills/claude-agent-skills-overview.md +0 -0
- {abstractframework-0.9.6 → abstractframework-0.10.0}/docs/skills/claude-agent-skills-sources.md +0 -0
- {abstractframework-0.9.6 → abstractframework-0.10.0}/docs/skills/claude-agent-skills-top-20.md +0 -0
- {abstractframework-0.9.6 → abstractframework-0.10.0}/docs/workspace-scripts.md +0 -0
- {abstractframework-0.9.6 → abstractframework-0.10.0}/scripts/af-local.sh +0 -0
- {abstractframework-0.9.6 → abstractframework-0.10.0}/scripts/af.sh +0 -0
- {abstractframework-0.9.6 → abstractframework-0.10.0}/scripts/agora_react_flow_smoke.py +0 -0
- {abstractframework-0.9.6 → abstractframework-0.10.0}/scripts/assistant-local.sh +0 -0
- {abstractframework-0.9.6 → abstractframework-0.10.0}/scripts/assistant.sh +0 -0
- {abstractframework-0.9.6 → abstractframework-0.10.0}/scripts/build.sh +0 -0
- {abstractframework-0.9.6 → abstractframework-0.10.0}/scripts/cache_probe_local_backends.py +0 -0
- {abstractframework-0.9.6 → abstractframework-0.10.0}/scripts/cache_steer_repl.py +0 -0
- {abstractframework-0.9.6 → abstractframework-0.10.0}/scripts/check_identity_sync.py +0 -0
- {abstractframework-0.9.6 → abstractframework-0.10.0}/scripts/clone.sh +0 -0
- {abstractframework-0.9.6 → abstractframework-0.10.0}/scripts/code-local.sh +0 -0
- {abstractframework-0.9.6 → abstractframework-0.10.0}/scripts/code.sh +0 -0
- {abstractframework-0.9.6 → abstractframework-0.10.0}/scripts/commit.sh +0 -0
- {abstractframework-0.9.6 → abstractframework-0.10.0}/scripts/console-local.sh +0 -0
- {abstractframework-0.9.6 → abstractframework-0.10.0}/scripts/console.sh +0 -0
- {abstractframework-0.9.6 → abstractframework-0.10.0}/scripts/core_operator_drive.py +0 -0
- {abstractframework-0.9.6 → abstractframework-0.10.0}/scripts/deps.sh +0 -0
- {abstractframework-0.9.6 → abstractframework-0.10.0}/scripts/entity-local.sh +0 -0
- {abstractframework-0.9.6 → abstractframework-0.10.0}/scripts/entity.sh +0 -0
- {abstractframework-0.9.6 → abstractframework-0.10.0}/scripts/event_inbox_flow_smoke.py +0 -0
- {abstractframework-0.9.6 → abstractframework-0.10.0}/scripts/flow-local.sh +0 -0
- {abstractframework-0.9.6 → abstractframework-0.10.0}/scripts/flow.sh +0 -0
- {abstractframework-0.9.6 → abstractframework-0.10.0}/scripts/gateway-flow-local.sh +0 -0
- {abstractframework-0.9.6 → abstractframework-0.10.0}/scripts/gateway-flow.sh +0 -0
- {abstractframework-0.9.6 → abstractframework-0.10.0}/scripts/gateway-local.sh +0 -0
- {abstractframework-0.9.6 → abstractframework-0.10.0}/scripts/gateway.sh +0 -0
- {abstractframework-0.9.6 → abstractframework-0.10.0}/scripts/gen_llms_full.py +0 -0
- {abstractframework-0.9.6 → abstractframework-0.10.0}/scripts/headless_fleet_bridge.py +0 -0
- {abstractframework-0.9.6 → abstractframework-0.10.0}/scripts/headless_fleet_demo.py +0 -0
- {abstractframework-0.9.6 → abstractframework-0.10.0}/scripts/headless_steer_repl.py +0 -0
- {abstractframework-0.9.6 → abstractframework-0.10.0}/scripts/lib/af_inventory.py +0 -0
- {abstractframework-0.9.6 → abstractframework-0.10.0}/scripts/lib/af_stack.sh +0 -0
- {abstractframework-0.9.6 → abstractframework-0.10.0}/scripts/lib/af_supervisor.sh +0 -0
- {abstractframework-0.9.6 → abstractframework-0.10.0}/scripts/lib/apps_common.sh +0 -0
- {abstractframework-0.9.6 → abstractframework-0.10.0}/scripts/lib/build_macos_installer.sh +0 -0
- {abstractframework-0.9.6 → abstractframework-0.10.0}/scripts/lib/gateway_user_tokens.py +0 -0
- {abstractframework-0.9.6 → abstractframework-0.10.0}/scripts/lib/repo_groups.sh +0 -0
- {abstractframework-0.9.6 → abstractframework-0.10.0}/scripts/meet_castor.sh +0 -0
- {abstractframework-0.9.6 → abstractframework-0.10.0}/scripts/observer-local.sh +0 -0
- {abstractframework-0.9.6 → abstractframework-0.10.0}/scripts/observer.sh +0 -0
- {abstractframework-0.9.6 → abstractframework-0.10.0}/scripts/plan_walkthrough.py +0 -0
- {abstractframework-0.9.6 → abstractframework-0.10.0}/scripts/pull.sh +0 -0
- {abstractframework-0.9.6 → abstractframework-0.10.0}/scripts/push.sh +0 -0
- {abstractframework-0.9.6 → abstractframework-0.10.0}/scripts/spawn_demo_agent.sh +0 -0
- {abstractframework-0.9.6 → abstractframework-0.10.0}/scripts/start-local.sh +0 -0
- {abstractframework-0.9.6 → abstractframework-0.10.0}/scripts/start.sh +0 -0
- {abstractframework-0.9.6 → abstractframework-0.10.0}/scripts/status.sh +0 -0
- {abstractframework-0.9.6 → abstractframework-0.10.0}/scripts/steer_repl.py +0 -0
- {abstractframework-0.9.6 → abstractframework-0.10.0}/scripts/tests/test_af_supervisor.sh +0 -0
- {abstractframework-0.9.6 → abstractframework-0.10.0}/scripts/tests/test_install_user_path.sh +0 -0
- {abstractframework-0.9.6 → abstractframework-0.10.0}/scripts/tests/test_inventory.sh +0 -0
- {abstractframework-0.9.6 → abstractframework-0.10.0}/scripts/tests/test_repo_scripts.sh +0 -0
- {abstractframework-0.9.6 → abstractframework-0.10.0}/scripts/uninstall.sh +0 -0
- {abstractframework-0.9.6 → abstractframework-0.10.0}/scripts/visit_resume_cache_probe.py +0 -0
- {abstractframework-0.9.6 → abstractframework-0.10.0}/setup.cfg +0 -0
- {abstractframework-0.9.6 → abstractframework-0.10.0}/tests/test_install_app_upgrade.py +0 -0
- {abstractframework-0.9.6 → abstractframework-0.10.0}/tests/test_install_index_lag.py +0 -0
- {abstractframework-0.9.6 → abstractframework-0.10.0}/tests/test_install_profiles.py +0 -0
- {abstractframework-0.9.6 → abstractframework-0.10.0}/tests/test_install_ps1_gpu_stack.py +0 -0
- {abstractframework-0.9.6 → abstractframework-0.10.0}/tests/test_install_ps1_own_gateway.py +0 -0
- {abstractframework-0.9.6 → abstractframework-0.10.0}/tests/test_install_sh_gpu_stack.py +0 -0
- {abstractframework-0.9.6 → abstractframework-0.10.0}/tests/test_install_sh_gpu_twin.py +0 -0
- {abstractframework-0.9.6 → abstractframework-0.10.0}/tests/test_llms_full.py +0 -0
- {abstractframework-0.9.6 → abstractframework-0.10.0}/tests/test_uv_tool_install_atomicity.py +0 -0
|
@@ -4,6 +4,95 @@ All notable changes to AbstractFramework will be documented in this file.
|
|
|
4
4
|
|
|
5
5
|
## [Unreleased]
|
|
6
6
|
|
|
7
|
+
## [0.10.0] - 2026-10-05
|
|
8
|
+
|
|
9
|
+
### Added
|
|
10
|
+
|
|
11
|
+
- The gateway serves its OpenAI-compatible API at `http://<host>:<port>/v1` with its own console page,
|
|
12
|
+
**Models → OpenAI API**: status and base URL, your API key (your gateway token, masked with reveal
|
|
13
|
+
and copy), access settings for admins (Protected or Open, and who can connect: this machine, your
|
|
14
|
+
network, your tailnet or anywhere), a per-account **OpenAI API** switch, example requests, and a log
|
|
15
|
+
of recent requests that opens to the recorded request and response. Structured outputs
|
|
16
|
+
(`response_format` `json_object` and `json_schema`) work for every provider the gateway routes to.
|
|
17
|
+
- The gateway web and terminal consoles share one layout: Accounts (users and entities in one list,
|
|
18
|
+
archive and unarchive), Workflows, Skills & MCP, Runtimes, Apps, Providers (local engines included),
|
|
19
|
+
OpenAI API, Models (one list with downloads not in the catalog; delete a downloaded model), Multimodal,
|
|
20
|
+
Resources, Sandbox, Network (every detected address, Tailscale included) and About.
|
|
21
|
+
- Code Web: Automations and Conversations drawers with compact cards, archive and unarchive for
|
|
22
|
+
conversations and automations (`Archived · N`), and a right-hand rail (Activity, Files, Model,
|
|
23
|
+
Workflow, Workspace, Tools, Skills, Voice) whose settings follow the selected conversation or
|
|
24
|
+
automation. The Code terminal client offers the same panels, cards, archive and voice.
|
|
25
|
+
- Voice everywhere through the gateway: the shared Voice settings show the gateway's own default
|
|
26
|
+
engines, let you pick the output device and the microphone, and test both; Code (web and terminal),
|
|
27
|
+
Observer and Entity speak replies and take dictation through the gateway.
|
|
28
|
+
- One About card in every app and console (app, AbstractFramework and gateway versions, links), and a
|
|
29
|
+
shared audio player for audio files.
|
|
30
|
+
- A hung gateway restarts: when its event loop has not run for `--watchdog-seconds` (default 30, `0`
|
|
31
|
+
turns it off), `abstractgateway serve` exits with code 75 and its supervisor starts it again;
|
|
32
|
+
`/api/health` reports the watchdog.
|
|
33
|
+
- Workspaces in two dimensions (AbstractGateway 0.13.0, AbstractRuntime 0.9.0, UI Kit 0.8.1): the
|
|
34
|
+
admin chooses a posture, **Deny everything, allow listed workspaces** (the default) or **Allow
|
|
35
|
+
everything, refuse listed workspaces** (with a Read-only or Read & write default for everything
|
|
36
|
+
else), one **Shared workspace** (always Read & write) and workspaces that are Read-only, Read &
|
|
37
|
+
write or Refused, in one modal at the top of **Accounts**. Each account can only narrow them, from
|
|
38
|
+
its **Workspace** row action or the Workspace settings of AbstractCode, Observer, Flow and the
|
|
39
|
+
Assistant, which share one chooser and one wording with the gateway's one-line summary.
|
|
40
|
+
- The agent is told its workspaces: every tool-using call lists its working directory, the shared
|
|
41
|
+
workspace and each allowed workspace with its mode. A file it writes without a full path lands in
|
|
42
|
+
the conversation's private folder, never in the shared workspace.
|
|
43
|
+
- Shell commands are held to the run's workspaces by the operating system (AbstractCore 2.25.0,
|
|
44
|
+
AbstractRuntime 0.9.0, AbstractAgent 0.3.18, AbstractGateway 0.13.0): `execute_command`, the
|
|
45
|
+
persistent shell session, local helpers and `execute_python` run inside an OS sandbox built from the
|
|
46
|
+
same workspaces the file tools get (macOS `sandbox-exec`; Linux bubblewrap, or Landlock for **Deny
|
|
47
|
+
everything, allow listed workspaces**), with the gateway's environment stripped of tokens and keys.
|
|
48
|
+
A host with no sandbox refuses commands with one sentence and the run continues;
|
|
49
|
+
`abstractgateway serve --unsandboxed-commands` allows them again (audited). The run ledger records
|
|
50
|
+
the sandbox and the enforced paths of every command; the Assistant and Code tool settings show the
|
|
51
|
+
state (**Sandboxed to this run's workspaces**), and the Observer and Code run views show one
|
|
52
|
+
`Sandbox: …` line per command. The Linux sandbox is verified in CI (bubblewrap on Ubuntu).
|
|
53
|
+
- The console's top bar shows memory used, GPU load and the number of loaded models (refreshed every
|
|
54
|
+
5 seconds, a click opens **Resources**); every address, with **Copy**, is on **Network**.
|
|
55
|
+
- The tray's Workflows submenu lists running runs first, then runs waiting for a person or an event,
|
|
56
|
+
then the runs finished in the last 24 hours, each opening in Observer.
|
|
57
|
+
- Themed tooltips on every icon button of the consoles and apps (UI Kit 0.8.1).
|
|
58
|
+
- Sound effects and music take a length in seconds: AbstractCore's `/v1/audio/music` `seconds`, the
|
|
59
|
+
gateway Sandbox's **Length (seconds)** field and the Assistant's media requests ("a 3 s laser
|
|
60
|
+
sound"); a sound effect runs the Stable Audio 3 SFX checkpoint and lasts 5 seconds by default,
|
|
61
|
+
music 30.
|
|
62
|
+
- AbstractAssistant 0.13.0: **New automation** opens the same schedule form as AbstractCode and
|
|
63
|
+
Observer; Settings → **Workflow** is its own page (**Gateway default** first, **Open in
|
|
64
|
+
AbstractFlow**); Settings → Tools groups tools in collapsible categories; Settings → Appearance
|
|
65
|
+
shows the Accessibility permission with **Configure**; the Voice page shows the gateway's engines
|
|
66
|
+
read-only with **Change under Models**.
|
|
67
|
+
|
|
68
|
+
### Changed
|
|
69
|
+
|
|
70
|
+
- A gateway upgraded from 0.12 converts its workspace settings once at its first start: the old access
|
|
71
|
+
modes, per-user allow and deny lists, launch-folder trust and "Any folder (old clients)" become the
|
|
72
|
+
posture and rows above; the old settings keys and routes are refused afterwards. A fresh gateway's
|
|
73
|
+
shared workspace is `<data dir>/workspace`; an existing install keeps its current one.
|
|
74
|
+
- The gateway terminal console's **Workspaces** page says workspaces are managed from Accounts in the
|
|
75
|
+
web console for this release.
|
|
76
|
+
- **Apps → Assistant** reports, opens and watches the same Assistant: the installed package, else the
|
|
77
|
+
app bundle. When the other one is running, the card and the tray say so.
|
|
78
|
+
- **Apps** shows an available update on every row: the browser apps and the Assistant offer **Update
|
|
79
|
+
to x.y.z** (the Assistant is quit and opened again on the new version when the gateway started it);
|
|
80
|
+
an app started elsewhere or installed from a source checkout shows **Latest x.y.z** with where to
|
|
81
|
+
update it. An update whose version did not land fails and restarts nothing. The web and terminal
|
|
82
|
+
consoles (`u`) show the same labels; new releases appear within 10 minutes without a restart.
|
|
83
|
+
- Workspace nesting: the most specific workspace wins. Refusing a folder and allowing a folder inside
|
|
84
|
+
it is valid (the inner folder is reachable, the rest stays refused); a refused folder inside an
|
|
85
|
+
allowed one refuses its subtree; built-in protected folders stay refused whatever is listed inside.
|
|
86
|
+
The gateway, the agent's file tools and the command sandbox apply the same rule.
|
|
87
|
+
- `/core/v1` answers with a 308 redirect to `/v1` for this release and is deprecated: point clients at
|
|
88
|
+
`/v1`.
|
|
89
|
+
- Pin AbstractGateway 0.13.0, AbstractCore 2.25.0, AbstractRuntime 0.9.0, AbstractAgent 0.3.18
|
|
90
|
+
(`execute_python` inside the command sandbox), AbstractVoice 0.14.0, AbstractMusic 0.1.16 (the
|
|
91
|
+
sound-effect checkpoint and length fix) and AbstractAssistant 0.13.0;
|
|
92
|
+
the installers install Code Web 0.11.0, Observer 0.7.0, Flow 0.8.0, Continuum 0.7.0 and Entity
|
|
93
|
+
0.7.0 (built with UI Kit 0.8.1 and Panel Chat 0.4.0 from AbstractUIC), the gateway terminal
|
|
94
|
+
console 0.15.0 and AbstractCode 0.9.0.
|
|
95
|
+
|
|
7
96
|
## [0.9.6] - 2026-10-03
|
|
8
97
|
|
|
9
98
|
- Assistant, Code Web and Observer include workflow and tool selection when creating or editing automations, alongside the growing-context budget and Email result recipients.
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: abstractframework
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.10.0
|
|
4
4
|
Summary: Unified installer and documentation hub for the AbstractFramework ecosystem
|
|
5
5
|
Author-email: Laurent-Philippe Albou <contact@abstractframework.ai>
|
|
6
6
|
License: MIT
|
|
@@ -23,24 +23,24 @@ Classifier: Typing :: Typed
|
|
|
23
23
|
Requires-Python: >=3.10
|
|
24
24
|
Description-Content-Type: text/markdown
|
|
25
25
|
License-File: LICENSE
|
|
26
|
-
Requires-Dist: abstractgateway==0.
|
|
27
|
-
Requires-Dist: abstractassistant==0.
|
|
28
|
-
Requires-Dist: abstractcore==2.
|
|
29
|
-
Requires-Dist: AbstractRuntime==0.
|
|
30
|
-
Requires-Dist: abstractagent==0.3.
|
|
26
|
+
Requires-Dist: abstractgateway==0.13.0
|
|
27
|
+
Requires-Dist: abstractassistant==0.13.0
|
|
28
|
+
Requires-Dist: abstractcore==2.25.0
|
|
29
|
+
Requires-Dist: AbstractRuntime==0.9.0
|
|
30
|
+
Requires-Dist: abstractagent==0.3.18
|
|
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
|
-
Requires-Dist: abstractvoice==0.
|
|
34
|
+
Requires-Dist: abstractvoice==0.14.0
|
|
35
35
|
Requires-Dist: abstractvision==0.3.33
|
|
36
|
-
Requires-Dist: abstractmusic==0.1.
|
|
36
|
+
Requires-Dist: abstractmusic==0.1.16
|
|
37
37
|
Requires-Dist: abstract3d==0.3.2
|
|
38
38
|
Provides-Extra: apple
|
|
39
|
-
Requires-Dist: abstractgateway[apple]==0.
|
|
40
|
-
Requires-Dist: abstractassistant[apple]==0.
|
|
39
|
+
Requires-Dist: abstractgateway[apple]==0.13.0; extra == "apple"
|
|
40
|
+
Requires-Dist: abstractassistant[apple]==0.13.0; platform_system == "Darwin" and extra == "apple"
|
|
41
41
|
Provides-Extra: gpu
|
|
42
|
-
Requires-Dist: abstractgateway[gpu]==0.
|
|
43
|
-
Requires-Dist: abstractassistant[gpu]==0.
|
|
42
|
+
Requires-Dist: abstractgateway[gpu]==0.13.0; extra == "gpu"
|
|
43
|
+
Requires-Dist: abstractassistant[gpu]==0.13.0; extra == "gpu"
|
|
44
44
|
Dynamic: license-file
|
|
45
45
|
|
|
46
46
|
# AbstractFramework
|
|
@@ -121,8 +121,9 @@ pip install abstractcore && abstractcore serve # http://127.0.0.1:8000/co
|
|
|
121
121
|
pip install abstractgateway && abstractgateway serve # http://127.0.0.1:8080/console#claim=…
|
|
122
122
|
```
|
|
123
123
|
|
|
124
|
-
Both consoles
|
|
125
|
-
|
|
124
|
+
Both consoles let you browse models that fit this machine, download and delete them (**Models**),
|
|
125
|
+
and detect and install local engines (**Engines** in the Core console, **Providers** in the gateway
|
|
126
|
+
console); every action also shows its command-line
|
|
126
127
|
equivalent (`abstractcore models …`, `abstractcore engines …`, `abstractgateway models …`).
|
|
127
128
|
|
|
128
129
|
---
|
|
@@ -208,7 +209,8 @@ AbstractFlow, AbstractCode Web or AbstractObserver, or to the console without a
|
|
|
208
209
|
sign-in token.
|
|
209
210
|
|
|
210
211
|
Monitor runs from a browser, or from a terminal with the gateway console. The console's **Apps**
|
|
211
|
-
page installs and
|
|
212
|
+
page installs, opens and updates the browser apps and the Assistant (**Update to x.y.z** when a newer
|
|
213
|
+
release exists); the browser apps are served by the gateway at `/apps/<app>/`
|
|
212
214
|
(`http://127.0.0.1:8080/apps/observer/`), so one address (and one SSH tunnel) reaches them all:
|
|
213
215
|
|
|
214
216
|
```bash
|
|
@@ -219,7 +221,7 @@ abstractgateway-console --gateway-url http://127.0.0.1:8080 --token <admin token
|
|
|
219
221
|
```
|
|
220
222
|
|
|
221
223
|
Container images are published for the gateway and the AbstractCore server:
|
|
222
|
-
`ghcr.io/lpalbou/abstractgateway:0.
|
|
224
|
+
`ghcr.io/lpalbou/abstractgateway:0.13.0` and `ghcr.io/lpalbou/abstractcore-server:2.25.0`.
|
|
223
225
|
|
|
224
226
|
For artifact and runtime-resource investigation, see
|
|
225
227
|
[Runtime artifacts and retrieval](docs/guide/runtime-artifacts.md).
|
|
@@ -232,10 +234,13 @@ chats with agents through the same gateway rules:
|
|
|
232
234
|
- **One default agent workflow.** The gateway decides which workflow answers each agent interface
|
|
233
235
|
(`agents.default_workflow.<interface>`; the shipped `basic-agent` for AbstractCode until you
|
|
234
236
|
choose another). Clients list **Gateway default** first and follow a change at the next turn.
|
|
235
|
-
- **A workspace you can see, with built-in protection.** An agent works in
|
|
236
|
-
gateway's computer; AbstractCode's **Files** tab and `/files` show its
|
|
237
|
-
preview its files.
|
|
238
|
-
|
|
237
|
+
- **A workspace you can see, with built-in protection.** An agent works in its conversation's
|
|
238
|
+
private folder on the gateway's computer; AbstractCode's **Files** tab and `/files` show its
|
|
239
|
+
absolute path and preview its files. The admin chooses a posture (**Deny everything, allow
|
|
240
|
+
listed workspaces** or **Allow everything, refuse listed workspaces**), one **Shared workspace**
|
|
241
|
+
(always Read & write) and workspaces that are Read-only, Read & write or Refused; each account
|
|
242
|
+
can only narrow them. Credential folders (`~/.ssh`, `~/.aws`, …) and the gateway's data folder
|
|
243
|
+
are denied to every run.
|
|
239
244
|
- **Curated skills.** The skill shelf that ships with `abstractskill` is copied into the gateway's
|
|
240
245
|
data folder at each start, without overwriting your edits (`skills.shelf` points elsewhere).
|
|
241
246
|
- **Live replies.** Watch answers as the model writes them: the gateway's
|
|
@@ -369,7 +374,7 @@ pip install "abstractframework[gpu]"
|
|
|
369
374
|
| Apple | `pip install "abstractframework[apple]"` | macOS 14+ on Apple Silicon | 3.10–3.13 (F5-TTS voice cloning needs 3.11+) |
|
|
370
375
|
| GPU | `pip install "abstractframework[gpu]"` | Linux with a CUDA or ROCm GPU; on Windows, use the one-line installer (a plain pip install gets PyPI's CPU-only PyTorch and no llama.cpp) | 3.10–3.13 (F5-TTS voice cloning needs 3.11+) |
|
|
371
376
|
|
|
372
|
-
### Release matrix (abstractframework 0.
|
|
377
|
+
### Release matrix (abstractframework 0.10.0)
|
|
373
378
|
|
|
374
379
|
`abstractframework` pins every Python package with `==`, so one version of the
|
|
375
380
|
meta-package always installs the same stack. The browser apps and Rust tools are
|
|
@@ -378,29 +383,29 @@ and tested together.
|
|
|
378
383
|
|
|
379
384
|
| Registry | Package | Version |
|
|
380
385
|
|---|---|---|
|
|
381
|
-
| PyPI | `abstractgateway` | 0.
|
|
382
|
-
| PyPI | `abstractassistant` | 0.
|
|
383
|
-
| PyPI | `abstractcore` | 2.
|
|
384
|
-
| PyPI | `AbstractRuntime` | 0.
|
|
385
|
-
| PyPI | `abstractagent` | 0.3.
|
|
386
|
+
| PyPI | `abstractgateway` | 0.13.0 |
|
|
387
|
+
| PyPI | `abstractassistant` | 0.13.0 |
|
|
388
|
+
| PyPI | `abstractcore` | 2.25.0 |
|
|
389
|
+
| PyPI | `AbstractRuntime` | 0.9.0 |
|
|
390
|
+
| PyPI | `abstractagent` | 0.3.18 |
|
|
386
391
|
| PyPI | `abstractskill` | 0.3.0 |
|
|
387
392
|
| PyPI | `AbstractMemory` | 0.3.0 |
|
|
388
393
|
| PyPI | `abstractsemantics` | 0.0.5 |
|
|
389
|
-
| PyPI | `abstractvoice` | 0.
|
|
394
|
+
| PyPI | `abstractvoice` | 0.14.0 |
|
|
390
395
|
| PyPI | `abstractvision` | 0.3.33 |
|
|
391
|
-
| PyPI | `abstractmusic` | 0.1.
|
|
396
|
+
| PyPI | `abstractmusic` | 0.1.16 |
|
|
392
397
|
| PyPI | `abstract3d` | 0.3.2 |
|
|
393
|
-
| npm | `@abstractframework/flow` | 0.
|
|
394
|
-
| npm | `@abstractframework/code` | 0.
|
|
395
|
-
| npm | `@abstractframework/observer` | 0.
|
|
396
|
-
| npm | `@abstractframework/continuum` | 0.
|
|
397
|
-
| npm | `@abstractframework/entity` | 0.
|
|
398
|
-
| crates.io | `abstractcode` | 0.
|
|
399
|
-
| crates.io | `abstractgateway-console` | 0.
|
|
400
|
-
| crates.io | `abstractcore-console` | 0.
|
|
398
|
+
| npm | `@abstractframework/flow` | 0.8.0 |
|
|
399
|
+
| npm | `@abstractframework/code` | 0.11.0 |
|
|
400
|
+
| npm | `@abstractframework/observer` | 0.7.0 |
|
|
401
|
+
| npm | `@abstractframework/continuum` | 0.7.0 |
|
|
402
|
+
| npm | `@abstractframework/entity` | 0.7.0 |
|
|
403
|
+
| crates.io | `abstractcode` | 0.9.0 |
|
|
404
|
+
| crates.io | `abstractgateway-console` | 0.15.0 |
|
|
405
|
+
| crates.io | `abstractcore-console` | 0.8.0 |
|
|
401
406
|
| crates.io | `abstracttui` | 0.6.0 |
|
|
402
|
-
| GHCR | `ghcr.io/lpalbou/abstractgateway` | 0.
|
|
403
|
-
| GHCR | `ghcr.io/lpalbou/abstractcore-server` | 2.
|
|
407
|
+
| GHCR | `ghcr.io/lpalbou/abstractgateway` | 0.13.0 (`gpu-latest` / `<version>-gpu` experimental) |
|
|
408
|
+
| GHCR | `ghcr.io/lpalbou/abstractcore-server` | 2.25.0 |
|
|
404
409
|
|
|
405
410
|
`abstract3d` (pinned above) comes with AbstractCore in every profile. The optional add-on that is
|
|
406
411
|
not part of any profile installs separately: `pip install abstractcamera` (0.2.1). `abstractskill` (pinned above)
|
|
@@ -76,8 +76,9 @@ pip install abstractcore && abstractcore serve # http://127.0.0.1:8000/co
|
|
|
76
76
|
pip install abstractgateway && abstractgateway serve # http://127.0.0.1:8080/console#claim=…
|
|
77
77
|
```
|
|
78
78
|
|
|
79
|
-
Both consoles
|
|
80
|
-
|
|
79
|
+
Both consoles let you browse models that fit this machine, download and delete them (**Models**),
|
|
80
|
+
and detect and install local engines (**Engines** in the Core console, **Providers** in the gateway
|
|
81
|
+
console); every action also shows its command-line
|
|
81
82
|
equivalent (`abstractcore models …`, `abstractcore engines …`, `abstractgateway models …`).
|
|
82
83
|
|
|
83
84
|
---
|
|
@@ -163,7 +164,8 @@ AbstractFlow, AbstractCode Web or AbstractObserver, or to the console without a
|
|
|
163
164
|
sign-in token.
|
|
164
165
|
|
|
165
166
|
Monitor runs from a browser, or from a terminal with the gateway console. The console's **Apps**
|
|
166
|
-
page installs and
|
|
167
|
+
page installs, opens and updates the browser apps and the Assistant (**Update to x.y.z** when a newer
|
|
168
|
+
release exists); the browser apps are served by the gateway at `/apps/<app>/`
|
|
167
169
|
(`http://127.0.0.1:8080/apps/observer/`), so one address (and one SSH tunnel) reaches them all:
|
|
168
170
|
|
|
169
171
|
```bash
|
|
@@ -174,7 +176,7 @@ abstractgateway-console --gateway-url http://127.0.0.1:8080 --token <admin token
|
|
|
174
176
|
```
|
|
175
177
|
|
|
176
178
|
Container images are published for the gateway and the AbstractCore server:
|
|
177
|
-
`ghcr.io/lpalbou/abstractgateway:0.
|
|
179
|
+
`ghcr.io/lpalbou/abstractgateway:0.13.0` and `ghcr.io/lpalbou/abstractcore-server:2.25.0`.
|
|
178
180
|
|
|
179
181
|
For artifact and runtime-resource investigation, see
|
|
180
182
|
[Runtime artifacts and retrieval](docs/guide/runtime-artifacts.md).
|
|
@@ -187,10 +189,13 @@ chats with agents through the same gateway rules:
|
|
|
187
189
|
- **One default agent workflow.** The gateway decides which workflow answers each agent interface
|
|
188
190
|
(`agents.default_workflow.<interface>`; the shipped `basic-agent` for AbstractCode until you
|
|
189
191
|
choose another). Clients list **Gateway default** first and follow a change at the next turn.
|
|
190
|
-
- **A workspace you can see, with built-in protection.** An agent works in
|
|
191
|
-
gateway's computer; AbstractCode's **Files** tab and `/files` show its
|
|
192
|
-
preview its files.
|
|
193
|
-
|
|
192
|
+
- **A workspace you can see, with built-in protection.** An agent works in its conversation's
|
|
193
|
+
private folder on the gateway's computer; AbstractCode's **Files** tab and `/files` show its
|
|
194
|
+
absolute path and preview its files. The admin chooses a posture (**Deny everything, allow
|
|
195
|
+
listed workspaces** or **Allow everything, refuse listed workspaces**), one **Shared workspace**
|
|
196
|
+
(always Read & write) and workspaces that are Read-only, Read & write or Refused; each account
|
|
197
|
+
can only narrow them. Credential folders (`~/.ssh`, `~/.aws`, …) and the gateway's data folder
|
|
198
|
+
are denied to every run.
|
|
194
199
|
- **Curated skills.** The skill shelf that ships with `abstractskill` is copied into the gateway's
|
|
195
200
|
data folder at each start, without overwriting your edits (`skills.shelf` points elsewhere).
|
|
196
201
|
- **Live replies.** Watch answers as the model writes them: the gateway's
|
|
@@ -324,7 +329,7 @@ pip install "abstractframework[gpu]"
|
|
|
324
329
|
| Apple | `pip install "abstractframework[apple]"` | macOS 14+ on Apple Silicon | 3.10–3.13 (F5-TTS voice cloning needs 3.11+) |
|
|
325
330
|
| GPU | `pip install "abstractframework[gpu]"` | Linux with a CUDA or ROCm GPU; on Windows, use the one-line installer (a plain pip install gets PyPI's CPU-only PyTorch and no llama.cpp) | 3.10–3.13 (F5-TTS voice cloning needs 3.11+) |
|
|
326
331
|
|
|
327
|
-
### Release matrix (abstractframework 0.
|
|
332
|
+
### Release matrix (abstractframework 0.10.0)
|
|
328
333
|
|
|
329
334
|
`abstractframework` pins every Python package with `==`, so one version of the
|
|
330
335
|
meta-package always installs the same stack. The browser apps and Rust tools are
|
|
@@ -333,29 +338,29 @@ and tested together.
|
|
|
333
338
|
|
|
334
339
|
| Registry | Package | Version |
|
|
335
340
|
|---|---|---|
|
|
336
|
-
| PyPI | `abstractgateway` | 0.
|
|
337
|
-
| PyPI | `abstractassistant` | 0.
|
|
338
|
-
| PyPI | `abstractcore` | 2.
|
|
339
|
-
| PyPI | `AbstractRuntime` | 0.
|
|
340
|
-
| PyPI | `abstractagent` | 0.3.
|
|
341
|
+
| PyPI | `abstractgateway` | 0.13.0 |
|
|
342
|
+
| PyPI | `abstractassistant` | 0.13.0 |
|
|
343
|
+
| PyPI | `abstractcore` | 2.25.0 |
|
|
344
|
+
| PyPI | `AbstractRuntime` | 0.9.0 |
|
|
345
|
+
| PyPI | `abstractagent` | 0.3.18 |
|
|
341
346
|
| PyPI | `abstractskill` | 0.3.0 |
|
|
342
347
|
| PyPI | `AbstractMemory` | 0.3.0 |
|
|
343
348
|
| PyPI | `abstractsemantics` | 0.0.5 |
|
|
344
|
-
| PyPI | `abstractvoice` | 0.
|
|
349
|
+
| PyPI | `abstractvoice` | 0.14.0 |
|
|
345
350
|
| PyPI | `abstractvision` | 0.3.33 |
|
|
346
|
-
| PyPI | `abstractmusic` | 0.1.
|
|
351
|
+
| PyPI | `abstractmusic` | 0.1.16 |
|
|
347
352
|
| PyPI | `abstract3d` | 0.3.2 |
|
|
348
|
-
| npm | `@abstractframework/flow` | 0.
|
|
349
|
-
| npm | `@abstractframework/code` | 0.
|
|
350
|
-
| npm | `@abstractframework/observer` | 0.
|
|
351
|
-
| npm | `@abstractframework/continuum` | 0.
|
|
352
|
-
| npm | `@abstractframework/entity` | 0.
|
|
353
|
-
| crates.io | `abstractcode` | 0.
|
|
354
|
-
| crates.io | `abstractgateway-console` | 0.
|
|
355
|
-
| crates.io | `abstractcore-console` | 0.
|
|
353
|
+
| npm | `@abstractframework/flow` | 0.8.0 |
|
|
354
|
+
| npm | `@abstractframework/code` | 0.11.0 |
|
|
355
|
+
| npm | `@abstractframework/observer` | 0.7.0 |
|
|
356
|
+
| npm | `@abstractframework/continuum` | 0.7.0 |
|
|
357
|
+
| npm | `@abstractframework/entity` | 0.7.0 |
|
|
358
|
+
| crates.io | `abstractcode` | 0.9.0 |
|
|
359
|
+
| crates.io | `abstractgateway-console` | 0.15.0 |
|
|
360
|
+
| crates.io | `abstractcore-console` | 0.8.0 |
|
|
356
361
|
| crates.io | `abstracttui` | 0.6.0 |
|
|
357
|
-
| GHCR | `ghcr.io/lpalbou/abstractgateway` | 0.
|
|
358
|
-
| GHCR | `ghcr.io/lpalbou/abstractcore-server` | 2.
|
|
362
|
+
| GHCR | `ghcr.io/lpalbou/abstractgateway` | 0.13.0 (`gpu-latest` / `<version>-gpu` experimental) |
|
|
363
|
+
| GHCR | `ghcr.io/lpalbou/abstractcore-server` | 2.25.0 |
|
|
359
364
|
|
|
360
365
|
`abstract3d` (pinned above) comes with AbstractCore in every profile. The optional add-on that is
|
|
361
366
|
not part of any profile installs separately: `pip install abstractcamera` (0.2.1). `abstractskill` (pinned above)
|
|
@@ -10,23 +10,23 @@ Most implementation functionality still lives in component projects.
|
|
|
10
10
|
|
|
11
11
|
from __future__ import annotations
|
|
12
12
|
|
|
13
|
-
__version__ = "0.
|
|
13
|
+
__version__ = "0.10.0"
|
|
14
14
|
__author__ = "Laurent-Philippe Albou"
|
|
15
15
|
__license__ = "MIT"
|
|
16
16
|
|
|
17
17
|
RELEASE_VERSIONS: dict[str, str] = {
|
|
18
|
-
"abstractcore": "2.
|
|
19
|
-
"abstractruntime": "0.
|
|
20
|
-
"abstractagent": "0.3.
|
|
21
|
-
"abstractgateway": "0.
|
|
18
|
+
"abstractcore": "2.25.0",
|
|
19
|
+
"abstractruntime": "0.9.0",
|
|
20
|
+
"abstractagent": "0.3.18",
|
|
21
|
+
"abstractgateway": "0.13.0",
|
|
22
22
|
"abstractskill": "0.3.0",
|
|
23
23
|
"abstractmemory": "0.3.0",
|
|
24
24
|
"abstractsemantics": "0.0.5",
|
|
25
|
-
"abstractvoice": "0.
|
|
25
|
+
"abstractvoice": "0.14.0",
|
|
26
26
|
"abstractvision": "0.3.33",
|
|
27
|
-
"abstractmusic": "0.1.
|
|
27
|
+
"abstractmusic": "0.1.16",
|
|
28
28
|
"abstract3d": "0.3.2",
|
|
29
|
-
"abstractassistant": "0.
|
|
29
|
+
"abstractassistant": "0.13.0",
|
|
30
30
|
}
|
|
31
31
|
|
|
32
32
|
PACKAGE_DISTRIBUTIONS: dict[str, str] = {
|
|
@@ -45,11 +45,11 @@ PACKAGE_DISTRIBUTIONS: dict[str, str] = {
|
|
|
45
45
|
}
|
|
46
46
|
|
|
47
47
|
NPM_RELEASE_VERSIONS: dict[str, str] = {
|
|
48
|
-
"@abstractframework/flow": "0.
|
|
49
|
-
"@abstractframework/code": "0.
|
|
50
|
-
"@abstractframework/observer": "0.
|
|
51
|
-
"@abstractframework/continuum": "0.
|
|
52
|
-
"@abstractframework/entity": "0.
|
|
48
|
+
"@abstractframework/flow": "0.8.0",
|
|
49
|
+
"@abstractframework/code": "0.11.0",
|
|
50
|
+
"@abstractframework/observer": "0.7.0",
|
|
51
|
+
"@abstractframework/continuum": "0.7.0",
|
|
52
|
+
"@abstractframework/entity": "0.7.0",
|
|
53
53
|
}
|
|
54
54
|
|
|
55
55
|
# Terminal tools published on crates.io alongside this release (installed with `cargo install`,
|
|
@@ -58,9 +58,9 @@ NPM_RELEASE_VERSIONS: dict[str, str] = {
|
|
|
58
58
|
# `abstractcore serve`, and the gateway's terminal console already carries its Models and
|
|
59
59
|
# Engines screens; it is listed here as a release version only.
|
|
60
60
|
CRATE_RELEASE_VERSIONS: dict[str, str] = {
|
|
61
|
-
"abstractgateway-console": "0.
|
|
62
|
-
"abstractcore-console": "0.
|
|
63
|
-
"abstractcode": "0.
|
|
61
|
+
"abstractgateway-console": "0.15.0",
|
|
62
|
+
"abstractcore-console": "0.8.0",
|
|
63
|
+
"abstractcode": "0.9.0",
|
|
64
64
|
"abstracttui": "0.6.0",
|
|
65
65
|
}
|
|
66
66
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: abstractframework
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.10.0
|
|
4
4
|
Summary: Unified installer and documentation hub for the AbstractFramework ecosystem
|
|
5
5
|
Author-email: Laurent-Philippe Albou <contact@abstractframework.ai>
|
|
6
6
|
License: MIT
|
|
@@ -23,24 +23,24 @@ Classifier: Typing :: Typed
|
|
|
23
23
|
Requires-Python: >=3.10
|
|
24
24
|
Description-Content-Type: text/markdown
|
|
25
25
|
License-File: LICENSE
|
|
26
|
-
Requires-Dist: abstractgateway==0.
|
|
27
|
-
Requires-Dist: abstractassistant==0.
|
|
28
|
-
Requires-Dist: abstractcore==2.
|
|
29
|
-
Requires-Dist: AbstractRuntime==0.
|
|
30
|
-
Requires-Dist: abstractagent==0.3.
|
|
26
|
+
Requires-Dist: abstractgateway==0.13.0
|
|
27
|
+
Requires-Dist: abstractassistant==0.13.0
|
|
28
|
+
Requires-Dist: abstractcore==2.25.0
|
|
29
|
+
Requires-Dist: AbstractRuntime==0.9.0
|
|
30
|
+
Requires-Dist: abstractagent==0.3.18
|
|
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
|
-
Requires-Dist: abstractvoice==0.
|
|
34
|
+
Requires-Dist: abstractvoice==0.14.0
|
|
35
35
|
Requires-Dist: abstractvision==0.3.33
|
|
36
|
-
Requires-Dist: abstractmusic==0.1.
|
|
36
|
+
Requires-Dist: abstractmusic==0.1.16
|
|
37
37
|
Requires-Dist: abstract3d==0.3.2
|
|
38
38
|
Provides-Extra: apple
|
|
39
|
-
Requires-Dist: abstractgateway[apple]==0.
|
|
40
|
-
Requires-Dist: abstractassistant[apple]==0.
|
|
39
|
+
Requires-Dist: abstractgateway[apple]==0.13.0; extra == "apple"
|
|
40
|
+
Requires-Dist: abstractassistant[apple]==0.13.0; platform_system == "Darwin" and extra == "apple"
|
|
41
41
|
Provides-Extra: gpu
|
|
42
|
-
Requires-Dist: abstractgateway[gpu]==0.
|
|
43
|
-
Requires-Dist: abstractassistant[gpu]==0.
|
|
42
|
+
Requires-Dist: abstractgateway[gpu]==0.13.0; extra == "gpu"
|
|
43
|
+
Requires-Dist: abstractassistant[gpu]==0.13.0; extra == "gpu"
|
|
44
44
|
Dynamic: license-file
|
|
45
45
|
|
|
46
46
|
# AbstractFramework
|
|
@@ -121,8 +121,9 @@ pip install abstractcore && abstractcore serve # http://127.0.0.1:8000/co
|
|
|
121
121
|
pip install abstractgateway && abstractgateway serve # http://127.0.0.1:8080/console#claim=…
|
|
122
122
|
```
|
|
123
123
|
|
|
124
|
-
Both consoles
|
|
125
|
-
|
|
124
|
+
Both consoles let you browse models that fit this machine, download and delete them (**Models**),
|
|
125
|
+
and detect and install local engines (**Engines** in the Core console, **Providers** in the gateway
|
|
126
|
+
console); every action also shows its command-line
|
|
126
127
|
equivalent (`abstractcore models …`, `abstractcore engines …`, `abstractgateway models …`).
|
|
127
128
|
|
|
128
129
|
---
|
|
@@ -208,7 +209,8 @@ AbstractFlow, AbstractCode Web or AbstractObserver, or to the console without a
|
|
|
208
209
|
sign-in token.
|
|
209
210
|
|
|
210
211
|
Monitor runs from a browser, or from a terminal with the gateway console. The console's **Apps**
|
|
211
|
-
page installs and
|
|
212
|
+
page installs, opens and updates the browser apps and the Assistant (**Update to x.y.z** when a newer
|
|
213
|
+
release exists); the browser apps are served by the gateway at `/apps/<app>/`
|
|
212
214
|
(`http://127.0.0.1:8080/apps/observer/`), so one address (and one SSH tunnel) reaches them all:
|
|
213
215
|
|
|
214
216
|
```bash
|
|
@@ -219,7 +221,7 @@ abstractgateway-console --gateway-url http://127.0.0.1:8080 --token <admin token
|
|
|
219
221
|
```
|
|
220
222
|
|
|
221
223
|
Container images are published for the gateway and the AbstractCore server:
|
|
222
|
-
`ghcr.io/lpalbou/abstractgateway:0.
|
|
224
|
+
`ghcr.io/lpalbou/abstractgateway:0.13.0` and `ghcr.io/lpalbou/abstractcore-server:2.25.0`.
|
|
223
225
|
|
|
224
226
|
For artifact and runtime-resource investigation, see
|
|
225
227
|
[Runtime artifacts and retrieval](docs/guide/runtime-artifacts.md).
|
|
@@ -232,10 +234,13 @@ chats with agents through the same gateway rules:
|
|
|
232
234
|
- **One default agent workflow.** The gateway decides which workflow answers each agent interface
|
|
233
235
|
(`agents.default_workflow.<interface>`; the shipped `basic-agent` for AbstractCode until you
|
|
234
236
|
choose another). Clients list **Gateway default** first and follow a change at the next turn.
|
|
235
|
-
- **A workspace you can see, with built-in protection.** An agent works in
|
|
236
|
-
gateway's computer; AbstractCode's **Files** tab and `/files` show its
|
|
237
|
-
preview its files.
|
|
238
|
-
|
|
237
|
+
- **A workspace you can see, with built-in protection.** An agent works in its conversation's
|
|
238
|
+
private folder on the gateway's computer; AbstractCode's **Files** tab and `/files` show its
|
|
239
|
+
absolute path and preview its files. The admin chooses a posture (**Deny everything, allow
|
|
240
|
+
listed workspaces** or **Allow everything, refuse listed workspaces**), one **Shared workspace**
|
|
241
|
+
(always Read & write) and workspaces that are Read-only, Read & write or Refused; each account
|
|
242
|
+
can only narrow them. Credential folders (`~/.ssh`, `~/.aws`, …) and the gateway's data folder
|
|
243
|
+
are denied to every run.
|
|
239
244
|
- **Curated skills.** The skill shelf that ships with `abstractskill` is copied into the gateway's
|
|
240
245
|
data folder at each start, without overwriting your edits (`skills.shelf` points elsewhere).
|
|
241
246
|
- **Live replies.** Watch answers as the model writes them: the gateway's
|
|
@@ -369,7 +374,7 @@ pip install "abstractframework[gpu]"
|
|
|
369
374
|
| Apple | `pip install "abstractframework[apple]"` | macOS 14+ on Apple Silicon | 3.10–3.13 (F5-TTS voice cloning needs 3.11+) |
|
|
370
375
|
| GPU | `pip install "abstractframework[gpu]"` | Linux with a CUDA or ROCm GPU; on Windows, use the one-line installer (a plain pip install gets PyPI's CPU-only PyTorch and no llama.cpp) | 3.10–3.13 (F5-TTS voice cloning needs 3.11+) |
|
|
371
376
|
|
|
372
|
-
### Release matrix (abstractframework 0.
|
|
377
|
+
### Release matrix (abstractframework 0.10.0)
|
|
373
378
|
|
|
374
379
|
`abstractframework` pins every Python package with `==`, so one version of the
|
|
375
380
|
meta-package always installs the same stack. The browser apps and Rust tools are
|
|
@@ -378,29 +383,29 @@ and tested together.
|
|
|
378
383
|
|
|
379
384
|
| Registry | Package | Version |
|
|
380
385
|
|---|---|---|
|
|
381
|
-
| PyPI | `abstractgateway` | 0.
|
|
382
|
-
| PyPI | `abstractassistant` | 0.
|
|
383
|
-
| PyPI | `abstractcore` | 2.
|
|
384
|
-
| PyPI | `AbstractRuntime` | 0.
|
|
385
|
-
| PyPI | `abstractagent` | 0.3.
|
|
386
|
+
| PyPI | `abstractgateway` | 0.13.0 |
|
|
387
|
+
| PyPI | `abstractassistant` | 0.13.0 |
|
|
388
|
+
| PyPI | `abstractcore` | 2.25.0 |
|
|
389
|
+
| PyPI | `AbstractRuntime` | 0.9.0 |
|
|
390
|
+
| PyPI | `abstractagent` | 0.3.18 |
|
|
386
391
|
| PyPI | `abstractskill` | 0.3.0 |
|
|
387
392
|
| PyPI | `AbstractMemory` | 0.3.0 |
|
|
388
393
|
| PyPI | `abstractsemantics` | 0.0.5 |
|
|
389
|
-
| PyPI | `abstractvoice` | 0.
|
|
394
|
+
| PyPI | `abstractvoice` | 0.14.0 |
|
|
390
395
|
| PyPI | `abstractvision` | 0.3.33 |
|
|
391
|
-
| PyPI | `abstractmusic` | 0.1.
|
|
396
|
+
| PyPI | `abstractmusic` | 0.1.16 |
|
|
392
397
|
| PyPI | `abstract3d` | 0.3.2 |
|
|
393
|
-
| npm | `@abstractframework/flow` | 0.
|
|
394
|
-
| npm | `@abstractframework/code` | 0.
|
|
395
|
-
| npm | `@abstractframework/observer` | 0.
|
|
396
|
-
| npm | `@abstractframework/continuum` | 0.
|
|
397
|
-
| npm | `@abstractframework/entity` | 0.
|
|
398
|
-
| crates.io | `abstractcode` | 0.
|
|
399
|
-
| crates.io | `abstractgateway-console` | 0.
|
|
400
|
-
| crates.io | `abstractcore-console` | 0.
|
|
398
|
+
| npm | `@abstractframework/flow` | 0.8.0 |
|
|
399
|
+
| npm | `@abstractframework/code` | 0.11.0 |
|
|
400
|
+
| npm | `@abstractframework/observer` | 0.7.0 |
|
|
401
|
+
| npm | `@abstractframework/continuum` | 0.7.0 |
|
|
402
|
+
| npm | `@abstractframework/entity` | 0.7.0 |
|
|
403
|
+
| crates.io | `abstractcode` | 0.9.0 |
|
|
404
|
+
| crates.io | `abstractgateway-console` | 0.15.0 |
|
|
405
|
+
| crates.io | `abstractcore-console` | 0.8.0 |
|
|
401
406
|
| crates.io | `abstracttui` | 0.6.0 |
|
|
402
|
-
| GHCR | `ghcr.io/lpalbou/abstractgateway` | 0.
|
|
403
|
-
| GHCR | `ghcr.io/lpalbou/abstractcore-server` | 2.
|
|
407
|
+
| GHCR | `ghcr.io/lpalbou/abstractgateway` | 0.13.0 (`gpu-latest` / `<version>-gpu` experimental) |
|
|
408
|
+
| GHCR | `ghcr.io/lpalbou/abstractcore-server` | 2.25.0 |
|
|
404
409
|
|
|
405
410
|
`abstract3d` (pinned above) comes with AbstractCore in every profile. The optional add-on that is
|
|
406
411
|
not part of any profile installs separately: `pip install abstractcamera` (0.2.1). `abstractskill` (pinned above)
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
abstractgateway==0.13.0
|
|
2
|
+
abstractassistant==0.13.0
|
|
3
|
+
abstractcore==2.25.0
|
|
4
|
+
AbstractRuntime==0.9.0
|
|
5
|
+
abstractagent==0.3.18
|
|
6
|
+
abstractskill==0.3.0
|
|
7
|
+
AbstractMemory==0.3.0
|
|
8
|
+
abstractsemantics==0.0.5
|
|
9
|
+
abstractvoice==0.14.0
|
|
10
|
+
abstractvision==0.3.33
|
|
11
|
+
abstractmusic==0.1.16
|
|
12
|
+
abstract3d==0.3.2
|
|
13
|
+
|
|
14
|
+
[apple]
|
|
15
|
+
abstractgateway[apple]==0.13.0
|
|
16
|
+
|
|
17
|
+
[apple:platform_system == "Darwin"]
|
|
18
|
+
abstractassistant[apple]==0.13.0
|
|
19
|
+
|
|
20
|
+
[gpu]
|
|
21
|
+
abstractgateway[gpu]==0.13.0
|
|
22
|
+
abstractassistant[gpu]==0.13.0
|