ops

package
v1.0.0-beta.21 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Apr 28, 2026 License: MIT Imports: 14 Imported by: 0

Documentation

Overview

Package ops provides an end-to-end test scenario that validates the ADR-027 Phase 1 ops agent end to end.

The scenario exercises the full observability path:

  • Seed synthetic completed-loop state into AGENT_LOOPS KV and corresponding entity triples into ENTITY_STATES KV (stand-ins for real loop history).
  • Inject a user.message asking the ops agent to analyse recent loops.
  • Mock LLM scripts three emit_diagnosis tool calls + submit_work.
  • Assert the resulting ops.diagnosis.* triples are queryable via GET /graph/triples (PR4's HTTP endpoint).

All content is framework-neutral: role names are "test-agent" / "probe", no product-specific taxonomy.

When a regression breaks the ops path, the scenario fails at the closest stage (loop seeding → message injection → loop completion → triple assertion) so first-time debuggers see exactly which layer dropped the ball.

Index

Constants

View Source
const (
	SeedLoop1ID = "c360.ops.test.loops.loop.seed-loop-001"
	SeedLoop2ID = "c360.ops.test.loops.loop.seed-loop-002"
	SeedLoop3ID = "c360.ops.test.loops.loop.seed-loop-003"
)

seedLoop1ID / seedLoop2ID / seedLoop3ID are the synthetic loop entity IDs seeded by this scenario. They are exported so the mock preset can reference them in its canned emit_diagnosis evidence fields.

View Source
const OpsPersonaMarker = "operations analyst agent"

OpsPersonaMarker is the unique substring planted in the ops persona fragment file (configs/personas/fragments/ops/00-identity.md). The mock preset's tool-call marker matches this substring — when the PR3 file loader runs at startup and the ADR-029 step-3b assembler wiring is correct, the ops persona content reaches the LLM and the mock fires its emit_diagnosis sequence. Exported so the mock preset and the scenario stay aligned on a single string.

Variables

This section is empty.

Functions

This section is empty.

Types

type Config

type Config struct {
	NATSURL         string
	BaseURL         string
	MetricsURL      string
	CompleteTimeout time.Duration

	// AppContainer is the docker container name for the running semstreams binary.
	// verifyRegisteredTools greps its startup logs to confirm emit_diagnosis registered.
	AppContainer string
}

Config holds configuration for the ops scenario.

func DefaultConfig

func DefaultConfig() *Config

DefaultConfig returns defaults for the ops mock-LLM path. Ports are in the 61xxx/62xxx range so this scenario can run alongside agentic (3xxxx), deep-research (5xxxx), and crud-tools (6xxxx).

type Scenario

type Scenario struct {
	// contains filtered or unexported fields
}

Scenario validates the ADR-027 Phase 1 ops agent end to end.

func NewScenario

func NewScenario(obs *client.ObservabilityClient, config *Config) *Scenario

NewScenario constructs an ops scenario.

func (*Scenario) Description

func (s *Scenario) Description() string

Description returns the scenario description.

func (*Scenario) Execute

func (s *Scenario) Execute(ctx context.Context) (*scenarios.Result, error)

Execute runs the scenario stages in order.

func (*Scenario) Name

func (s *Scenario) Name() string

Name returns the scenario name.

func (*Scenario) Setup

func (s *Scenario) Setup(ctx context.Context) error

Setup creates NATS + metrics clients.

func (*Scenario) Teardown

func (s *Scenario) Teardown(ctx context.Context) error

Teardown closes clients.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL