@mplp/sdk-ts 1.0.2 → 1.0.4

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 (58) hide show
  1. package/CHANGELOG.md +15 -5
  2. package/README.md +61 -11
  3. package/dist/coordination/index.d.ts +8 -0
  4. package/dist/coordination/index.js +11 -0
  5. package/dist/core/index.d.ts +28 -0
  6. package/dist/core/index.js +21 -0
  7. package/dist/core/validators/index.d.ts +12 -0
  8. package/dist/core/validators/index.js +22 -0
  9. package/dist/runtime/index.d.ts +11 -0
  10. package/dist/runtime/index.js +14 -0
  11. package/dist/runtime-minimal/index.d.ts +52 -0
  12. package/dist/runtime-minimal/index.js +28 -0
  13. package/dist/types/index.d.ts +21 -0
  14. package/dist/types/index.js +2 -0
  15. package/package.json +47 -34
  16. package/schemas/common/common-types.schema.json +55 -0
  17. package/schemas/common/events.schema.json +72 -0
  18. package/schemas/common/identifiers.schema.json +19 -0
  19. package/schemas/common/learning-sample.schema.json +200 -0
  20. package/schemas/common/metadata.schema.json +119 -0
  21. package/schemas/common/trace-base.schema.json +49 -0
  22. package/schemas/events/mplp-event-core.schema.json +64 -0
  23. package/schemas/events/mplp-graph-update-event.schema.json +64 -0
  24. package/schemas/events/mplp-map-event.schema.json +153 -0
  25. package/schemas/events/mplp-pipeline-stage-event.schema.json +62 -0
  26. package/schemas/events/mplp-runtime-execution-event.schema.json +64 -0
  27. package/schemas/events/mplp-sa-event.schema.json +115 -0
  28. package/schemas/integration/mplp-ci-event.schema.json +136 -0
  29. package/schemas/integration/mplp-file-update-event.schema.json +76 -0
  30. package/schemas/integration/mplp-git-event.schema.json +104 -0
  31. package/schemas/integration/mplp-tool-event.schema.json +89 -0
  32. package/schemas/invariants/integration-invariants.yaml +147 -0
  33. package/schemas/invariants/learning-invariants.yaml +106 -0
  34. package/schemas/invariants/map-invariants.yaml +73 -0
  35. package/schemas/invariants/observability-invariants.yaml +106 -0
  36. package/schemas/invariants/sa-invariants.yaml +72 -0
  37. package/schemas/learning/mplp-learning-sample-core.schema.json +100 -0
  38. package/schemas/learning/mplp-learning-sample-delta.schema.json +143 -0
  39. package/schemas/learning/mplp-learning-sample-intent.schema.json +125 -0
  40. package/schemas/mplp-collab.schema.json +249 -0
  41. package/schemas/mplp-confirm.schema.json +232 -0
  42. package/schemas/mplp-context.schema.json +252 -0
  43. package/schemas/mplp-core.schema.json +189 -0
  44. package/schemas/mplp-dialog.schema.json +204 -0
  45. package/schemas/mplp-extension.schema.json +185 -0
  46. package/schemas/mplp-network.schema.json +236 -0
  47. package/schemas/mplp-plan.schema.json +199 -0
  48. package/schemas/mplp-role.schema.json +145 -0
  49. package/schemas/mplp-trace.schema.json +222 -0
  50. package/src/builders/confirm-builder.ts +0 -39
  51. package/src/builders/context-builder.ts +0 -51
  52. package/src/builders/plan-builder.ts +0 -51
  53. package/src/builders/trace-builder.ts +0 -50
  54. package/src/client/runtime-client.ts +0 -98
  55. package/src/index.ts +0 -13
  56. package/tests/builders.test.ts +0 -80
  57. package/tests/client-single-agent.test.ts +0 -48
  58. package/tsconfig.json +0 -23
@@ -0,0 +1,204 @@
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-dialog.schema.json",
5
+ "title": "MPLP Dialog Module – Core Protocol v1.0",
6
+ "description": "Dialog Module Core Protocol: Describes the dialog interaction semantics in multi-agent systems, adopting Minimal Protocol Format aligned with OpenAI/Anthropic standards.",
7
+ "type": "object",
8
+ "additionalProperties": false,
9
+ "properties": {
10
+ "meta": {
11
+ "$ref": "common/metadata.schema.json",
12
+ "description": "[PROTOCOL-CORE] MPLP 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
+ "dialog_id": {
38
+ "$ref": "common/identifiers.schema.json",
39
+ "description": "[PROTOCOL-CORE] Global unique identifier for the Dialog."
40
+ },
41
+ "context_id": {
42
+ "$ref": "common/identifiers.schema.json",
43
+ "description": "[PROTOCOL-CORE] Associated Context ID."
44
+ },
45
+ "thread_id": {
46
+ "$ref": "common/identifiers.schema.json",
47
+ "description": "[PROTOCOL-CORE] Dialog thread ID (for multi-turn dialog grouping)."
48
+ },
49
+ "status": {
50
+ "type": "string",
51
+ "description": "[PROTOCOL-CORE] Dialog status.",
52
+ "enum": [
53
+ "active",
54
+ "paused",
55
+ "completed",
56
+ "cancelled"
57
+ ]
58
+ },
59
+ "messages": {
60
+ "type": "array",
61
+ "description": "[PROTOCOL-CORE] Dialog message list (Minimal Protocol Format).",
62
+ "items": {
63
+ "$ref": "#/$defs/dialog_message_core"
64
+ }
65
+ },
66
+ "started_at": {
67
+ "type": "string",
68
+ "format": "date-time",
69
+ "description": "[PROTOCOL-CORE] Dialog start time (ISO 8601)."
70
+ },
71
+ "ended_at": {
72
+ "type": "string",
73
+ "format": "date-time",
74
+ "description": "[PROTOCOL-CORE] Dialog end time (ISO 8601)."
75
+ },
76
+ "trace": {
77
+ "$ref": "common/trace-base.schema.json",
78
+ "description": "[PROTOCOL-CORE] Audit trace reference associated with this dialog."
79
+ },
80
+ "events": {
81
+ "type": "array",
82
+ "description": "[PROTOCOL-CORE] List of key events directly related to this dialog.",
83
+ "items": {
84
+ "$ref": "common/events.schema.json"
85
+ }
86
+ }
87
+ },
88
+ "required": [
89
+ "meta",
90
+ "dialog_id",
91
+ "context_id",
92
+ "status",
93
+ "messages"
94
+ ],
95
+ "$defs": {
96
+ "dialog_core_properties": {
97
+ "type": "object",
98
+ "properties": {
99
+ "meta": {
100
+ "$ref": "common/metadata.schema.json",
101
+ "description": "[PROTOCOL-CORE] MPLP protocol and schema metadata."
102
+ },
103
+ "dialog_id": {
104
+ "$ref": "common/identifiers.schema.json",
105
+ "description": "[PROTOCOL-CORE] Global unique identifier for the Dialog."
106
+ },
107
+ "context_id": {
108
+ "$ref": "common/identifiers.schema.json",
109
+ "description": "[PROTOCOL-CORE] Associated Context ID."
110
+ },
111
+ "thread_id": {
112
+ "$ref": "common/identifiers.schema.json",
113
+ "description": "[PROTOCOL-CORE] Dialog thread ID (for multi-turn dialog grouping)."
114
+ },
115
+ "status": {
116
+ "type": "string",
117
+ "description": "[PROTOCOL-CORE] Dialog status.",
118
+ "enum": [
119
+ "active",
120
+ "paused",
121
+ "completed",
122
+ "cancelled"
123
+ ]
124
+ },
125
+ "messages": {
126
+ "type": "array",
127
+ "description": "[PROTOCOL-CORE] Dialog message list (Minimal Protocol Format).",
128
+ "items": {
129
+ "$ref": "#/$defs/dialog_message_core"
130
+ }
131
+ },
132
+ "started_at": {
133
+ "type": "string",
134
+ "format": "date-time",
135
+ "description": "[PROTOCOL-CORE] Dialog start time (ISO 8601)."
136
+ },
137
+ "ended_at": {
138
+ "type": "string",
139
+ "format": "date-time",
140
+ "description": "[PROTOCOL-CORE] Dialog end time (ISO 8601)."
141
+ },
142
+ "trace": {
143
+ "$ref": "common/trace-base.schema.json",
144
+ "description": "[PROTOCOL-CORE] Audit trace reference associated with this dialog."
145
+ },
146
+ "events": {
147
+ "type": "array",
148
+ "description": "[PROTOCOL-CORE] List of key events directly related to this dialog.",
149
+ "items": {
150
+ "$ref": "common/events.schema.json"
151
+ }
152
+ }
153
+ },
154
+ "required": [
155
+ "meta",
156
+ "dialog_id",
157
+ "context_id",
158
+ "status",
159
+ "messages"
160
+ ]
161
+ },
162
+ "dialog_message_core": {
163
+ "type": "object",
164
+ "description": "Minimal Protocol Format - Aligned with OpenAI/Anthropic standards",
165
+ "additionalProperties": false,
166
+ "properties": {
167
+ "role": {
168
+ "type": "string",
169
+ "description": "Message sender role.",
170
+ "enum": [
171
+ "user",
172
+ "assistant",
173
+ "system",
174
+ "agent"
175
+ ]
176
+ },
177
+ "content": {
178
+ "type": "string",
179
+ "description": "Message content (plain text)."
180
+ },
181
+ "timestamp": {
182
+ "type": "string",
183
+ "format": "date-time",
184
+ "description": "Message timestamp (ISO 8601)."
185
+ },
186
+ "event": {
187
+ "$ref": "common/events.schema.json",
188
+ "description": "Optional L1 Event reference (for deep integration with Trace module)."
189
+ }
190
+ },
191
+ "required": [
192
+ "role",
193
+ "content",
194
+ "timestamp"
195
+ ]
196
+ }
197
+ },
198
+ "x-mplp-meta": {
199
+ "protocolVersion": "1.0.0",
200
+ "frozen": true,
201
+ "freezeDate": "2025-12-03",
202
+ "governance": "MPGC"
203
+ }
204
+ }
@@ -0,0 +1,185 @@
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-extension.schema.json",
5
+ "title": "MPLP Extension Module – Core Protocol v1.0",
6
+ "description": "Extension Module Core Protocol: Describes the minimal required semantics (Core Profile) for the MPLP plugin system, capability injection, and protocol enhancement points.",
7
+ "type": "object",
8
+ "additionalProperties": false,
9
+ "properties": {
10
+ "meta": {
11
+ "$ref": "common/metadata.schema.json",
12
+ "description": "[PROTOCOL-CORE] MPLP 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
+ "extension_id": {
38
+ "$ref": "common/identifiers.schema.json",
39
+ "description": "[PROTOCOL-CORE] Global unique identifier for the Extension."
40
+ },
41
+ "context_id": {
42
+ "$ref": "common/identifiers.schema.json",
43
+ "description": "[PROTOCOL-CORE] Identifier of the Context this Extension belongs to."
44
+ },
45
+ "name": {
46
+ "type": "string",
47
+ "minLength": 1,
48
+ "description": "[PROTOCOL-CORE] Extension name (human-readable)."
49
+ },
50
+ "extension_type": {
51
+ "type": "string",
52
+ "description": "[PROTOCOL-CORE] Extension type classification.",
53
+ "enum": [
54
+ "capability",
55
+ "policy",
56
+ "integration",
57
+ "transformation",
58
+ "validation",
59
+ "other"
60
+ ]
61
+ },
62
+ "version": {
63
+ "type": "string",
64
+ "pattern": "^(0|[1-9]\\d*)\\.(0|[1-9]\\d*)\\.(0|[1-9]\\d*)(?:-((?:0|[1-9]\\d*|\\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\\.(?:0|[1-9]\\d*|\\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\\+([0-9a-zA-Z-]+(?:\\.[0-9a-zA-Z-]+)*))?$",
65
+ "description": "[PROTOCOL-CORE] Extension version (SemVer format)."
66
+ },
67
+ "status": {
68
+ "type": "string",
69
+ "description": "[PROTOCOL-CORE] Extension status.",
70
+ "enum": [
71
+ "registered",
72
+ "active",
73
+ "inactive",
74
+ "deprecated"
75
+ ]
76
+ },
77
+ "config": {
78
+ "type": "object",
79
+ "description": "[PROTOCOL-CORE] Extension configuration object (L2 safe, implementation details excluded).",
80
+ "additionalProperties": true
81
+ },
82
+ "trace": {
83
+ "$ref": "common/trace-base.schema.json",
84
+ "description": "[PROTOCOL-CORE] Trace reference bound to this Extension."
85
+ },
86
+ "events": {
87
+ "type": "array",
88
+ "description": "[PROTOCOL-CORE] List of key events directly related to this Extension.",
89
+ "items": {
90
+ "$ref": "common/events.schema.json"
91
+ }
92
+ }
93
+ },
94
+ "required": [
95
+ "meta",
96
+ "extension_id",
97
+ "context_id",
98
+ "name",
99
+ "extension_type",
100
+ "version",
101
+ "status"
102
+ ],
103
+ "$defs": {
104
+ "extension_core_properties": {
105
+ "type": "object",
106
+ "properties": {
107
+ "meta": {
108
+ "$ref": "common/metadata.schema.json",
109
+ "description": "[PROTOCOL-CORE] MPLP protocol and schema metadata."
110
+ },
111
+ "extension_id": {
112
+ "$ref": "common/identifiers.schema.json",
113
+ "description": "[PROTOCOL-CORE] Global unique identifier for the Extension."
114
+ },
115
+ "context_id": {
116
+ "$ref": "common/identifiers.schema.json",
117
+ "description": "[PROTOCOL-CORE] Identifier of the Context this Extension belongs to."
118
+ },
119
+ "name": {
120
+ "type": "string",
121
+ "minLength": 1,
122
+ "description": "[PROTOCOL-CORE] Extension name (human-readable)."
123
+ },
124
+ "extension_type": {
125
+ "type": "string",
126
+ "description": "[PROTOCOL-CORE] Extension type classification.",
127
+ "enum": [
128
+ "capability",
129
+ "policy",
130
+ "integration",
131
+ "transformation",
132
+ "validation",
133
+ "other"
134
+ ]
135
+ },
136
+ "version": {
137
+ "type": "string",
138
+ "pattern": "^(0|[1-9]\\d*)\\.(0|[1-9]\\d*)\\.(0|[1-9]\\d*)(?:-((?:0|[1-9]\\d*|\\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\\.(?:0|[1-9]\\d*|\\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\\+([0-9a-zA-Z-]+(?:\\.[0-9a-zA-Z-]+)*))?$",
139
+ "description": "[PROTOCOL-CORE] Extension version (SemVer format)."
140
+ },
141
+ "status": {
142
+ "type": "string",
143
+ "description": "[PROTOCOL-CORE] Extension status.",
144
+ "enum": [
145
+ "registered",
146
+ "active",
147
+ "inactive",
148
+ "deprecated"
149
+ ]
150
+ },
151
+ "config": {
152
+ "type": "object",
153
+ "description": "[PROTOCOL-CORE] Extension configuration object (L2 safe, implementation details excluded).",
154
+ "additionalProperties": true
155
+ },
156
+ "trace": {
157
+ "$ref": "common/trace-base.schema.json",
158
+ "description": "[PROTOCOL-CORE] Trace reference bound to this Extension."
159
+ },
160
+ "events": {
161
+ "type": "array",
162
+ "description": "[PROTOCOL-CORE] List of key events directly related to this Extension.",
163
+ "items": {
164
+ "$ref": "common/events.schema.json"
165
+ }
166
+ }
167
+ },
168
+ "required": [
169
+ "meta",
170
+ "extension_id",
171
+ "context_id",
172
+ "name",
173
+ "extension_type",
174
+ "version",
175
+ "status"
176
+ ]
177
+ }
178
+ },
179
+ "x-mplp-meta": {
180
+ "protocolVersion": "1.0.0",
181
+ "frozen": true,
182
+ "freezeDate": "2025-12-03",
183
+ "governance": "MPGC"
184
+ }
185
+ }
@@ -0,0 +1,236 @@
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-network.schema.json",
5
+ "title": "MPLP Network Module – Core Protocol v1.0",
6
+ "description": "Network Module Core Protocol: Describes the minimal required semantics (Core Profile) for the topology and node collection of a multi-agent collaboration network.",
7
+ "type": "object",
8
+ "additionalProperties": false,
9
+ "properties": {
10
+ "meta": {
11
+ "$ref": "common/metadata.schema.json",
12
+ "description": "[PROTOCOL-CORE] MPLP 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
+ "network_id": {
38
+ "$ref": "common/identifiers.schema.json",
39
+ "description": "[PROTOCOL-CORE] Global unique identifier for the network."
40
+ },
41
+ "context_id": {
42
+ "$ref": "common/identifiers.schema.json",
43
+ "description": "[PROTOCOL-CORE] Identifier of the Context this network belongs to."
44
+ },
45
+ "name": {
46
+ "type": "string",
47
+ "minLength": 1,
48
+ "description": "[PROTOCOL-CORE] Network name."
49
+ },
50
+ "description": {
51
+ "type": "string",
52
+ "description": "[PROTOCOL-CORE] Brief description of the network."
53
+ },
54
+ "topology_type": {
55
+ "type": "string",
56
+ "description": "[PROTOCOL-CORE] Network topology type.",
57
+ "enum": [
58
+ "single_node",
59
+ "hub_spoke",
60
+ "mesh",
61
+ "hierarchical",
62
+ "hybrid",
63
+ "other"
64
+ ]
65
+ },
66
+ "status": {
67
+ "type": "string",
68
+ "description": "[PROTOCOL-CORE] Network lifecycle status.",
69
+ "enum": [
70
+ "draft",
71
+ "provisioning",
72
+ "active",
73
+ "degraded",
74
+ "maintenance",
75
+ "retired"
76
+ ]
77
+ },
78
+ "nodes": {
79
+ "type": "array",
80
+ "description": "[PROTOCOL-CORE] Collection of core nodes in the network.",
81
+ "items": {
82
+ "$ref": "#/$defs/network_node_core"
83
+ }
84
+ },
85
+ "trace": {
86
+ "$ref": "common/trace-base.schema.json",
87
+ "description": "[PROTOCOL-CORE] Trace reference associated with this network."
88
+ },
89
+ "events": {
90
+ "type": "array",
91
+ "description": "[PROTOCOL-CORE] List of key events related to this network.",
92
+ "items": {
93
+ "$ref": "common/events.schema.json"
94
+ }
95
+ }
96
+ },
97
+ "required": [
98
+ "meta",
99
+ "network_id",
100
+ "context_id",
101
+ "name",
102
+ "topology_type",
103
+ "status"
104
+ ],
105
+ "$defs": {
106
+ "network_core_properties": {
107
+ "type": "object",
108
+ "properties": {
109
+ "meta": {
110
+ "$ref": "common/metadata.schema.json",
111
+ "description": "[PROTOCOL-CORE] MPLP protocol and schema metadata."
112
+ },
113
+ "network_id": {
114
+ "$ref": "common/identifiers.schema.json",
115
+ "description": "[PROTOCOL-CORE] Global unique identifier for the network."
116
+ },
117
+ "context_id": {
118
+ "$ref": "common/identifiers.schema.json",
119
+ "description": "[PROTOCOL-CORE] Identifier of the Context this network belongs to."
120
+ },
121
+ "name": {
122
+ "type": "string",
123
+ "minLength": 1,
124
+ "description": "[PROTOCOL-CORE] Network name."
125
+ },
126
+ "description": {
127
+ "type": "string",
128
+ "description": "[PROTOCOL-CORE] Brief description of the network."
129
+ },
130
+ "topology_type": {
131
+ "type": "string",
132
+ "description": "[PROTOCOL-CORE] Network topology type.",
133
+ "enum": [
134
+ "single_node",
135
+ "hub_spoke",
136
+ "mesh",
137
+ "hierarchical",
138
+ "hybrid",
139
+ "other"
140
+ ]
141
+ },
142
+ "status": {
143
+ "type": "string",
144
+ "description": "[PROTOCOL-CORE] Network lifecycle status.",
145
+ "enum": [
146
+ "draft",
147
+ "provisioning",
148
+ "active",
149
+ "degraded",
150
+ "maintenance",
151
+ "retired"
152
+ ]
153
+ },
154
+ "nodes": {
155
+ "type": "array",
156
+ "description": "[PROTOCOL-CORE] Collection of core nodes in the network.",
157
+ "items": {
158
+ "$ref": "#/$defs/network_node_core"
159
+ }
160
+ },
161
+ "trace": {
162
+ "$ref": "common/trace-base.schema.json",
163
+ "description": "[PROTOCOL-CORE] Trace reference associated with this network."
164
+ },
165
+ "events": {
166
+ "type": "array",
167
+ "description": "[PROTOCOL-CORE] List of key events related to this network.",
168
+ "items": {
169
+ "$ref": "common/events.schema.json"
170
+ }
171
+ }
172
+ },
173
+ "required": [
174
+ "meta",
175
+ "network_id",
176
+ "context_id",
177
+ "name",
178
+ "topology_type",
179
+ "status"
180
+ ]
181
+ },
182
+ "network_node_core": {
183
+ "type": "object",
184
+ "description": "[PROTOCOL-CORE] Minimal required semantics for a network node.",
185
+ "additionalProperties": false,
186
+ "properties": {
187
+ "node_id": {
188
+ "$ref": "common/identifiers.schema.json",
189
+ "description": "[PROTOCOL-CORE] Node identifier."
190
+ },
191
+ "name": {
192
+ "type": "string",
193
+ "description": "[PROTOCOL-CORE] Node name."
194
+ },
195
+ "kind": {
196
+ "type": "string",
197
+ "description": "[PROTOCOL-CORE] Node type.",
198
+ "enum": [
199
+ "agent",
200
+ "service",
201
+ "database",
202
+ "queue",
203
+ "external",
204
+ "other"
205
+ ]
206
+ },
207
+ "role_id": {
208
+ "type": "string",
209
+ "description": "[PROTOCOL-CORE] Role identifier corresponding to this node (should correspond to role_id in Role module)."
210
+ },
211
+ "status": {
212
+ "type": "string",
213
+ "description": "[PROTOCOL-CORE] Current status of the node.",
214
+ "enum": [
215
+ "active",
216
+ "inactive",
217
+ "degraded",
218
+ "unreachable",
219
+ "retired"
220
+ ]
221
+ }
222
+ },
223
+ "required": [
224
+ "node_id",
225
+ "kind",
226
+ "status"
227
+ ]
228
+ }
229
+ },
230
+ "x-mplp-meta": {
231
+ "protocolVersion": "1.0.0",
232
+ "frozen": true,
233
+ "freezeDate": "2025-12-03",
234
+ "governance": "MPGC"
235
+ }
236
+ }