package envelope

// Fixtures are canonical example envelopes. Tests and external tools use them
// as the contract reference. Editing them is a deliberate spec change.

// FixtureDelegate is a master→worker delegation expecting a report.
var FixtureDelegate = Envelope{
	ID: "msg_fixture_delegate_01", RunID: "run_fixture_01",
	From: "agent_master_01", To: "agent_fe_worker_01",
	Type: TypeDelegate, TaskID: "task_fixture_01", TTLMs: 60000,
	Payload: Payload{
		Intent:      "Add a tooltip to component X in client/src/components/Foo.vue",
		ContextRefs: []string{".td/runs/fixture/task-fixture-01/plan.md"},
		Expects:     ExpectsReport,
	},
}

// FixtureInterrupt is a user→agent preempt. The orchestrator routes it ahead
// of inbox FIFO.
var FixtureInterrupt = Envelope{
	ID: "msg_fixture_interrupt_01", RunID: "run_fixture_01",
	From: "agent_master_01", To: "agent_fe_worker_01",
	Type: TypeInterrupt, TaskID: "task_fixture_01", TTLMs: 5000,
	Priority: 100,
	Payload: Payload{
		Reason:  "redirect",
		Intent:  "stop the tooltip work; user changed their mind",
		Expects: ExpectsAck,
	},
}

// FixtureSteering is a user→agent in-flight adjustment.
var FixtureSteering = Envelope{
	ID: "msg_fixture_steering_01", RunID: "run_fixture_01",
	From: "agent_master_01", To: "agent_fe_worker_01",
	Type: TypeSteering, TaskID: "task_fixture_01", TTLMs: 10000,
	Payload: Payload{
		Intent:  "use a popover instead of a tooltip",
		Expects: ExpectsAck,
	},
}

// FixtureReport is a worker→master completion report.
var FixtureReport = Envelope{
	ID: "msg_fixture_report_01", RunID: "run_fixture_01",
	From: "agent_fe_worker_01", To: "agent_master_01",
	Type: TypeReport, TaskID: "task_fixture_01", InReplyTo: "msg_fixture_delegate_01",
	TTLMs: 60000,
	Payload: Payload{
		Intent:      "tooltip added, tests added, build green",
		ContextRefs: []string{".td/runs/fixture/task-fixture-01/report.md"},
		Expects:     ExpectsNone,
	},
}
