@mplp/schema 1.0.4 → 1.0.6
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 +17 -0
- package/LICENSE.txt +201 -201
- package/README.md +25 -7
- package/dist/index.d.ts +1 -0
- package/dist/index.js +15 -0
- package/dist/kernel-duties.d.ts +9 -0
- package/dist/kernel-duties.js +19 -0
- package/package.json +17 -7
- package/schemas/common/common-types.schema.json +49 -49
- package/schemas/common/events.schema.json +66 -66
- package/schemas/common/identifiers.schema.json +13 -13
- package/schemas/common/learning-sample.schema.json +194 -194
- package/schemas/common/metadata.schema.json +115 -113
- package/schemas/common/trace-base.schema.json +43 -43
- package/schemas/events/mplp-event-core.schema.json +58 -58
- package/schemas/events/mplp-graph-update-event.schema.json +58 -58
- package/schemas/events/mplp-map-event.schema.json +147 -147
- package/schemas/events/mplp-pipeline-stage-event.schema.json +56 -56
- package/schemas/events/mplp-runtime-execution-event.schema.json +58 -58
- package/schemas/events/mplp-sa-event.schema.json +109 -109
- package/schemas/integration/mplp-ci-event.schema.json +130 -130
- package/schemas/integration/mplp-file-update-event.schema.json +70 -70
- package/schemas/integration/mplp-git-event.schema.json +98 -98
- package/schemas/integration/mplp-tool-event.schema.json +83 -83
- package/schemas/invariants/integration-invariants.yaml +139 -147
- package/schemas/invariants/learning-invariants.yaml +98 -106
- package/schemas/invariants/map-invariants.yaml +65 -73
- package/schemas/invariants/observability-invariants.yaml +98 -106
- package/schemas/invariants/sa-invariants.yaml +64 -72
- package/schemas/kernel-duties.json +18 -0
- package/schemas/learning/mplp-learning-sample-core.schema.json +94 -94
- package/schemas/learning/mplp-learning-sample-delta.schema.json +137 -137
- package/schemas/learning/mplp-learning-sample-intent.schema.json +119 -119
- package/schemas/mplp-collab.schema.json +243 -243
- package/schemas/mplp-confirm.schema.json +226 -226
- package/schemas/mplp-context.schema.json +246 -246
- package/schemas/mplp-core.schema.json +183 -183
- package/schemas/mplp-dialog.schema.json +198 -198
- package/schemas/mplp-extension.schema.json +179 -179
- package/schemas/mplp-network.schema.json +230 -230
- package/schemas/mplp-plan.schema.json +193 -193
- package/schemas/mplp-role.schema.json +139 -139
- package/schemas/mplp-trace.schema.json +216 -216
|
@@ -1,49 +1,49 @@
|
|
|
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: ©
|
|
3
|
-
"$id": "https://schemas.mplp.dev/v1.0/common/common-types.schema.json",
|
|
4
|
-
"$schema": "http://json-schema.org/draft-07/schema#",
|
|
5
|
-
"title": "MPLP Common Types",
|
|
6
|
-
"description": "Common type definitions used across MPLP modules to ensure consistency and reduce duplication.",
|
|
7
|
-
"definitions": {
|
|
8
|
-
"MplpId": {
|
|
9
|
-
"$ref": "identifiers.schema.json"
|
|
10
|
-
},
|
|
11
|
-
"Ref": {
|
|
12
|
-
"type": "object",
|
|
13
|
-
"description": "A standard reference to another MPLP object.",
|
|
14
|
-
"properties": {
|
|
15
|
-
"id": {
|
|
16
|
-
"$ref": "#/definitions/MplpId"
|
|
17
|
-
},
|
|
18
|
-
"module": {
|
|
19
|
-
"type": "string",
|
|
20
|
-
"enum": [
|
|
21
|
-
"context",
|
|
22
|
-
"plan",
|
|
23
|
-
"confirm",
|
|
24
|
-
"trace",
|
|
25
|
-
"role",
|
|
26
|
-
"extension",
|
|
27
|
-
"dialog",
|
|
28
|
-
"collab",
|
|
29
|
-
"core",
|
|
30
|
-
"network"
|
|
31
|
-
],
|
|
32
|
-
"description": "The module name of the referenced object."
|
|
33
|
-
},
|
|
34
|
-
"description": {
|
|
35
|
-
"type": "string",
|
|
36
|
-
"description": "Optional description of the reference relationship."
|
|
37
|
-
}
|
|
38
|
-
},
|
|
39
|
-
"required": [
|
|
40
|
-
"id",
|
|
41
|
-
"module"
|
|
42
|
-
],
|
|
43
|
-
"additionalProperties": false
|
|
44
|
-
},
|
|
45
|
-
"BaseMeta": {
|
|
46
|
-
"$ref": "metadata.schema.json"
|
|
47
|
-
}
|
|
48
|
-
}
|
|
49
|
-
}
|
|
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: © 2026 Bangshi Beijing Network Technology Limited Company\nLicense: Apache-2.0\nAny normative change requires a new protocol version.",
|
|
3
|
+
"$id": "https://schemas.mplp.dev/v1.0/common/common-types.schema.json",
|
|
4
|
+
"$schema": "http://json-schema.org/draft-07/schema#",
|
|
5
|
+
"title": "MPLP Common Types",
|
|
6
|
+
"description": "Common type definitions used across MPLP modules to ensure consistency and reduce duplication.",
|
|
7
|
+
"definitions": {
|
|
8
|
+
"MplpId": {
|
|
9
|
+
"$ref": "identifiers.schema.json"
|
|
10
|
+
},
|
|
11
|
+
"Ref": {
|
|
12
|
+
"type": "object",
|
|
13
|
+
"description": "A standard reference to another MPLP object.",
|
|
14
|
+
"properties": {
|
|
15
|
+
"id": {
|
|
16
|
+
"$ref": "#/definitions/MplpId"
|
|
17
|
+
},
|
|
18
|
+
"module": {
|
|
19
|
+
"type": "string",
|
|
20
|
+
"enum": [
|
|
21
|
+
"context",
|
|
22
|
+
"plan",
|
|
23
|
+
"confirm",
|
|
24
|
+
"trace",
|
|
25
|
+
"role",
|
|
26
|
+
"extension",
|
|
27
|
+
"dialog",
|
|
28
|
+
"collab",
|
|
29
|
+
"core",
|
|
30
|
+
"network"
|
|
31
|
+
],
|
|
32
|
+
"description": "The module name of the referenced object."
|
|
33
|
+
},
|
|
34
|
+
"description": {
|
|
35
|
+
"type": "string",
|
|
36
|
+
"description": "Optional description of the reference relationship."
|
|
37
|
+
}
|
|
38
|
+
},
|
|
39
|
+
"required": [
|
|
40
|
+
"id",
|
|
41
|
+
"module"
|
|
42
|
+
],
|
|
43
|
+
"additionalProperties": false
|
|
44
|
+
},
|
|
45
|
+
"BaseMeta": {
|
|
46
|
+
"$ref": "metadata.schema.json"
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
}
|
|
@@ -1,66 +1,66 @@
|
|
|
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: ©
|
|
3
|
-
"$id": "https://schemas.mplp.dev/v1.0/common/events.schema.json",
|
|
4
|
-
"$schema": "http://json-schema.org/draft-07/schema#",
|
|
5
|
-
"title": "MPLP Base Event",
|
|
6
|
-
"description": "Base model for all event structures in MPLP. Designed based on CloudEvents v1.0 core fields, providing unified event identification, type, source, and timestamp. ExecutionEvent, StateTransitionEvent, etc., are extensions of this.",
|
|
7
|
-
"type": "object",
|
|
8
|
-
"properties": {
|
|
9
|
-
"event_id": {
|
|
10
|
-
"$ref": "identifiers.schema.json",
|
|
11
|
-
"description": "Unique identifier for the event (UUID v4)."
|
|
12
|
-
},
|
|
13
|
-
"event_type": {
|
|
14
|
-
"type": "string",
|
|
15
|
-
"description": "Event type identifier, e.g., execution.started / vsl.transition.applied / plan.created. Uses dot-separated namespace format.",
|
|
16
|
-
"pattern": "^[a-z][a-z0-9]*(?:\\.[a-z][a-z0-9]*)*$",
|
|
17
|
-
"examples": [
|
|
18
|
-
"execution.started",
|
|
19
|
-
"execution.completed",
|
|
20
|
-
"vsl.transition.applied",
|
|
21
|
-
"plan.created"
|
|
22
|
-
]
|
|
23
|
-
},
|
|
24
|
-
"source": {
|
|
25
|
-
"type": "string",
|
|
26
|
-
"description": "Event source, typically a module or component identifier. Can be a module name (e.g., 'context') or component path (e.g., 'runtime.ael').",
|
|
27
|
-
"examples": [
|
|
28
|
-
"context",
|
|
29
|
-
"plan",
|
|
30
|
-
"runtime.ael",
|
|
31
|
-
"runtime.vsl"
|
|
32
|
-
]
|
|
33
|
-
},
|
|
34
|
-
"timestamp": {
|
|
35
|
-
"type": "string",
|
|
36
|
-
"format": "date-time",
|
|
37
|
-
"description": "Event occurrence time (ISO 8601 format).",
|
|
38
|
-
"examples": [
|
|
39
|
-
"2025-01-28T15:30:00.000Z"
|
|
40
|
-
]
|
|
41
|
-
},
|
|
42
|
-
"trace_id": {
|
|
43
|
-
"description": "Optional trace ID to associate the event with a specific Trace.",
|
|
44
|
-
"$ref": "identifiers.schema.json"
|
|
45
|
-
},
|
|
46
|
-
"data": {
|
|
47
|
-
"anyOf": [
|
|
48
|
-
{
|
|
49
|
-
"type": "object",
|
|
50
|
-
"description": "Business data related to the event, constrained by upper-layer structures. Can be any JSON object or null."
|
|
51
|
-
},
|
|
52
|
-
{
|
|
53
|
-
"type": "null",
|
|
54
|
-
"description": "Business data related to the event, constrained by upper-layer structures. Can be any JSON object or null."
|
|
55
|
-
}
|
|
56
|
-
]
|
|
57
|
-
}
|
|
58
|
-
},
|
|
59
|
-
"required": [
|
|
60
|
-
"event_id",
|
|
61
|
-
"event_type",
|
|
62
|
-
"source",
|
|
63
|
-
"timestamp"
|
|
64
|
-
],
|
|
65
|
-
"additionalProperties": false
|
|
66
|
-
}
|
|
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: © 2026 Bangshi Beijing Network Technology Limited Company\nLicense: Apache-2.0\nAny normative change requires a new protocol version.",
|
|
3
|
+
"$id": "https://schemas.mplp.dev/v1.0/common/events.schema.json",
|
|
4
|
+
"$schema": "http://json-schema.org/draft-07/schema#",
|
|
5
|
+
"title": "MPLP Base Event",
|
|
6
|
+
"description": "Base model for all event structures in MPLP. Designed based on CloudEvents v1.0 core fields, providing unified event identification, type, source, and timestamp. ExecutionEvent, StateTransitionEvent, etc., are extensions of this.",
|
|
7
|
+
"type": "object",
|
|
8
|
+
"properties": {
|
|
9
|
+
"event_id": {
|
|
10
|
+
"$ref": "identifiers.schema.json",
|
|
11
|
+
"description": "Unique identifier for the event (UUID v4)."
|
|
12
|
+
},
|
|
13
|
+
"event_type": {
|
|
14
|
+
"type": "string",
|
|
15
|
+
"description": "Event type identifier, e.g., execution.started / vsl.transition.applied / plan.created. Uses dot-separated namespace format.",
|
|
16
|
+
"pattern": "^[a-z][a-z0-9]*(?:\\.[a-z][a-z0-9]*)*$",
|
|
17
|
+
"examples": [
|
|
18
|
+
"execution.started",
|
|
19
|
+
"execution.completed",
|
|
20
|
+
"vsl.transition.applied",
|
|
21
|
+
"plan.created"
|
|
22
|
+
]
|
|
23
|
+
},
|
|
24
|
+
"source": {
|
|
25
|
+
"type": "string",
|
|
26
|
+
"description": "Event source, typically a module or component identifier. Can be a module name (e.g., 'context') or component path (e.g., 'runtime.ael').",
|
|
27
|
+
"examples": [
|
|
28
|
+
"context",
|
|
29
|
+
"plan",
|
|
30
|
+
"runtime.ael",
|
|
31
|
+
"runtime.vsl"
|
|
32
|
+
]
|
|
33
|
+
},
|
|
34
|
+
"timestamp": {
|
|
35
|
+
"type": "string",
|
|
36
|
+
"format": "date-time",
|
|
37
|
+
"description": "Event occurrence time (ISO 8601 format).",
|
|
38
|
+
"examples": [
|
|
39
|
+
"2025-01-28T15:30:00.000Z"
|
|
40
|
+
]
|
|
41
|
+
},
|
|
42
|
+
"trace_id": {
|
|
43
|
+
"description": "Optional trace ID to associate the event with a specific Trace.",
|
|
44
|
+
"$ref": "identifiers.schema.json"
|
|
45
|
+
},
|
|
46
|
+
"data": {
|
|
47
|
+
"anyOf": [
|
|
48
|
+
{
|
|
49
|
+
"type": "object",
|
|
50
|
+
"description": "Business data related to the event, constrained by upper-layer structures. Can be any JSON object or null."
|
|
51
|
+
},
|
|
52
|
+
{
|
|
53
|
+
"type": "null",
|
|
54
|
+
"description": "Business data related to the event, constrained by upper-layer structures. Can be any JSON object or null."
|
|
55
|
+
}
|
|
56
|
+
]
|
|
57
|
+
}
|
|
58
|
+
},
|
|
59
|
+
"required": [
|
|
60
|
+
"event_id",
|
|
61
|
+
"event_type",
|
|
62
|
+
"source",
|
|
63
|
+
"timestamp"
|
|
64
|
+
],
|
|
65
|
+
"additionalProperties": false
|
|
66
|
+
}
|
|
@@ -1,13 +1,13 @@
|
|
|
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: ©
|
|
3
|
-
"$id": "https://schemas.mplp.dev/v1.0/common/identifiers.schema.json",
|
|
4
|
-
"$schema": "http://json-schema.org/draft-07/schema#",
|
|
5
|
-
"title": "MPLP Identifier",
|
|
6
|
-
"description": "Unified identifier type used for contextId/planId/traceId/eventId, etc. Uses UUID v4 standard to ensure global uniqueness and collision-free generation in distributed environments.",
|
|
7
|
-
"type": "string",
|
|
8
|
-
"pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$",
|
|
9
|
-
"examples": [
|
|
10
|
-
"123e4567-e89b-12d3-a456-426614174000",
|
|
11
|
-
"550e8400-e29b-41d4-a716-446655440000"
|
|
12
|
-
]
|
|
13
|
-
}
|
|
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: © 2026 Bangshi Beijing Network Technology Limited Company\nLicense: Apache-2.0\nAny normative change requires a new protocol version.",
|
|
3
|
+
"$id": "https://schemas.mplp.dev/v1.0/common/identifiers.schema.json",
|
|
4
|
+
"$schema": "http://json-schema.org/draft-07/schema#",
|
|
5
|
+
"title": "MPLP Identifier",
|
|
6
|
+
"description": "Unified identifier type used for contextId/planId/traceId/eventId, etc. Uses UUID v4 standard to ensure global uniqueness and collision-free generation in distributed environments.",
|
|
7
|
+
"type": "string",
|
|
8
|
+
"pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$",
|
|
9
|
+
"examples": [
|
|
10
|
+
"123e4567-e89b-12d3-a456-426614174000",
|
|
11
|
+
"550e8400-e29b-41d4-a716-446655440000"
|
|
12
|
+
]
|
|
13
|
+
}
|
|
@@ -1,194 +1,194 @@
|
|
|
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: ©
|
|
3
|
-
"$schema": "http://json-schema.org/draft-07/schema#",
|
|
4
|
-
"$id": "https://schemas.mplp.dev/v1.0/common/learning-sample.schema.json",
|
|
5
|
-
"title": "MPLP Learning Sample – Schema v2.0",
|
|
6
|
-
"description": "Structured learning sample for MPLP v1.0 runtimes.",
|
|
7
|
-
"type": "object",
|
|
8
|
-
"additionalProperties": false,
|
|
9
|
-
"properties": {
|
|
10
|
-
"sample_id": {
|
|
11
|
-
"$ref": "identifiers.schema.json",
|
|
12
|
-
"description": "Unique identifier for this learning sample."
|
|
13
|
-
},
|
|
14
|
-
"project_id": {
|
|
15
|
-
"type": "string",
|
|
16
|
-
"description": "Project identifier this sample belongs to."
|
|
17
|
-
},
|
|
18
|
-
"intent_before": {
|
|
19
|
-
"type": "object",
|
|
20
|
-
"description": "Structured representation of the original intent (can reference Context/Plan).",
|
|
21
|
-
"additionalProperties": true
|
|
22
|
-
},
|
|
23
|
-
"plan": {
|
|
24
|
-
"type": "object",
|
|
25
|
-
"description": "Structured representation of the plan used (can reference Plan module).",
|
|
26
|
-
"additionalProperties": true
|
|
27
|
-
},
|
|
28
|
-
"delta_intents": {
|
|
29
|
-
"type": "array",
|
|
30
|
-
"description": "Array of delta intents proposed/applied.",
|
|
31
|
-
"items": {
|
|
32
|
-
"type": "object",
|
|
33
|
-
"additionalProperties": true
|
|
34
|
-
}
|
|
35
|
-
},
|
|
36
|
-
"graph_before": {
|
|
37
|
-
"type": "object",
|
|
38
|
-
"description": "Optional snapshot or summary of the knowledge graph before the change.",
|
|
39
|
-
"additionalProperties": true
|
|
40
|
-
},
|
|
41
|
-
"graph_after": {
|
|
42
|
-
"type": "object",
|
|
43
|
-
"description": "Optional snapshot or summary of the knowledge graph after the change.",
|
|
44
|
-
"additionalProperties": true
|
|
45
|
-
},
|
|
46
|
-
"pipeline_path": {
|
|
47
|
-
"type": "array",
|
|
48
|
-
"description": "Sequence of pipeline stages traversed.",
|
|
49
|
-
"items": {
|
|
50
|
-
"type": "string"
|
|
51
|
-
}
|
|
52
|
-
},
|
|
53
|
-
"success_flag": {
|
|
54
|
-
"type": "boolean",
|
|
55
|
-
"description": "Whether the action/intent succeeded."
|
|
56
|
-
},
|
|
57
|
-
"error_info": {
|
|
58
|
-
"type": "object",
|
|
59
|
-
"description": "Error details if action failed.",
|
|
60
|
-
"additionalProperties": false,
|
|
61
|
-
"properties": {
|
|
62
|
-
"error_code": {
|
|
63
|
-
"type": "string"
|
|
64
|
-
},
|
|
65
|
-
"error_message": {
|
|
66
|
-
"type": "string"
|
|
67
|
-
},
|
|
68
|
-
"stack_trace": {
|
|
69
|
-
"type": "string"
|
|
70
|
-
}
|
|
71
|
-
}
|
|
72
|
-
},
|
|
73
|
-
"token_usage": {
|
|
74
|
-
"type": "object",
|
|
75
|
-
"description": "LLM token consumption metrics.",
|
|
76
|
-
"additionalProperties": false,
|
|
77
|
-
"properties": {
|
|
78
|
-
"total_tokens": {
|
|
79
|
-
"type": "number",
|
|
80
|
-
"minimum": 0
|
|
81
|
-
},
|
|
82
|
-
"prompt_tokens": {
|
|
83
|
-
"type": "number",
|
|
84
|
-
"minimum": 0
|
|
85
|
-
},
|
|
86
|
-
"completion_tokens": {
|
|
87
|
-
"type": "number",
|
|
88
|
-
"minimum": 0
|
|
89
|
-
},
|
|
90
|
-
"by_agent": {
|
|
91
|
-
"type": "array",
|
|
92
|
-
"description": "Token usage breakdown by agent.",
|
|
93
|
-
"items": {
|
|
94
|
-
"type": "object",
|
|
95
|
-
"additionalProperties": false,
|
|
96
|
-
"properties": {
|
|
97
|
-
"agent_id": {
|
|
98
|
-
"type": "string"
|
|
99
|
-
},
|
|
100
|
-
"role": {
|
|
101
|
-
"type": "string"
|
|
102
|
-
},
|
|
103
|
-
"tokens": {
|
|
104
|
-
"type": "number",
|
|
105
|
-
"minimum": 0
|
|
106
|
-
}
|
|
107
|
-
},
|
|
108
|
-
"required": [
|
|
109
|
-
"agent_id",
|
|
110
|
-
"tokens"
|
|
111
|
-
]
|
|
112
|
-
}
|
|
113
|
-
}
|
|
114
|
-
}
|
|
115
|
-
},
|
|
116
|
-
"execution_time_ms": {
|
|
117
|
-
"type": "number",
|
|
118
|
-
"description": "Execution time in milliseconds.",
|
|
119
|
-
"minimum": 0
|
|
120
|
-
},
|
|
121
|
-
"impact_score": {
|
|
122
|
-
"type": "number",
|
|
123
|
-
"description": "Impact score (0.0-1.0).",
|
|
124
|
-
"minimum": 0,
|
|
125
|
-
"maximum": 1
|
|
126
|
-
},
|
|
127
|
-
"user_feedback": {
|
|
128
|
-
"type": "object",
|
|
129
|
-
"description": "Human feedback on the action/result.",
|
|
130
|
-
"additionalProperties": false,
|
|
131
|
-
"properties": {
|
|
132
|
-
"decision": {
|
|
133
|
-
"type": "string",
|
|
134
|
-
"enum": [
|
|
135
|
-
"approve",
|
|
136
|
-
"reject",
|
|
137
|
-
"override",
|
|
138
|
-
"unknown"
|
|
139
|
-
]
|
|
140
|
-
},
|
|
141
|
-
"comment": {
|
|
142
|
-
"type": "string"
|
|
143
|
-
},
|
|
144
|
-
"rating": {
|
|
145
|
-
"type": "number",
|
|
146
|
-
"minimum": 0,
|
|
147
|
-
"maximum": 5
|
|
148
|
-
}
|
|
149
|
-
}
|
|
150
|
-
},
|
|
151
|
-
"governance_decisions": {
|
|
152
|
-
"type": "array",
|
|
153
|
-
"description": "Governance rules evaluated during execution.",
|
|
154
|
-
"items": {
|
|
155
|
-
"type": "object",
|
|
156
|
-
"additionalProperties": true
|
|
157
|
-
}
|
|
158
|
-
},
|
|
159
|
-
"timestamps": {
|
|
160
|
-
"type": "object",
|
|
161
|
-
"description": "Execution timeline.",
|
|
162
|
-
"additionalProperties": false,
|
|
163
|
-
"properties": {
|
|
164
|
-
"started_at": {
|
|
165
|
-
"type": "string",
|
|
166
|
-
"format": "date-time"
|
|
167
|
-
},
|
|
168
|
-
"completed_at": {
|
|
169
|
-
"type": "string",
|
|
170
|
-
"format": "date-time"
|
|
171
|
-
}
|
|
172
|
-
},
|
|
173
|
-
"required": [
|
|
174
|
-
"started_at"
|
|
175
|
-
]
|
|
176
|
-
},
|
|
177
|
-
"metadata": {
|
|
178
|
-
"type": "object",
|
|
179
|
-
"description": "Additional metadata (extensibility point).",
|
|
180
|
-
"additionalProperties": true
|
|
181
|
-
},
|
|
182
|
-
"vendor_extensions": {
|
|
183
|
-
"type": "object",
|
|
184
|
-
"description": "Optional vendor-specific extensions. Structure is implementation-defined and MUST NOT conflict with core protocol fields.",
|
|
185
|
-
"additionalProperties": true
|
|
186
|
-
}
|
|
187
|
-
},
|
|
188
|
-
"required": [
|
|
189
|
-
"sample_id",
|
|
190
|
-
"project_id",
|
|
191
|
-
"success_flag",
|
|
192
|
-
"timestamps"
|
|
193
|
-
]
|
|
194
|
-
}
|
|
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: © 2026 Bangshi Beijing Network Technology Limited Company\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/common/learning-sample.schema.json",
|
|
5
|
+
"title": "MPLP Learning Sample – Schema v2.0",
|
|
6
|
+
"description": "Structured learning sample for MPLP v1.0 runtimes.",
|
|
7
|
+
"type": "object",
|
|
8
|
+
"additionalProperties": false,
|
|
9
|
+
"properties": {
|
|
10
|
+
"sample_id": {
|
|
11
|
+
"$ref": "identifiers.schema.json",
|
|
12
|
+
"description": "Unique identifier for this learning sample."
|
|
13
|
+
},
|
|
14
|
+
"project_id": {
|
|
15
|
+
"type": "string",
|
|
16
|
+
"description": "Project identifier this sample belongs to."
|
|
17
|
+
},
|
|
18
|
+
"intent_before": {
|
|
19
|
+
"type": "object",
|
|
20
|
+
"description": "Structured representation of the original intent (can reference Context/Plan).",
|
|
21
|
+
"additionalProperties": true
|
|
22
|
+
},
|
|
23
|
+
"plan": {
|
|
24
|
+
"type": "object",
|
|
25
|
+
"description": "Structured representation of the plan used (can reference Plan module).",
|
|
26
|
+
"additionalProperties": true
|
|
27
|
+
},
|
|
28
|
+
"delta_intents": {
|
|
29
|
+
"type": "array",
|
|
30
|
+
"description": "Array of delta intents proposed/applied.",
|
|
31
|
+
"items": {
|
|
32
|
+
"type": "object",
|
|
33
|
+
"additionalProperties": true
|
|
34
|
+
}
|
|
35
|
+
},
|
|
36
|
+
"graph_before": {
|
|
37
|
+
"type": "object",
|
|
38
|
+
"description": "Optional snapshot or summary of the knowledge graph before the change.",
|
|
39
|
+
"additionalProperties": true
|
|
40
|
+
},
|
|
41
|
+
"graph_after": {
|
|
42
|
+
"type": "object",
|
|
43
|
+
"description": "Optional snapshot or summary of the knowledge graph after the change.",
|
|
44
|
+
"additionalProperties": true
|
|
45
|
+
},
|
|
46
|
+
"pipeline_path": {
|
|
47
|
+
"type": "array",
|
|
48
|
+
"description": "Sequence of pipeline stages traversed.",
|
|
49
|
+
"items": {
|
|
50
|
+
"type": "string"
|
|
51
|
+
}
|
|
52
|
+
},
|
|
53
|
+
"success_flag": {
|
|
54
|
+
"type": "boolean",
|
|
55
|
+
"description": "Whether the action/intent succeeded."
|
|
56
|
+
},
|
|
57
|
+
"error_info": {
|
|
58
|
+
"type": "object",
|
|
59
|
+
"description": "Error details if action failed.",
|
|
60
|
+
"additionalProperties": false,
|
|
61
|
+
"properties": {
|
|
62
|
+
"error_code": {
|
|
63
|
+
"type": "string"
|
|
64
|
+
},
|
|
65
|
+
"error_message": {
|
|
66
|
+
"type": "string"
|
|
67
|
+
},
|
|
68
|
+
"stack_trace": {
|
|
69
|
+
"type": "string"
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
},
|
|
73
|
+
"token_usage": {
|
|
74
|
+
"type": "object",
|
|
75
|
+
"description": "LLM token consumption metrics.",
|
|
76
|
+
"additionalProperties": false,
|
|
77
|
+
"properties": {
|
|
78
|
+
"total_tokens": {
|
|
79
|
+
"type": "number",
|
|
80
|
+
"minimum": 0
|
|
81
|
+
},
|
|
82
|
+
"prompt_tokens": {
|
|
83
|
+
"type": "number",
|
|
84
|
+
"minimum": 0
|
|
85
|
+
},
|
|
86
|
+
"completion_tokens": {
|
|
87
|
+
"type": "number",
|
|
88
|
+
"minimum": 0
|
|
89
|
+
},
|
|
90
|
+
"by_agent": {
|
|
91
|
+
"type": "array",
|
|
92
|
+
"description": "Token usage breakdown by agent.",
|
|
93
|
+
"items": {
|
|
94
|
+
"type": "object",
|
|
95
|
+
"additionalProperties": false,
|
|
96
|
+
"properties": {
|
|
97
|
+
"agent_id": {
|
|
98
|
+
"type": "string"
|
|
99
|
+
},
|
|
100
|
+
"role": {
|
|
101
|
+
"type": "string"
|
|
102
|
+
},
|
|
103
|
+
"tokens": {
|
|
104
|
+
"type": "number",
|
|
105
|
+
"minimum": 0
|
|
106
|
+
}
|
|
107
|
+
},
|
|
108
|
+
"required": [
|
|
109
|
+
"agent_id",
|
|
110
|
+
"tokens"
|
|
111
|
+
]
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
},
|
|
116
|
+
"execution_time_ms": {
|
|
117
|
+
"type": "number",
|
|
118
|
+
"description": "Execution time in milliseconds.",
|
|
119
|
+
"minimum": 0
|
|
120
|
+
},
|
|
121
|
+
"impact_score": {
|
|
122
|
+
"type": "number",
|
|
123
|
+
"description": "Impact score (0.0-1.0).",
|
|
124
|
+
"minimum": 0,
|
|
125
|
+
"maximum": 1
|
|
126
|
+
},
|
|
127
|
+
"user_feedback": {
|
|
128
|
+
"type": "object",
|
|
129
|
+
"description": "Human feedback on the action/result.",
|
|
130
|
+
"additionalProperties": false,
|
|
131
|
+
"properties": {
|
|
132
|
+
"decision": {
|
|
133
|
+
"type": "string",
|
|
134
|
+
"enum": [
|
|
135
|
+
"approve",
|
|
136
|
+
"reject",
|
|
137
|
+
"override",
|
|
138
|
+
"unknown"
|
|
139
|
+
]
|
|
140
|
+
},
|
|
141
|
+
"comment": {
|
|
142
|
+
"type": "string"
|
|
143
|
+
},
|
|
144
|
+
"rating": {
|
|
145
|
+
"type": "number",
|
|
146
|
+
"minimum": 0,
|
|
147
|
+
"maximum": 5
|
|
148
|
+
}
|
|
149
|
+
}
|
|
150
|
+
},
|
|
151
|
+
"governance_decisions": {
|
|
152
|
+
"type": "array",
|
|
153
|
+
"description": "Governance rules evaluated during execution.",
|
|
154
|
+
"items": {
|
|
155
|
+
"type": "object",
|
|
156
|
+
"additionalProperties": true
|
|
157
|
+
}
|
|
158
|
+
},
|
|
159
|
+
"timestamps": {
|
|
160
|
+
"type": "object",
|
|
161
|
+
"description": "Execution timeline.",
|
|
162
|
+
"additionalProperties": false,
|
|
163
|
+
"properties": {
|
|
164
|
+
"started_at": {
|
|
165
|
+
"type": "string",
|
|
166
|
+
"format": "date-time"
|
|
167
|
+
},
|
|
168
|
+
"completed_at": {
|
|
169
|
+
"type": "string",
|
|
170
|
+
"format": "date-time"
|
|
171
|
+
}
|
|
172
|
+
},
|
|
173
|
+
"required": [
|
|
174
|
+
"started_at"
|
|
175
|
+
]
|
|
176
|
+
},
|
|
177
|
+
"metadata": {
|
|
178
|
+
"type": "object",
|
|
179
|
+
"description": "Additional metadata (extensibility point).",
|
|
180
|
+
"additionalProperties": true
|
|
181
|
+
},
|
|
182
|
+
"vendor_extensions": {
|
|
183
|
+
"type": "object",
|
|
184
|
+
"description": "Optional vendor-specific extensions. Structure is implementation-defined and MUST NOT conflict with core protocol fields.",
|
|
185
|
+
"additionalProperties": true
|
|
186
|
+
}
|
|
187
|
+
},
|
|
188
|
+
"required": [
|
|
189
|
+
"sample_id",
|
|
190
|
+
"project_id",
|
|
191
|
+
"success_flag",
|
|
192
|
+
"timestamps"
|
|
193
|
+
]
|
|
194
|
+
}
|