@mplp/schema 1.0.0
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.
- package/LICENSE.txt +201 -0
- package/dist/index.d.ts +45 -0
- package/dist/index.js +63 -0
- package/package.json +38 -0
- package/schemas/common/common-types.schema.json +49 -0
- package/schemas/common/events.schema.json +66 -0
- package/schemas/common/identifiers.schema.json +13 -0
- package/schemas/common/learning-sample.schema.json +194 -0
- package/schemas/common/metadata.schema.json +113 -0
- package/schemas/common/trace-base.schema.json +43 -0
- package/schemas/events/mplp-event-core.schema.json +58 -0
- package/schemas/events/mplp-graph-update-event.schema.json +58 -0
- package/schemas/events/mplp-map-event.schema.json +147 -0
- package/schemas/events/mplp-pipeline-stage-event.schema.json +56 -0
- package/schemas/events/mplp-runtime-execution-event.schema.json +58 -0
- package/schemas/events/mplp-sa-event.schema.json +109 -0
- package/schemas/integration/mplp-ci-event.schema.json +130 -0
- package/schemas/integration/mplp-file-update-event.schema.json +70 -0
- package/schemas/integration/mplp-git-event.schema.json +98 -0
- package/schemas/integration/mplp-tool-event.schema.json +83 -0
- package/schemas/invariants/integration-invariants.yaml +143 -0
- package/schemas/invariants/learning-invariants.yaml +102 -0
- package/schemas/invariants/map-invariants.yaml +69 -0
- package/schemas/invariants/observability-invariants.yaml +102 -0
- package/schemas/invariants/sa-invariants.yaml +68 -0
- package/schemas/learning/mplp-learning-sample-core.schema.json +94 -0
- package/schemas/learning/mplp-learning-sample-delta.schema.json +137 -0
- package/schemas/learning/mplp-learning-sample-intent.schema.json +119 -0
- package/schemas/mplp-collab.schema.json +243 -0
- package/schemas/mplp-confirm.schema.json +226 -0
- package/schemas/mplp-context.schema.json +246 -0
- package/schemas/mplp-core.schema.json +183 -0
- package/schemas/mplp-dialog.schema.json +198 -0
- package/schemas/mplp-extension.schema.json +179 -0
- package/schemas/mplp-network.schema.json +230 -0
- package/schemas/mplp-plan.schema.json +193 -0
- package/schemas/mplp-role.schema.json +139 -0
- package/schemas/mplp-trace.schema.json +216 -0
|
@@ -0,0 +1,179 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$comment": "MPLP Protocol v1.0.0 — Frozen Specification\nFreeze Date: 2025-12-03\nStatus: FROZEN (no breaking changes permitted)\nGovernance: MPLP Protocol Governance Committee (MPGC)\nCopyright: © 2025 邦士(北京)网络科技有限公司\nLicense: Apache-2.0\nAny normative change requires a new protocol version.",
|
|
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
|
+
}
|
|
@@ -0,0 +1,230 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$comment": "MPLP Protocol v1.0.0 — Frozen Specification\nFreeze Date: 2025-12-03\nStatus: FROZEN (no breaking changes permitted)\nGovernance: MPLP Protocol Governance Committee (MPGC)\nCopyright: © 2025 邦士(北京)网络科技有限公司\nLicense: Apache-2.0\nAny normative change requires a new protocol version.",
|
|
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
|
+
}
|
|
@@ -0,0 +1,193 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$comment": "MPLP Protocol v1.0.0 — Frozen Specification\nFreeze Date: 2025-12-03\nStatus: FROZEN (no breaking changes permitted)\nGovernance: MPLP Protocol Governance Committee (MPGC)\nCopyright: © 2025 邦士(北京)网络科技有限公司\nLicense: Apache-2.0\nAny normative change requires a new protocol version.",
|
|
3
|
+
"$schema": "http://json-schema.org/draft-07/schema#",
|
|
4
|
+
"$id": "https://schemas.mplp.dev/v1.0/mplp-plan.schema.json",
|
|
5
|
+
"title": "MPLP Plan Module – Core Protocol v1.0",
|
|
6
|
+
"description": "Plan Module Core Protocol: Describes the plan objects and their lifecycle minimal required semantics (Core Profile) in multi-agent collaboration.",
|
|
7
|
+
"type": "object",
|
|
8
|
+
"additionalProperties": false,
|
|
9
|
+
"properties": {
|
|
10
|
+
"meta": {
|
|
11
|
+
"$ref": "common/metadata.schema.json",
|
|
12
|
+
"description": "[PROTOCOL-CORE] MPLP protocol schema metadata (version, source, cross-cutting tags, etc.)."
|
|
13
|
+
},
|
|
14
|
+
"plan_id": {
|
|
15
|
+
"$ref": "common/identifiers.schema.json",
|
|
16
|
+
"description": "[PROTOCOL-CORE] Global unique identifier for the Plan."
|
|
17
|
+
},
|
|
18
|
+
"context_id": {
|
|
19
|
+
"$ref": "common/identifiers.schema.json",
|
|
20
|
+
"description": "[PROTOCOL-CORE] Identifier of the Context this Plan belongs to."
|
|
21
|
+
},
|
|
22
|
+
"title": {
|
|
23
|
+
"type": "string",
|
|
24
|
+
"minLength": 1,
|
|
25
|
+
"description": "[PROTOCOL-CORE] Plan title (brief description for humans and Agents)."
|
|
26
|
+
},
|
|
27
|
+
"objective": {
|
|
28
|
+
"type": "string",
|
|
29
|
+
"minLength": 1,
|
|
30
|
+
"description": "[PROTOCOL-CORE] Description of the objective to be achieved by the Plan."
|
|
31
|
+
},
|
|
32
|
+
"status": {
|
|
33
|
+
"type": "string",
|
|
34
|
+
"description": "[PROTOCOL-CORE] Status of the Plan in its lifecycle.",
|
|
35
|
+
"enum": [
|
|
36
|
+
"draft",
|
|
37
|
+
"proposed",
|
|
38
|
+
"approved",
|
|
39
|
+
"in_progress",
|
|
40
|
+
"completed",
|
|
41
|
+
"cancelled",
|
|
42
|
+
"failed"
|
|
43
|
+
]
|
|
44
|
+
},
|
|
45
|
+
"steps": {
|
|
46
|
+
"type": "array",
|
|
47
|
+
"description": "[PROTOCOL-CORE] List of core steps decomposed from the Plan.",
|
|
48
|
+
"minItems": 1,
|
|
49
|
+
"items": {
|
|
50
|
+
"$ref": "#/$defs/plan_step_core"
|
|
51
|
+
}
|
|
52
|
+
},
|
|
53
|
+
"trace": {
|
|
54
|
+
"$ref": "common/trace-base.schema.json",
|
|
55
|
+
"description": "[PROTOCOL-CORE] Main execution trace reference associated with this Plan."
|
|
56
|
+
},
|
|
57
|
+
"events": {
|
|
58
|
+
"type": "array",
|
|
59
|
+
"description": "[PROTOCOL-CORE] List of key events directly associated with this Plan (changes, approvals, status transitions, etc.).",
|
|
60
|
+
"items": {
|
|
61
|
+
"$ref": "common/events.schema.json"
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
},
|
|
65
|
+
"required": [
|
|
66
|
+
"meta",
|
|
67
|
+
"plan_id",
|
|
68
|
+
"context_id",
|
|
69
|
+
"title",
|
|
70
|
+
"objective",
|
|
71
|
+
"status",
|
|
72
|
+
"steps"
|
|
73
|
+
],
|
|
74
|
+
"$defs": {
|
|
75
|
+
"plan_core_properties": {
|
|
76
|
+
"type": "object",
|
|
77
|
+
"properties": {
|
|
78
|
+
"meta": {
|
|
79
|
+
"$ref": "common/metadata.schema.json",
|
|
80
|
+
"description": "[PROTOCOL-CORE] MPLP protocol schema metadata (version, source, cross-cutting tags, etc.)."
|
|
81
|
+
},
|
|
82
|
+
"plan_id": {
|
|
83
|
+
"$ref": "common/identifiers.schema.json",
|
|
84
|
+
"description": "[PROTOCOL-CORE] Global unique identifier for the Plan."
|
|
85
|
+
},
|
|
86
|
+
"context_id": {
|
|
87
|
+
"$ref": "common/identifiers.schema.json",
|
|
88
|
+
"description": "[PROTOCOL-CORE] Identifier of the Context this Plan belongs to."
|
|
89
|
+
},
|
|
90
|
+
"title": {
|
|
91
|
+
"type": "string",
|
|
92
|
+
"minLength": 1,
|
|
93
|
+
"description": "[PROTOCOL-CORE] Plan title (brief description for humans and Agents)."
|
|
94
|
+
},
|
|
95
|
+
"objective": {
|
|
96
|
+
"type": "string",
|
|
97
|
+
"minLength": 1,
|
|
98
|
+
"description": "[PROTOCOL-CORE] Description of the objective to be achieved by the Plan."
|
|
99
|
+
},
|
|
100
|
+
"status": {
|
|
101
|
+
"type": "string",
|
|
102
|
+
"description": "[PROTOCOL-CORE] Status of the Plan in its lifecycle.",
|
|
103
|
+
"enum": [
|
|
104
|
+
"draft",
|
|
105
|
+
"proposed",
|
|
106
|
+
"approved",
|
|
107
|
+
"in_progress",
|
|
108
|
+
"completed",
|
|
109
|
+
"cancelled",
|
|
110
|
+
"failed"
|
|
111
|
+
]
|
|
112
|
+
},
|
|
113
|
+
"steps": {
|
|
114
|
+
"type": "array",
|
|
115
|
+
"description": "[PROTOCOL-CORE] List of core steps decomposed from the Plan.",
|
|
116
|
+
"minItems": 1,
|
|
117
|
+
"items": {
|
|
118
|
+
"$ref": "#/$defs/plan_step_core"
|
|
119
|
+
}
|
|
120
|
+
},
|
|
121
|
+
"trace": {
|
|
122
|
+
"$ref": "common/trace-base.schema.json",
|
|
123
|
+
"description": "[PROTOCOL-CORE] Main execution trace reference associated with this Plan."
|
|
124
|
+
},
|
|
125
|
+
"events": {
|
|
126
|
+
"type": "array",
|
|
127
|
+
"description": "[PROTOCOL-CORE] List of key events directly associated with this Plan (changes, approvals, status transitions, etc.).",
|
|
128
|
+
"items": {
|
|
129
|
+
"$ref": "common/events.schema.json"
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
},
|
|
133
|
+
"required": [
|
|
134
|
+
"meta",
|
|
135
|
+
"plan_id",
|
|
136
|
+
"context_id",
|
|
137
|
+
"title",
|
|
138
|
+
"objective",
|
|
139
|
+
"status",
|
|
140
|
+
"steps"
|
|
141
|
+
]
|
|
142
|
+
},
|
|
143
|
+
"plan_step_core": {
|
|
144
|
+
"type": "object",
|
|
145
|
+
"description": "[PROTOCOL-CORE] Minimal required semantics for a plan step (excluding execution engine, scheduling policy implementation details).",
|
|
146
|
+
"additionalProperties": false,
|
|
147
|
+
"properties": {
|
|
148
|
+
"step_id": {
|
|
149
|
+
"$ref": "common/identifiers.schema.json",
|
|
150
|
+
"description": "[PROTOCOL-CORE] Global unique identifier for the step."
|
|
151
|
+
},
|
|
152
|
+
"description": {
|
|
153
|
+
"type": "string",
|
|
154
|
+
"minLength": 1,
|
|
155
|
+
"description": "[PROTOCOL-CORE] Content of the work to be completed in the step."
|
|
156
|
+
},
|
|
157
|
+
"status": {
|
|
158
|
+
"type": "string",
|
|
159
|
+
"description": "[PROTOCOL-CORE] Current status of the step.",
|
|
160
|
+
"enum": [
|
|
161
|
+
"pending",
|
|
162
|
+
"in_progress",
|
|
163
|
+
"completed",
|
|
164
|
+
"blocked",
|
|
165
|
+
"skipped",
|
|
166
|
+
"failed"
|
|
167
|
+
]
|
|
168
|
+
},
|
|
169
|
+
"dependencies": {
|
|
170
|
+
"type": "array",
|
|
171
|
+
"description": "[PROTOCOL-CORE] List of other step IDs that this step depends on.",
|
|
172
|
+
"items": {
|
|
173
|
+
"$ref": "common/identifiers.schema.json"
|
|
174
|
+
}
|
|
175
|
+
},
|
|
176
|
+
"agent_role": {
|
|
177
|
+
"type": "string",
|
|
178
|
+
"description": "[PROTOCOL-CORE] Identifier of the role responsible for this step (should correspond to role_id in Role module)."
|
|
179
|
+
},
|
|
180
|
+
"order_index": {
|
|
181
|
+
"type": "integer",
|
|
182
|
+
"minimum": 0,
|
|
183
|
+
"description": "[PROTOCOL-CORE] Sort index in the current Plan, used for defining execution order or display order."
|
|
184
|
+
}
|
|
185
|
+
},
|
|
186
|
+
"required": [
|
|
187
|
+
"step_id",
|
|
188
|
+
"description",
|
|
189
|
+
"status"
|
|
190
|
+
]
|
|
191
|
+
}
|
|
192
|
+
}
|
|
193
|
+
}
|