Skip to content

Define optional observational resolution evidence for Resource bindings #60

Description

@schickling-assistant

Current boundary

Current main already parses and preserves named typed Resource descriptors, exposes them through st2 agents --json, and keeps Resource-only declaration changes out of task launch identity and healthy-task replacement. Canonical evals consume the same native Agent Spec vector.

The remaining question is deliberately narrower: if an owner provides an optional resolver, what trustworthy observational evidence may st2 expose to read-oriented consumers?

Required invariants

  • Resolution is optional observation, not Agent Spec admission.
  • An unresolved, unsupported, missing, unauthorized, or unreachable resource must not become a generic launch, readiness, materialization, restart, replacement, or teardown gate.
  • Resource-only observation changes must not degrade or disrupt an already-running agent task.
  • URI possession confers no authority, access, or grant.
  • st2 remains complete from the ordinary catalog folder without CAS, a resident database, a reachable resolver, or another online service.
  • Existing native gates, including workspace and materialization validation, retain their own contracts.

A resolver may report candidate states such as available, missing, unauthorized, unreachable, or unsupported, but the generic envelope must not pretend that one universal taxonomy captures every downstream type. The resolver owner must define what its evidence means and how stale observations are represented.

Existing native seam

The portable declaration and inspection seam is already present:

  • Agent Spec carries zero or more uniquely named Resource bindings;
  • the binding name is an agent-local semantic role;
  • _tag identifies the downstream type contract;
  • uri is preserved as exact absolute identity;
  • st2 agents --json projects descriptors without resolving them; and
  • Resource-only declaration changes adopt healthy work without stop, replacement, or relaunch.

The missing seam is only optional resolution evidence and a trustworthy read-side consumer of it.

Acceptance direction

A future implementation should prove that:

  • selected descriptors and their observational state are inspectable without resolving external payloads during launch;
  • unsupported or unavailable resolvers remain visible and non-destructive;
  • transient resolver failure cannot stop, replace, or suppress declared work;
  • observation is attributable to the binding and resolver that produced it; and
  • removing the resolver leaves ordinary catalog inspection and runtime behavior complete.

Outside st2's generic contract

Type-specific cardinality, a special work role, “no work means idle,” and A -> no holder -> B handoff semantics belong to the owning resource type or eval corpus. They are not generic st2 Agent Spec law. Publication, resolution, launch, readiness, and teardown remain distinct states.

Open questions

  1. Which component owns each optional resolver and its trust boundary?
  2. Is observational state exposed through catalog inspection, doctor, or a separate read-only surface?
  3. What freshness and provenance accompany a result?
  4. Which minimal states, if any, are safe across resource types?
  5. How do derived runtime observations remain distinct from the declared Resource identity?

Related

Metadata

Metadata

Assignees

No one assigned

    Labels

    area:agent-specAgent Spec format, parsing, and the agent-spec crate · Set: manualarea:resourceTyped Resource bindings and linked records · Set: manualorigin:agentFiled or primarily produced by an AI agent · Set: manualstate:needs-researchNeeds research / investigation before scope or approach is clear · Set: manualtype:featureNew user-visible or system capability · Set: manual

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions