Coverage for node / src / stigmem_node / plugins / __init__.py: 100%

13 statements  

« prev     ^ index     » next       coverage.py v7.13.5, created at 2026-05-25 01:49 +0000

1"""Plugin hook registry public API. 

2 

3PR 4-INF.1 intentionally exposed only manual/core/test registration. PR 4-INF.2 

4adds entry-point discovery, installed-plugin lifecycle registration, plugin 

5migrations, registration audit payloads, and lifecycle health reporting while 

6signing and operator CLI support continue to land in focused follow-up slices. 

7""" 

8 

9from __future__ import annotations 

10 

11from .bands import Band 

12from .capabilities import CAPABILITY_ALLOWLIST, Capability 

13from .context import CoreApis, PluginContext 

14from .discovery import ( 

15 ENTRY_POINT_GROUP, 

16 DiscoveredPlugin, 

17 discover_plugin_manifests, 

18 resolve_plugin_dependencies, 

19) 

20from .errors import ( 

21 CapabilityError, 

22 ManifestError, 

23 PluginDependencyError, 

24 PluginDiscoveryError, 

25 PluginExecutionError, 

26 PluginMigrationError, 

27 PluginSignatureError, 

28 RegistryFrozenError, 

29 RejectError, 

30) 

31from .handlers import ( 

32 ALLOW_SINGLETON, 

33 SYSTEM_TENANT, 

34 Allow, 

35 AuditEvent, 

36 Deny, 

37 Failure, 

38 Migration, 

39 Outcome, 

40 PluginHealth, 

41 PluginHealthReport, 

42 PluginHealthStatus, 

43 PluginInfo, 

44 Success, 

45 TenantContext, 

46 VotingDecision, 

47 handler_timeout, 

48) 

49from .hooks import HookName, HookOrdering, HookSemantic 

50from .lifecycle import register_discovered_plugins 

51from .manifest import PluginManifest 

52from .registry import HookRegistry, get_registry, register_core_handler, set_registry 

53from .signing import ( 

54 PluginSignatureVerifier, 

55 PluginSigningInfo, 

56 PluginTrustPolicy, 

57 allow_unsigned_development_override, 

58 require_verified_signature, 

59) 

60 

61__all__ = [ 

62 "ALLOW_SINGLETON", 

63 "CAPABILITY_ALLOWLIST", 

64 "SYSTEM_TENANT", 

65 "Allow", 

66 "AuditEvent", 

67 "Band", 

68 "Capability", 

69 "CapabilityError", 

70 "CoreApis", 

71 "Deny", 

72 "DiscoveredPlugin", 

73 "ENTRY_POINT_GROUP", 

74 "Failure", 

75 "HookName", 

76 "HookOrdering", 

77 "HookRegistry", 

78 "HookSemantic", 

79 "ManifestError", 

80 "Migration", 

81 "Outcome", 

82 "PluginContext", 

83 "PluginDependencyError", 

84 "PluginDiscoveryError", 

85 "PluginExecutionError", 

86 "PluginHealth", 

87 "PluginHealthReport", 

88 "PluginHealthStatus", 

89 "PluginInfo", 

90 "PluginMigrationError", 

91 "PluginSignatureError", 

92 "PluginSignatureVerifier", 

93 "PluginSigningInfo", 

94 "PluginTrustPolicy", 

95 "RegistryFrozenError", 

96 "PluginManifest", 

97 "RejectError", 

98 "Success", 

99 "TenantContext", 

100 "VotingDecision", 

101 "allow_unsigned_development_override", 

102 "discover_plugin_manifests", 

103 "get_registry", 

104 "handler_timeout", 

105 "register_core_handler", 

106 "register_discovered_plugins", 

107 "require_verified_signature", 

108 "resolve_plugin_dependencies", 

109 "set_registry", 

110]