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 ¶
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.
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 ¶
Description returns the scenario description.