abstractframework 0.3.2__tar.gz → 0.4.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.3.2 → abstractframework-0.4.1}/CHANGELOG.md +105 -0
- {abstractframework-0.3.2 → abstractframework-0.4.1}/PKG-INFO +72 -43
- abstractframework-0.3.2/abstractframework.egg-info/PKG-INFO → abstractframework-0.4.1/README.md +61 -76
- {abstractframework-0.3.2 → abstractframework-0.4.1}/abstractframework/__init__.py +15 -13
- abstractframework-0.3.2/README.md → abstractframework-0.4.1/abstractframework.egg-info/PKG-INFO +105 -33
- {abstractframework-0.3.2 → abstractframework-0.4.1}/abstractframework.egg-info/SOURCES.txt +2 -0
- abstractframework-0.4.1/abstractframework.egg-info/requires.txt +21 -0
- {abstractframework-0.3.2 → abstractframework-0.4.1}/docs/README.md +6 -5
- abstractframework-0.4.1/docs/agent-sessions.md +191 -0
- {abstractframework-0.3.2 → abstractframework-0.4.1}/docs/api.md +9 -9
- {abstractframework-0.3.2 → abstractframework-0.4.1}/docs/architecture.md +181 -22
- {abstractframework-0.3.2 → abstractframework-0.4.1}/docs/configuration.md +45 -21
- {abstractframework-0.3.2 → abstractframework-0.4.1}/docs/faq.md +49 -3
- {abstractframework-0.3.2 → abstractframework-0.4.1}/docs/getting-started.md +28 -20
- {abstractframework-0.3.2 → abstractframework-0.4.1}/docs/glossary.md +50 -2
- {abstractframework-0.3.2 → abstractframework-0.4.1}/docs/guide/README.md +1 -1
- abstractframework-0.4.1/docs/guide/agent-skills.md +62 -0
- {abstractframework-0.3.2 → abstractframework-0.4.1}/docs/guide/deployment-web.md +15 -10
- {abstractframework-0.3.2 → abstractframework-0.4.1}/docs/guide/gateway-security.md +45 -25
- {abstractframework-0.3.2 → abstractframework-0.4.1}/docs/install.md +18 -18
- {abstractframework-0.3.2 → abstractframework-0.4.1}/docs/installers/implementation-plan.md +1 -1
- {abstractframework-0.3.2 → abstractframework-0.4.1}/docs/scenarios/offline-coding-assistant.md +7 -1
- {abstractframework-0.3.2 → abstractframework-0.4.1}/docs/troubleshooting.md +66 -0
- {abstractframework-0.3.2 → abstractframework-0.4.1}/llms-full.txt +877 -305
- {abstractframework-0.3.2 → abstractframework-0.4.1}/llms.txt +30 -22
- {abstractframework-0.3.2 → abstractframework-0.4.1}/pyproject.toml +11 -10
- {abstractframework-0.3.2 → abstractframework-0.4.1}/scripts/build.sh +44 -5
- abstractframework-0.4.1/scripts/check_identity_sync.py +72 -0
- {abstractframework-0.3.2 → abstractframework-0.4.1}/scripts/install.sh +4 -4
- {abstractframework-0.3.2 → abstractframework-0.4.1}/scripts/lib/repo_groups.sh +17 -0
- abstractframework-0.3.2/abstractframework.egg-info/requires.txt +0 -20
- abstractframework-0.3.2/docs/guide/agent-skills.md +0 -105
- {abstractframework-0.3.2 → abstractframework-0.4.1}/LICENSE +0 -0
- {abstractframework-0.3.2 → abstractframework-0.4.1}/MANIFEST.in +0 -0
- {abstractframework-0.3.2 → abstractframework-0.4.1}/abstractframework/__main__.py +0 -0
- {abstractframework-0.3.2 → abstractframework-0.4.1}/abstractframework/cli.py +0 -0
- {abstractframework-0.3.2 → abstractframework-0.4.1}/abstractframework/install_manifest.py +0 -0
- {abstractframework-0.3.2 → abstractframework-0.4.1}/abstractframework/py.typed +0 -0
- {abstractframework-0.3.2 → abstractframework-0.4.1}/abstractframework.egg-info/dependency_links.txt +0 -0
- {abstractframework-0.3.2 → abstractframework-0.4.1}/abstractframework.egg-info/entry_points.txt +0 -0
- {abstractframework-0.3.2 → abstractframework-0.4.1}/abstractframework.egg-info/top_level.txt +0 -0
- {abstractframework-0.3.2 → abstractframework-0.4.1}/docs/adr/0001-layered-architecture.md +0 -0
- {abstractframework-0.3.2 → abstractframework-0.4.1}/docs/adr/0002-effect-system-design.md +0 -0
- {abstractframework-0.3.2 → abstractframework-0.4.1}/docs/adr/0003-tool-system-architecture.md +0 -0
- {abstractframework-0.3.2 → abstractframework-0.4.1}/docs/adr/0004-observability-strategy.md +0 -0
- {abstractframework-0.3.2 → abstractframework-0.4.1}/docs/adr/0005-memory-architecture.md +0 -0
- {abstractframework-0.3.2 → abstractframework-0.4.1}/docs/adr/0006-durable-tool-execution.md +0 -0
- {abstractframework-0.3.2 → abstractframework-0.4.1}/docs/adr/0007-active-context-and-memory-provenance.md +0 -0
- {abstractframework-0.3.2 → abstractframework-0.4.1}/docs/adr/0008-token-terminology.md +0 -0
- {abstractframework-0.3.2 → abstractframework-0.4.1}/docs/adr/0009-connected-memory-recall-and-provenance.md +0 -0
- {abstractframework-0.3.2 → abstractframework-0.4.1}/docs/adr/0010-runtime-owned-node-traces.md +0 -0
- {abstractframework-0.3.2 → abstractframework-0.4.1}/docs/adr/0011-ledger-subscriptions-and-event-bridge.md +0 -0
- {abstractframework-0.3.2 → abstractframework-0.4.1}/docs/adr/0012-portable-workflowartifact.md +0 -0
- {abstractframework-0.3.2 → abstractframework-0.4.1}/docs/adr/0013-durable-run-controls-pause-resume-cancel.md +0 -0
- {abstractframework-0.3.2 → abstractframework-0.4.1}/docs/adr/0014-runtime-authority-timeouts.md +0 -0
- {abstractframework-0.3.2 → abstractframework-0.4.1}/docs/adr/0015-execution-targets-and-remote-tool-workers.md +0 -0
- {abstractframework-0.3.2 → abstractframework-0.4.1}/docs/adr/0016-tool-calling-pipeline-and-responsibility-boundaries.md +0 -0
- {abstractframework-0.3.2 → abstractframework-0.4.1}/docs/adr/0017-host-ui-events-and-durable-prompts.md +0 -0
- {abstractframework-0.3.2 → abstractframework-0.4.1}/docs/adr/0018-durable-run-gateway-and-remote-host-control-plane.md +0 -0
- {abstractframework-0.3.2 → abstractframework-0.4.1}/docs/adr/0019-testing-strategy-and-levels.md +0 -0
- {abstractframework-0.3.2 → abstractframework-0.4.1}/docs/adr/0020-agent-host-pool-and-orchestrator-placement.md +0 -0
- {abstractframework-0.3.2 → abstractframework-0.4.1}/docs/adr/0021-deployment-topologies-and-supported-scenarios.md +0 -0
- {abstractframework-0.3.2 → abstractframework-0.4.1}/docs/adr/0022-orchestrator-host-and-runtime-daemonization.md +0 -0
- {abstractframework-0.3.2 → abstractframework-0.4.1}/docs/adr/0023-file-attachment-path-resolution-and-authorization.md +0 -0
- {abstractframework-0.3.2 → abstractframework-0.4.1}/docs/adr/0024-attachment-placeholders-and-compaction-invariants.md +0 -0
- {abstractframework-0.3.2 → abstractframework-0.4.1}/docs/adr/0025-kg-entity-normalization-and-dedup.md +0 -0
- {abstractframework-0.3.2 → abstractframework-0.4.1}/docs/adr/0026-truncation-policy-and-contract.md +0 -0
- {abstractframework-0.3.2 → abstractframework-0.4.1}/docs/adr/0027-timeout-policy-and-contract.md +0 -0
- {abstractframework-0.3.2 → abstractframework-0.4.1}/docs/adr/0028-capabilities-plugins-and-library-framework-modes.md +0 -0
- {abstractframework-0.3.2 → abstractframework-0.4.1}/docs/adr/0029-permissive-dependency-and-licensing-policy.md +0 -0
- {abstractframework-0.3.2 → abstractframework-0.4.1}/docs/adr/0030-security-test-fixtures-and-isolation.md +0 -0
- {abstractframework-0.3.2 → abstractframework-0.4.1}/docs/adr/0031-workflow-llm-routing-overrides-provider-model-and-base-url.md +0 -0
- {abstractframework-0.3.2 → abstractframework-0.4.1}/docs/adr/0032-package-dependency-boundaries-and-gateway-first-apps.md +0 -0
- {abstractframework-0.3.2 → abstractframework-0.4.1}/docs/adr/0033-install-profiles-config-entrypoints-and-server-boundaries.md +0 -0
- {abstractframework-0.3.2 → abstractframework-0.4.1}/docs/adr/0034-framework-release-sequence-and-gates.md +0 -0
- {abstractframework-0.3.2 → abstractframework-0.4.1}/docs/adr/0035-capability-routing-defaults.md +0 -0
- {abstractframework-0.3.2 → abstractframework-0.4.1}/docs/adr/0036-artifact-descriptor-contract.md +0 -0
- {abstractframework-0.3.2 → abstractframework-0.4.1}/docs/adr/0037-hosted-file-source-contract-and-workspacepath-authority.md +0 -0
- {abstractframework-0.3.2 → abstractframework-0.4.1}/docs/adr/0038-script-bootstrap-and-gateway-console-install.md +0 -0
- {abstractframework-0.3.2 → abstractframework-0.4.1}/docs/adr/README.md +0 -0
- {abstractframework-0.3.2 → abstractframework-0.4.1}/docs/adr/memory-recall-levels.md +0 -0
- {abstractframework-0.3.2 → abstractframework-0.4.1}/docs/adr/reorg/001_music_as_capability_plugin_via_acestep_api.md +0 -0
- {abstractframework-0.3.2 → abstractframework-0.4.1}/docs/adr/reorg/002_abstractmusic_inprocess_local_generation.md +0 -0
- {abstractframework-0.3.2 → abstractframework-0.4.1}/docs/adr/reorg/003_abstractmusic_acestep_v15_backend_source_strategy.md +0 -0
- {abstractframework-0.3.2 → abstractframework-0.4.1}/docs/adr/reorg/004_smartnote_thin_client_architecture.md +0 -0
- {abstractframework-0.3.2 → abstractframework-0.4.1}/docs/adr/reorg/005_smartnote_artifact_first_cards.md +0 -0
- {abstractframework-0.3.2 → abstractframework-0.4.1}/docs/adr/reorg/2026-02-21_gateway-first-assistant.md +0 -0
- {abstractframework-0.3.2 → abstractframework-0.4.1}/docs/adr/reorg/2026-02-21_installer_manager_strategy.md +0 -0
- {abstractframework-0.3.2 → abstractframework-0.4.1}/docs/adr/reorg/2026-02-21_macos_installer_manager.md +0 -0
- {abstractframework-0.3.2 → abstractframework-0.4.1}/docs/claude/README.md +0 -0
- {abstractframework-0.3.2 → abstractframework-0.4.1}/docs/claude/abstractframework-fit.md +0 -0
- {abstractframework-0.3.2 → abstractframework-0.4.1}/docs/claude/claude-skills-overview.md +0 -0
- {abstractframework-0.3.2 → abstractframework-0.4.1}/docs/claude/claude-skills-sources.md +0 -0
- {abstractframework-0.3.2 → abstractframework-0.4.1}/docs/claude/claude-skills-top-20.md +0 -0
- {abstractframework-0.3.2 → abstractframework-0.4.1}/docs/comparisons/README.md +0 -0
- {abstractframework-0.3.2 → abstractframework-0.4.1}/docs/guide/LANDING.md +0 -0
- {abstractframework-0.3.2 → abstractframework-0.4.1}/docs/guide/agent-vs-llm.md +0 -0
- {abstractframework-0.3.2 → abstractframework-0.4.1}/docs/guide/agora-workflow-agent.md +0 -0
- {abstractframework-0.3.2 → abstractframework-0.4.1}/docs/guide/apple-local-gateway-flow.md +0 -0
- {abstractframework-0.3.2 → abstractframework-0.4.1}/docs/guide/capability-plugins.md +0 -0
- {abstractframework-0.3.2 → abstractframework-0.4.1}/docs/guide/capability-routing-defaults.md +0 -0
- {abstractframework-0.3.2 → abstractframework-0.4.1}/docs/guide/deployment-iphone.md +0 -0
- {abstractframework-0.3.2 → abstractframework-0.4.1}/docs/guide/deployment-topologies.md +0 -0
- {abstractframework-0.3.2 → abstractframework-0.4.1}/docs/guide/email-integration.md +0 -0
- {abstractframework-0.3.2 → abstractframework-0.4.1}/docs/guide/event-inbox-agent.md +0 -0
- {abstractframework-0.3.2 → abstractframework-0.4.1}/docs/guide/flow-and-kg-memory.md +0 -0
- {abstractframework-0.3.2 → abstractframework-0.4.1}/docs/guide/headless-swarm.md +0 -0
- {abstractframework-0.3.2 → abstractframework-0.4.1}/docs/guide/process-manager-env-vars.md +0 -0
- {abstractframework-0.3.2 → abstractframework-0.4.1}/docs/guide/prompt-caching.md +0 -0
- {abstractframework-0.3.2 → abstractframework-0.4.1}/docs/guide/runtime-artifacts.md +0 -0
- {abstractframework-0.3.2 → abstractframework-0.4.1}/docs/guide/runtime-scope.md +0 -0
- {abstractframework-0.3.2 → abstractframework-0.4.1}/docs/guide/scheduled-workflows.md +0 -0
- {abstractframework-0.3.2 → abstractframework-0.4.1}/docs/guide/summoned-entities.md +0 -0
- {abstractframework-0.3.2 → abstractframework-0.4.1}/docs/guide/telegram-integration.md +0 -0
- {abstractframework-0.3.2 → abstractframework-0.4.1}/docs/guide/workflow-bundles.md +0 -0
- {abstractframework-0.3.2 → abstractframework-0.4.1}/docs/installers/README.md +0 -0
- {abstractframework-0.3.2 → abstractframework-0.4.1}/docs/installers/components.md +0 -0
- {abstractframework-0.3.2 → abstractframework-0.4.1}/docs/installers/operations-and-support.md +0 -0
- {abstractframework-0.3.2 → abstractframework-0.4.1}/docs/installers/release-and-manifest.md +0 -0
- {abstractframework-0.3.2 → abstractframework-0.4.1}/docs/installers/security-and-os-blocks.md +0 -0
- {abstractframework-0.3.2 → abstractframework-0.4.1}/docs/installers/strategy.md +0 -0
- {abstractframework-0.3.2 → abstractframework-0.4.1}/docs/installers/user-journeys.md +0 -0
- {abstractframework-0.3.2 → abstractframework-0.4.1}/docs/prompts/agora-collaboration.md +0 -0
- {abstractframework-0.3.2 → abstractframework-0.4.1}/docs/scenarios/README.md +0 -0
- {abstractframework-0.3.2 → abstractframework-0.4.1}/docs/scenarios/email-inbox-agent.md +0 -0
- {abstractframework-0.3.2 → abstractframework-0.4.1}/docs/scenarios/gateway-first-local-dev.md +0 -0
- {abstractframework-0.3.2 → abstractframework-0.4.1}/docs/scenarios/phone-thin-client.md +0 -0
- {abstractframework-0.3.2 → abstractframework-0.4.1}/docs/scenarios/specialized-agent-flow.md +0 -0
- {abstractframework-0.3.2 → abstractframework-0.4.1}/docs/scenarios/telegram-permanent-contact.md +0 -0
- {abstractframework-0.3.2 → abstractframework-0.4.1}/docs/scenarios/workflow-bundle-lifecycle.md +0 -0
- {abstractframework-0.3.2 → abstractframework-0.4.1}/docs/skills/README.md +0 -0
- {abstractframework-0.3.2 → abstractframework-0.4.1}/docs/skills/abstractframework-agent-skills-fit.md +0 -0
- {abstractframework-0.3.2 → abstractframework-0.4.1}/docs/skills/abstractframework-architecture-deep-dive.md +0 -0
- {abstractframework-0.3.2 → abstractframework-0.4.1}/docs/skills/agent-skills-ecosystem-scan.md +0 -0
- {abstractframework-0.3.2 → abstractframework-0.4.1}/docs/skills/agent-skills-ecosystem-sources.md +0 -0
- {abstractframework-0.3.2 → abstractframework-0.4.1}/docs/skills/claude-agent-skills-overview.md +0 -0
- {abstractframework-0.3.2 → abstractframework-0.4.1}/docs/skills/claude-agent-skills-sources.md +0 -0
- {abstractframework-0.3.2 → abstractframework-0.4.1}/docs/skills/claude-agent-skills-top-20.md +0 -0
- {abstractframework-0.3.2 → abstractframework-0.4.1}/docs/workspace-scripts.md +0 -0
- {abstractframework-0.3.2 → abstractframework-0.4.1}/scripts/af-local.sh +0 -0
- {abstractframework-0.3.2 → abstractframework-0.4.1}/scripts/af.sh +0 -0
- {abstractframework-0.3.2 → abstractframework-0.4.1}/scripts/agora_react_flow_smoke.py +0 -0
- {abstractframework-0.3.2 → abstractframework-0.4.1}/scripts/assistant-local.sh +0 -0
- {abstractframework-0.3.2 → abstractframework-0.4.1}/scripts/assistant.sh +0 -0
- {abstractframework-0.3.2 → abstractframework-0.4.1}/scripts/cache_probe_local_backends.py +0 -0
- {abstractframework-0.3.2 → abstractframework-0.4.1}/scripts/cache_steer_repl.py +0 -0
- {abstractframework-0.3.2 → abstractframework-0.4.1}/scripts/clone.sh +0 -0
- {abstractframework-0.3.2 → abstractframework-0.4.1}/scripts/code-local.sh +0 -0
- {abstractframework-0.3.2 → abstractframework-0.4.1}/scripts/code.sh +0 -0
- {abstractframework-0.3.2 → abstractframework-0.4.1}/scripts/commit.sh +0 -0
- {abstractframework-0.3.2 → abstractframework-0.4.1}/scripts/console-local.sh +0 -0
- {abstractframework-0.3.2 → abstractframework-0.4.1}/scripts/console.sh +0 -0
- {abstractframework-0.3.2 → abstractframework-0.4.1}/scripts/core_operator_drive.py +0 -0
- {abstractframework-0.3.2 → abstractframework-0.4.1}/scripts/deps.sh +0 -0
- {abstractframework-0.3.2 → abstractframework-0.4.1}/scripts/entity-local.sh +0 -0
- {abstractframework-0.3.2 → abstractframework-0.4.1}/scripts/entity.sh +0 -0
- {abstractframework-0.3.2 → abstractframework-0.4.1}/scripts/event_inbox_flow_smoke.py +0 -0
- {abstractframework-0.3.2 → abstractframework-0.4.1}/scripts/flow-local.sh +0 -0
- {abstractframework-0.3.2 → abstractframework-0.4.1}/scripts/flow.sh +0 -0
- {abstractframework-0.3.2 → abstractframework-0.4.1}/scripts/gateway-flow-local.sh +0 -0
- {abstractframework-0.3.2 → abstractframework-0.4.1}/scripts/gateway-flow.sh +0 -0
- {abstractframework-0.3.2 → abstractframework-0.4.1}/scripts/gateway-local.sh +0 -0
- {abstractframework-0.3.2 → abstractframework-0.4.1}/scripts/gateway.sh +0 -0
- {abstractframework-0.3.2 → abstractframework-0.4.1}/scripts/gen_llms_full.py +0 -0
- {abstractframework-0.3.2 → abstractframework-0.4.1}/scripts/headless_fleet_bridge.py +0 -0
- {abstractframework-0.3.2 → abstractframework-0.4.1}/scripts/headless_fleet_demo.py +0 -0
- {abstractframework-0.3.2 → abstractframework-0.4.1}/scripts/headless_steer_repl.py +0 -0
- {abstractframework-0.3.2 → abstractframework-0.4.1}/scripts/lib/af_inventory.py +0 -0
- {abstractframework-0.3.2 → abstractframework-0.4.1}/scripts/lib/af_stack.sh +0 -0
- {abstractframework-0.3.2 → abstractframework-0.4.1}/scripts/lib/af_supervisor.sh +0 -0
- {abstractframework-0.3.2 → abstractframework-0.4.1}/scripts/lib/apps_common.sh +0 -0
- {abstractframework-0.3.2 → abstractframework-0.4.1}/scripts/lib/build_macos_installer.sh +0 -0
- {abstractframework-0.3.2 → abstractframework-0.4.1}/scripts/lib/gateway_user_tokens.py +0 -0
- {abstractframework-0.3.2 → abstractframework-0.4.1}/scripts/meet_castor.sh +0 -0
- {abstractframework-0.3.2 → abstractframework-0.4.1}/scripts/observer-local.sh +0 -0
- {abstractframework-0.3.2 → abstractframework-0.4.1}/scripts/observer.sh +0 -0
- {abstractframework-0.3.2 → abstractframework-0.4.1}/scripts/plan_walkthrough.py +0 -0
- {abstractframework-0.3.2 → abstractframework-0.4.1}/scripts/pull.sh +0 -0
- {abstractframework-0.3.2 → abstractframework-0.4.1}/scripts/push.sh +0 -0
- {abstractframework-0.3.2 → abstractframework-0.4.1}/scripts/spawn_demo_agent.sh +0 -0
- {abstractframework-0.3.2 → abstractframework-0.4.1}/scripts/start-local.sh +0 -0
- {abstractframework-0.3.2 → abstractframework-0.4.1}/scripts/start.sh +0 -0
- {abstractframework-0.3.2 → abstractframework-0.4.1}/scripts/status.sh +0 -0
- {abstractframework-0.3.2 → abstractframework-0.4.1}/scripts/steer_repl.py +0 -0
- {abstractframework-0.3.2 → abstractframework-0.4.1}/scripts/tests/test_af_supervisor.sh +0 -0
- {abstractframework-0.3.2 → abstractframework-0.4.1}/scripts/tests/test_install_user_path.sh +0 -0
- {abstractframework-0.3.2 → abstractframework-0.4.1}/scripts/tests/test_inventory.sh +0 -0
- {abstractframework-0.3.2 → abstractframework-0.4.1}/scripts/tests/test_repo_scripts.sh +0 -0
- {abstractframework-0.3.2 → abstractframework-0.4.1}/scripts/uninstall.sh +0 -0
- {abstractframework-0.3.2 → abstractframework-0.4.1}/scripts/visit_resume_cache_probe.py +0 -0
- {abstractframework-0.3.2 → abstractframework-0.4.1}/setup.cfg +0 -0
- {abstractframework-0.3.2 → abstractframework-0.4.1}/tests/test_install_profiles.py +0 -0
- {abstractframework-0.3.2 → abstractframework-0.4.1}/tests/test_llms_full.py +0 -0
|
@@ -4,6 +4,111 @@ All notable changes to AbstractFramework will be documented in this file.
|
|
|
4
4
|
|
|
5
5
|
## [Unreleased]
|
|
6
6
|
|
|
7
|
+
## [0.4.1] - 2026-09-26
|
|
8
|
+
|
|
9
|
+
A patch release for local MLX models and long-running flows.
|
|
10
|
+
|
|
11
|
+
### Changed (pins)
|
|
12
|
+
|
|
13
|
+
- **AbstractRuntime 0.5.1** (was 0.5.0): a wait is resumed at most once. A flow whose Agent or
|
|
14
|
+
subflow node waits on a child could run that child twice when the child finished exactly as the
|
|
15
|
+
runner ticked, doubling the run's time and tokens; a racing second resume is refused with a
|
|
16
|
+
typed `StaleResumeError`.
|
|
17
|
+
- **abstractcore 2.16.1** (was 2.16.0): MLX prompts are rendered by the model's own chat template
|
|
18
|
+
on every MLX lane (mlx-lm, native MTP, vision, JSON-constrained). Earlier turns keep their tool
|
|
19
|
+
calls, tool results are rendered as the template renders them, and the generation prompt opens
|
|
20
|
+
thinking when the template does; agent loops on Qwen3.x MLX builds with thinking on used to stop
|
|
21
|
+
at the third iteration with a one-sentence announcement and no tool call. A malformed tool-call
|
|
22
|
+
argument in the history never disables that renderer, and each response's metadata names the
|
|
23
|
+
renderer used. Prompt-cache artifacts rendered by the previous renderer are rebuilt, not reused.
|
|
24
|
+
- **abstractagent 0.3.15** (was 0.3.14): fixes a crash in 0.3.13 and 0.3.14 (CodeAct and MemAct
|
|
25
|
+
raised `NameError` when a delegated agent's profile set `thinking`). A reply that announces tool
|
|
26
|
+
use without calling a tool, or whose tool calls could not run, is re-prompted once with the
|
|
27
|
+
failed reply quoted, and ends with `stop_reason.code = "no_tool_call"` rather than being
|
|
28
|
+
published as the answer; the long-reply nudge is bounded to once per step.
|
|
29
|
+
- **abstractgateway 0.5.1** (was 0.5.0): requires the three packages above; when two runner paths
|
|
30
|
+
race to resume the same parent, the losing attempt is logged at debug level instead of as an
|
|
31
|
+
error.
|
|
32
|
+
- **abstractassistant 0.6.1** (was 0.6.0): the Settings window opens inside the screen; the
|
|
33
|
+
default screen edge gap is 12 px.
|
|
34
|
+
- The pins apply to the base install and to the `apple` / `gpu` extras
|
|
35
|
+
(`abstractgateway[apple|gpu]==0.5.1`, `abstractassistant[apple|gpu]==0.6.1`); the bootstrap
|
|
36
|
+
scripts install `abstractgateway[<profile>,tray]==0.5.1`. Unchanged: abstractskill 0.3.0,
|
|
37
|
+
AbstractMemory 0.3.0, abstractsemantics 0.0.5, abstractvoice 0.11.4, abstractvision 0.3.29,
|
|
38
|
+
abstractmusic 0.1.15, the browser apps (flow 0.3.21, code 0.5.0, observer 0.1.13,
|
|
39
|
+
continuum 0.3.2, entity 0.2.2), `abstractcode` 0.6.0 and `abstractgateway-console` 0.9.0.
|
|
40
|
+
- Container images released with it: `ghcr.io/lpalbou/abstractgateway:0.5.1` (and `0.5.1-gpu`)
|
|
41
|
+
and `ghcr.io/lpalbou/abstractcore-server:2.16.1`.
|
|
42
|
+
|
|
43
|
+
### Changed
|
|
44
|
+
|
|
45
|
+
- The dev build (`scripts/build.sh`) installs the sibling kit packages an app takes from npm
|
|
46
|
+
(app-server, ui-kit, panel-chat, monitors) from local packs of the checkouts, so an app builds
|
|
47
|
+
locally even when its kit floor is ahead of the registry. The manifests and lockfiles are left
|
|
48
|
+
untouched.
|
|
49
|
+
|
|
50
|
+
## [0.4.0] - 2026-09-26
|
|
51
|
+
|
|
52
|
+
A feature release of the whole framework. The gateway picks the agent workflow for AbstractCode
|
|
53
|
+
and the Assistant, AbstractCode can browse the conversation's workspace, the gateway serves a
|
|
54
|
+
curated skill shelf, replies stream live into every client, the console opens the Assistant
|
|
55
|
+
already signed in, and every app has an About dialog. Ejecting a model frees its memory from the
|
|
56
|
+
whole gateway process. This release replaces the 0.3.3 matrix, which was prepared but never
|
|
57
|
+
published.
|
|
58
|
+
|
|
59
|
+
### Changed (pins)
|
|
60
|
+
|
|
61
|
+
- **abstractgateway 0.5.0** (was 0.4.3 on PyPI): the default agent workflow setting
|
|
62
|
+
(`agents.default_workflow`, used by AbstractCode and the Assistant, changeable in the console or
|
|
63
|
+
with `abstractgateway config set`), the conversation workspace routes (browse and preview files,
|
|
64
|
+
with a built-in deny list for credential folders and the gateway data folder), the skill shelf
|
|
65
|
+
seeded from `abstractskill`, opening the Assistant signed in from the console, live replies
|
|
66
|
+
(`agents.streaming_default`), `GET /about`, the same-machine rule behind the app proxies, and
|
|
67
|
+
About in the web console and the terminal console. Ejecting a model frees its memory from the
|
|
68
|
+
whole gateway process and the memory figures show what the process really holds; gateways
|
|
69
|
+
started with an earlier version must be restarted once to reclaim memory already held. The
|
|
70
|
+
trust-proxy switch saved in the console now wins over `ABSTRACTGATEWAY_TRUST_PROXY`, which only
|
|
71
|
+
applies while nothing is saved.
|
|
72
|
+
- **abstractcore 2.16.0** (was 2.15.2 in 0.3.2): framework identity for About screens
|
|
73
|
+
(`abstractcore.utils.identity`), process-wide model eject and memory reporting, embeddings
|
|
74
|
+
eject and reload, live-reply telemetry for MLX, and streamed and non-streamed replies that split
|
|
75
|
+
thinking from the answer the same way.
|
|
76
|
+
- **AbstractRuntime 0.5.0** (was 0.4.35): live replies (`_runtime.stream`), workspace
|
|
77
|
+
built-in deny list, deferred model ejects with diagnostics.
|
|
78
|
+
- **abstractagent 0.3.14** (was 0.3.13): delegated sub-agents inherit the live-reply switch.
|
|
79
|
+
- **abstractskill 0.3.0** (new pin): the curated skill shelf ships inside the package.
|
|
80
|
+
- **abstractassistant 0.6.0** (was 0.5.0): opens signed in when launched from the gateway
|
|
81
|
+
console, a workflow selector that follows the gateway default, live replies, About, and window
|
|
82
|
+
defaults.
|
|
83
|
+
- The pins apply to the base install and to the `apple` / `gpu` extras
|
|
84
|
+
(`abstractgateway[apple|gpu]==0.5.0`, `abstractassistant[apple|gpu]==0.6.0`); the bootstrap
|
|
85
|
+
scripts install `abstractgateway[<profile>,tray]==0.5.0`. Unchanged: AbstractMemory 0.3.0,
|
|
86
|
+
abstractsemantics 0.0.5, abstractvoice 0.11.4, abstractvision 0.3.29, abstractmusic 0.1.15.
|
|
87
|
+
- Browser apps released with it (`--with-apps`, `npx`): `@abstractframework/flow` 0.3.21,
|
|
88
|
+
`@abstractframework/code` 0.5.0, `@abstractframework/observer` 0.1.13,
|
|
89
|
+
`@abstractframework/continuum` 0.3.2 and `@abstractframework/entity` 0.2.2, built on
|
|
90
|
+
`@abstractframework/ui-kit` 0.1.12, `@abstractframework/app-server` 0.1.10 and
|
|
91
|
+
`@abstractframework/panel-chat` 0.1.17.
|
|
92
|
+
- Terminal tools released with it: `abstractcode` 0.6.0 and `abstractgateway-console` 0.9.0
|
|
93
|
+
(`--with-code-cli`, `--with-console`); `abstractcore-console` 0.2.0 and `abstracttui` 0.6.0 are
|
|
94
|
+
unchanged.
|
|
95
|
+
- Container images released with it: `ghcr.io/lpalbou/abstractgateway:0.5.0` (and `0.5.0-gpu`)
|
|
96
|
+
and `ghcr.io/lpalbou/abstractcore-server:2.16.0`.
|
|
97
|
+
|
|
98
|
+
### Documentation
|
|
99
|
+
|
|
100
|
+
- New [Agent sessions](docs/agent-sessions.md) page: the gateway's default agent workflow and how
|
|
101
|
+
AbstractCode and the Assistant follow it, the conversation workspace (browse and preview from
|
|
102
|
+
AbstractCode, the built-in deny list for credential folders and the gateway data folder), the
|
|
103
|
+
curated skill shelf, live replies, and opening the Assistant signed in from the console.
|
|
104
|
+
- [Architecture](docs/architecture.md) adds diagrams of how a turn flows, the live-reply lane and
|
|
105
|
+
the framework identity flow, plus the app proxies' forwarded-address rule and model eject.
|
|
106
|
+
- [CONTRIBUTING](CONTRIBUTING.md) documents the framework identity rule
|
|
107
|
+
(`identity/abstractframework.json` and `scripts/check_identity_sync.py`).
|
|
108
|
+
- [Agent Skills](docs/guide/agent-skills.md) describes the shipped skills support; FAQ,
|
|
109
|
+
Troubleshooting, Configuration and Glossary cover the new settings; gateway examples use launch
|
|
110
|
+
flags (`serve --data-dir`, `network set --allowed-origins`).
|
|
111
|
+
|
|
7
112
|
## [0.3.2] - 2026-09-25
|
|
8
113
|
|
|
9
114
|
A patch release: installing the Assistant and the engines works when the data folder path
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: abstractframework
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.4.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
|
|
@@ -23,22 +23,23 @@ Classifier: Typing :: Typed
|
|
|
23
23
|
Requires-Python: >=3.10
|
|
24
24
|
Description-Content-Type: text/markdown
|
|
25
25
|
License-File: LICENSE
|
|
26
|
-
Requires-Dist: abstractgateway==0.
|
|
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.5.1
|
|
27
|
+
Requires-Dist: abstractassistant==0.6.1
|
|
28
|
+
Requires-Dist: abstractcore==2.16.1
|
|
29
|
+
Requires-Dist: AbstractRuntime==0.5.1
|
|
30
|
+
Requires-Dist: abstractagent==0.3.15
|
|
31
|
+
Requires-Dist: abstractskill==0.3.0
|
|
31
32
|
Requires-Dist: AbstractMemory==0.3.0
|
|
32
33
|
Requires-Dist: abstractsemantics==0.0.5
|
|
33
34
|
Requires-Dist: abstractvoice==0.11.4
|
|
34
35
|
Requires-Dist: abstractvision==0.3.29
|
|
35
36
|
Requires-Dist: abstractmusic==0.1.15
|
|
36
37
|
Provides-Extra: apple
|
|
37
|
-
Requires-Dist: abstractgateway[apple]==0.
|
|
38
|
-
Requires-Dist: abstractassistant[apple]==0.
|
|
38
|
+
Requires-Dist: abstractgateway[apple]==0.5.1; extra == "apple"
|
|
39
|
+
Requires-Dist: abstractassistant[apple]==0.6.1; platform_system == "Darwin" and extra == "apple"
|
|
39
40
|
Provides-Extra: gpu
|
|
40
|
-
Requires-Dist: abstractgateway[gpu]==0.
|
|
41
|
-
Requires-Dist: abstractassistant[gpu]==0.
|
|
41
|
+
Requires-Dist: abstractgateway[gpu]==0.5.1; extra == "gpu"
|
|
42
|
+
Requires-Dist: abstractassistant[gpu]==0.6.1; extra == "gpu"
|
|
42
43
|
Dynamic: license-file
|
|
43
44
|
|
|
44
45
|
# AbstractFramework
|
|
@@ -159,19 +160,17 @@ creates `default/admin` in the per-user data folder, and prints a one-time sign-
|
|
|
159
160
|
web console and its first-run guide. `abstractgateway claim` mints a new link;
|
|
160
161
|
`abstractgateway service install` starts the gateway at login.
|
|
161
162
|
|
|
162
|
-
|
|
163
|
-
|
|
163
|
+
Browser apps on `http://localhost:*` and `http://127.0.0.1:*` may always call it. To choose
|
|
164
|
+
another data folder or allow another browser origin:
|
|
164
165
|
|
|
165
166
|
```bash
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
export ABSTRACTGATEWAY_WORKFLOW_SOURCE=bundle
|
|
169
|
-
export ABSTRACTGATEWAY_DATA_DIR="$PWD/runtime/gateway"
|
|
170
|
-
# export ABSTRACTGATEWAY_FLOWS_DIR="$PWD/bundles" # serve your own bundle registry
|
|
171
|
-
|
|
172
|
-
abstractgateway serve --host 127.0.0.1 --port 8080
|
|
167
|
+
abstractgateway serve --data-dir "$PWD/runtime/gateway"
|
|
168
|
+
abstractgateway network set --allowed-origins https://ui.example.com
|
|
173
169
|
```
|
|
174
170
|
|
|
171
|
+
To serve your own workflow bundles instead of the shipped ones, start the gateway with
|
|
172
|
+
`ABSTRACTGATEWAY_FLOWS_DIR` pointing at your bundle folder.
|
|
173
|
+
|
|
175
174
|
Out of the box this serves a ready set of workflows — a verify-gated coding
|
|
176
175
|
agent, `deep-research`, and `co-scientist` among them. See
|
|
177
176
|
[shipped workflows](https://github.com/lpalbou/AbstractGateway/blob/main/docs/shipped-workflows.md).
|
|
@@ -191,11 +190,38 @@ ABSTRACTGATEWAY_AUTH_TOKEN=<token> abstractgateway-console --url http://127.0.0.
|
|
|
191
190
|
```
|
|
192
191
|
|
|
193
192
|
Container images are published for the gateway and the AbstractCore server:
|
|
194
|
-
`ghcr.io/lpalbou/abstractgateway:0.
|
|
193
|
+
`ghcr.io/lpalbou/abstractgateway:0.5.1` and `ghcr.io/lpalbou/abstractcore-server:2.16.1`.
|
|
195
194
|
|
|
196
195
|
For artifact and runtime-resource investigation, see
|
|
197
196
|
[Runtime artifacts and retrieval](docs/guide/runtime-artifacts.md).
|
|
198
197
|
|
|
198
|
+
### Agent sessions on the gateway
|
|
199
|
+
|
|
200
|
+
Every client (AbstractCode in the terminal and the browser, AbstractAssistant, your own app)
|
|
201
|
+
chats with agents through the same gateway rules:
|
|
202
|
+
|
|
203
|
+
- **One default agent workflow.** The gateway decides which workflow answers each agent interface
|
|
204
|
+
(`agents.default_workflow.<interface>`; the shipped `basic-agent` for AbstractCode until you
|
|
205
|
+
choose another). Clients list **Gateway default** first and follow a change at the next turn.
|
|
206
|
+
- **A workspace you can see, with built-in protection.** An agent works in a folder on the
|
|
207
|
+
gateway's computer; AbstractCode's **Files** tab and `/files` show its absolute path and
|
|
208
|
+
preview its files. Credential folders (`~/.ssh`, `~/.aws`, …) and the gateway's data folder are
|
|
209
|
+
denied to every run.
|
|
210
|
+
- **Curated skills.** The skill shelf that ships with `abstractskill` is copied into the gateway's
|
|
211
|
+
data folder at each start, without overwriting your edits (`skills.shelf` points elsewhere).
|
|
212
|
+
- **Live replies.** Watch answers as the model writes them: the gateway's
|
|
213
|
+
`agents.streaming_default` plus a **Stream replies** choice in each client.
|
|
214
|
+
- **The Assistant, signed in for you.** **Open** in the gateway console starts the desktop
|
|
215
|
+
Assistant already signed in; no token to type.
|
|
216
|
+
- **About everywhere.** Every app's About screen shows the framework identity and the versions
|
|
217
|
+
the connected gateway runs (`GET /api/gateway/about`).
|
|
218
|
+
- **Clean model eject.** Ejecting a model frees it from the whole gateway process (MLX, GGUF,
|
|
219
|
+
transformers, embeddings); the console shows the memory the process holds and how it was
|
|
220
|
+
measured.
|
|
221
|
+
|
|
222
|
+
Each setting is available in the web console, the terminal console and `abstractgateway config`.
|
|
223
|
+
See [Agent sessions](docs/agent-sessions.md).
|
|
224
|
+
|
|
199
225
|
---
|
|
200
226
|
|
|
201
227
|
## Author once, run everywhere (AbstractFlow)
|
|
@@ -260,14 +286,14 @@ The ecosystem, grouped by layer. Each name links to the package's repository.
|
|
|
260
286
|
|
|
261
287
|
| App | What it does | Install |
|
|
262
288
|
|---|---|---|
|
|
263
|
-
| [AbstractCode](https://github.com/lpalbou/AbstractCode) | Terminal agentic dev client (Rust, on the AbstractTUI engine) — durable sessions, tool approvals,
|
|
264
|
-
| [AbstractAssistant](https://github.com/lpalbou/AbstractAssistant) | macOS tray client — gateway-native, workflow
|
|
289
|
+
| [AbstractCode](https://github.com/lpalbou/AbstractCode) | Terminal agentic dev client (Rust, on the AbstractTUI engine) — durable sessions, tool approvals, the gateway's default workflow, workspace files, live replies | `cargo install abstractcode`, or a prebuilt binary from the [GitHub release](https://github.com/lpalbou/AbstractCode/releases) |
|
|
290
|
+
| [AbstractAssistant](https://github.com/lpalbou/AbstractAssistant) | macOS tray client — gateway-native, follows the gateway's default workflow or your pick, live replies, voice support | `pip install abstractassistant`, or **Open** in the gateway console (starts it signed in) |
|
|
265
291
|
| [AbstractObserver](https://github.com/lpalbou/AbstractObserver) | Browser UI — monitor, control, and schedule gateway runs | `npx @abstractframework/observer` |
|
|
266
292
|
| [AbstractEntity](https://github.com/lpalbou/AbstractEntity) | Summoned-entity manager — roster, blueprint (cognition map + editing), chat drawer, live replay | `npx @abstractframework/entity` |
|
|
267
293
|
| [AbstractContinuum](https://github.com/lpalbou/AbstractContinuum) | Continuous iterative development and deployment console | `npx @abstractframework/continuum` |
|
|
268
294
|
| **Gateway consoles** | Operator consoles for a running gateway: web at `/console` (first-run guide, Models, Engines, providers, users), terminal via `abstractgateway-console` | built into `abstractgateway`; `cargo install abstractgateway-console` |
|
|
269
295
|
| **Core consoles** | Consoles for AbstractCore: web at `/console` of `abstractcore serve`, terminal via `abstractcore-console` (config, Models, Engines) | built into `abstractcore`; `cargo install abstractcore-console` |
|
|
270
|
-
| **Code Web UI** | Browser client of AbstractCode (gateway-backed) | `npx @abstractframework/code` |
|
|
296
|
+
| **Code Web UI** | Browser client of AbstractCode (gateway-backed): workflow selector, Files tab, live replies | `npx @abstractframework/code` |
|
|
271
297
|
| **Flow Editor** | Visual workflow authoring in the browser | `npx @abstractframework/flow` |
|
|
272
298
|
|
|
273
299
|
### Shared libraries
|
|
@@ -275,8 +301,8 @@ The ecosystem, grouped by layer. Each name links to the package's repository.
|
|
|
275
301
|
| Package | What it is |
|
|
276
302
|
|---|---|
|
|
277
303
|
| [abstracttui](https://github.com/lpalbou/AbstractTUI) | Rust terminal-UI engine built on fine-grained reactive signals |
|
|
278
|
-
| [abstractuic](https://github.com/lpalbou/AbstractUIC) | Reusable UI kit for framework clients (React components + Web Components) |
|
|
279
|
-
| [abstractskill](https://github.com/lpalbou/AbstractSkill) | Shared library for Agent Skills (`SKILL.md` folders: load, trust-gate, activate) |
|
|
304
|
+
| [abstractuic](https://github.com/lpalbou/AbstractUIC) | Reusable UI kit for framework clients (React components + Web Components): chat panel with live replies, the shared About dialog, the app-server proxy |
|
|
305
|
+
| [abstractskill](https://github.com/lpalbou/AbstractSkill) | Shared library for Agent Skills (`SKILL.md` folders: load, trust-gate, activate) and the curated skill shelf the gateway serves |
|
|
280
306
|
|
|
281
307
|
---
|
|
282
308
|
|
|
@@ -310,7 +336,7 @@ pip install "abstractframework[gpu]"
|
|
|
310
336
|
| Apple | `pip install "abstractframework[apple]"` | macOS 14+ on Apple Silicon | 3.10–3.13 (F5-TTS voice cloning needs 3.11+) |
|
|
311
337
|
| GPU | `pip install "abstractframework[gpu]"` | Linux / Windows with a CUDA or ROCm GPU | 3.10–3.13 (F5-TTS voice cloning needs 3.11+) |
|
|
312
338
|
|
|
313
|
-
### Release matrix (abstractframework 0.
|
|
339
|
+
### Release matrix (abstractframework 0.4.1)
|
|
314
340
|
|
|
315
341
|
`abstractframework` pins every Python package with `==`, so one version of the
|
|
316
342
|
meta-package always installs the same stack. The browser apps and Rust tools are
|
|
@@ -319,31 +345,33 @@ and tested together.
|
|
|
319
345
|
|
|
320
346
|
| Registry | Package | Version |
|
|
321
347
|
|---|---|---|
|
|
322
|
-
| PyPI | `abstractgateway` | 0.
|
|
323
|
-
| PyPI | `abstractassistant` | 0.
|
|
324
|
-
| PyPI | `abstractcore` | 2.
|
|
325
|
-
| PyPI | `AbstractRuntime` | 0.
|
|
326
|
-
| PyPI | `abstractagent` | 0.3.
|
|
348
|
+
| PyPI | `abstractgateway` | 0.5.1 |
|
|
349
|
+
| PyPI | `abstractassistant` | 0.6.1 |
|
|
350
|
+
| PyPI | `abstractcore` | 2.16.1 |
|
|
351
|
+
| PyPI | `AbstractRuntime` | 0.5.1 |
|
|
352
|
+
| PyPI | `abstractagent` | 0.3.15 |
|
|
353
|
+
| PyPI | `abstractskill` | 0.3.0 |
|
|
327
354
|
| PyPI | `AbstractMemory` | 0.3.0 |
|
|
328
355
|
| PyPI | `abstractsemantics` | 0.0.5 |
|
|
329
356
|
| PyPI | `abstractvoice` | 0.11.4 |
|
|
330
357
|
| PyPI | `abstractvision` | 0.3.29 |
|
|
331
358
|
| PyPI | `abstractmusic` | 0.1.15 |
|
|
332
|
-
| npm | `@abstractframework/flow` | 0.3.
|
|
333
|
-
| npm | `@abstractframework/code` | 0.
|
|
334
|
-
| npm | `@abstractframework/observer` | 0.1.
|
|
335
|
-
| npm | `@abstractframework/continuum` | 0.3.
|
|
336
|
-
| npm | `@abstractframework/entity` | 0.2.
|
|
337
|
-
| crates.io | `abstractcode` | 0.
|
|
338
|
-
| crates.io | `abstractgateway-console` | 0.
|
|
359
|
+
| npm | `@abstractframework/flow` | 0.3.21 |
|
|
360
|
+
| npm | `@abstractframework/code` | 0.5.0 |
|
|
361
|
+
| npm | `@abstractframework/observer` | 0.1.13 |
|
|
362
|
+
| npm | `@abstractframework/continuum` | 0.3.2 |
|
|
363
|
+
| npm | `@abstractframework/entity` | 0.2.2 |
|
|
364
|
+
| crates.io | `abstractcode` | 0.6.0 |
|
|
365
|
+
| crates.io | `abstractgateway-console` | 0.9.0 |
|
|
339
366
|
| crates.io | `abstractcore-console` | 0.2.0 |
|
|
340
367
|
| crates.io | `abstracttui` | 0.6.0 |
|
|
341
|
-
| GHCR | `ghcr.io/lpalbou/abstractgateway` | 0.
|
|
342
|
-
| GHCR | `ghcr.io/lpalbou/abstractcore-server` | 2.
|
|
368
|
+
| GHCR | `ghcr.io/lpalbou/abstractgateway` | 0.5.1 (`gpu-latest` / `<version>-gpu` experimental) |
|
|
369
|
+
| GHCR | `ghcr.io/lpalbou/abstractcore-server` | 2.16.1 |
|
|
343
370
|
|
|
344
371
|
Optional add-ons that are not part of any profile install separately:
|
|
345
|
-
`pip install abstract3d` (0.3.1)
|
|
346
|
-
|
|
372
|
+
`pip install abstract3d` (0.3.1) and `pip install abstractcamera` (0.2.0). `abstractskill` (pinned above)
|
|
373
|
+
comes with the gateway, which carries its curated skill shelf; install it on its own with
|
|
374
|
+
`pip install abstractskill`.
|
|
347
375
|
|
|
348
376
|
See [docs/install.md](docs/install.md) for the full install chooser, `uv`/venv guidance,
|
|
349
377
|
`abstractframework doctor`, and the generated installer manifest contract.
|
|
@@ -357,7 +385,8 @@ See [docs/install.md](docs/install.md) for the full install chooser, `uv`/venv g
|
|
|
357
385
|
| [docs/README.md](docs/README.md) | Documentation hub — pick your starting point |
|
|
358
386
|
| [docs/install.md](docs/install.md) | Light / Apple / GPU install chooser and first checks |
|
|
359
387
|
| [docs/getting-started.md](docs/getting-started.md) | Two entry points + first end-to-end run |
|
|
360
|
-
| [docs/
|
|
388
|
+
| [docs/agent-sessions.md](docs/agent-sessions.md) | Default agent workflow, the conversation workspace and its protection, skills, live replies, the Assistant hand-over |
|
|
389
|
+
| [docs/architecture.md](docs/architecture.md) | Component diagram, how a turn flows, the live-reply lane, app proxies, model eject, framework identity, durable execution primitives |
|
|
361
390
|
| [docs/configuration.md](docs/configuration.md) | Minimal config, where defaults live, Core vs Gateway |
|
|
362
391
|
| [docs/glossary.md](docs/glossary.md) | Shared terminology (run, ledger, effect, wait, bundle, …) |
|
|
363
392
|
| [docs/faq.md](docs/faq.md) | Common questions, comparisons, limits |
|
abstractframework-0.3.2/abstractframework.egg-info/PKG-INFO → abstractframework-0.4.1/README.md
RENAMED
|
@@ -1,46 +1,3 @@
|
|
|
1
|
-
Metadata-Version: 2.4
|
|
2
|
-
Name: abstractframework
|
|
3
|
-
Version: 0.3.2
|
|
4
|
-
Summary: Unified installer and documentation hub for the AbstractFramework ecosystem
|
|
5
|
-
Author-email: Laurent-Philippe Albou <contact@abstractframework.ai>
|
|
6
|
-
License: MIT
|
|
7
|
-
Project-URL: Homepage, https://github.com/lpalbou/AbstractFramework
|
|
8
|
-
Project-URL: Documentation, https://github.com/lpalbou/AbstractFramework/tree/main/docs
|
|
9
|
-
Project-URL: Repository, https://github.com/lpalbou/AbstractFramework
|
|
10
|
-
Project-URL: Issues, https://github.com/lpalbou/AbstractFramework/issues
|
|
11
|
-
Keywords: agentic-os,ai-agents,llm,autonomous-agents,workflows,multi-agent,durable-execution,knowledge-graph,openai,anthropic,ollama,local-llm
|
|
12
|
-
Classifier: Development Status :: 4 - Beta
|
|
13
|
-
Classifier: Intended Audience :: Developers
|
|
14
|
-
Classifier: License :: OSI Approved :: MIT License
|
|
15
|
-
Classifier: Operating System :: OS Independent
|
|
16
|
-
Classifier: Programming Language :: Python :: 3
|
|
17
|
-
Classifier: Programming Language :: Python :: 3.10
|
|
18
|
-
Classifier: Programming Language :: Python :: 3.11
|
|
19
|
-
Classifier: Programming Language :: Python :: 3.12
|
|
20
|
-
Classifier: Programming Language :: Python :: 3.13
|
|
21
|
-
Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
|
|
22
|
-
Classifier: Typing :: Typed
|
|
23
|
-
Requires-Python: >=3.10
|
|
24
|
-
Description-Content-Type: text/markdown
|
|
25
|
-
License-File: LICENSE
|
|
26
|
-
Requires-Dist: abstractgateway==0.4.3
|
|
27
|
-
Requires-Dist: abstractassistant==0.5.0
|
|
28
|
-
Requires-Dist: abstractcore==2.15.2
|
|
29
|
-
Requires-Dist: AbstractRuntime==0.4.35
|
|
30
|
-
Requires-Dist: abstractagent==0.3.13
|
|
31
|
-
Requires-Dist: AbstractMemory==0.3.0
|
|
32
|
-
Requires-Dist: abstractsemantics==0.0.5
|
|
33
|
-
Requires-Dist: abstractvoice==0.11.4
|
|
34
|
-
Requires-Dist: abstractvision==0.3.29
|
|
35
|
-
Requires-Dist: abstractmusic==0.1.15
|
|
36
|
-
Provides-Extra: apple
|
|
37
|
-
Requires-Dist: abstractgateway[apple]==0.4.3; extra == "apple"
|
|
38
|
-
Requires-Dist: abstractassistant[apple]==0.5.0; platform_system == "Darwin" and extra == "apple"
|
|
39
|
-
Provides-Extra: gpu
|
|
40
|
-
Requires-Dist: abstractgateway[gpu]==0.4.3; extra == "gpu"
|
|
41
|
-
Requires-Dist: abstractassistant[gpu]==0.5.0; extra == "gpu"
|
|
42
|
-
Dynamic: license-file
|
|
43
|
-
|
|
44
1
|
# AbstractFramework
|
|
45
2
|
|
|
46
3
|
**Write once. Generate everything.**
|
|
@@ -159,19 +116,17 @@ creates `default/admin` in the per-user data folder, and prints a one-time sign-
|
|
|
159
116
|
web console and its first-run guide. `abstractgateway claim` mints a new link;
|
|
160
117
|
`abstractgateway service install` starts the gateway at login.
|
|
161
118
|
|
|
162
|
-
|
|
163
|
-
|
|
119
|
+
Browser apps on `http://localhost:*` and `http://127.0.0.1:*` may always call it. To choose
|
|
120
|
+
another data folder or allow another browser origin:
|
|
164
121
|
|
|
165
122
|
```bash
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
export ABSTRACTGATEWAY_WORKFLOW_SOURCE=bundle
|
|
169
|
-
export ABSTRACTGATEWAY_DATA_DIR="$PWD/runtime/gateway"
|
|
170
|
-
# export ABSTRACTGATEWAY_FLOWS_DIR="$PWD/bundles" # serve your own bundle registry
|
|
171
|
-
|
|
172
|
-
abstractgateway serve --host 127.0.0.1 --port 8080
|
|
123
|
+
abstractgateway serve --data-dir "$PWD/runtime/gateway"
|
|
124
|
+
abstractgateway network set --allowed-origins https://ui.example.com
|
|
173
125
|
```
|
|
174
126
|
|
|
127
|
+
To serve your own workflow bundles instead of the shipped ones, start the gateway with
|
|
128
|
+
`ABSTRACTGATEWAY_FLOWS_DIR` pointing at your bundle folder.
|
|
129
|
+
|
|
175
130
|
Out of the box this serves a ready set of workflows — a verify-gated coding
|
|
176
131
|
agent, `deep-research`, and `co-scientist` among them. See
|
|
177
132
|
[shipped workflows](https://github.com/lpalbou/AbstractGateway/blob/main/docs/shipped-workflows.md).
|
|
@@ -191,11 +146,38 @@ ABSTRACTGATEWAY_AUTH_TOKEN=<token> abstractgateway-console --url http://127.0.0.
|
|
|
191
146
|
```
|
|
192
147
|
|
|
193
148
|
Container images are published for the gateway and the AbstractCore server:
|
|
194
|
-
`ghcr.io/lpalbou/abstractgateway:0.
|
|
149
|
+
`ghcr.io/lpalbou/abstractgateway:0.5.1` and `ghcr.io/lpalbou/abstractcore-server:2.16.1`.
|
|
195
150
|
|
|
196
151
|
For artifact and runtime-resource investigation, see
|
|
197
152
|
[Runtime artifacts and retrieval](docs/guide/runtime-artifacts.md).
|
|
198
153
|
|
|
154
|
+
### Agent sessions on the gateway
|
|
155
|
+
|
|
156
|
+
Every client (AbstractCode in the terminal and the browser, AbstractAssistant, your own app)
|
|
157
|
+
chats with agents through the same gateway rules:
|
|
158
|
+
|
|
159
|
+
- **One default agent workflow.** The gateway decides which workflow answers each agent interface
|
|
160
|
+
(`agents.default_workflow.<interface>`; the shipped `basic-agent` for AbstractCode until you
|
|
161
|
+
choose another). Clients list **Gateway default** first and follow a change at the next turn.
|
|
162
|
+
- **A workspace you can see, with built-in protection.** An agent works in a folder on the
|
|
163
|
+
gateway's computer; AbstractCode's **Files** tab and `/files` show its absolute path and
|
|
164
|
+
preview its files. Credential folders (`~/.ssh`, `~/.aws`, …) and the gateway's data folder are
|
|
165
|
+
denied to every run.
|
|
166
|
+
- **Curated skills.** The skill shelf that ships with `abstractskill` is copied into the gateway's
|
|
167
|
+
data folder at each start, without overwriting your edits (`skills.shelf` points elsewhere).
|
|
168
|
+
- **Live replies.** Watch answers as the model writes them: the gateway's
|
|
169
|
+
`agents.streaming_default` plus a **Stream replies** choice in each client.
|
|
170
|
+
- **The Assistant, signed in for you.** **Open** in the gateway console starts the desktop
|
|
171
|
+
Assistant already signed in; no token to type.
|
|
172
|
+
- **About everywhere.** Every app's About screen shows the framework identity and the versions
|
|
173
|
+
the connected gateway runs (`GET /api/gateway/about`).
|
|
174
|
+
- **Clean model eject.** Ejecting a model frees it from the whole gateway process (MLX, GGUF,
|
|
175
|
+
transformers, embeddings); the console shows the memory the process holds and how it was
|
|
176
|
+
measured.
|
|
177
|
+
|
|
178
|
+
Each setting is available in the web console, the terminal console and `abstractgateway config`.
|
|
179
|
+
See [Agent sessions](docs/agent-sessions.md).
|
|
180
|
+
|
|
199
181
|
---
|
|
200
182
|
|
|
201
183
|
## Author once, run everywhere (AbstractFlow)
|
|
@@ -260,14 +242,14 @@ The ecosystem, grouped by layer. Each name links to the package's repository.
|
|
|
260
242
|
|
|
261
243
|
| App | What it does | Install |
|
|
262
244
|
|---|---|---|
|
|
263
|
-
| [AbstractCode](https://github.com/lpalbou/AbstractCode) | Terminal agentic dev client (Rust, on the AbstractTUI engine) — durable sessions, tool approvals,
|
|
264
|
-
| [AbstractAssistant](https://github.com/lpalbou/AbstractAssistant) | macOS tray client — gateway-native, workflow
|
|
245
|
+
| [AbstractCode](https://github.com/lpalbou/AbstractCode) | Terminal agentic dev client (Rust, on the AbstractTUI engine) — durable sessions, tool approvals, the gateway's default workflow, workspace files, live replies | `cargo install abstractcode`, or a prebuilt binary from the [GitHub release](https://github.com/lpalbou/AbstractCode/releases) |
|
|
246
|
+
| [AbstractAssistant](https://github.com/lpalbou/AbstractAssistant) | macOS tray client — gateway-native, follows the gateway's default workflow or your pick, live replies, voice support | `pip install abstractassistant`, or **Open** in the gateway console (starts it signed in) |
|
|
265
247
|
| [AbstractObserver](https://github.com/lpalbou/AbstractObserver) | Browser UI — monitor, control, and schedule gateway runs | `npx @abstractframework/observer` |
|
|
266
248
|
| [AbstractEntity](https://github.com/lpalbou/AbstractEntity) | Summoned-entity manager — roster, blueprint (cognition map + editing), chat drawer, live replay | `npx @abstractframework/entity` |
|
|
267
249
|
| [AbstractContinuum](https://github.com/lpalbou/AbstractContinuum) | Continuous iterative development and deployment console | `npx @abstractframework/continuum` |
|
|
268
250
|
| **Gateway consoles** | Operator consoles for a running gateway: web at `/console` (first-run guide, Models, Engines, providers, users), terminal via `abstractgateway-console` | built into `abstractgateway`; `cargo install abstractgateway-console` |
|
|
269
251
|
| **Core consoles** | Consoles for AbstractCore: web at `/console` of `abstractcore serve`, terminal via `abstractcore-console` (config, Models, Engines) | built into `abstractcore`; `cargo install abstractcore-console` |
|
|
270
|
-
| **Code Web UI** | Browser client of AbstractCode (gateway-backed) | `npx @abstractframework/code` |
|
|
252
|
+
| **Code Web UI** | Browser client of AbstractCode (gateway-backed): workflow selector, Files tab, live replies | `npx @abstractframework/code` |
|
|
271
253
|
| **Flow Editor** | Visual workflow authoring in the browser | `npx @abstractframework/flow` |
|
|
272
254
|
|
|
273
255
|
### Shared libraries
|
|
@@ -275,8 +257,8 @@ The ecosystem, grouped by layer. Each name links to the package's repository.
|
|
|
275
257
|
| Package | What it is |
|
|
276
258
|
|---|---|
|
|
277
259
|
| [abstracttui](https://github.com/lpalbou/AbstractTUI) | Rust terminal-UI engine built on fine-grained reactive signals |
|
|
278
|
-
| [abstractuic](https://github.com/lpalbou/AbstractUIC) | Reusable UI kit for framework clients (React components + Web Components) |
|
|
279
|
-
| [abstractskill](https://github.com/lpalbou/AbstractSkill) | Shared library for Agent Skills (`SKILL.md` folders: load, trust-gate, activate) |
|
|
260
|
+
| [abstractuic](https://github.com/lpalbou/AbstractUIC) | Reusable UI kit for framework clients (React components + Web Components): chat panel with live replies, the shared About dialog, the app-server proxy |
|
|
261
|
+
| [abstractskill](https://github.com/lpalbou/AbstractSkill) | Shared library for Agent Skills (`SKILL.md` folders: load, trust-gate, activate) and the curated skill shelf the gateway serves |
|
|
280
262
|
|
|
281
263
|
---
|
|
282
264
|
|
|
@@ -310,7 +292,7 @@ pip install "abstractframework[gpu]"
|
|
|
310
292
|
| Apple | `pip install "abstractframework[apple]"` | macOS 14+ on Apple Silicon | 3.10–3.13 (F5-TTS voice cloning needs 3.11+) |
|
|
311
293
|
| GPU | `pip install "abstractframework[gpu]"` | Linux / Windows with a CUDA or ROCm GPU | 3.10–3.13 (F5-TTS voice cloning needs 3.11+) |
|
|
312
294
|
|
|
313
|
-
### Release matrix (abstractframework 0.
|
|
295
|
+
### Release matrix (abstractframework 0.4.1)
|
|
314
296
|
|
|
315
297
|
`abstractframework` pins every Python package with `==`, so one version of the
|
|
316
298
|
meta-package always installs the same stack. The browser apps and Rust tools are
|
|
@@ -319,31 +301,33 @@ and tested together.
|
|
|
319
301
|
|
|
320
302
|
| Registry | Package | Version |
|
|
321
303
|
|---|---|---|
|
|
322
|
-
| PyPI | `abstractgateway` | 0.
|
|
323
|
-
| PyPI | `abstractassistant` | 0.
|
|
324
|
-
| PyPI | `abstractcore` | 2.
|
|
325
|
-
| PyPI | `AbstractRuntime` | 0.
|
|
326
|
-
| PyPI | `abstractagent` | 0.3.
|
|
304
|
+
| PyPI | `abstractgateway` | 0.5.1 |
|
|
305
|
+
| PyPI | `abstractassistant` | 0.6.1 |
|
|
306
|
+
| PyPI | `abstractcore` | 2.16.1 |
|
|
307
|
+
| PyPI | `AbstractRuntime` | 0.5.1 |
|
|
308
|
+
| PyPI | `abstractagent` | 0.3.15 |
|
|
309
|
+
| PyPI | `abstractskill` | 0.3.0 |
|
|
327
310
|
| PyPI | `AbstractMemory` | 0.3.0 |
|
|
328
311
|
| PyPI | `abstractsemantics` | 0.0.5 |
|
|
329
312
|
| PyPI | `abstractvoice` | 0.11.4 |
|
|
330
313
|
| PyPI | `abstractvision` | 0.3.29 |
|
|
331
314
|
| PyPI | `abstractmusic` | 0.1.15 |
|
|
332
|
-
| npm | `@abstractframework/flow` | 0.3.
|
|
333
|
-
| npm | `@abstractframework/code` | 0.
|
|
334
|
-
| npm | `@abstractframework/observer` | 0.1.
|
|
335
|
-
| npm | `@abstractframework/continuum` | 0.3.
|
|
336
|
-
| npm | `@abstractframework/entity` | 0.2.
|
|
337
|
-
| crates.io | `abstractcode` | 0.
|
|
338
|
-
| crates.io | `abstractgateway-console` | 0.
|
|
315
|
+
| npm | `@abstractframework/flow` | 0.3.21 |
|
|
316
|
+
| npm | `@abstractframework/code` | 0.5.0 |
|
|
317
|
+
| npm | `@abstractframework/observer` | 0.1.13 |
|
|
318
|
+
| npm | `@abstractframework/continuum` | 0.3.2 |
|
|
319
|
+
| npm | `@abstractframework/entity` | 0.2.2 |
|
|
320
|
+
| crates.io | `abstractcode` | 0.6.0 |
|
|
321
|
+
| crates.io | `abstractgateway-console` | 0.9.0 |
|
|
339
322
|
| crates.io | `abstractcore-console` | 0.2.0 |
|
|
340
323
|
| crates.io | `abstracttui` | 0.6.0 |
|
|
341
|
-
| GHCR | `ghcr.io/lpalbou/abstractgateway` | 0.
|
|
342
|
-
| GHCR | `ghcr.io/lpalbou/abstractcore-server` | 2.
|
|
324
|
+
| GHCR | `ghcr.io/lpalbou/abstractgateway` | 0.5.1 (`gpu-latest` / `<version>-gpu` experimental) |
|
|
325
|
+
| GHCR | `ghcr.io/lpalbou/abstractcore-server` | 2.16.1 |
|
|
343
326
|
|
|
344
327
|
Optional add-ons that are not part of any profile install separately:
|
|
345
|
-
`pip install abstract3d` (0.3.1)
|
|
346
|
-
|
|
328
|
+
`pip install abstract3d` (0.3.1) and `pip install abstractcamera` (0.2.0). `abstractskill` (pinned above)
|
|
329
|
+
comes with the gateway, which carries its curated skill shelf; install it on its own with
|
|
330
|
+
`pip install abstractskill`.
|
|
347
331
|
|
|
348
332
|
See [docs/install.md](docs/install.md) for the full install chooser, `uv`/venv guidance,
|
|
349
333
|
`abstractframework doctor`, and the generated installer manifest contract.
|
|
@@ -357,7 +341,8 @@ See [docs/install.md](docs/install.md) for the full install chooser, `uv`/venv g
|
|
|
357
341
|
| [docs/README.md](docs/README.md) | Documentation hub — pick your starting point |
|
|
358
342
|
| [docs/install.md](docs/install.md) | Light / Apple / GPU install chooser and first checks |
|
|
359
343
|
| [docs/getting-started.md](docs/getting-started.md) | Two entry points + first end-to-end run |
|
|
360
|
-
| [docs/
|
|
344
|
+
| [docs/agent-sessions.md](docs/agent-sessions.md) | Default agent workflow, the conversation workspace and its protection, skills, live replies, the Assistant hand-over |
|
|
345
|
+
| [docs/architecture.md](docs/architecture.md) | Component diagram, how a turn flows, the live-reply lane, app proxies, model eject, framework identity, durable execution primitives |
|
|
361
346
|
| [docs/configuration.md](docs/configuration.md) | Minimal config, where defaults live, Core vs Gateway |
|
|
362
347
|
| [docs/glossary.md](docs/glossary.md) | Shared terminology (run, ledger, effect, wait, bundle, …) |
|
|
363
348
|
| [docs/faq.md](docs/faq.md) | Common questions, comparisons, limits |
|
|
@@ -10,21 +10,22 @@ Most implementation functionality still lives in component projects.
|
|
|
10
10
|
|
|
11
11
|
from __future__ import annotations
|
|
12
12
|
|
|
13
|
-
__version__ = "0.
|
|
13
|
+
__version__ = "0.4.1"
|
|
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.16.1",
|
|
19
|
+
"abstractruntime": "0.5.1",
|
|
20
|
+
"abstractagent": "0.3.15",
|
|
21
|
+
"abstractgateway": "0.5.1",
|
|
22
|
+
"abstractskill": "0.3.0",
|
|
22
23
|
"abstractmemory": "0.3.0",
|
|
23
24
|
"abstractsemantics": "0.0.5",
|
|
24
25
|
"abstractvoice": "0.11.4",
|
|
25
26
|
"abstractvision": "0.3.29",
|
|
26
27
|
"abstractmusic": "0.1.15",
|
|
27
|
-
"abstractassistant": "0.
|
|
28
|
+
"abstractassistant": "0.6.1",
|
|
28
29
|
}
|
|
29
30
|
|
|
30
31
|
PACKAGE_DISTRIBUTIONS: dict[str, str] = {
|
|
@@ -32,6 +33,7 @@ PACKAGE_DISTRIBUTIONS: dict[str, str] = {
|
|
|
32
33
|
"abstractruntime": "AbstractRuntime",
|
|
33
34
|
"abstractagent": "abstractagent",
|
|
34
35
|
"abstractgateway": "abstractgateway",
|
|
36
|
+
"abstractskill": "abstractskill",
|
|
35
37
|
"abstractmemory": "AbstractMemory",
|
|
36
38
|
"abstractsemantics": "abstractsemantics",
|
|
37
39
|
"abstractvoice": "abstractvoice",
|
|
@@ -41,19 +43,19 @@ PACKAGE_DISTRIBUTIONS: dict[str, str] = {
|
|
|
41
43
|
}
|
|
42
44
|
|
|
43
45
|
NPM_RELEASE_VERSIONS: dict[str, str] = {
|
|
44
|
-
"@abstractframework/flow": "0.3.
|
|
45
|
-
"@abstractframework/code": "0.
|
|
46
|
-
"@abstractframework/observer": "0.1.
|
|
47
|
-
"@abstractframework/continuum": "0.3.
|
|
48
|
-
"@abstractframework/entity": "0.2.
|
|
46
|
+
"@abstractframework/flow": "0.3.21",
|
|
47
|
+
"@abstractframework/code": "0.5.0",
|
|
48
|
+
"@abstractframework/observer": "0.1.13",
|
|
49
|
+
"@abstractframework/continuum": "0.3.2",
|
|
50
|
+
"@abstractframework/entity": "0.2.2",
|
|
49
51
|
}
|
|
50
52
|
|
|
51
53
|
# Terminal tools published on crates.io alongside this release (installed with `cargo install`,
|
|
52
54
|
# or by the bootstrap scripts' --with-console / --with-code-cli flags).
|
|
53
55
|
CRATE_RELEASE_VERSIONS: dict[str, str] = {
|
|
54
|
-
"abstractgateway-console": "0.
|
|
56
|
+
"abstractgateway-console": "0.9.0",
|
|
55
57
|
"abstractcore-console": "0.2.0",
|
|
56
|
-
"abstractcode": "0.
|
|
58
|
+
"abstractcode": "0.6.0",
|
|
57
59
|
"abstracttui": "0.6.0",
|
|
58
60
|
}
|
|
59
61
|
|