@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.
- package/CHANGELOG.md +15 -0
- package/README.md +29 -0
- package/dist/builders/confirm-builder.d.ts +4 -8
- package/dist/builders/confirm-builder.js +6 -10
- package/dist/builders/context-builder.d.ts +4 -8
- package/dist/builders/context-builder.js +6 -10
- package/dist/builders/plan-builder.d.ts +4 -8
- package/dist/builders/plan-builder.js +6 -10
- package/dist/builders/trace-builder.d.ts +4 -8
- package/dist/builders/trace-builder.js +6 -10
- package/dist/client/runtime-client.d.ts +4 -8
- package/dist/client/runtime-client.js +6 -10
- package/dist/coordination/index.d.ts +8 -0
- package/dist/coordination/index.js +11 -0
- package/dist/core/index.d.ts +28 -0
- package/dist/core/index.js +21 -0
- package/dist/core/validators/index.d.ts +12 -0
- package/dist/core/validators/index.js +22 -0
- package/dist/index.d.ts +4 -8
- package/dist/index.js +7 -11
- package/dist/runtime/index.d.ts +11 -0
- package/dist/runtime/index.js +14 -0
- package/dist/runtime-minimal/index.d.ts +52 -0
- package/dist/runtime-minimal/index.js +28 -0
- package/dist/types/index.d.ts +21 -0
- package/dist/types/index.js +2 -0
- package/package.json +55 -14
- package/schemas/common/common-types.schema.json +55 -0
- package/schemas/common/events.schema.json +72 -0
- package/schemas/common/identifiers.schema.json +19 -0
- package/schemas/common/learning-sample.schema.json +200 -0
- package/schemas/common/metadata.schema.json +119 -0
- package/schemas/common/trace-base.schema.json +49 -0
- package/schemas/events/mplp-event-core.schema.json +64 -0
- package/schemas/events/mplp-graph-update-event.schema.json +64 -0
- package/schemas/events/mplp-map-event.schema.json +153 -0
- package/schemas/events/mplp-pipeline-stage-event.schema.json +62 -0
- package/schemas/events/mplp-runtime-execution-event.schema.json +64 -0
- package/schemas/events/mplp-sa-event.schema.json +115 -0
- package/schemas/integration/mplp-ci-event.schema.json +136 -0
- package/schemas/integration/mplp-file-update-event.schema.json +76 -0
- package/schemas/integration/mplp-git-event.schema.json +104 -0
- package/schemas/integration/mplp-tool-event.schema.json +89 -0
- package/schemas/invariants/integration-invariants.yaml +147 -0
- package/schemas/invariants/learning-invariants.yaml +106 -0
- package/schemas/invariants/map-invariants.yaml +73 -0
- package/schemas/invariants/observability-invariants.yaml +106 -0
- package/schemas/invariants/sa-invariants.yaml +72 -0
- package/schemas/learning/mplp-learning-sample-core.schema.json +100 -0
- package/schemas/learning/mplp-learning-sample-delta.schema.json +143 -0
- package/schemas/learning/mplp-learning-sample-intent.schema.json +125 -0
- package/schemas/mplp-collab.schema.json +249 -0
- package/schemas/mplp-confirm.schema.json +232 -0
- package/schemas/mplp-context.schema.json +252 -0
- package/schemas/mplp-core.schema.json +189 -0
- package/schemas/mplp-dialog.schema.json +204 -0
- package/schemas/mplp-extension.schema.json +185 -0
- package/schemas/mplp-network.schema.json +236 -0
- package/schemas/mplp-plan.schema.json +199 -0
- package/schemas/mplp-role.schema.json +145 -0
- package/schemas/mplp-trace.schema.json +222 -0
- package/src/builders/confirm-builder.ts +0 -44
- package/src/builders/context-builder.ts +0 -56
- package/src/builders/plan-builder.ts +0 -56
- package/src/builders/trace-builder.ts +0 -55
- package/src/client/runtime-client.ts +0 -103
- package/src/index.ts +0 -18
- package/tests/builders.test.ts +0 -80
- package/tests/client-single-agent.test.ts +0 -48
- 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
|
+
}
|