@mplp/sdk-ts 1.0.1 → 1.0.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (70) hide show
  1. package/CHANGELOG.md +15 -0
  2. package/README.md +29 -0
  3. package/dist/builders/confirm-builder.d.ts +4 -8
  4. package/dist/builders/confirm-builder.js +6 -10
  5. package/dist/builders/context-builder.d.ts +4 -8
  6. package/dist/builders/context-builder.js +6 -10
  7. package/dist/builders/plan-builder.d.ts +4 -8
  8. package/dist/builders/plan-builder.js +6 -10
  9. package/dist/builders/trace-builder.d.ts +4 -8
  10. package/dist/builders/trace-builder.js +6 -10
  11. package/dist/client/runtime-client.d.ts +4 -8
  12. package/dist/client/runtime-client.js +6 -10
  13. package/dist/coordination/index.d.ts +8 -0
  14. package/dist/coordination/index.js +11 -0
  15. package/dist/core/index.d.ts +28 -0
  16. package/dist/core/index.js +21 -0
  17. package/dist/core/validators/index.d.ts +12 -0
  18. package/dist/core/validators/index.js +22 -0
  19. package/dist/index.d.ts +4 -8
  20. package/dist/index.js +7 -11
  21. package/dist/runtime/index.d.ts +11 -0
  22. package/dist/runtime/index.js +14 -0
  23. package/dist/runtime-minimal/index.d.ts +52 -0
  24. package/dist/runtime-minimal/index.js +28 -0
  25. package/dist/types/index.d.ts +21 -0
  26. package/dist/types/index.js +2 -0
  27. package/package.json +55 -14
  28. package/schemas/common/common-types.schema.json +55 -0
  29. package/schemas/common/events.schema.json +72 -0
  30. package/schemas/common/identifiers.schema.json +19 -0
  31. package/schemas/common/learning-sample.schema.json +200 -0
  32. package/schemas/common/metadata.schema.json +119 -0
  33. package/schemas/common/trace-base.schema.json +49 -0
  34. package/schemas/events/mplp-event-core.schema.json +64 -0
  35. package/schemas/events/mplp-graph-update-event.schema.json +64 -0
  36. package/schemas/events/mplp-map-event.schema.json +153 -0
  37. package/schemas/events/mplp-pipeline-stage-event.schema.json +62 -0
  38. package/schemas/events/mplp-runtime-execution-event.schema.json +64 -0
  39. package/schemas/events/mplp-sa-event.schema.json +115 -0
  40. package/schemas/integration/mplp-ci-event.schema.json +136 -0
  41. package/schemas/integration/mplp-file-update-event.schema.json +76 -0
  42. package/schemas/integration/mplp-git-event.schema.json +104 -0
  43. package/schemas/integration/mplp-tool-event.schema.json +89 -0
  44. package/schemas/invariants/integration-invariants.yaml +147 -0
  45. package/schemas/invariants/learning-invariants.yaml +106 -0
  46. package/schemas/invariants/map-invariants.yaml +73 -0
  47. package/schemas/invariants/observability-invariants.yaml +106 -0
  48. package/schemas/invariants/sa-invariants.yaml +72 -0
  49. package/schemas/learning/mplp-learning-sample-core.schema.json +100 -0
  50. package/schemas/learning/mplp-learning-sample-delta.schema.json +143 -0
  51. package/schemas/learning/mplp-learning-sample-intent.schema.json +125 -0
  52. package/schemas/mplp-collab.schema.json +249 -0
  53. package/schemas/mplp-confirm.schema.json +232 -0
  54. package/schemas/mplp-context.schema.json +252 -0
  55. package/schemas/mplp-core.schema.json +189 -0
  56. package/schemas/mplp-dialog.schema.json +204 -0
  57. package/schemas/mplp-extension.schema.json +185 -0
  58. package/schemas/mplp-network.schema.json +236 -0
  59. package/schemas/mplp-plan.schema.json +199 -0
  60. package/schemas/mplp-role.schema.json +145 -0
  61. package/schemas/mplp-trace.schema.json +222 -0
  62. package/src/builders/confirm-builder.ts +0 -44
  63. package/src/builders/context-builder.ts +0 -56
  64. package/src/builders/plan-builder.ts +0 -56
  65. package/src/builders/trace-builder.ts +0 -55
  66. package/src/client/runtime-client.ts +0 -103
  67. package/src/index.ts +0 -18
  68. package/tests/builders.test.ts +0 -80
  69. package/tests/client-single-agent.test.ts +0 -48
  70. package/tsconfig.json +0 -23
@@ -0,0 +1,100 @@
1
+ {
2
+ "$comment": "MPLP v1.0.0 FROZEN – © 2025 邦士(北京)网络科技有限公司 – Apache-2.0 – Governance: MPGC",
3
+ "$schema": "http://json-schema.org/draft-07/schema#",
4
+ "$id": "https://mplp.dev/schemas/v1.0/learning/mplp-learning-sample-core.schema.json",
5
+ "title": "MPLP LearningSample Core v1.0",
6
+ "description": "Core structure for MPLP LearningSample entities - defines the universal format for learning samples generated from execution history",
7
+ "type": "object",
8
+ "properties": {
9
+ "sample_id": {
10
+ "type": "string",
11
+ "format": "uuid",
12
+ "description": "Unique identifier of the learning sample (UUID v4)"
13
+ },
14
+ "sample_family": {
15
+ "type": "string",
16
+ "description": "LearningSample family identifier - determines expected input/output structure",
17
+ "examples": [
18
+ "intent_resolution",
19
+ "delta_impact",
20
+ "pipeline_outcome",
21
+ "confirm_decision",
22
+ "graph_evolution",
23
+ "multi_agent_coordination"
24
+ ]
25
+ },
26
+ "created_at": {
27
+ "type": "string",
28
+ "format": "date-time",
29
+ "description": "ISO 8601 timestamp when sample was generated"
30
+ },
31
+ "input": {
32
+ "type": "object",
33
+ "description": "Abstracted representation of input conditions, intent, context at sample creation time",
34
+ "additionalProperties": true
35
+ },
36
+ "state": {
37
+ "type": "object",
38
+ "description": "Snapshot of relevant system state before execution (PSG summary, config, roles, etc.)",
39
+ "additionalProperties": true
40
+ },
41
+ "output": {
42
+ "type": "object",
43
+ "description": "Abstracted representation of actual outcomes, decisions, changes, results",
44
+ "additionalProperties": true
45
+ },
46
+ "meta": {
47
+ "type": "object",
48
+ "description": "Metadata, labels, quality signals, provenance IDs, human feedback annotations",
49
+ "properties": {
50
+ "source_flow_id": {
51
+ "type": "string",
52
+ "description": "Optional: Flow ID that generated this sample (e.g., FLOW-01, SA-01, MAP-01)"
53
+ },
54
+ "source_event_ids": {
55
+ "type": "array",
56
+ "items": {
57
+ "type": "string",
58
+ "format": "uuid"
59
+ },
60
+ "description": "Optional: Observability event IDs referenced by this sample"
61
+ },
62
+ "project_id": {
63
+ "type": "string",
64
+ "format": "uuid",
65
+ "description": "Optional: Project context identifier"
66
+ },
67
+ "human_feedback_label": {
68
+ "type": "string",
69
+ "enum": [
70
+ "approved",
71
+ "rejected",
72
+ "not_reviewed"
73
+ ],
74
+ "description": "Optional: Human quality assessment"
75
+ },
76
+ "quality_score": {
77
+ "type": "number",
78
+ "minimum": 0,
79
+ "maximum": 1,
80
+ "description": "Optional: Automated quality score (0.0-1.0)"
81
+ }
82
+ },
83
+ "additionalProperties": true
84
+ }
85
+ },
86
+ "required": [
87
+ "sample_id",
88
+ "sample_family",
89
+ "created_at",
90
+ "input",
91
+ "output"
92
+ ],
93
+ "additionalProperties": true,
94
+ "x-mplp-meta": {
95
+ "protocolVersion": "1.0.0",
96
+ "frozen": true,
97
+ "freezeDate": "2025-12-03",
98
+ "governance": "MPGC"
99
+ }
100
+ }
@@ -0,0 +1,143 @@
1
+ {
2
+ "$comment": "MPLP v1.0.0 FROZEN – © 2025 邦士(北京)网络科技有限公司 – Apache-2.0 – Governance: MPGC",
3
+ "$schema": "http://json-schema.org/draft-07/schema#",
4
+ "$id": "https://mplp.dev/schemas/v1.0/learning/mplp-learning-sample-delta.schema.json",
5
+ "title": "MPLP LearningSample – Delta Impact v1.0",
6
+ "description": "Specialized schema for delta_impact samples capturing change effect analysis and compensation planning",
7
+ "allOf": [
8
+ {
9
+ "$ref": "mplp-learning-sample-core.schema.json"
10
+ },
11
+ {
12
+ "type": "object",
13
+ "properties": {
14
+ "sample_family": {
15
+ "const": "delta_impact",
16
+ "description": "Must be 'delta_impact' for this sample type"
17
+ },
18
+ "input": {
19
+ "type": "object",
20
+ "properties": {
21
+ "delta_id": {
22
+ "type": "string",
23
+ "description": "Delta Intent identifier"
24
+ },
25
+ "intent_id": {
26
+ "type": "string",
27
+ "description": "Original intent being modified"
28
+ },
29
+ "delta_type": {
30
+ "type": "string",
31
+ "enum": [
32
+ "refinement",
33
+ "correction",
34
+ "expansion",
35
+ "reduction",
36
+ "pivot"
37
+ ],
38
+ "description": "Type of delta change"
39
+ },
40
+ "change_summary": {
41
+ "type": "string",
42
+ "description": "Abstracted summary of requested change"
43
+ }
44
+ },
45
+ "required": [
46
+ "delta_id",
47
+ "intent_id",
48
+ "change_summary"
49
+ ],
50
+ "additionalProperties": true
51
+ },
52
+ "state": {
53
+ "type": "object",
54
+ "properties": {
55
+ "affected_artifact_count": {
56
+ "type": "integer",
57
+ "minimum": 0,
58
+ "description": "Optional: Number of artifacts potentially affected"
59
+ },
60
+ "risk_level": {
61
+ "type": "string",
62
+ "enum": [
63
+ "low",
64
+ "medium",
65
+ "high",
66
+ "critical"
67
+ ],
68
+ "description": "Assessed risk level before change"
69
+ },
70
+ "psg_complexity_score": {
71
+ "type": "number",
72
+ "minimum": 0,
73
+ "description": "Optional: PSG complexity metric before change"
74
+ }
75
+ },
76
+ "additionalProperties": true
77
+ },
78
+ "output": {
79
+ "type": "object",
80
+ "properties": {
81
+ "actual_impact_summary": {
82
+ "type": "string",
83
+ "description": "Summary of actual impact after analysis"
84
+ },
85
+ "impact_scope": {
86
+ "type": "string",
87
+ "enum": [
88
+ "local",
89
+ "module",
90
+ "system",
91
+ "global"
92
+ ],
93
+ "description": "Scope of detected impact"
94
+ },
95
+ "comp_plan_required": {
96
+ "type": "boolean",
97
+ "description": "Whether compensation plan was needed"
98
+ },
99
+ "comp_plan_applied": {
100
+ "type": "boolean",
101
+ "description": "Optional: Whether compensation was actually applied"
102
+ },
103
+ "rollback_used": {
104
+ "type": "boolean",
105
+ "description": "Optional: Whether rollback mechanism was triggered"
106
+ }
107
+ },
108
+ "required": [
109
+ "actual_impact_summary",
110
+ "impact_scope"
111
+ ],
112
+ "additionalProperties": true
113
+ },
114
+ "meta": {
115
+ "type": "object",
116
+ "properties": {
117
+ "impact_analysis_duration_ms": {
118
+ "type": "integer",
119
+ "minimum": 0,
120
+ "description": "Optional: Time spent on impact analysis"
121
+ },
122
+ "predicted_vs_actual_accuracy": {
123
+ "type": "string",
124
+ "enum": [
125
+ "accurate",
126
+ "underestimated",
127
+ "overestimated"
128
+ ],
129
+ "description": "Optional: Accuracy of impact prediction"
130
+ }
131
+ },
132
+ "additionalProperties": true
133
+ }
134
+ }
135
+ }
136
+ ],
137
+ "x-mplp-meta": {
138
+ "protocolVersion": "1.0.0",
139
+ "frozen": true,
140
+ "freezeDate": "2025-12-03",
141
+ "governance": "MPGC"
142
+ }
143
+ }
@@ -0,0 +1,125 @@
1
+ {
2
+ "$comment": "MPLP v1.0.0 FROZEN – © 2025 邦士(北京)网络科技有限公司 – Apache-2.0 – Governance: MPGC",
3
+ "$schema": "http://json-schema.org/draft-07/schema#",
4
+ "$id": "https://mplp.dev/schemas/v1.0/learning/mplp-learning-sample-intent.schema.json",
5
+ "title": "MPLP LearningSample – Intent Resolution v1.0",
6
+ "description": "Specialized schema for intent_resolution samples capturing user intent clarification and plan generation",
7
+ "allOf": [
8
+ {
9
+ "$ref": "mplp-learning-sample-core.schema.json"
10
+ },
11
+ {
12
+ "type": "object",
13
+ "properties": {
14
+ "sample_family": {
15
+ "const": "intent_resolution",
16
+ "description": "Must be 'intent_resolution' for this sample type"
17
+ },
18
+ "input": {
19
+ "type": "object",
20
+ "properties": {
21
+ "intent_id": {
22
+ "type": "string",
23
+ "description": "Intent identifier from IntentEvent or Plan.intent_model"
24
+ },
25
+ "raw_request_summary": {
26
+ "type": "string",
27
+ "description": "Abstracted summary of original user request (PII-scrubbed if needed)"
28
+ },
29
+ "constraints_summary": {
30
+ "type": "string",
31
+ "description": "Optional: Key constraints mentioned (timeline, budget, resources, etc.)"
32
+ },
33
+ "dialog_turns_count": {
34
+ "type": "integer",
35
+ "minimum": 0,
36
+ "description": "Optional: Number of dialog exchanges before intent resolution"
37
+ }
38
+ },
39
+ "required": [
40
+ "intent_id",
41
+ "raw_request_summary"
42
+ ],
43
+ "additionalProperties": true
44
+ },
45
+ "state": {
46
+ "type": "object",
47
+ "properties": {
48
+ "project_phase": {
49
+ "type": "string",
50
+ "description": "Optional: Project state (greenfield, brownfield, maintenance, etc.)"
51
+ },
52
+ "psg_node_count": {
53
+ "type": "integer",
54
+ "minimum": 0,
55
+ "description": "Optional: PSG size before intent application"
56
+ },
57
+ "existing_plan_count": {
58
+ "type": "integer",
59
+ "minimum": 0,
60
+ "description": "Optional: Number of existing plans in context"
61
+ }
62
+ },
63
+ "additionalProperties": true
64
+ },
65
+ "output": {
66
+ "type": "object",
67
+ "properties": {
68
+ "final_intent_summary": {
69
+ "type": "string",
70
+ "description": "Refined/clarified intent after resolution process"
71
+ },
72
+ "plan_id": {
73
+ "type": "string",
74
+ "format": "uuid",
75
+ "description": "Optional: Generated Plan identifier (if plan created)"
76
+ },
77
+ "plan_step_count": {
78
+ "type": "integer",
79
+ "minimum": 0,
80
+ "description": "Optional: Number of steps in generated plan"
81
+ },
82
+ "resolution_quality_label": {
83
+ "type": "string",
84
+ "enum": [
85
+ "good",
86
+ "acceptable",
87
+ "bad",
88
+ "unknown"
89
+ ],
90
+ "description": "Assessment of intent resolution quality"
91
+ }
92
+ },
93
+ "required": [
94
+ "final_intent_summary"
95
+ ],
96
+ "additionalProperties": true
97
+ },
98
+ "meta": {
99
+ "type": "object",
100
+ "properties": {
101
+ "clarification_rounds": {
102
+ "type": "integer",
103
+ "minimum": 0,
104
+ "description": "Optional: Clarification rounds needed before resolution"
105
+ },
106
+ "ambiguity_flags": {
107
+ "type": "array",
108
+ "items": {
109
+ "type": "string"
110
+ },
111
+ "description": "Optional: Detected ambiguity types (vague_scope, missing_constraints, etc.)"
112
+ }
113
+ },
114
+ "additionalProperties": true
115
+ }
116
+ }
117
+ }
118
+ ],
119
+ "x-mplp-meta": {
120
+ "protocolVersion": "1.0.0",
121
+ "frozen": true,
122
+ "freezeDate": "2025-12-03",
123
+ "governance": "MPGC"
124
+ }
125
+ }
@@ -0,0 +1,249 @@
1
+ {
2
+ "$comment": "MPLP v1.0.0 FROZEN – © 2025 邦士(北京)网络科技有限公司 – Apache-2.0 – Governance: MPGC",
3
+ "$schema": "http://json-schema.org/draft-07/schema#",
4
+ "$id": "https://schemas.mplp.dev/v1.0/mplp-collab.schema.json",
5
+ "title": "MPLP Collab Module – Core Protocol v1.0",
6
+ "description": "Collab Module Core Protocol: Describes the minimal required semantics (Core Profile) for multi-agent / multi-role collaboration sessions.",
7
+ "type": "object",
8
+ "additionalProperties": false,
9
+ "properties": {
10
+ "meta": {
11
+ "$ref": "common/metadata.schema.json",
12
+ "description": "[PROTOCOL-CORE] Protocol and schema metadata."
13
+ },
14
+ "governance": {
15
+ "type": "object",
16
+ "description": "[PROTOCOL-CORE] Governance metadata for lifecycle management, truth domain authority, and locking status.",
17
+ "properties": {
18
+ "lifecyclePhase": {
19
+ "type": "string",
20
+ "description": "Current phase in the lifecycle fence (e.g., 'design', 'implementation', 'review')."
21
+ },
22
+ "truthDomain": {
23
+ "type": "string",
24
+ "description": "The truth domain this object belongs to (e.g., 'requirements', 'architecture')."
25
+ },
26
+ "locked": {
27
+ "type": "boolean",
28
+ "description": "If true, this object cannot be modified except by specific governance overrides."
29
+ },
30
+ "lastConfirmRef": {
31
+ "$ref": "common/common-types.schema.json#/definitions/Ref",
32
+ "description": "Reference to the last Confirm decision that validated this state."
33
+ }
34
+ },
35
+ "additionalProperties": false
36
+ },
37
+ "collab_id": {
38
+ "$ref": "common/identifiers.schema.json",
39
+ "description": "[PROTOCOL-CORE] Global unique identifier for the collaboration session."
40
+ },
41
+ "context_id": {
42
+ "$ref": "common/identifiers.schema.json",
43
+ "description": "[PROTOCOL-CORE] Identifier of the Context this collaboration session belongs to."
44
+ },
45
+ "title": {
46
+ "type": "string",
47
+ "minLength": 1,
48
+ "description": "[PROTOCOL-CORE] Collaboration session title."
49
+ },
50
+ "purpose": {
51
+ "type": "string",
52
+ "minLength": 1,
53
+ "description": "[PROTOCOL-CORE] Description of the purpose/goal of the collaboration."
54
+ },
55
+ "mode": {
56
+ "type": "string",
57
+ "description": "[PROTOCOL-CORE] Collaboration mode (broadcast, round_robin, orchestrated, etc.).",
58
+ "enum": [
59
+ "broadcast",
60
+ "round_robin",
61
+ "orchestrated",
62
+ "swarm",
63
+ "pair"
64
+ ]
65
+ },
66
+ "status": {
67
+ "type": "string",
68
+ "description": "[PROTOCOL-CORE] Collaboration session status.",
69
+ "enum": [
70
+ "draft",
71
+ "active",
72
+ "suspended",
73
+ "completed",
74
+ "cancelled"
75
+ ]
76
+ },
77
+ "participants": {
78
+ "type": "array",
79
+ "description": "[PROTOCOL-CORE] List of roles/Agents participating in the collaboration.",
80
+ "minItems": 1,
81
+ "items": {
82
+ "$ref": "#/$defs/collab_participant_core"
83
+ }
84
+ },
85
+ "created_at": {
86
+ "type": "string",
87
+ "format": "date-time",
88
+ "description": "[PROTOCOL-CORE] Creation time (ISO 8601)."
89
+ },
90
+ "updated_at": {
91
+ "type": "string",
92
+ "format": "date-time",
93
+ "description": "[PROTOCOL-CORE] Last update time (ISO 8601)."
94
+ },
95
+ "trace": {
96
+ "$ref": "common/trace-base.schema.json",
97
+ "description": "[PROTOCOL-CORE] Trace reference bound to this collaboration session."
98
+ },
99
+ "events": {
100
+ "type": "array",
101
+ "description": "[PROTOCOL-CORE] List of key events directly related to this collaboration.",
102
+ "items": {
103
+ "$ref": "common/events.schema.json"
104
+ }
105
+ }
106
+ },
107
+ "required": [
108
+ "meta",
109
+ "collab_id",
110
+ "context_id",
111
+ "title",
112
+ "purpose",
113
+ "mode",
114
+ "status",
115
+ "participants",
116
+ "created_at"
117
+ ],
118
+ "$defs": {
119
+ "collab_core_properties": {
120
+ "type": "object",
121
+ "properties": {
122
+ "meta": {
123
+ "$ref": "common/metadata.schema.json",
124
+ "description": "[PROTOCOL-CORE] Protocol and schema metadata."
125
+ },
126
+ "collab_id": {
127
+ "$ref": "common/identifiers.schema.json",
128
+ "description": "[PROTOCOL-CORE] Global unique identifier for the collaboration session."
129
+ },
130
+ "context_id": {
131
+ "$ref": "common/identifiers.schema.json",
132
+ "description": "[PROTOCOL-CORE] Identifier of the Context this collaboration session belongs to."
133
+ },
134
+ "title": {
135
+ "type": "string",
136
+ "minLength": 1,
137
+ "description": "[PROTOCOL-CORE] Collaboration session title."
138
+ },
139
+ "purpose": {
140
+ "type": "string",
141
+ "minLength": 1,
142
+ "description": "[PROTOCOL-CORE] Description of the purpose/goal of the collaboration."
143
+ },
144
+ "mode": {
145
+ "type": "string",
146
+ "description": "[PROTOCOL-CORE] Collaboration mode (broadcast, round_robin, orchestrated, etc.).",
147
+ "enum": [
148
+ "broadcast",
149
+ "round_robin",
150
+ "orchestrated",
151
+ "swarm",
152
+ "pair"
153
+ ]
154
+ },
155
+ "status": {
156
+ "type": "string",
157
+ "description": "[PROTOCOL-CORE] Collaboration session status.",
158
+ "enum": [
159
+ "draft",
160
+ "active",
161
+ "suspended",
162
+ "completed",
163
+ "cancelled"
164
+ ]
165
+ },
166
+ "participants": {
167
+ "type": "array",
168
+ "description": "[PROTOCOL-CORE] List of roles/Agents participating in the collaboration.",
169
+ "minItems": 1,
170
+ "items": {
171
+ "$ref": "#/$defs/collab_participant_core"
172
+ }
173
+ },
174
+ "created_at": {
175
+ "type": "string",
176
+ "format": "date-time",
177
+ "description": "[PROTOCOL-CORE] Creation time (ISO 8601)."
178
+ },
179
+ "updated_at": {
180
+ "type": "string",
181
+ "format": "date-time",
182
+ "description": "[PROTOCOL-CORE] Last update time (ISO 8601)."
183
+ },
184
+ "trace": {
185
+ "$ref": "common/trace-base.schema.json",
186
+ "description": "[PROTOCOL-CORE] Trace reference bound to this collaboration session."
187
+ },
188
+ "events": {
189
+ "type": "array",
190
+ "description": "[PROTOCOL-CORE] List of key events directly related to this collaboration.",
191
+ "items": {
192
+ "$ref": "common/events.schema.json"
193
+ }
194
+ }
195
+ },
196
+ "required": [
197
+ "meta",
198
+ "collab_id",
199
+ "context_id",
200
+ "title",
201
+ "purpose",
202
+ "mode",
203
+ "status",
204
+ "participants",
205
+ "created_at"
206
+ ]
207
+ },
208
+ "collab_participant_core": {
209
+ "type": "object",
210
+ "description": "[PROTOCOL-CORE] Minimal required semantics for a collaboration participant.",
211
+ "additionalProperties": false,
212
+ "properties": {
213
+ "participant_id": {
214
+ "type": "string",
215
+ "minLength": 1,
216
+ "description": "[PROTOCOL-CORE] Participant identifier (can be Role/Agent/External ID)."
217
+ },
218
+ "role_id": {
219
+ "type": "string",
220
+ "description": "[PROTOCOL-CORE] Role ID bound to this participant (corresponds to role_id in Role module)."
221
+ },
222
+ "kind": {
223
+ "type": "string",
224
+ "description": "[PROTOCOL-CORE] Participant type.",
225
+ "enum": [
226
+ "agent",
227
+ "human",
228
+ "system",
229
+ "external"
230
+ ]
231
+ },
232
+ "display_name": {
233
+ "type": "string",
234
+ "description": "[PROTOCOL-CORE] Display name (for human identification)."
235
+ }
236
+ },
237
+ "required": [
238
+ "participant_id",
239
+ "kind"
240
+ ]
241
+ }
242
+ },
243
+ "x-mplp-meta": {
244
+ "protocolVersion": "1.0.0",
245
+ "frozen": true,
246
+ "freezeDate": "2025-12-03",
247
+ "governance": "MPGC"
248
+ }
249
+ }