# Packages

Package artifacts provides a taskcluster-worker plugin that uploads artifacts when sandbox execution has stopped.
Package cache provides a cache plugin for taskcluster-worker.
Package env provides a taskcluster-worker plugin that injects environment variables into the task environments.
Package interactive implements the plugin that serves the interactive display and shell sessions over websockets.
Package livelog provides a taskcluster-worker plugin that makes the task log available as a live log during task execution and finally uploads it as a static log.
Package logprefix provides a taskcluster-worker plugin that prefixes all task logs with useful debug information such as taskId, workerType, as well as configurable constants.
Package maxruntime provides a plugin for taskcluster-worker which can enforce a maximum runtime upon tasks.
No description provided by the author
Package reboot provides a taskcluster-worker plugin that stops the worker after certain number of tasks or given amount of time.
Package relengapi provides a taskcluster-worker plugin that exposes a proxy that forward requests to relengapi.
Package stoponerror implements a very simple plugin that stops the worker gracefully if an non-fatal error is encountered.
Package success implements a very simple plugin that looks that the ResultSet.Success() value to determine if the process from the sandbox exited successfully.
Package tasklog provides a taskcluster-worker plugin that uploads a static task.log when the task is finished.
Package tcproxy provides a taskcluster-worker plugin that exposes a proxy that signs requests with taskcluster credentials matching task.scopes.
Package watchdog provides a taskcluster-worker plugin that pokes a watchdog whenever a task makes progress or the worker reports that it's idle.

# Functions

NewPluginManager loads all plugins not disabled in configuration and returns a Plugin implementation that wraps all of the plugins.
PluginManagerConfigSchema returns configuration for PluginOptions.Config for NewPluginManager.
Plugins returns map from plugin name to PluginProviders.
Register will register a PluginProvider.

# Structs

PluginBase is a base implementation of the Plugin interface, it just handles all methods and does nothing.
A PluginManager combines a collection of plugins and implements an interface similar to Plugin.
PluginOptions is a wrapper for the arguments/options given when instantiating a Plugin using PluginProvider.
PluginProviderBase is a base struct that provides empty implementations of some methods for PluginProvider Implementors of PluginProvider should embed this struct to ensure forward compatibility when we add new optional method to PluginProvider.
TaskPluginBase is a base implementation of the TaskPlugin interface, it just handles all methods and does nothing.
The TaskPluginOptions is a wrapper for the set of arguments given to NewTaskPlugin.

# Interfaces

Plugin is a plugin to the worker, for each task NewTaskPlugin is created.
The PluginProvider interface must be implemented and registered by anyone implementing a Plugin.
TaskPlugin holds the task-specific state for a plugin Each method on this interface represents stage in the task execution and will be called when this stage is reached.