soulfire.PluginCatalog

class soulfire.PluginCatalog(client: soulfire.plugin_api_connect.PluginApiServiceClient, service_factory: ServiceFactory, plugins: tuple[soulfire.plugin_api_pb2.PluginApiDescriptor, ...] = (), reflective_client: connectrpc.client.ConnectClient | None = None)[source]

Bases: _PluginCatalogBase

require[T](module: SoulFirePluginModule[T]) → T[source]
service[T](client_type: collections.abc.Callable[..., T]) → T[source]
refresh(*, headers: dict[str, str] | None = None, timeout_ms: int | None = None) → effect_py.Effect[tuple[soulfire.plugin_api_pb2.PluginApiDescriptor, ...], soulfire.errors.SoulFireOperationError][source]
descriptor_set(plugin_id: str, *, headers: dict[str, str] | None = None, timeout_ms: int | None = None) → effect_py.Effect[bytes, soulfire.errors.SoulFireOperationError][source]
reflective(plugin_id: str, *, headers: dict[str, str] | None = None, timeout_ms: int | None = None) → effect_py.Effect[ReflectivePlugin, soulfire.errors.SoulFireOperationError][source]
watch(*, headers: dict[str, str] | None = None, timeout_ms: int | None = None) → soulfire.streams.Stream[soulfire.plugin_api_pb2.PluginApiEvent, soulfire.errors.SoulFireOperationError][source]
events(*, plugin_ids: tuple[str, ...] = (), type_urls: tuple[str, ...] = (), instance_id: str | None = None, bot_id: str | None = None, task_id: str | None = None, after_sequence: int = 0, headers: dict[str, str] | None = None, timeout_ms: int | None = None) → soulfire.streams.Stream[soulfire.plugin_api_pb2.PluginEvent, soulfire.errors.SoulFireOperationError][source]
typed_events[T: google.protobuf.message.Message](plugin_id: str, message_type: type[T], *, instance_id: str | None = None, bot_id: str | None = None, task_id: str | None = None, after_sequence: int = 0, headers: dict[str, str] | None = None, timeout_ms: int | None = None) → soulfire.streams.Stream[TypedPluginEvent[T], soulfire.errors.SoulFireOperationError][source]