Skip to content

Project selected provider inputs read-only for agent kits #600

Closed
3 of 3 issues completed
Closed

Description

@mogul

Goal

Discover validated provider inputs from selected pinned kits and project them read-only into sandboxes so agent kits can consume providers without provider-name switches in acq.

Scope

  • Consume the generic provider-input contract defined in the Patterns repository.
  • Fix caller-visible provider-facts propagation before relying on loaded facts.
  • Discover selected provider bundles without a provider allowlist.
  • Validate provider facts and model catalogs on the host.
  • Project provider-ID-keyed artifacts read-only on SBX and MSB.
  • Keep acq unaware of OpenCode configuration shape.
  • Implement the provider-input slice of acq: host-authoritative sandbox config — migrate guest-writable state off /var/lib/acq (ADR-0030) #503; broader marker migration remains separate.

Acceptance criteria

  • Two fictitious providers are discovered and projected without generic dispatch changes.
  • Loaded facts remain visible to callers.
  • Provider IDs are unique, safe path components, and agree with their projected directories.
  • Malformed facts, malformed catalogs, duplicate provider IDs, undeclared credential variables, and host/URL mismatches fail closed.
  • Inputs are read-only in the guest on both supported backends.
  • Missing optional providers do not silently become USAi.
  • Offline tests cover both backends and multiple providers.

Relationships

Cross-repository milestone parent: GSA-TTS/agentic-coding-patterns#357.

Implements a bounded slice of #503 and includes the prerequisite defect #551.

AI-assisted issue drafting (OpenCode). Human review required.

Activity

  1. mogul commented on Oct 21, 2026

    @mogul
    ContributorAuthor

    🤖 First Mate dependency update: implementation is paused without local changes until GSA-TTS/agentic-coding-patterns#518 merges and an immutable Patterns release SHA contains the finalized provider-input validator, schemas, provider-role bundle metadata, and required apiProtocol field. The currently pinned Patterns release does not contain those artifacts. Copying the contract into Quickstart or pinning a changing PR SHA would create a competing contract, so this issue remains blocked by the structured cross-repository dependency. Its branch remains stacked above #603 and will resume after the fixed release is available.

  2. mogul commented on Oct 21, 2026

    @mogul
    ContributorAuthor

    🤖 Dependency unblocked: Patterns v1.15.0 is published at immutable commit f3c6acb4d34a89b3b6539c44d47f56bacaeb94d7 and contains the finalized provider-input contract from GSA-TTS/agentic-coding-patterns#518. Implementation has resumed on the linked feat/600-provider-input-projection branch. The branch will update the single PATTERNS_KIT_REF to this SHA, validate released bundles host-side, and define the authoritative read-only projection consumed by GSA-TTS/agentic-coding-patterns#516.

  3. mogul commented on Oct 21, 2026

    @mogul
    ContributorAuthor

    🤖 Implementation blocker confirmed and tracked as #606. The released contract requires /var/lib/acq/host/models/providers/<providerId>, but current SBX only proves same-host-path positional :ro mounts; sbx.sh does not mount the per-sandbox host-config directory at /var/lib/acq/host. MSB already supports the required distinct destination. Guest copies, writable kit overlays, or guest-controlled symlinks are not acceptable because the agent has sudo. Architecture review is selecting either a real SBX mount capability or an explicitly versioned/backward-compatible contract evolution; no guessed flag or weakened trust boundary will be shipped.

  4. mogul commented on Oct 21, 2026

    @mogul
    ContributorAuthor

    🤖 Contract-v2 review disposition: Patterns #521 will define separate v1/v2 schemas and mandatory host validation, while production wiring remains here. #600/#606 acceptance must prove backend-owned read-only root enforcement, inject the neutral root for consumers, cross-check each materialized directory name against validated providerId/providerPath, distinguish root-not-ready from authoritative empty discovery, and exercise the real consumer path. These are tracked consumer obligations, not reasons to add a fake runtime consumer to the Patterns schema repository.

  5. mogul commented on Oct 21, 2026

    @mogul
    ContributorAuthor

    🤖 Stack maintenance: the preserved projection WIP is now rebased onto current Quickstart main, including merged #605. The restore conflict was limited to PATTERNS_KIT_REF; the merged full v1.15.0 SHA f3c6acb4d34a89b3b6539c44d47f56bacaeb94d7 was retained. Projection implementation remains blocked on the reviewed/released v2 root contract in GSA-TTS/agentic-coding-patterns#522.

  6. mogul commented on Oct 21, 2026

    @mogul
    ContributorAuthor

    🤖 Adversarial review found commit-blocking defects in the initial projection WIP. Most importantly, fetching only the USAi kit cannot expose the released repository-level validator/schemas, so real manifests would fail. The implementation is being corrected to use a separately verified pinned control-plane checkout, per-sandbox locking, private atomic staging/rename, fail-closed backend mount setup, restored destructive-path guards, defense-in-depth provider target containment, and real command-shape/rollback tests. No unsafe partial implementation will be pushed.

  7. linked a pull request that will close this issuefeat(acq): project provider inputs read-only #608on Oct 22, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions