discovery

package
v0.1.56 Latest Latest
Warning

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

Go to latest
Published: Aug 28, 2026 License: Apache-2.0 Imports: 6 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func ServeOpenLinkerManifest

func ServeOpenLinkerManifest(cfg *config.Config) echo.HandlerFunc

ServeOpenLinkerManifest returns an Echo handler for /.well-known/openlinker.json.

func ServeOpenLinkerManifestWithRuntimeTransportPolicy added in v0.1.56

func ServeOpenLinkerManifestWithRuntimeTransportPolicy(
	cfg *config.Config,
	transportPolicy coreruntime.RuntimeTransportPolicy,
) echo.HandlerFunc

ServeOpenLinkerManifestWithRuntimeTransportPolicy serves discovery for a restricted Core mode without claiming transports that mode does not mount.

Types

type ManifestAuth

type ManifestAuth struct {
	UserTokenHeader    string   `json:"user_token_header"`
	UserTokenType      string   `json:"user_token_type"`
	UserTokenPurposes  []string `json:"user_token_purposes"`
	AgentTokenHeader   string   `json:"agent_token_header"`
	AgentTokenType     string   `json:"agent_token_type"`
	AgentTokenPurposes []string `json:"agent_token_purposes"`
	APIScopes          []string `json:"api_scopes"`
	AgentScopes        []string `json:"agent_scopes"`
}

type ManifestBaseURLs

type ManifestBaseURLs struct {
	API     string `json:"api"`
	Web     string `json:"web"`
	Runtime string `json:"runtime,omitempty"`
}

type ManifestDocs

type ManifestDocs struct {
	PublishAgent string `json:"publish_agent"`
	ConsumeAgent string `json:"consume_agent"`
	Connect      string `json:"connect"`
	UserTokens   string `json:"user_tokens"`
	MCP          string `json:"mcp"`
	A2A          string `json:"a2a"`
	AgentCard    string `json:"agent_card"`
}

type ManifestProtocols

type ManifestProtocols struct {
	AgentCard     string `json:"agent_card"`
	ExtendedCard  string `json:"extended_agent_card"`
	A2A           string `json:"a2a"`
	A2ATaskLookup string `json:"a2a_task_lookup"`
	A2ASubscribe  string `json:"a2a_subscribe"`
	RunEvents     string `json:"run_events"`
	MCP           string `json:"mcp"`
}

type ManifestRuntime added in v0.1.56

type ManifestRuntime struct {
	Enabled                  bool                           `json:"enabled"`
	MTLSRequired             bool                           `json:"mtls_required"`
	CredentialEndpoint       string                         `json:"credential_endpoint,omitempty"`
	TrustBundleEndpoint      string                         `json:"trust_bundle_endpoint,omitempty"`
	CertificateLifetimeHours int                            `json:"certificate_lifetime_hours,omitempty"`
	Transports               []string                       `json:"transports"`
	DefaultTransport         string                         `json:"default_transport"`
	CurrentContractDigest    string                         `json:"current_contract_digest"`
	SupportedContractDigests []string                       `json:"supported_contract_digests"`
	PreviousSupportedUntil   string                         `json:"previous_supported_until"`
	TransportPolicy          ManifestRuntimeTransportPolicy `json:"transport_policy"`
}

type ManifestRuntimeTransportPolicy added in v0.1.56

type ManifestRuntimeTransportPolicy struct {
	Version                  int   `json:"version"`
	HeartbeatIntervalSeconds int64 `json:"heartbeat_interval_seconds"`
	SessionStaleAfterSeconds int64 `json:"session_stale_after_seconds"`
	RetryMinimumMilliseconds int64 `json:"retry_minimum_ms"`
	RetryMaximumMilliseconds int64 `json:"retry_maximum_ms"`
	WebSocketProbeIntervalMS int64 `json:"websocket_probe_interval_ms"`
	WebSocketProbeTimeoutMS  int64 `json:"websocket_probe_timeout_ms"`
}

type ManifestStates

type ManifestStates struct {
	Run      []string `json:"run"`
	Task     []string `json:"task"`
	Delivery []string `json:"delivery"`
	Workflow []string `json:"workflow"`
}

type ManifestTools

type ManifestTools struct {
	MCPTools string   `json:"mcp_tools"`
	Names    []string `json:"names"`
}

type ManifestWorkflowStatus

type ManifestWorkflowStatus struct {
	ProductionA2A string `json:"production_a2a"`
	Builder       string `json:"builder"`
}

type OpenLinkerManifest

type OpenLinkerManifest struct {
	Name        string                 `json:"name"`
	Version     string                 `json:"version"`
	Environment string                 `json:"environment,omitempty"`
	BaseURLs    ManifestBaseURLs       `json:"base_urls"`
	Runtime     ManifestRuntime        `json:"runtime"`
	Docs        ManifestDocs           `json:"docs"`
	Tools       ManifestTools          `json:"tools"`
	Protocols   ManifestProtocols      `json:"protocols"`
	Auth        ManifestAuth           `json:"auth"`
	TokenScopes map[string]string      `json:"token_scopes"`
	Policies    map[string]string      `json:"policies"`
	States      ManifestStates         `json:"states"`
	Workflows   ManifestWorkflowStatus `json:"workflows"`
}

OpenLinkerManifest is the public, machine-readable entrypoint for agents and external clients that want to discover stable OpenLinker docs and tools.

func NewManifest

func NewManifest(cfg *config.Config) OpenLinkerManifest

NewManifest builds the public discovery manifest. It intentionally contains only explicitly configured, validated public origins; it contains no per-user secrets, credentials, certificate paths, or internal topology.

func NewManifestWithRuntimeTransportPolicy added in v0.1.56

func NewManifestWithRuntimeTransportPolicy(
	cfg *config.Config,
	transportPolicy coreruntime.RuntimeTransportPolicy,
) OpenLinkerManifest

NewManifestWithRuntimeTransportPolicy builds the same credential-free discovery document while advertising the exact policy of a deliberately restricted Core serving mode, such as runtime-attach-only cutover.

Jump to

Keyboard shortcuts

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