simulate

package
v1.6.0 Latest Latest
Warning

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

Go to latest
Published: Mar 19, 2026 License: MIT Imports: 64 Imported by: 0

Documentation

Index

Constants

View Source
const WorkflowExecutionTimeout = 5 * time.Minute

Variables

View Source
var (
	StyleBlue       = lipgloss.NewStyle().Foreground(lipgloss.Color(ui.ColorBlue500))
	StyleBrightCyan = lipgloss.NewStyle().Bold(true).Foreground(lipgloss.Color(ui.ColorTeal400))
	StyleYellow     = lipgloss.NewStyle().Foreground(lipgloss.Color(ui.ColorYellow400))
	StyleRed        = lipgloss.NewStyle().Foreground(lipgloss.Color(ui.ColorRed400))
	StyleGreen      = lipgloss.NewStyle().Foreground(lipgloss.Color(ui.ColorGreen400))
	StyleMagenta    = lipgloss.NewStyle().Foreground(lipgloss.Color(ui.ColorPurple400))
)

Style instances for consistent styling (using Chainlink Blocks palette)

View Source
var SupportedEVM = []ChainConfig{

	{Selector: chainselectors.ETHEREUM_TESTNET_SEPOLIA.Selector, Forwarder: "0x15fC6ae953E024d975e77382eEeC56A9101f9F88"},
	{Selector: chainselectors.ETHEREUM_MAINNET.Selector, Forwarder: "0xa3d1ad4ac559a6575a114998affb2fb2ec97a7d9"},

	{Selector: chainselectors.ETHEREUM_TESTNET_SEPOLIA_BASE_1.Selector, Forwarder: "0x82300bd7c3958625581cc2f77bc6464dcecdf3e5"},
	{Selector: chainselectors.ETHEREUM_MAINNET_BASE_1.Selector, Forwarder: "0x5e342a8438b4f5d39e72875fcee6f76b39cce548"},

	{Selector: chainselectors.AVALANCHE_TESTNET_FUJI.Selector, Forwarder: "0x2e7371a5d032489e4f60216d8d898a4c10805963"},
	{Selector: chainselectors.AVALANCHE_MAINNET.Selector, Forwarder: "0xdc21e279934ff6721cadfdd112dafb3261f09a2c"},

	{Selector: chainselectors.POLYGON_TESTNET_AMOY.Selector, Forwarder: "0x3675a5eb2286a3f87e8278fc66edf458a2e3bb74"},
	{Selector: chainselectors.POLYGON_MAINNET.Selector, Forwarder: "0xf458d621885e29a5003ea9bbba5280d54e19b1ce"},

	{Selector: chainselectors.BINANCE_SMART_CHAIN_TESTNET.Selector, Forwarder: "0xa238e42cb8782808dbb2f37e19859244ec4779b0"},
	{Selector: chainselectors.BINANCE_SMART_CHAIN_MAINNET.Selector, Forwarder: "0x6f3239bbb26e98961e1115aba83f8a282e5508c8"},

	{Selector: chainselectors.ETHEREUM_TESTNET_SEPOLIA_ARBITRUM_1.Selector, Forwarder: "0xd41263567ddfead91504199b8c6c87371e83ca5d"},
	{Selector: chainselectors.ETHEREUM_MAINNET_ARBITRUM_1.Selector, Forwarder: "0xd770499057619c9a76205fd4168161cf94abc532"},

	{Selector: chainselectors.ETHEREUM_TESTNET_SEPOLIA_OPTIMISM_1.Selector, Forwarder: "0xa2888380dff3704a8ab6d1cd1a8f69c15fea5ee3"},
	{Selector: chainselectors.ETHEREUM_MAINNET_OPTIMISM_1.Selector, Forwarder: "0x9119a1501550ed94a3f2794038ed9258337afa18"},

	{Selector: chainselectors.PRIVATE_TESTNET_ANDESITE.Selector, Forwarder: "0xcF4629d8DC7a5fa17F4D77233F5b953225669821"},

	{Selector: chainselectors.ETHEREUM_MAINNET_ZKSYNC_1.Selector, Forwarder: "0x6E9EE680ef59ef64Aa8C7371279c27E496b5eDc1"},
	{Selector: chainselectors.ETHEREUM_TESTNET_SEPOLIA_ZKSYNC_1.Selector, Forwarder: "0x6E9EE680ef59ef64Aa8C7371279c27E496b5eDc1"},

	{Selector: chainselectors.JOVAY_TESTNET.Selector, Forwarder: "0x6E9EE680ef59ef64Aa8C7371279c27E496b5eDc1"},
	{Selector: chainselectors.JOVAY_MAINNET.Selector, Forwarder: "0x2B3068C4B288A2CD1f8B3613b8f33ef7cEecadC4"},

	{Selector: chainselectors.PHAROS_ATLANTIC_TESTNET.Selector, Forwarder: "0x6E9EE680ef59ef64Aa8C7371279c27E496b5eDc1"},
	{Selector: chainselectors.PHAROS_MAINNET.Selector, Forwarder: "0x2B3068C4B288A2CD1f8B3613b8f33ef7cEecadC4"},

	{Selector: chainselectors.ETHEREUM_TESTNET_SEPOLIA_WORLDCHAIN_1.Selector, Forwarder: "0x6E9EE680ef59ef64Aa8C7371279c27E496b5eDc1"},
	{Selector: chainselectors.ETHEREUM_MAINNET_WORLDCHAIN_1.Selector, Forwarder: "0x6E9EE680ef59ef64Aa8C7371279c27E496b5eDc1"},

	{Selector: chainselectors.PLASMA_TESTNET.Selector, Forwarder: "0x6E9EE680ef59ef64Aa8C7371279c27E496b5eDc1"},
	{Selector: chainselectors.PLASMA_MAINNET.Selector, Forwarder: "0x6E9EE680ef59ef64Aa8C7371279c27E496b5eDc1"},

	{Selector: chainselectors.ETHEREUM_TESTNET_SEPOLIA_LINEA_1.Selector, Forwarder: "0x6E9EE680ef59ef64Aa8C7371279c27E496b5eDc1"},
	{Selector: chainselectors.ETHEREUM_MAINNET_LINEA_1.Selector, Forwarder: "0x6E9EE680ef59ef64Aa8C7371279c27E496b5eDc1"},

	{Selector: chainselectors.INK_TESTNET_SEPOLIA.Selector, Forwarder: "0x6E9EE680ef59ef64Aa8C7371279c27E496b5eDc1"},
	{Selector: chainselectors.ETHEREUM_MAINNET_INK_1.Selector, Forwarder: "0x6E9EE680ef59ef64Aa8C7371279c27E496b5eDc1"},

	{Selector: chainselectors.HYPERLIQUID_TESTNET.Selector, Forwarder: "0xB27fA1c28288c50542527F64BCda22C9FbAc24CB"},

	{Selector: chainselectors.APECHAIN_TESTNET_CURTIS.Selector, Forwarder: "0x6E9EE680ef59ef64Aa8C7371279c27E496b5eDc1"},

	{Selector: chainselectors.ARC_TESTNET.Selector, Forwarder: "0x6E9EE680ef59ef64Aa8C7371279c27E496b5eDc1"},

	{Selector: chainselectors.XLAYER_TESTNET.Selector, Forwarder: "0x6E9EE680ef59ef64Aa8C7371279c27E496b5eDc1"},
	{Selector: chainselectors.ETHEREUM_MAINNET_XLAYER_1.Selector, Forwarder: "0x2B3068C4B288A2CD1f8B3613b8f33ef7cEecadC4"},

	{Selector: chainselectors.MEGAETH_TESTNET_2.Selector, Forwarder: "0x6E9EE680ef59ef64Aa8C7371279c27E496b5eDc1"},
	{Selector: chainselectors.MEGAETH_MAINNET.Selector, Forwarder: "0x6E9EE680ef59ef64Aa8C7371279c27E496b5eDc1"},

	{Selector: chainselectors.CELO_MAINNET.Selector, Forwarder: "0x6E9EE680ef59ef64Aa8C7371279c27E496b5eDc1"},

	{Selector: chainselectors.GNOSIS_CHAIN_MAINNET.Selector, Forwarder: "0x6E9EE680ef59ef64Aa8C7371279c27E496b5eDc1"},

	{Selector: chainselectors.CRONOS_TESTNET.Selector, Forwarder: "0x6E9EE680ef59ef64Aa8C7371279c27E496b5eDc1"},

	{Selector: chainselectors.ETHEREUM_TESTNET_SEPOLIA_MANTLE_1.Selector, Forwarder: "0x6E9EE680ef59ef64Aa8C7371279c27E496b5eDc1"},
	{Selector: chainselectors.ETHEREUM_MAINNET_MANTLE_1.Selector, Forwarder: "0x6E9EE680ef59ef64Aa8C7371279c27E496b5eDc1"},

	{Selector: chainselectors.TAC_TESTNET.Selector, Forwarder: "0x6E9EE680ef59ef64Aa8C7371279c27E496b5eDc1"},

	{Selector: chainselectors.ETHEREUM_TESTNET_SEPOLIA_UNICHAIN_1.Selector, Forwarder: "0x6E9EE680ef59ef64Aa8C7371279c27E496b5eDc1"},

	{Selector: chainselectors.ETHEREUM_TESTNET_SEPOLIA_SCROLL_1.Selector, Forwarder: "0x6E9EE680ef59ef64Aa8C7371279c27E496b5eDc1"},
	{Selector: chainselectors.ETHEREUM_MAINNET_SCROLL_1.Selector, Forwarder: "0x6E9EE680ef59ef64Aa8C7371279c27E496b5eDc1"},

	{Selector: chainselectors.SONIC_TESTNET.Selector, Forwarder: "0x6E9EE680ef59ef64Aa8C7371279c27E496b5eDc1"},
	{Selector: chainselectors.SONIC_MAINNET.Selector, Forwarder: "0x6E9EE680ef59ef64Aa8C7371279c27E496b5eDc1"},

	{Selector: chainselectors.DTCC_TESTNET_ANDESITE.Selector, Forwarder: "0x6E9EE680ef59ef64Aa8C7371279c27E496b5eDc1"},
}

SupportedEVM is the canonical list you can range over.

Functions

func CleanLogMessage

func CleanLogMessage(msg string) string

CleanLogMessage removes structured log patterns from messages

func ExportDefaultLimitsJSON added in v1.6.0

func ExportDefaultLimitsJSON() []byte

ExportDefaultLimitsJSON returns the embedded default limits JSON.

func FormatCapability

func FormatCapability(capabilityID string) string

FormatCapability formats capability ID for display

func FormatStepRef

func FormatStepRef(stepRef string) string

FormatStepRef formats step reference, handling the -1 case

func FormatTimestamp

func FormatTimestamp(timestamp string) string

FormatTimestamp converts RFC3339Nano timestamp to simple format

func GetLogLevel

func GetLogLevel(msg string) string

GetLogLevel extracts log level from a message

func GetStyle added in v1.1.0

func GetStyle(status string) lipgloss.Style

GetStyle returns the appropriate style for a given status/level

func HighlightLogLevels

func HighlightLogLevels(msg string, levelStyle lipgloss.Style) string

HighlightLogLevels highlights INFO, WARN, ERROR in log messages

func MapCapabilityStatus

func MapCapabilityStatus(status string) string

MapCapabilityStatus maps capability status to display format

func New

func New(runtimeContext *runtime.Context) *cobra.Command

func NewFakeActionCapabilities

func NewFakeActionCapabilities(ctx context.Context, lggr logger.Logger, registry *capabilities.Registry, secretsPath string, limits *SimulationLimits) ([]services.Service, error)

NewFakeCapabilities builds faked capabilities, then registers them with the capability registry.

func ReplaceSecretNamesWithEnvVars

func ReplaceSecretNamesWithEnvVars(secrets []byte) ([]byte, error)

ReplaceSecretNamesWithEnvVars resolves env var references in the secrets YAML, returning a new YAML with the env var names replaced by their actual values. It rebuilds the YAML from the parsed structure to avoid substring corruption.

Types

type ChainConfig

type ChainConfig struct {
	Selector  ChainSelector
	Forwarder string
}

type ChainSelector

type ChainSelector = uint64

type DataPoint

type DataPoint struct {
	Attributes []MetricAttribute `json:"Attributes"`
	StartTime  string            `json:"StartTime"`
	Time       string            `json:"Time"`
	Value      interface{}       `json:"Value"`
}

type Inputs

type Inputs struct {
	WasmPath      string                       `validate:"omitempty,file,ascii,max=97" cli:"--wasm"`
	WorkflowPath  string                       `validate:"required,workflow_path_read"`
	ConfigPath    string                       `validate:"omitempty,file,ascii,max=97"`
	SecretsPath   string                       `validate:"omitempty,file,ascii,max=97"`
	EngineLogs    bool                         `validate:"omitempty" cli:"--engine-logs"`
	Broadcast     bool                         `validate:"-"`
	EVMClients    map[uint64]*ethclient.Client `validate:"omitempty"` // multichain clients keyed by selector (or chain ID for experimental)
	EthPrivateKey *ecdsa.PrivateKey            `validate:"omitempty"`
	WorkflowName  string                       `validate:"required"`
	// Non-interactive mode options
	NonInteractive bool   `validate:"-"`
	TriggerIndex   int    `validate:"-"`
	HTTPPayload    string `validate:"-"` // JSON string or @/path/to/file.json
	EVMTxHash      string `validate:"-"` // 0x-prefixed
	EVMEventIndex  int    `validate:"-"`
	// Experimental chains support (for chains not in official chain-selectors)
	ExperimentalForwarders map[uint64]common.Address `validate:"-"` // forwarders keyed by chain ID
	// Limits enforcement
	LimitsPath string `validate:"-"` // "default" or path to custom limits JSON
}

type LimitedConfidentialHTTPAction added in v1.6.0

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

LimitedConfidentialHTTPAction wraps a confhttpserver.ClientCapability and enforces request/response size limits and connection timeout from SimulationLimits.

func NewLimitedConfidentialHTTPAction added in v1.6.0

func NewLimitedConfidentialHTTPAction(inner confhttpserver.ClientCapability, limits *SimulationLimits) *LimitedConfidentialHTTPAction

func (*LimitedConfidentialHTTPAction) Close added in v1.6.0

func (*LimitedConfidentialHTTPAction) Description added in v1.6.0

func (l *LimitedConfidentialHTTPAction) Description() string

func (*LimitedConfidentialHTTPAction) HealthReport added in v1.6.0

func (l *LimitedConfidentialHTTPAction) HealthReport() map[string]error

func (*LimitedConfidentialHTTPAction) Initialise added in v1.6.0

func (*LimitedConfidentialHTTPAction) Name added in v1.6.0

func (*LimitedConfidentialHTTPAction) Ready added in v1.6.0

func (*LimitedConfidentialHTTPAction) Start added in v1.6.0

type LimitedConsensusNoDAG added in v1.6.0

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

LimitedConsensusNoDAG wraps a consensusserver.ConsensusCapability and enforces observation size limits from SimulationLimits.

func NewLimitedConsensusNoDAG added in v1.6.0

func NewLimitedConsensusNoDAG(inner consensusserver.ConsensusCapability, limits *SimulationLimits) *LimitedConsensusNoDAG

func (*LimitedConsensusNoDAG) Close added in v1.6.0

func (l *LimitedConsensusNoDAG) Close() error

func (*LimitedConsensusNoDAG) Description added in v1.6.0

func (l *LimitedConsensusNoDAG) Description() string

func (*LimitedConsensusNoDAG) HealthReport added in v1.6.0

func (l *LimitedConsensusNoDAG) HealthReport() map[string]error

func (*LimitedConsensusNoDAG) Initialise added in v1.6.0

func (*LimitedConsensusNoDAG) Name added in v1.6.0

func (l *LimitedConsensusNoDAG) Name() string

func (*LimitedConsensusNoDAG) Ready added in v1.6.0

func (l *LimitedConsensusNoDAG) Ready() error

func (*LimitedConsensusNoDAG) Report added in v1.6.0

func (*LimitedConsensusNoDAG) Simple added in v1.6.0

func (*LimitedConsensusNoDAG) Start added in v1.6.0

type LimitedEVMChain added in v1.6.0

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

LimitedEVMChain wraps an evmserver.ClientCapability and enforces chain write report size and gas limits from SimulationLimits.

func NewLimitedEVMChain added in v1.6.0

func NewLimitedEVMChain(inner evmserver.ClientCapability, limits *SimulationLimits) *LimitedEVMChain

func (*LimitedEVMChain) AckEvent added in v1.6.0

func (l *LimitedEVMChain) AckEvent(ctx context.Context, triggerId string, eventId string, method string) caperrors.Error

func (*LimitedEVMChain) BalanceAt added in v1.6.0

func (*LimitedEVMChain) CallContract added in v1.6.0

All other methods delegate to the inner capability.

func (*LimitedEVMChain) ChainSelector added in v1.6.0

func (l *LimitedEVMChain) ChainSelector() uint64

func (*LimitedEVMChain) Close added in v1.6.0

func (l *LimitedEVMChain) Close() error

func (*LimitedEVMChain) Description added in v1.6.0

func (l *LimitedEVMChain) Description() string

func (*LimitedEVMChain) EstimateGas added in v1.6.0

func (*LimitedEVMChain) FilterLogs added in v1.6.0

func (*LimitedEVMChain) HealthReport added in v1.6.0

func (l *LimitedEVMChain) HealthReport() map[string]error

func (*LimitedEVMChain) Initialise added in v1.6.0

func (*LimitedEVMChain) Name added in v1.6.0

func (l *LimitedEVMChain) Name() string

func (*LimitedEVMChain) Ready added in v1.6.0

func (l *LimitedEVMChain) Ready() error

func (*LimitedEVMChain) RegisterLogTrigger added in v1.6.0

func (*LimitedEVMChain) Start added in v1.6.0

func (l *LimitedEVMChain) Start(ctx context.Context) error

func (*LimitedEVMChain) UnregisterLogTrigger added in v1.6.0

func (l *LimitedEVMChain) UnregisterLogTrigger(ctx context.Context, triggerID string, metadata commonCap.RequestMetadata, input *evmcappb.FilterLogTriggerRequest) caperrors.Error

func (*LimitedEVMChain) WriteReport added in v1.6.0

type LimitedHTTPAction added in v1.6.0

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

LimitedHTTPAction wraps an httpserver.ClientCapability and enforces request/response size limits and connection timeout from SimulationLimits.

func NewLimitedHTTPAction added in v1.6.0

func NewLimitedHTTPAction(inner httpserver.ClientCapability, limits *SimulationLimits) *LimitedHTTPAction

func (*LimitedHTTPAction) Close added in v1.6.0

func (l *LimitedHTTPAction) Close() error

func (*LimitedHTTPAction) Description added in v1.6.0

func (l *LimitedHTTPAction) Description() string

func (*LimitedHTTPAction) HealthReport added in v1.6.0

func (l *LimitedHTTPAction) HealthReport() map[string]error

func (*LimitedHTTPAction) Initialise added in v1.6.0

func (*LimitedHTTPAction) Name added in v1.6.0

func (l *LimitedHTTPAction) Name() string

func (*LimitedHTTPAction) Ready added in v1.6.0

func (l *LimitedHTTPAction) Ready() error

func (*LimitedHTTPAction) SendRequest added in v1.6.0

func (*LimitedHTTPAction) Start added in v1.6.0

func (l *LimitedHTTPAction) Start(ctx context.Context) error

type LogLevel

type LogLevel string

LogLevel represents the level of a simulation log

const (
	LogLevelDebug   LogLevel = "DEBUG"
	LogLevelInfo    LogLevel = "INFO"
	LogLevelWarning LogLevel = "WARNING"
	LogLevelError   LogLevel = "ERROR"
)

type ManualTriggerCapabilitiesConfig

type ManualTriggerCapabilitiesConfig struct {
	Clients    map[uint64]*ethclient.Client
	Forwarders map[uint64]common.Address
	PrivateKey *ecdsa.PrivateKey
}

type ManualTriggers

type ManualTriggers struct {
	ManualCronTrigger *fakes.ManualCronTriggerService
	ManualHTTPTrigger *fakes.ManualHTTPTriggerService
	ManualEVMChains   map[uint64]*fakes.FakeEVMChain
}

func NewManualTriggerCapabilities

func NewManualTriggerCapabilities(
	ctx context.Context,
	lggr logger.Logger,
	registry *capabilities.Registry,
	cfg ManualTriggerCapabilitiesConfig,
	dryRunChainWrite bool,
	limits *SimulationLimits,
) (*ManualTriggers, error)

func (*ManualTriggers) Close

func (m *ManualTriggers) Close() error

func (*ManualTriggers) Start

func (m *ManualTriggers) Start(ctx context.Context) error

type Metric

type Metric struct {
	Name        string     `json:"Name"`
	Description string     `json:"Description"`
	Unit        string     `json:"Unit"`
	Data        MetricData `json:"Data"`
}

type MetricAttribute

type MetricAttribute struct {
	Key   string `json:"Key"`
	Value struct {
		Type  string `json:"Type"`
		Value string `json:"Value"`
	} `json:"Value"`
}

type MetricData

type MetricData struct {
	DataPoints []DataPoint `json:"DataPoints"`
}

type MetricsLog

type MetricsLog struct {
	Resource     []ResourceAttribute `json:"Resource"`
	ScopeMetrics []ScopeMetrics      `json:"ScopeMetrics"`
}

MetricsLog represents OpenTelemetry metrics logs

type MetricsScope

type MetricsScope struct {
	Name    string `json:"Name"`
	Version string `json:"Version"`
}

type ResourceAttribute

type ResourceAttribute struct {
	Key   string `json:"Key"`
	Value struct {
		Type  string `json:"Type"`
		Value string `json:"Value"`
	} `json:"Value"`
}

type ScopeMetrics

type ScopeMetrics struct {
	Scope   MetricsScope `json:"Scope"`
	Metrics []Metric     `json:"Metrics"`
}

type SimulationLimits added in v1.6.0

type SimulationLimits struct {
	Workflows cresettings.Workflows
}

SimulationLimits holds the workflow-level limits applied during simulation.

func DefaultLimits added in v1.6.0

func DefaultLimits() (*SimulationLimits, error)

DefaultLimits returns simulation limits populated from the embedded defaults.

func LoadLimits added in v1.6.0

func LoadLimits(path string) (*SimulationLimits, error)

LoadLimits reads a limits JSON file from disk and returns parsed SimulationLimits.

func ResolveLimits added in v1.6.0

func ResolveLimits(limitsFlag string) (*SimulationLimits, error)

ResolveLimits resolves a --limits flag value to SimulationLimits. Returns nil if limitsFlag is "none" (no limits enforcement).

func (*SimulationLimits) ChainWriteEVMGasLimit added in v1.6.0

func (l *SimulationLimits) ChainWriteEVMGasLimit() uint64

ChainWriteEVMGasLimit returns the default EVM gas limit.

func (*SimulationLimits) ChainWriteReportSizeLimit added in v1.6.0

func (l *SimulationLimits) ChainWriteReportSizeLimit() int

ChainWriteReportSizeLimit returns the chain write report size limit in bytes.

func (*SimulationLimits) ConfHTTPRequestSizeLimit added in v1.6.0

func (l *SimulationLimits) ConfHTTPRequestSizeLimit() int

ConfHTTPRequestSizeLimit returns the confidential HTTP request size limit in bytes.

func (*SimulationLimits) ConfHTTPResponseSizeLimit added in v1.6.0

func (l *SimulationLimits) ConfHTTPResponseSizeLimit() int

ConfHTTPResponseSizeLimit returns the confidential HTTP response size limit in bytes.

func (*SimulationLimits) ConsensusObservationSizeLimit added in v1.6.0

func (l *SimulationLimits) ConsensusObservationSizeLimit() int

ConsensusObservationSizeLimit returns the consensus observation size limit in bytes.

func (*SimulationLimits) HTTPRequestSizeLimit added in v1.6.0

func (l *SimulationLimits) HTTPRequestSizeLimit() int

HTTPRequestSizeLimit returns the HTTP action request size limit in bytes.

func (*SimulationLimits) HTTPResponseSizeLimit added in v1.6.0

func (l *SimulationLimits) HTTPResponseSizeLimit() int

HTTPResponseSizeLimit returns the HTTP action response size limit in bytes.

func (*SimulationLimits) LimitsSummary added in v1.6.0

func (l *SimulationLimits) LimitsSummary() string

LimitsSummary returns a human-readable summary of key limits.

func (*SimulationLimits) WASMBinarySize added in v1.6.0

func (l *SimulationLimits) WASMBinarySize() int

WASMBinarySize returns the WASM binary size limit in bytes.

func (*SimulationLimits) WASMCompressedBinarySize added in v1.6.0

func (l *SimulationLimits) WASMCompressedBinarySize() int

WASMCompressedBinarySize returns the WASM compressed binary size limit in bytes.

type SimulationLogger

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

SimulationLogger provides an easy interface for formatted simulation logs

func NewSimulationLogger

func NewSimulationLogger(verbosity bool) *SimulationLogger

NewSimulationLogger creates a new simulation logger with verbosity control

func (*SimulationLogger) Debug

func (s *SimulationLogger) Debug(message string, fields ...interface{})

Debug logs a debug level message with colored formatting (only if verbosity is enabled)

func (*SimulationLogger) Error

func (s *SimulationLogger) Error(message string, fields ...interface{})

Error logs an error level message with colored formatting

func (*SimulationLogger) Info

func (s *SimulationLogger) Info(message string, fields ...interface{})

Info logs an info level message with colored formatting

func (*SimulationLogger) PrintStepLog

func (s *SimulationLogger) PrintStepLog(timestamp, component, stepRef, capability, status string)

PrintStepLog prints a capability step log with timestamp and styled status

func (*SimulationLogger) PrintTimestampedLog

func (s *SimulationLogger) PrintTimestampedLog(timestamp, prefix, message string, prefixStyle lipgloss.Style)

PrintTimestampedLog prints a log with timestamp and styled prefix

func (*SimulationLogger) PrintTimestampedLogWithStatus

func (s *SimulationLogger) PrintTimestampedLogWithStatus(timestamp, prefix, message, status string)

PrintTimestampedLogWithStatus prints a log with timestamp, prefix, and styled status

func (*SimulationLogger) PrintWorkflowMetadata

func (s *SimulationLogger) PrintWorkflowMetadata(metadata interface{})

PrintWorkflowMetadata prints workflow metadata with proper indentation

func (*SimulationLogger) Warn

func (s *SimulationLogger) Warn(message string, fields ...interface{})

Warn logs a warning level message with colored formatting

type TelemetryLog

type TelemetryLog struct {
	Severity int `json:"Severity"`
	Body     struct {
		Type  string `json:"Type"`
		Value string `json:"Value"` // Base64 encoded protobuf
	} `json:"Body"`
	Attributes []struct {
		Key   string `json:"Key"`
		Value struct {
			Type  string `json:"Type"`
			Value string `json:"Value"`
		} `json:"Value"`
	} `json:"Attributes"`
}

TelemetryLog represents the JSON structure of telemetry logs from beholder

type TriggerInfoAndBeforeStart

type TriggerInfoAndBeforeStart struct {
	TriggerFunc  func() error
	TriggerToRun *pb.TriggerSubscription
	BeforeStart  func(ctx context.Context, cfg simulator.RunnerConfig, registry *capabilities.Registry, services []services.Service, triggerSub []*pb.TriggerSubscription)
}

Jump to

Keyboard shortcuts

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