Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 4 additions & 8 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,14 +5,10 @@
The mandatory root adapter now uses `amplifier_agent` public handles, not the
private Engine/CLI integration described in historical sections below.
Binding `main#subdirectory=packages/python` deliberately floats, with the
`github-copilot` extra. Binding 0.22.0 pins engine v0.22.0, Core 2.0.1 and
Foundation `21ad50fa40f7acff913cbf6615228ac359f7dedd`.

The former Foundation-main policy conflicts with that engine SHA in an
unoverridden consumer solve. Runner's published Foundation requirement/source
now align to the engine SHA as a narrow consumer exception; the root override
is removed. The historical shape-only fix below no longer governs this install.
Consumers requiring Foundation main still need independent qualification.
`github-copilot` extra. The binding and engine use the same `main` source;
the engine and runner both select Foundation `main`. There is no consumer
engine or Foundation override. Release tooling must resolve and freeze the
agent binding, engine and Foundation commits together before installation.

Canonical §§1.4/4.5 allow this backend replacement without altering graph
traversal, String|Outcome or the worker-written status-file channel.
Expand Down
21 changes: 6 additions & 15 deletions modules/loop-amplifier-agent/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -142,20 +142,11 @@ The binding deliberately floats:
amplifier-agent[github-copilot] @ git+https://github.com/microsoft/amplifier-agent@main#subdirectory=packages/python
```

Binding 0.22.0 pins engine v0.22.0; that engine pins Foundation
`21ad50fa40f7acff913cbf6615228ac359f7dedd`. Runner `main` Foundation conflicts in
an unoverridden consumer solve. The runner now aligns its published requirement
and source to that exact pin as a narrow consumer exception. There is no root
Foundation override hiding qualification failures. Other ecosystem consumers
still naming Foundation main may conflict and need independent qualification.

Upstream's `workspace=true` engine source can leak the binding-main revision
into a consumer uv lock despite the binding's published engine tag. Root and
adapter lock roots therefore carry a narrow engine-only override to the exact
published v0.22.0 tag. This corrects development locks, not runtime authority.
Fresh `uv --no-config pip install --no-sources` checks run independently of
that override. When binding main changes its engine requirement, requalify and
update this correction rather than silently holding an obsolete tag.
The binding and engine select the same upstream `main` source. Foundation
and tool-delegate also select Foundation `main`, matching the runner without
an engine or Foundation override. Release tooling must explicitly resolve and
freeze both agent packages and Foundation at their selected commits. An
installation from moving refs alone does not establish immutable provenance.

```bash
cd modules/loop-amplifier-agent
Expand All @@ -177,4 +168,4 @@ Live tests require Anthropic credentials and have honest credential skips:
seeded random history recall plus a two-node full-fidelity graph/control run,
different models, actual selection records and status outside cwd read by the real
parent. The outer spawn carrier in that local test is doubled; it is not proof
of installed Foundation spawning. Manager DTU qualification remains required.
of installed Foundation spawning. Manager DTU qualification remains required.
5 changes: 0 additions & 5 deletions modules/loop-amplifier-agent/pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -35,11 +35,6 @@ build-backend = "hatchling.build"

[tool.uv]
package = true
# Lock-only correction for upstream workspace=true source leakage. This is
# exactly the binding's published engine tag, never a Foundation override.
override-dependencies = [
"amplifier-agent-engine[github-copilot] @ git+https://github.com/microsoft/amplifier-agent@v0.22.0#subdirectory=packages/engine",
]

[tool.uv.sources]
# Test-only, same-repo path source (dev dependency-group member below). The
Expand Down
9 changes: 3 additions & 6 deletions modules/pipeline-runner/pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -7,10 +7,7 @@ requires-python = ">=3.11"
authors = [{ name = "Microsoft MADE:Explorations Team" }]
dependencies = [
"amplifier-core>=2.0.1",
# Narrow consumer exception: the public binding's v0.22.0 engine requires
# this exact Foundation source. main conflicts in an unoverridden solve.
# Direct URL also survives Foundation activation with --no-sources.
"amplifier-foundation @ git+https://github.com/microsoft/amplifier-foundation@21ad50fa40f7acff913cbf6615228ac359f7dedd",
"amplifier-foundation @ git+https://github.com/microsoft/amplifier-foundation@main",
"amplifier-module-loop-pipeline[remote] @ git+https://github.com/microsoft/amplifier-bundle-dot-runner@main#subdirectory=modules/loop-pipeline",
]

Expand All @@ -25,7 +22,7 @@ build-backend = "hatchling.build"
package = true

[tool.uv.sources]
amplifier-foundation = { git = "https://github.com/microsoft/amplifier-foundation", rev = "21ad50fa40f7acff913cbf6615228ac359f7dedd" }
amplifier-foundation = { git = "https://github.com/microsoft/amplifier-foundation", rev = "main" }
amplifier-module-loop-pipeline = { path = "../loop-pipeline" }
amplifier-module-remote-source = { path = "../remote-source" }

Expand All @@ -42,4 +39,4 @@ dev = ["pytest>=8.0.0", "pytest-asyncio>=1.0.0", "amplifier-module-remote-source
testpaths = ["tests"]
addopts = "--import-mode=importlib"
asyncio_mode = "strict"
pythonpath = ["../loop-pipeline", "../unified-llm-client"]
pythonpath = ["../loop-pipeline", "../unified-llm-client"]
11 changes: 1 addition & 10 deletions pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -24,15 +24,6 @@ Repository = "https://github.com/microsoft/amplifier-bundle-dot-runner"
[project.scripts]
dot-runner = "amplifier_dot_runner:main"

[tool.uv]
# Lock-only correction: upstream's workspace=true engine source otherwise
# leaks the binding-main checkout into our lock, bypassing its published tag.
# Fresh --no-config --no-sources installations qualify the real metadata
# independently; Foundation is deliberately NOT overridden.
override-dependencies = [
"amplifier-agent-engine[github-copilot] @ git+https://github.com/microsoft/amplifier-agent@v0.22.0#subdirectory=packages/engine",
]

[tool.uv.sources]
amplifier-module-pipeline-runner = { path = "modules/pipeline-runner" }
amplifier-module-loop-amplifier-agent = { path = "modules/loop-amplifier-agent" }
Expand All @@ -42,4 +33,4 @@ amplifier-module-loop-agent = { path = "modules/loop-agent" }
packages = ["amplifier_dot_runner"]

[tool.hatch.metadata]
allow-direct-references = true
allow-direct-references = true
Loading