Skip to main content
INFORMATIVEDRAFTprotocol

Module Interactions

Scope

This document describes the relationships and dependencies between MPLP L2 modules. It is informative and provides a comprehensive overview of how modules interact within the protocol.

Non-Goals

This document does not define normative obligations. All normative requirements are defined in individual module specifications.


1. Purpose

This document describes the relationships and dependencies between MPLP L2 modules, providing a comprehensive view of how modules interact within the protocol.

2. Module Classification

2.1 Core Modules (Required)

ModulePurposeAlways Required
CoreProtocol manifestYes
ContextWorld stateYes
PlanTask decompositionYes
TraceExecution auditYes
RolePermissionsYes

2.2 Coordination Modules (Optional)

ModulePurposeProfile
CollabMulti-agent sessionsMAP
ConfirmApproval workflowSA/MAP
DialogConversationsSA/MAP

2.3 Extension Modules (Optional)

ModulePurposeProfile
ExtensionPlugin systemSA/MAP
NetworkAgent topologyMAP

3. Dependency Graph

3.1 Complete Dependency Map

3.2 Reference Bindings

FromFieldToDescription
Plancontext_idContextPlan belongs to Context
Tracecontext_idContextTrace belongs to Context
Traceplan_idPlanTrace for Plan execution
Confirmtarget_idPlan/ContextWhat to approve
Confirmrequested_by_roleRoleWho requested
Confirmdecided_by_roleRoleWho decided
Collabcontext_idContextSession belongs to Context
Collabparticipant.role_idRoleParticipant role
Dialogcontext_idContextDialog belongs to Context
Extensioncontext_idContextExtension belongs to Context
Networkcontext_idContextNetwork belongs to Context
Plan.Stepagent_roleRoleStep executor
Contextowner_roleRoleContext owner

4. Data Flow Patterns

4.1 SA Profile (Single-Agent)

4.2 MAP Profile (Multi-Agent)

5. Module Coupling

Good: Reference by ID only

{
"plan_id": "plan-123",
"context_id": "ctx-456"
}

5.2 Invariant Enforcement

Modules enforce cross-references through invariants:

// SA invariant: Plan context_id must match loaded Context
function validatePlanContextBinding(plan: Plan, context: Context): boolean {
return plan.context_id === context.context_id;
}

// SA invariant: Trace context_id must match loaded Context
function validateTraceContextBinding(trace: Trace, context: Context): boolean {
return trace.context_id === context.context_id;
}

6. Profile Configurations

6.1 Minimal SA Profile

Required modules only:

{
"modules": [
{ "module_id": "context", "status": "enabled" },
{ "module_id": "plan", "status": "enabled" },
{ "module_id": "trace", "status": "enabled" },
{ "module_id": "role", "status": "enabled" }
]
}

6.2 Full SA Profile

With approval and dialog:

{
"modules": [
{ "module_id": "context", "status": "enabled" },
{ "module_id": "plan", "status": "enabled" },
{ "module_id": "trace", "status": "enabled" },
{ "module_id": "role", "status": "enabled" },
{ "module_id": "confirm", "status": "enabled" },
{ "module_id": "dialog", "status": "enabled" }
]
}

6.3 Full MAP Profile

Multi-agent with all modules:

{
"modules": [
{ "module_id": "context", "status": "enabled" },
{ "module_id": "plan", "status": "enabled" },
{ "module_id": "trace", "status": "enabled" },
{ "module_id": "role", "status": "enabled" },
{ "module_id": "collab", "status": "enabled" },
{ "module_id": "confirm", "status": "enabled" },
{ "module_id": "dialog", "status": "enabled" },
{ "module_id": "extension", "status": "enabled" },
{ "module_id": "network", "status": "enabled" }
]
}

7. Event Flow

7.1 Cross-Module Events

EventSourceConsumers
context.activatedContextPlan, Collab
plan.proposedPlanConfirm
plan.approvedConfirmPlan, Trace
step.completedPlanTrace, Learning
collab.startedCollabDialog, Trace
confirm.decidedConfirmPlan, Learning

7.2 Event Propagation


Core Modules: Core, Context, Plan, Trace, Role (5)
Optional Modules: Collab, Confirm, Dialog, Extension, Network (5)
Total Modules: 10