// Package invocation owns the authenticated human HTTP transport for
// first-class Workflow Invocations. Agent Runtime and schedule adapters are
// separate trust boundaries; persistence and acceptance live behind Service.
package invocation

import (
	"context"

	invocationlang "github.com/tidbcloud/AgentTeam/internal/workflow/invocation"
	"github.com/tidbcloud/AgentTeam/internal/workflow/invocationmanage"
)

type Actor = invocationlang.Actor
type Invocation = invocationlang.Invocation
type Run = invocationlang.Run
type AcceptResult = invocationlang.AcceptResult
type Principal = invocationmanage.Principal
type ManualInput = invocationmanage.ManualInput
type Record = invocationmanage.Record
type ListInput = invocationmanage.ListInput
type Page = invocationmanage.Page
type Summary = invocationmanage.Summary

type Service interface {
	InvokeManual(context.Context, invocationmanage.ManualInput) (invocationlang.AcceptResult, error)
	Get(context.Context, string, string) (invocationmanage.Record, error)
	List(context.Context, invocationmanage.ListInput) (invocationmanage.Page, error)
}
