Orchestrata Ultimate / RTM / 015-plugin-sdk

RTM: 015-plugin-sdk

Requirement to symbol to test rows for 015-plugin-sdk: Plugin SDK.

At a glance

Item Value
Requirement IDs 210
Traced from src/ 95 (45.2%)
Untraced 115
Cited from tests/ 0 (0.0%)
Traced in src/ but not cited from tests/ 95

Reading this matrix

This matrix lists each of the 210 requirement IDs of spec 015-plugin-sdk with the src/ symbols that cite it and the tests that cite it. 95 of them (45.2%) have at least one citing symbol and 115 have none.

0 requirements are also cited from tests/, and 95 are traced in code but never named by a test. A test citation is a @traces on a test function; it shows intent to cover, not that the test runs or reaches the symbol.

Rows showing none in the symbols column are the gaps to close first. The densest untraced groups are REQ-015-* (115).

Requirement to symbols to tests

Requirement Symbols in src/ Tests citing it
REQ-015-001 Install plugin from pip package spec (`orchestrata plugins install... orchestrata_ultimate/plugin/interfaces install_plugin L440 none
REQ-015-002 Install plugin from local directory path (orchestrata plugins install ./my-plugin) orchestrata_ultimate/plugin/discovery install_plugin L56
orchestrata_ultimate/plugin/interfaces install_plugin L440
orchestrata_ultimate/plugin/manager install_plugin L368
+1 more
none
REQ-015-003 Install plugin from git URL (orchestrata plugins install git+https://...) orchestrata_ultimate/plugin/discovery _install_from_git L123
orchestrata_ultimate/plugin/discovery install_plugin L56
orchestrata_ultimate/plugin/interfaces install_plugin L440
+1 more
none
REQ-015-004 Installation validates manifest before completing orchestrata_ultimate/plugin/exceptions PluginManifestError L40
orchestrata_ultimate/plugin/manifest from_dict L129
orchestrata_ultimate/plugin/manifest from_yaml L93
none
REQ-015-005 Installation checks Python dependency compatibility none none
REQ-015-006 Discover plugins from configurable local directories orchestrata_ultimate/plugin/discovery discover_plugins L27
orchestrata_ultimate/plugin/interfaces discover_plugins L361
orchestrata_ultimate/plugin/loader PluginLoader L45
+2 more
none
REQ-015-007 Discover plugins via importlib.metadata entry point group orchestrata_plugin orchestrata_ultimate/plugin/interfaces discover_plugins L361
orchestrata_ultimate/plugin/loader discover_installed L122
none
REQ-015-008 Discover plugins from pip packages with orchestrata-plugin- prefix orchestrata_ultimate/plugin/interfaces discover_plugins L361 none
REQ-015-009 Deduplicate discovered plugins by name (local takes precedence) orchestrata_ultimate/plugin/loader discover_all L163
orchestrata_ultimate/plugin/registry register_discovered L81
none
REQ-015-010 Log all discovered plugins with source and version none none
REQ-015-011 Load plugin Python module via importlib orchestrata_ultimate/plugin/exceptions PluginLoadError L66
orchestrata_ultimate/plugin/loader _validate_module_path L197
orchestrata_ultimate/plugin/loader load_plugin_class L247
none
REQ-015-012 Instantiate plugin entry point class from manifest none none
REQ-015-013 Pass PluginContext to plugin on instantiation none none
REQ-015-014 Load plugins in dependency order (topological sort) orchestrata_ultimate/plugin/loader topological_sort L305 none
REQ-015-015 Detect and reject circular plugin dependencies orchestrata_ultimate/plugin/loader visit L350 none
REQ-015-016 Plugin calls context.register_volk(alias, capabilities, handler) orchestrata_ultimate/plugin/context register_volk L153
orchestrata_ultimate/plugin/interfaces register_volk L28
orchestrata_ultimate/plugin/registries RegisteredVolk L27
+1 more
none
REQ-015-017 Registered Volk appears in kernel Volk registry orchestrata_ultimate/core/protocols/decoupling PluginVolkRegistryProtocol L128
orchestrata_ultimate/core/protocols/decoupling list_volks L141
orchestrata_ultimate/kernel/cli_main _boot_plugin_system L474
+8 more
none
REQ-015-018 Registered Volk is routable via CXP packets orchestrata_ultimate/kernel/pipeline set_postman L97 none
REQ-015-019 Volk alias validated for uniqueness (conflict detection) orchestrata_ultimate/plugin/registration register_volk L25 none
REQ-015-020 Volk alias cannot override core Volks (U:Ox, U:PS, U:KR reserved) orchestrata_ultimate/plugin/governance can_register_volk L123 none
REQ-015-021 Plugin Volk receives CXP packets via handler function orchestrata_ultimate/core/protocols/decoupling PluginVolkRegistryProtocol L128
orchestrata_ultimate/core/protocols/decoupling RegisteredVolkProtocol L106
orchestrata_ultimate/core/protocols/decoupling get_volk L144
+3 more
none
REQ-015-022 Plugin Volk responds via standard CXP protocol orchestrata_ultimate/kernel/pipeline process L90 none
REQ-015-023 Plugin Volk participates in PAM++ governance none none
REQ-015-024 Plugin Volk has access to PluginContext for DI resolution none none
REQ-015-025 Plugin Volk can declare capabilities (reasoning, coding, etc.) orchestrata_ultimate/orchestrator/orchestrator VolkDefinition L56 none
REQ-015-026 Plugin Volks auto-deregistered on plugin stop none none
REQ-015-027 In-flight CXP packets to plugin Volk handled gracefully on stop none none
REQ-015-028 Plugin Volk health monitored by kernel health system none none
REQ-015-029 Plugin Volk errors isolated from other Volks none none
REQ-015-030 Plugin Volk registration logged to audit trail none none
REQ-015-031 Plugin calls context.register_tool(name, description, schema, handler) orchestrata_ultimate/plugin/context register_tool L181
orchestrata_ultimate/plugin/interfaces register_tool L65
orchestrata_ultimate/plugin/registration register_tool L78
+2 more
none
REQ-015-032 Tool name namespaced: plugin.<plugin_name>.<tool_name> none none
REQ-015-033 Tool parameters validated against JSON Schema on invocation none none
REQ-015-034 Tool registered in central tool registry accessible to all Volks orchestrata_ultimate/plugin/interfaces IToolRegistry L57
orchestrata_ultimate/plugin/registries _PluginToolAdapter L97
none
REQ-015-035 Tool name validated for uniqueness none none
REQ-015-036 Tool handler invoked asynchronously with validated parameters none none
REQ-015-037 Tool results returned to calling Volk via CXP none none
REQ-015-038 Tool invocation authorized by PAM++ before execution none none
REQ-015-039 Tool execution timeout enforced (configurable per tool) none none
REQ-015-040 Tool errors returned as structured error responses none none
REQ-015-041 Plugin tools auto-deregistered on plugin stop none none
REQ-015-042 In-flight tool invocations completed or cancelled on plugin stop none none
REQ-015-043 Tool invocation count tracked per plugin none none
REQ-015-044 Tool execution time tracked per invocation none none
REQ-015-045 Tool registration logged to audit trail none none
REQ-015-046 Plugin calls context.register_provider(name, provider, config) orchestrata_ultimate/plugin/context register_provider L212
orchestrata_ultimate/plugin/interfaces register_provider L92
orchestrata_ultimate/plugin/registration register_provider L138
none
REQ-015-047 Provider implements IProvider protocol (SPEC-011) none none
REQ-015-048 Provider registered with IProviderManager via DI orchestrata_ultimate/plugin/interfaces IProviderRegistry L84 none
REQ-015-049 Provider participates in fallback chains none none
REQ-015-050 Provider participates in cost tracking and rate limiting none none
REQ-015-051 Provider config loaded from plugin config section none none
REQ-015-052 Provider API keys loaded from environment variables none none
REQ-015-053 Provider model metadata declared (capabilities, pricing, context window) none none
REQ-015-054 Provider rate limits declared in config none none
REQ-015-055 Provider health monitored by ProviderManager orchestrata_ultimate/core/protocols/providers get_provider_health L301
orchestrata_ultimate/providers/provider_manager get_provider_health L511
none
REQ-015-056 Plugin providers auto-deregistered on plugin stop none none
REQ-015-057 In-flight provider requests completed or cancelled on stop orchestrata_ultimate/providers/provider_manager _invoke_provider L347
orchestrata_ultimate/providers/provider_manager stop L149
none
REQ-015-058 Provider deregistration triggers fallback chain update none none
REQ-015-059 Provider registration logged to audit trail none none
REQ-015-060 Provider errors isolated from other providers none none
REQ-015-061 Plugin calls context.register_rules(rule_files) orchestrata_ultimate/plugin/context register_rules L265
orchestrata_ultimate/plugin/registration register_rules L249
none
REQ-015-062 Rule files are relative paths within plugin directory none none
REQ-015-063 Rules loaded into Prolog knowledge base on initialize none none
REQ-015-064 Rules unloaded from Prolog knowledge base on stop none none
REQ-015-065 Rule predicate conflicts detected and reported none none
REQ-015-066 Plugin rules cannot override core PAM++ predicates none none
REQ-015-067 Plugin rules validated against constitutional articles none none
REQ-015-068 Plugin rules namespaced to prevent collisions none none
REQ-015-069 Rule loading failures do not crash Prolog engine none none
REQ-015-070 Rule audit trail records loaded/unloaded predicates none none
REQ-015-071 Plugin calls context.register_kg_schema(node_types, rel_types, indexes) orchestrata_ultimate/plugin/context register_kg_schema L286
orchestrata_ultimate/plugin/manifest KGSchemaExtension L36
orchestrata_ultimate/plugin/registration register_kg_schema L277
none
REQ-015-072 Node types namespaced with plugin prefix: Plugin_<name>_<NodeType> none none
REQ-015-073 Schema applied to Neo4j on plugin initialize none none
REQ-015-074 Schema migrations versioned per plugin orchestrata_ultimate/plugin/manifest KGSchemaExtension L36 none
REQ-015-075 Schema conflicts with core or other plugins detected none none
REQ-015-076 Plugin can create nodes of its declared types none none
REQ-015-077 Plugin can create relationships of its declared types none none
REQ-015-078 Plugin KG operations scoped to its namespace none none
REQ-015-079 Core KG nodes not modifiable by plugins none none
REQ-015-080 KG schema extension logged to audit trail none none
REQ-015-081 orchestrata plugins list shows all plugins with status none none
REQ-015-082 List output includes: name, version, status, capabilities, source orchestrata_ultimate/plugin/interfaces PluginInfo L261 none
REQ-015-083 orchestrata plugins info <name> shows full manifest details none none
REQ-015-084 Info output includes: registered components, config schema, resource usage orchestrata_ultimate/plugin/interfaces PluginInfo L261 none
REQ-015-085 orchestrata plugins enable <name> activates a disabled plugin orchestrata_ultimate/plugin/discovery enable_plugin L214
orchestrata_ultimate/plugin/interfaces enable_plugin L422
orchestrata_ultimate/plugin/manager enable_plugin L346
+1 more
none
REQ-015-086 orchestrata plugins disable <name> deactivates without uninstalling orchestrata_ultimate/plugin/discovery disable_plugin L262
orchestrata_ultimate/plugin/interfaces disable_plugin L431
orchestrata_ultimate/plugin/manager disable_plugin L359
+1 more
none
REQ-015-087 Disable stops the plugin and deregisters its components orchestrata_ultimate/plugin/discovery disable_plugin L262 none
REQ-015-088 orchestrata plugins uninstall <name> removes completely orchestrata_ultimate/plugin/discovery uninstall_plugin L174
orchestrata_ultimate/plugin/interfaces uninstall_plugin L456
orchestrata_ultimate/plugin/manager uninstall_plugin L386
+2 more
none
REQ-015-089 Uninstall cleans up Redis state, Neo4j audit, and files none none
REQ-015-090 Plugin status visible via Gateway RPC plugins.list (SPEC-014) none none
REQ-015-091 orchestrata plugins doctor <name> runs health check on plugin none none
REQ-015-092 Doctor checks: manifest validity, dependencies, config, capability access none none
REQ-015-093 Doctor reports errors with remediation suggestions none none
REQ-015-094 Error plugins include error message and stack trace in listing orchestrata_ultimate/plugin/registry set_status L204 none
REQ-015-095 Plugin logs accessible via orchestrata plugins logs <name> none none
REQ-015-096 Plugin config loaded from configs/monolithic.yaml under plugins.<name> orchestrata_ultimate/plugin/config from_dict L67 none
REQ-015-097 Config validated against schema declared in manifest (JSON Schema) none none
REQ-015-098 Environment variable interpolation supported in plugin config none none
REQ-015-099 Config accessible via PluginContext.config orchestrata_ultimate/plugin/context get_config L136 none
REQ-015-100 Invalid config prevents plugin load with validation error orchestrata_ultimate/plugin/exceptions PluginConfigError L195 none
REQ-015-101 Default config values from manifest applied when keys missing none none
REQ-015-102 Config changes detectable for hot-reload notification none none
REQ-015-103 Plugin notified of config changes via on_config_changed() callback none none
REQ-015-104 New config validated before applying (rollback on rejection) none none
REQ-015-105 Config changes logged to audit trail none none
REQ-015-106 Plugins declare required capabilities in manifest none none
REQ-015-107 DI container scoped to declared capabilities only orchestrata_ultimate/plugin/context resolve L107 none
REQ-015-108 Undeclared capability access raises CapabilityDeniedError orchestrata_ultimate/plugin/context resolve L107
orchestrata_ultimate/plugin/exceptions CapabilityDeniedError L169
none
REQ-015-109 Capability access logged for security audit none none
REQ-015-110 Capability types: di_access, redis, neo4j, network, filesystem, prolog, event_bus,... orchestrata_ultimate/plugin/interfaces PluginCapability L171 none
REQ-015-111 Prolog queried for plugin_allowed(name) before loading none none
REQ-015-112 Prolog queried for plugin_capability_granted(name, cap) per capability none none
REQ-015-113 Plugin allowlist configurable in monolithic.yaml orchestrata_ultimate/plugin/config PluginConfig L34 none
REQ-015-114 Plugin blocklist overrides allowlist orchestrata_ultimate/plugin/governance is_plugin_allowed L63 none
REQ-015-115 Governance decisions logged to audit trail orchestrata_ultimate/orchestrator/engine _record_audit L555 none
REQ-015-116 Memory usage tracked per plugin orchestrata_ultimate/plugin/interfaces PluginResourceUsage L239
orchestrata_ultimate/plugin/interfaces ResourceType L220
none
REQ-015-117 API call count tracked per time window orchestrata_ultimate/plugin/interfaces PluginResourceUsage L239
orchestrata_ultimate/plugin/interfaces ResourceType L220
none
REQ-015-118 Events emitted tracked per time window orchestrata_ultimate/plugin/interfaces PluginResourceUsage L239
orchestrata_ultimate/plugin/interfaces ResourceType L220
none
REQ-015-119 Resource limits configurable per plugin in monolithic.yaml orchestrata_ultimate/plugin/config PluginResourceLimits L18
orchestrata_ultimate/plugin/governance get_resource_limit L170
none
REQ-015-120 Plugin throttled or disabled on resource limit breach orchestrata_ultimate/knowledge_graph/nodes function_node_to_cypher L84 none
REQ-015-121 Plugin exceptions caught and logged (never crash core) orchestrata_ultimate/knowledge_graph/nodes predicate_node_to_cypher L107 none
REQ-015-122 Plugin marked "error" after consecutive failures (configurable threshold) orchestrata_ultimate/knowledge_graph/nodes rule_node_to_cypher L127
orchestrata_ultimate/plugin/interfaces PluginResourceUsage L239
none
REQ-015-123 Auto-disable on persistent error state (configurable) orchestrata_ultimate/knowledge_graph/nodes cypher_record_to_node L143 none
REQ-015-124 Other plugins unaffected by one plugin's failure none none
REQ-015-125 Plugin errors include full traceback and plugin context none none
REQ-015-126 Lifecycle order: discover → validate → load → initialize → start orchestrata_ultimate/plugin/interfaces IPluginManager L353
orchestrata_ultimate/plugin/manager PluginManager L47
none
REQ-015-127 Shutdown order: stop → unload (reverse dependency order) orchestrata_ultimate/plugin/discovery unload_plugin L302
orchestrata_ultimate/plugin/registry unregister L110
none
REQ-015-128 initialize() called after load, before any other method orchestrata_ultimate/plugin/interfaces initialize L313
orchestrata_ultimate/plugin/manager initialize L105
none
REQ-015-129 start() called after all plugins initialized orchestrata_ultimate/plugin/interfaces start L326
orchestrata_ultimate/plugin/manager start L129
orchestrata_ultimate/plugin/sdk start_all L222
none
REQ-015-130 stop() called on shutdown or disable orchestrata_ultimate/kernel/cli_main get_metadata L469
orchestrata_ultimate/kernel/cli_main stop L454
orchestrata_ultimate/plugin/interfaces stop L335
+2 more
none
REQ-015-131 Plugin declares dependencies on other plugins in manifest none none
REQ-015-132 Load order computed via topological sort on dependency graph orchestrata_ultimate/plugin/loader topological_sort L321 none
REQ-015-133 Circular dependencies detected and rejected with clear error orchestrata_ultimate/plugin/exceptions PluginCircularDependencyError L143 none
REQ-015-134 Missing dependency prevents plugin load with clear error orchestrata_ultimate/plugin/exceptions PluginDependencyError L117 none
REQ-015-135 Dependency version constraints validated none none
REQ-015-136 Hot-reload executes: stop → unload → load → initialize → start orchestrata_ultimate/plugin/discovery reload_plugin L338 none
REQ-015-137 Hot-reload preserves other plugins' state none none
REQ-015-138 Hot-reload re-registers all plugin components none none
REQ-015-139 Hot-reload validates manifest changes before applying none none
REQ-015-140 Hot-reload logged to audit trail none none
REQ-015-141 All lifecycle transitions emit events to EventBus none none
REQ-015-142 Events: plugin.discovered, plugin.loaded, plugin.initialized, plugin.started,... none none
REQ-015-143 Events include plugin name, version, and transition details none none
REQ-015-144 All lifecycle events logged to Neo4j audit trail none none
REQ-015-145 Gateway subscribers receive plugin lifecycle events (SPEC-014) none none
REQ-015-146 Plugin calls context.subscribe_event(topic, handler) orchestrata_ultimate/plugin/context subscribe_event L312
orchestrata_ultimate/plugin/interfaces subscribe L139
orchestrata_ultimate/plugin/registration subscribe_event L307
none
REQ-015-147 Subscription supports wildcard topics (cxp.*, session.*) orchestrata_ultimate/kernel/event_bus _find_matching_handlers L270 none
REQ-015-148 Subscriptions auto-unsubscribed on plugin stop none none
REQ-015-149 Subscription returns subscription_id for manual unsubscribe orchestrata_ultimate/core/protocols/base subscribe L162
orchestrata_ultimate/kernel/event_bus subscribe L137
none
REQ-015-150 Event handler receives full event payload orchestrata_ultimate/knowledge_graph/prolog_bridge KnowledgePrologBridge L25 none
REQ-015-151 Plugin calls context.emit_event(event_type, payload) orchestrata_ultimate/plugin/context emit_event L340
orchestrata_ultimate/plugin/interfaces emit L156
orchestrata_ultimate/plugin/registration emit_event L352
none
REQ-015-152 Custom events namespaced: plugin.<name>.<event_type> orchestrata_ultimate/knowledge_graph/prolog_bridge __init__ L33 none
REQ-015-153 Custom events visible to other plugins and gateway subscribers orchestrata_ultimate/knowledge_graph/prolog_bridge assert_ownership L43 none
REQ-015-154 Event emission rate tracked per plugin (resource limit) orchestrata_ultimate/knowledge_graph/prolog_bridge query_ownership L57 none
REQ-015-155 Event handler errors do not crash EventBus or other subscribers orchestrata_ultimate/kernel/event_bus _call_in_process_handlers L237
orchestrata_ultimate/knowledge_graph/prolog_bridge check_can_modify L78
none
REQ-015-156 Plugin calls context.register_channel(channel_id, inbound, outbound) orchestrata_ultimate/plugin/context register_channel L237
orchestrata_ultimate/plugin/interfaces register_channel L115
orchestrata_ultimate/plugin/registration register_channel L192
none
REQ-015-157 Channel registered with kernel channel registry orchestrata_ultimate/knowledge_graph/prolog_bridge query_transitive_deps L101
orchestrata_ultimate/plugin/interfaces IChannelRegistry L107
none
REQ-015-158 Channel_id validated for uniqueness orchestrata_ultimate/knowledge_graph/prolog_bridge check_in_scope L123 none
REQ-015-159 Inbound handler converts external messages to CXP packets none none
REQ-015-160 Outbound handler converts CXP packets to channel-native messages orchestrata_ultimate/knowledge_graph/relationships build_create_rel_cypher L28 none
REQ-015-161 Inbound messages routed through kernel like any CXP packet orchestrata_ultimate/knowledge_graph/relationships build_delete_rel_cypher L60 none
REQ-015-162 Outbound messages dispatched to channel via outbound handler none none
REQ-015-163 Channel configuration loaded from plugin config (tokens, webhooks) none none
REQ-015-164 Channel health monitored by kernel health system none none
REQ-015-165 Channel errors isolated from other channels none none
REQ-015-166 Plugin channels auto-deregistered on plugin stop none none
REQ-015-167 In-flight channel messages handled gracefully on stop none none
REQ-015-168 Channel registration logged to audit trail orchestrata_ultimate/knowledge_graph/schema get_all_ddl L271 none
REQ-015-169 Channel message throughput tracked per plugin orchestrata_ultimate/knowledge_graph/schema get_node_label L406 none
REQ-015-170 Channel reconnection handled by plugin (not core) orchestrata_ultimate/knowledge_graph/temporal TemporalManager L28 none
REQ-015-171 SDK published as orchestrata-plugin-sdk pip package none none
REQ-015-172 SDK includes: IPlugin, PluginContext, PluginManifest, PluginCapability orchestrata_ultimate/knowledge_graph/temporal version_node L45
orchestrata_ultimate/plugin/manifest PluginManifest L56
none
REQ-015-173 SDK includes type stubs for all public interfaces orchestrata_ultimate/knowledge_graph/temporal get_state_at L90 none
REQ-015-174 SDK is version-pinned to Orchestrata compatibility range none none
REQ-015-175 SDK has zero runtime dependencies on Orchestrata core (interface-only) orchestrata_ultimate/knowledge_graph/temporal invalidate L157 none
REQ-015-176 orchestrata plugins scaffold <name> generates plugin template none none
REQ-015-177 Template includes: plugin.yaml, pyproject.toml, src/, tests/, README.md none none
REQ-015-178 Template includes working example (minimal Volk or tool) orchestrata_ultimate/knowledge_graph/types FileAnalysis L81 none
REQ-015-179 SDK documentation with examples for each registration type none none
REQ-015-180 Plugin testing utilities provided (test harness, mock context) none none
REQ-015-181 SDK API follows semantic versioning orchestrata_ultimate/knowledge_graph/types DependencyGraph L153 none
REQ-015-182 Breaking changes require major version bump orchestrata_ultimate/knowledge_graph/types ChangeEntry L196 none
REQ-015-183 Deprecation warnings for API changes orchestrata_ultimate/knowledge_graph/types Dashboard L236 none
REQ-015-184 SDK changelog maintained orchestrata_ultimate/knowledge_graph/types ContextBundle L276 none
REQ-015-185 Compatibility matrix published (SDK version ↔ Orchestrata version) orchestrata_ultimate/knowledge_graph/types ResolutionResult L309 none
REQ-015-186 IPluginManager registered with ComponentType.PLUGIN_MANAGER none none
REQ-015-187 IPluginManager resolvable from DI container none none
REQ-015-188 PluginManager implements IComponent lifecycle orchestrata_ultimate/plugin/manager PluginManager L48 none
REQ-015-189 PluginManager initializes after kernel and before Volks none none
REQ-015-190 PluginManager stops before kernel on shutdown none none
REQ-015-191 list_plugins() returns all plugins with status orchestrata_ultimate/plugin/interfaces list_plugins L413
orchestrata_ultimate/plugin/manager list_plugins L337
orchestrata_ultimate/plugin/registry list_plugins L190
+1 more
none
REQ-015-192 get_plugin(name) returns plugin info or None orchestrata_ultimate/plugin/interfaces get_plugin L401
orchestrata_ultimate/plugin/manager get_plugin L328
orchestrata_ultimate/plugin/registry get_info L148
+1 more
none
REQ-015-193 load_plugin(name) loads and initializes a discovered plugin orchestrata_ultimate/plugin/interfaces load_plugin L374
orchestrata_ultimate/plugin/manager load_plugin L222
orchestrata_ultimate/plugin/registry get_manifest L165
+2 more
none
REQ-015-194 unload_plugin(name) stops and unloads a plugin orchestrata_ultimate/knowledge_graph/types_enums NodeType L24
orchestrata_ultimate/plugin/interfaces unload_plugin L383
orchestrata_ultimate/plugin/manager unload_plugin L306
+1 more
none
REQ-015-195 reload_plugin(name) hot-reloads a plugin orchestrata_ultimate/knowledge_graph/types_enums RelationshipType L63
orchestrata_ultimate/plugin/interfaces reload_plugin L392
orchestrata_ultimate/plugin/manager reload_plugin L315
+1 more
none
REQ-015-196 Query plugins by status (active, disabled, error) orchestrata_ultimate/plugin/sdk active_plugins L152 none
REQ-015-197 Query plugins by capability (which plugins provide network access?) none none
REQ-015-198 Query registered components by plugin (which Volks does plugin X provide?) none none
REQ-015-199 Query plugin resource usage none none
REQ-015-200 Query plugin health orchestrata_ultimate/plugin/manager get_health L189 none
REQ-015-201 Plugin install/uninstall events recorded none none
REQ-015-202 Plugin lifecycle events recorded (load, init, start, stop, unload) none none
REQ-015-203 Plugin registration events recorded (volk, tool, provider, channel, rules) none none
REQ-015-204 Plugin governance decisions recorded (allow, deny, capability grant) none none
REQ-015-205 Plugin errors recorded with traceback none none
REQ-015-206 Audit records stored as Neo4j (:PluginAudit) nodes none none
REQ-015-207 Audit records linked to (:Plugin) nodes via relationships none none
REQ-015-208 Audit records include timestamp, plugin_name, event_type, details none none
REQ-015-209 Audit records immutable after write none none
REQ-015-210 Audit queryable by time range, plugin name, event type none none