@camunda/e2e-test-suite 0.0.1201 → 0.0.1202
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/dist/resources/mcp_server_sm/mcp_cluster_tools.bpmn +168 -0
- package/dist/resources/mcp_server_sm/mcp_process_definition_tools.bpmn +234 -0
- package/dist/resources/mcp_server_sm/mcp_process_instance_tools.bpmn +232 -0
- package/dist/resources/mcp_server_sm/mcp_user_task_tools.bpmn +309 -0
- package/dist/tests/SM-8.9/orchestration-cluster-mcp-server/mcp-cluster-tools.spec.d.ts +1 -0
- package/dist/tests/SM-8.9/orchestration-cluster-mcp-server/mcp-cluster-tools.spec.js +72 -0
- package/dist/tests/SM-8.9/orchestration-cluster-mcp-server/mcp-process-definition-tools.spec.d.ts +1 -0
- package/dist/tests/SM-8.9/orchestration-cluster-mcp-server/mcp-process-definition-tools.spec.js +101 -0
- package/dist/tests/SM-8.9/orchestration-cluster-mcp-server/mcp-process-instance-tools.spec.d.ts +1 -0
- package/dist/tests/SM-8.9/orchestration-cluster-mcp-server/mcp-process-instance-tools.spec.js +107 -0
- package/dist/tests/SM-8.9/orchestration-cluster-mcp-server/mcp-user-task-tools.spec.d.ts +1 -0
- package/dist/tests/SM-8.9/orchestration-cluster-mcp-server/mcp-user-task-tools.spec.js +124 -0
- package/dist/utils/mcpSmSetup.d.ts +19 -0
- package/dist/utils/mcpSmSetup.js +34 -0
- package/package.json +1 -1
- package/resources/mcp_server_sm/mcp_cluster_tools.bpmn +168 -0
- package/resources/mcp_server_sm/mcp_process_definition_tools.bpmn +234 -0
- package/resources/mcp_server_sm/mcp_process_instance_tools.bpmn +232 -0
- package/resources/mcp_server_sm/mcp_user_task_tools.bpmn +309 -0
|
@@ -0,0 +1,168 @@
|
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
|
2
|
+
<bpmn:definitions xmlns:bpmn="http://www.omg.org/spec/BPMN/20100524/MODEL"
|
|
3
|
+
xmlns:bpmndi="http://www.omg.org/spec/BPMN/20100524/DI"
|
|
4
|
+
xmlns:dc="http://www.omg.org/spec/DD/20100524/DC"
|
|
5
|
+
xmlns:zeebe="http://camunda.org/schema/zeebe/1.0"
|
|
6
|
+
xmlns:di="http://www.omg.org/spec/DD/20100524/DI"
|
|
7
|
+
xmlns:modeler="http://camunda.org/schema/modeler/1.0" id="Definitions_ClusterStatus"
|
|
8
|
+
targetNamespace="http://bpmn.io/schema/bpmn" exporter="Camunda Web Modeler"
|
|
9
|
+
exporterVersion="9e96352" modeler:executionPlatform="Camunda Cloud"
|
|
10
|
+
modeler:executionPlatformVersion="8.9.0">
|
|
11
|
+
<bpmn:process id="Process_mcp_cluster_tools" name="MCP Cluster tools" isExecutable="true">
|
|
12
|
+
<bpmn:startEvent id="StartEvent_1">
|
|
13
|
+
<bpmn:outgoing>Flow_1nrepge</bpmn:outgoing>
|
|
14
|
+
</bpmn:startEvent>
|
|
15
|
+
<bpmn:endEvent id="EndEvent_1">
|
|
16
|
+
<bpmn:incoming>Flow_0jqbea8</bpmn:incoming>
|
|
17
|
+
</bpmn:endEvent>
|
|
18
|
+
<bpmn:serviceTask id="getClusterStatus" name="getClusterStatus"
|
|
19
|
+
zeebe:modelerTemplate="io.camunda.connectors.agenticai.mcp.remoteclient.v0"
|
|
20
|
+
zeebe:modelerTemplateVersion="2"
|
|
21
|
+
zeebe:modelerTemplateIcon="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyMDAiIGhlaWdodD0iMjAwIiBmaWxsPSJub25lIiB2aWV3Qm94PSIwIDAgMjAwIDIwMCI+CiAgICA8cGF0aCBkPSJNMjUgOTcuODUyOEw5Mi44ODIzIDI5Ljk3MDZDMTAyLjI1NSAyMC41OTggMTE3LjQ1MSAyMC41OTggMTI2LjgyMyAyOS45NzA2VjI5Ljk3MDZDMTM2LjE5NiAzOS4zNDMxIDEzNi4xOTYgNTQuNTM5MSAxMjYuODIzIDYzLjkxMTdMNzUuNTU4MSAxMTUuMTc3IiBzdHJva2U9ImJsYWNrIiBzdHJva2Utd2lkdGg9IjEyIiBzdHJva2UtbGluZWNhcD0icm91bmQiLz4KICAgIDxwYXRoIGQ9Ik03Ni4yNjUzIDExNC40N0wxMjYuODIzIDYzLjkxMTdDMTM2LjE5NiA1NC41MzkxIDE1MS4zOTIgNTQuNTM5MSAxNjAuNzY1IDYzLjkxMTdMMTYxLjExOCA2NC4yNjUyQzE3MC40OTEgNzMuNjM3OCAxNzAuNDkxIDg4LjgzMzggMTYxLjExOCA5OC4yMDYzTDk5LjcyNDggMTU5LjZDOTYuNjAwNiAxNjIuNzI0IDk2LjYwMDYgMTY3Ljc4OSA5OS43MjQ4IDE3MC45MTNMMTEyLjMzMSAxODMuNTIiIHN0cm9rZT0iYmxhY2siIHN0cm9rZS13aWR0aD0iMTIiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIvPgogICAgPHBhdGggZD0iTTEwOS44NTMgNDYuOTQxMUw1OS42NDgyIDk3LjE0NTdDNTAuMjc1NyAxMDYuNTE4IDUwLjI3NTcgMTIxLjcxNCA1OS42NDgyIDEzMS4wODdWMTMxLjA4N0M2OS4wMjA4IDE0MC40NTkgODQuMjE2OCAxNDAuNDU5IDkzLjU4OTQgMTMxLjA4N0wxNDMuNzk0IDgwLjg4MjIiIHN0cm9rZT0iYmxhY2siIHN0cm9rZS13aWR0aD0iMTIiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIvPgo8L3N2Zz4K">
|
|
22
|
+
<bpmn:extensionElements>
|
|
23
|
+
<zeebe:taskDefinition type="io.camunda.agenticai:mcpremoteclient:1" retries="3" />
|
|
24
|
+
<zeebe:ioMapping>
|
|
25
|
+
<zeebe:input source="http" target="data.transport.type" />
|
|
26
|
+
<zeebe:input source="=mcpBaseUrl + "/mcp/cluster""
|
|
27
|
+
target="data.transport.http.url" />
|
|
28
|
+
<zeebe:input source="oauth-client-credentials-flow"
|
|
29
|
+
target="data.transport.http.authentication.type" />
|
|
30
|
+
<zeebe:input source="=mcpOauthUrl"
|
|
31
|
+
target="data.transport.http.authentication.oauthTokenEndpoint" />
|
|
32
|
+
<zeebe:input source="=mcpClientId"
|
|
33
|
+
target="data.transport.http.authentication.clientId" />
|
|
34
|
+
<zeebe:input source="=mcpClientSecret"
|
|
35
|
+
target="data.transport.http.authentication.clientSecret" />
|
|
36
|
+
<zeebe:input source="=mcpTokenAudience"
|
|
37
|
+
target="data.transport.http.authentication.audience" />
|
|
38
|
+
<zeebe:input source="CREDENTIALS_BODY"
|
|
39
|
+
target="data.transport.http.authentication.clientAuthentication" />
|
|
40
|
+
<zeebe:input source="=true" target="data.options.clientCache" />
|
|
41
|
+
<zeebe:input source="standalone" target="data.connectorMode.type" />
|
|
42
|
+
<zeebe:input source="tools/call" target="data.connectorMode.operation.type" />
|
|
43
|
+
<zeebe:input source="getClusterStatus"
|
|
44
|
+
target="data.connectorMode.operation.toolName" />
|
|
45
|
+
<zeebe:input source="={}" target="data.connectorMode.operation.toolArguments" />
|
|
46
|
+
</zeebe:ioMapping>
|
|
47
|
+
<zeebe:taskHeaders>
|
|
48
|
+
<zeebe:header key="elementTemplateVersion" value="2" />
|
|
49
|
+
<zeebe:header key="elementTemplateId"
|
|
50
|
+
value="io.camunda.connectors.agenticai.mcp.remoteclient.v0" />
|
|
51
|
+
<zeebe:header key="resultVariable" value="mcpResultClusterStatus" />
|
|
52
|
+
<zeebe:header key="retryBackoff" value="PT0S" />
|
|
53
|
+
</zeebe:taskHeaders>
|
|
54
|
+
</bpmn:extensionElements>
|
|
55
|
+
<bpmn:incoming>Flow_0l0tehi</bpmn:incoming>
|
|
56
|
+
<bpmn:outgoing>Flow_101za4d</bpmn:outgoing>
|
|
57
|
+
</bpmn:serviceTask>
|
|
58
|
+
<bpmn:sequenceFlow id="Flow_1nrepge" sourceRef="StartEvent_1" targetRef="Gateway_1axprup" />
|
|
59
|
+
<bpmn:sequenceFlow id="Flow_101za4d" sourceRef="getClusterStatus"
|
|
60
|
+
targetRef="Gateway_1t2m7hj" />
|
|
61
|
+
<bpmn:parallelGateway id="Gateway_1t2m7hj">
|
|
62
|
+
<bpmn:incoming>Flow_101za4d</bpmn:incoming>
|
|
63
|
+
<bpmn:incoming>Flow_1x7w6kt</bpmn:incoming>
|
|
64
|
+
<bpmn:outgoing>Flow_0jqbea8</bpmn:outgoing>
|
|
65
|
+
</bpmn:parallelGateway>
|
|
66
|
+
<bpmn:parallelGateway id="Gateway_1axprup">
|
|
67
|
+
<bpmn:incoming>Flow_1nrepge</bpmn:incoming>
|
|
68
|
+
<bpmn:outgoing>Flow_0l0tehi</bpmn:outgoing>
|
|
69
|
+
<bpmn:outgoing>Flow_066dp5w</bpmn:outgoing>
|
|
70
|
+
</bpmn:parallelGateway>
|
|
71
|
+
<bpmn:sequenceFlow id="Flow_0l0tehi" sourceRef="Gateway_1axprup"
|
|
72
|
+
targetRef="getClusterStatus" />
|
|
73
|
+
<bpmn:serviceTask id="getTopology" name="getTopology"
|
|
74
|
+
zeebe:modelerTemplate="io.camunda.connectors.agenticai.mcp.remoteclient.v0"
|
|
75
|
+
zeebe:modelerTemplateVersion="2"
|
|
76
|
+
zeebe:modelerTemplateIcon="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyMDAiIGhlaWdodD0iMjAwIiBmaWxsPSJub25lIiB2aWV3Qm94PSIwIDAgMjAwIDIwMCI+CiAgICA8cGF0aCBkPSJNMjUgOTcuODUyOEw5Mi44ODIzIDI5Ljk3MDZDMTAyLjI1NSAyMC41OTggMTE3LjQ1MSAyMC41OTggMTI2LjgyMyAyOS45NzA2VjI5Ljk3MDZDMTM2LjE5NiAzOS4zNDMxIDEzNi4xOTYgNTQuNTM5MSAxMjYuODIzIDYzLjkxMTdMNzUuNTU4MSAxMTUuMTc3IiBzdHJva2U9ImJsYWNrIiBzdHJva2Utd2lkdGg9IjEyIiBzdHJva2UtbGluZWNhcD0icm91bmQiLz4KICAgIDxwYXRoIGQ9Ik03Ni4yNjUzIDExNC40N0wxMjYuODIzIDYzLjkxMTdDMTM2LjE5NiA1NC41MzkxIDE1MS4zOTIgNTQuNTM5MSAxNjAuNzY1IDYzLjkxMTdMMTYxLjExOCA2NC4yNjUyQzE3MC40OTEgNzMuNjM3OCAxNzAuNDkxIDg4LjgzMzggMTYxLjExOCA5OC4yMDYzTDk5LjcyNDggMTU5LjZDOTYuNjAwNiAxNjIuNzI0IDk2LjYwMDYgMTY3Ljc4OSA5OS43MjQ4IDE3MC45MTNMMTEyLjMzMSAxODMuNTIiIHN0cm9rZT0iYmxhY2siIHN0cm9rZS13aWR0aD0iMTIiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIvPgogICAgPHBhdGggZD0iTTEwOS44NTMgNDYuOTQxMUw1OS42NDgyIDk3LjE0NTdDNTAuMjc1NyAxMDYuNTE4IDUwLjI3NTcgMTIxLjcxNCA1OS42NDgyIDEzMS4wODdWMTMxLjA4N0M2OS4wMjA4IDE0MC40NTkgODQuMjE2OCAxNDAuNDU5IDkzLjU4OTQgMTMxLjA4N0wxNDMuNzk0IDgwLjg4MjIiIHN0cm9rZT0iYmxhY2siIHN0cm9rZS13aWR0aD0iMTIiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIvPgo8L3N2Zz4K">
|
|
77
|
+
<bpmn:extensionElements>
|
|
78
|
+
<zeebe:taskDefinition type="io.camunda.agenticai:mcpremoteclient:1" retries="3" />
|
|
79
|
+
<zeebe:ioMapping>
|
|
80
|
+
<zeebe:input source="http" target="data.transport.type" />
|
|
81
|
+
<zeebe:input source="=mcpBaseUrl + "/mcp/cluster""
|
|
82
|
+
target="data.transport.http.url" />
|
|
83
|
+
<zeebe:input source="oauth-client-credentials-flow"
|
|
84
|
+
target="data.transport.http.authentication.type" />
|
|
85
|
+
<zeebe:input source="=mcpOauthUrl"
|
|
86
|
+
target="data.transport.http.authentication.oauthTokenEndpoint" />
|
|
87
|
+
<zeebe:input source="=mcpClientId"
|
|
88
|
+
target="data.transport.http.authentication.clientId" />
|
|
89
|
+
<zeebe:input source="=mcpClientSecret"
|
|
90
|
+
target="data.transport.http.authentication.clientSecret" />
|
|
91
|
+
<zeebe:input source="=mcpTokenAudience"
|
|
92
|
+
target="data.transport.http.authentication.audience" />
|
|
93
|
+
<zeebe:input source="CREDENTIALS_BODY"
|
|
94
|
+
target="data.transport.http.authentication.clientAuthentication" />
|
|
95
|
+
<zeebe:input source="=true" target="data.options.clientCache" />
|
|
96
|
+
<zeebe:input source="standalone" target="data.connectorMode.type" />
|
|
97
|
+
<zeebe:input source="tools/call" target="data.connectorMode.operation.type" />
|
|
98
|
+
<zeebe:input source="getTopology" target="data.connectorMode.operation.toolName" />
|
|
99
|
+
<zeebe:input source="={}" target="data.connectorMode.operation.toolArguments" />
|
|
100
|
+
</zeebe:ioMapping>
|
|
101
|
+
<zeebe:taskHeaders>
|
|
102
|
+
<zeebe:header key="elementTemplateVersion" value="2" />
|
|
103
|
+
<zeebe:header key="elementTemplateId"
|
|
104
|
+
value="io.camunda.connectors.agenticai.mcp.remoteclient.v0" />
|
|
105
|
+
<zeebe:header key="resultVariable" value="mcpResultTopology" />
|
|
106
|
+
<zeebe:header key="retryBackoff" value="PT0S" />
|
|
107
|
+
</zeebe:taskHeaders>
|
|
108
|
+
</bpmn:extensionElements>
|
|
109
|
+
<bpmn:incoming>Flow_066dp5w</bpmn:incoming>
|
|
110
|
+
<bpmn:outgoing>Flow_1x7w6kt</bpmn:outgoing>
|
|
111
|
+
</bpmn:serviceTask>
|
|
112
|
+
<bpmn:sequenceFlow id="Flow_066dp5w" sourceRef="Gateway_1axprup" targetRef="getTopology" />
|
|
113
|
+
<bpmn:sequenceFlow id="Flow_1x7w6kt" sourceRef="getTopology" targetRef="Gateway_1t2m7hj" />
|
|
114
|
+
<bpmn:sequenceFlow id="Flow_0jqbea8" sourceRef="Gateway_1t2m7hj" targetRef="EndEvent_1" />
|
|
115
|
+
</bpmn:process>
|
|
116
|
+
<bpmndi:BPMNDiagram id="BPMNDiagram_1">
|
|
117
|
+
<bpmndi:BPMNPlane id="BPMNPlane_1" bpmnElement="Process_mcp_cluster_tools">
|
|
118
|
+
<bpmndi:BPMNShape id="_BPMNShape_StartEvent_2" bpmnElement="StartEvent_1">
|
|
119
|
+
<dc:Bounds x="112" y="162" width="36" height="36" />
|
|
120
|
+
</bpmndi:BPMNShape>
|
|
121
|
+
<bpmndi:BPMNShape id="EndEvent_1_di" bpmnElement="EndEvent_1">
|
|
122
|
+
<dc:Bounds x="512" y="162" width="36" height="36" />
|
|
123
|
+
</bpmndi:BPMNShape>
|
|
124
|
+
<bpmndi:BPMNShape id="CallClusterStatus_di" bpmnElement="getClusterStatus">
|
|
125
|
+
<dc:Bounds x="270" y="80" width="100" height="80" />
|
|
126
|
+
<bpmndi:BPMNLabel />
|
|
127
|
+
</bpmndi:BPMNShape>
|
|
128
|
+
<bpmndi:BPMNShape id="Gateway_0zao8hh_di" bpmnElement="Gateway_1t2m7hj">
|
|
129
|
+
<dc:Bounds x="405" y="155" width="50" height="50" />
|
|
130
|
+
</bpmndi:BPMNShape>
|
|
131
|
+
<bpmndi:BPMNShape id="Gateway_0hi8l2e_di" bpmnElement="Gateway_1axprup">
|
|
132
|
+
<dc:Bounds x="185" y="155" width="50" height="50" />
|
|
133
|
+
</bpmndi:BPMNShape>
|
|
134
|
+
<bpmndi:BPMNShape id="BPMNShape_0igquhd" bpmnElement="getTopology">
|
|
135
|
+
<dc:Bounds x="270" y="200" width="100" height="80" />
|
|
136
|
+
<bpmndi:BPMNLabel />
|
|
137
|
+
</bpmndi:BPMNShape>
|
|
138
|
+
<bpmndi:BPMNEdge id="Flow_1nrepge_di" bpmnElement="Flow_1nrepge">
|
|
139
|
+
<di:waypoint x="148" y="180" />
|
|
140
|
+
<di:waypoint x="185" y="180" />
|
|
141
|
+
</bpmndi:BPMNEdge>
|
|
142
|
+
<bpmndi:BPMNEdge id="Flow_101za4d_di" bpmnElement="Flow_101za4d">
|
|
143
|
+
<di:waypoint x="370" y="120" />
|
|
144
|
+
<di:waypoint x="430" y="120" />
|
|
145
|
+
<di:waypoint x="430" y="155" />
|
|
146
|
+
</bpmndi:BPMNEdge>
|
|
147
|
+
<bpmndi:BPMNEdge id="Flow_0l0tehi_di" bpmnElement="Flow_0l0tehi">
|
|
148
|
+
<di:waypoint x="210" y="155" />
|
|
149
|
+
<di:waypoint x="210" y="120" />
|
|
150
|
+
<di:waypoint x="270" y="120" />
|
|
151
|
+
</bpmndi:BPMNEdge>
|
|
152
|
+
<bpmndi:BPMNEdge id="Flow_066dp5w_di" bpmnElement="Flow_066dp5w">
|
|
153
|
+
<di:waypoint x="210" y="205" />
|
|
154
|
+
<di:waypoint x="210" y="240" />
|
|
155
|
+
<di:waypoint x="270" y="240" />
|
|
156
|
+
</bpmndi:BPMNEdge>
|
|
157
|
+
<bpmndi:BPMNEdge id="Flow_1x7w6kt_di" bpmnElement="Flow_1x7w6kt">
|
|
158
|
+
<di:waypoint x="370" y="240" />
|
|
159
|
+
<di:waypoint x="430" y="240" />
|
|
160
|
+
<di:waypoint x="430" y="205" />
|
|
161
|
+
</bpmndi:BPMNEdge>
|
|
162
|
+
<bpmndi:BPMNEdge id="Flow_0jqbea8_di" bpmnElement="Flow_0jqbea8">
|
|
163
|
+
<di:waypoint x="455" y="180" />
|
|
164
|
+
<di:waypoint x="512" y="180" />
|
|
165
|
+
</bpmndi:BPMNEdge>
|
|
166
|
+
</bpmndi:BPMNPlane>
|
|
167
|
+
</bpmndi:BPMNDiagram>
|
|
168
|
+
</bpmn:definitions>
|
|
@@ -0,0 +1,234 @@
|
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
|
2
|
+
<bpmn:definitions xmlns:bpmn="http://www.omg.org/spec/BPMN/20100524/MODEL"
|
|
3
|
+
xmlns:bpmndi="http://www.omg.org/spec/BPMN/20100524/DI"
|
|
4
|
+
xmlns:dc="http://www.omg.org/spec/DD/20100524/DC"
|
|
5
|
+
xmlns:zeebe="http://camunda.org/schema/zeebe/1.0"
|
|
6
|
+
xmlns:di="http://www.omg.org/spec/DD/20100524/DI"
|
|
7
|
+
xmlns:modeler="http://camunda.org/schema/modeler/1.0" id="Definitions_ClusterStatus"
|
|
8
|
+
targetNamespace="http://bpmn.io/schema/bpmn" exporter="Camunda Web Modeler"
|
|
9
|
+
exporterVersion="5336cca" modeler:executionPlatform="Camunda Cloud"
|
|
10
|
+
modeler:executionPlatformVersion="8.9.0">
|
|
11
|
+
<bpmn:process id="mcp_process_definition_tools" name="MCP Process Definition Tools"
|
|
12
|
+
isExecutable="true">
|
|
13
|
+
<bpmn:startEvent id="StartEvent_1">
|
|
14
|
+
<bpmn:outgoing>Flow_1nrepge</bpmn:outgoing>
|
|
15
|
+
</bpmn:startEvent>
|
|
16
|
+
<bpmn:endEvent id="EndEvent_1">
|
|
17
|
+
<bpmn:incoming>Flow_0jqbea8</bpmn:incoming>
|
|
18
|
+
</bpmn:endEvent>
|
|
19
|
+
<bpmn:serviceTask id="searchProcessDefinitions" name="searchProcessDefinitions"
|
|
20
|
+
zeebe:modelerTemplate="io.camunda.connectors.agenticai.mcp.remoteclient.v0"
|
|
21
|
+
zeebe:modelerTemplateVersion="2"
|
|
22
|
+
zeebe:modelerTemplateIcon="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyMDAiIGhlaWdodD0iMjAwIiBmaWxsPSJub25lIiB2aWV3Qm94PSIwIDAgMjAwIDIwMCI+CiAgICA8cGF0aCBkPSJNMjUgOTcuODUyOEw5Mi44ODIzIDI5Ljk3MDZDMTAyLjI1NSAyMC41OTggMTE3LjQ1MSAyMC41OTggMTI2LjgyMyAyOS45NzA2VjI5Ljk3MDZDMTM2LjE5NiAzOS4zNDMxIDEzNi4xOTYgNTQuNTM5MSAxMjYuODIzIDYzLjkxMTdMNzUuNTU4MSAxMTUuMTc3IiBzdHJva2U9ImJsYWNrIiBzdHJva2Utd2lkdGg9IjEyIiBzdHJva2UtbGluZWNhcD0icm91bmQiLz4KICAgIDxwYXRoIGQ9Ik03Ni4yNjUzIDExNC40N0wxMjYuODIzIDYzLjkxMTdDMTM2LjE5NiA1NC41MzkxIDE1MS4zOTIgNTQuNTM5MSAxNjAuNzY1IDYzLjkxMTdMMTYxLjExOCA2NC4yNjUyQzE3MC40OTEgNzMuNjM3OCAxNzAuNDkxIDg4LjgzMzggMTYxLjExOCA5OC4yMDYzTDk5LjcyNDggMTU5LjZDOTYuNjAwNiAxNjIuNzI0IDk2LjYwMDYgMTY3Ljc4OSA5OS43MjQ4IDE3MC45MTNMMTEyLjMzMSAxODMuNTIiIHN0cm9rZT0iYmxhY2siIHN0cm9rZS13aWR0aD0iMTIiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIvPgogICAgPHBhdGggZD0iTTEwOS44NTMgNDYuOTQxMUw1OS42NDgyIDk3LjE0NTdDNTAuMjc1NyAxMDYuNTE4IDUwLjI3NTcgMTIxLjcxNCA1OS42NDgyIDEzMS4wODdWMTMxLjA4N0M2OS4wMjA4IDE0MC40NTkgODQuMjE2OCAxNDAuNDU5IDkzLjU4OTQgMTMxLjA4N0wxNDMuNzk0IDgwLjg4MjIiIHN0cm9rZT0iYmxhY2siIHN0cm9rZS13aWR0aD0iMTIiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIvPgo8L3N2Zz4K">
|
|
23
|
+
<bpmn:extensionElements>
|
|
24
|
+
<zeebe:taskDefinition type="io.camunda.agenticai:mcpremoteclient:1" retries="3" />
|
|
25
|
+
<zeebe:ioMapping>
|
|
26
|
+
<zeebe:input source="http" target="data.transport.type" />
|
|
27
|
+
<zeebe:input source="=mcpBaseUrl + "/mcp/cluster""
|
|
28
|
+
target="data.transport.http.url" />
|
|
29
|
+
<zeebe:input source="oauth-client-credentials-flow"
|
|
30
|
+
target="data.transport.http.authentication.type" />
|
|
31
|
+
<zeebe:input source="=mcpOauthUrl"
|
|
32
|
+
target="data.transport.http.authentication.oauthTokenEndpoint" />
|
|
33
|
+
<zeebe:input source="=mcpClientId"
|
|
34
|
+
target="data.transport.http.authentication.clientId" />
|
|
35
|
+
<zeebe:input source="=mcpClientSecret"
|
|
36
|
+
target="data.transport.http.authentication.clientSecret" />
|
|
37
|
+
<zeebe:input source="=mcpTokenAudience"
|
|
38
|
+
target="data.transport.http.authentication.audience" />
|
|
39
|
+
<zeebe:input source="CREDENTIALS_BODY"
|
|
40
|
+
target="data.transport.http.authentication.clientAuthentication" />
|
|
41
|
+
<zeebe:input source="=true" target="data.options.clientCache" />
|
|
42
|
+
<zeebe:input source="standalone" target="data.connectorMode.type" />
|
|
43
|
+
<zeebe:input source="tools/call" target="data.connectorMode.operation.type" />
|
|
44
|
+
<zeebe:input source="searchProcessDefinitions"
|
|
45
|
+
target="data.connectorMode.operation.toolName" />
|
|
46
|
+
<zeebe:input source="={}" target="data.connectorMode.operation.toolArguments" />
|
|
47
|
+
</zeebe:ioMapping>
|
|
48
|
+
<zeebe:taskHeaders>
|
|
49
|
+
<zeebe:header key="elementTemplateVersion" value="2" />
|
|
50
|
+
<zeebe:header key="elementTemplateId"
|
|
51
|
+
value="io.camunda.connectors.agenticai.mcp.remoteclient.v0" />
|
|
52
|
+
<zeebe:header key="resultVariable" value="mcpResultSearchProcessDefinitions" />
|
|
53
|
+
<zeebe:header key="retryBackoff" value="PT0S" />
|
|
54
|
+
</zeebe:taskHeaders>
|
|
55
|
+
</bpmn:extensionElements>
|
|
56
|
+
<bpmn:incoming>Flow_0l0tehi</bpmn:incoming>
|
|
57
|
+
<bpmn:outgoing>Flow_101za4d</bpmn:outgoing>
|
|
58
|
+
</bpmn:serviceTask>
|
|
59
|
+
<bpmn:sequenceFlow id="Flow_1nrepge" sourceRef="StartEvent_1" targetRef="Gateway_1axprup" />
|
|
60
|
+
<bpmn:sequenceFlow id="Flow_101za4d" sourceRef="searchProcessDefinitions"
|
|
61
|
+
targetRef="Gateway_1t2m7hj" />
|
|
62
|
+
<bpmn:parallelGateway id="Gateway_1t2m7hj">
|
|
63
|
+
<bpmn:incoming>Flow_101za4d</bpmn:incoming>
|
|
64
|
+
<bpmn:incoming>Flow_1x7w6kt</bpmn:incoming>
|
|
65
|
+
<bpmn:incoming>Flow_0lzmh5m</bpmn:incoming>
|
|
66
|
+
<bpmn:outgoing>Flow_0jqbea8</bpmn:outgoing>
|
|
67
|
+
</bpmn:parallelGateway>
|
|
68
|
+
<bpmn:parallelGateway id="Gateway_1axprup">
|
|
69
|
+
<bpmn:incoming>Flow_1nrepge</bpmn:incoming>
|
|
70
|
+
<bpmn:outgoing>Flow_0l0tehi</bpmn:outgoing>
|
|
71
|
+
<bpmn:outgoing>Flow_066dp5w</bpmn:outgoing>
|
|
72
|
+
<bpmn:outgoing>Flow_0kgfpue</bpmn:outgoing>
|
|
73
|
+
</bpmn:parallelGateway>
|
|
74
|
+
<bpmn:sequenceFlow id="Flow_0l0tehi" sourceRef="Gateway_1axprup"
|
|
75
|
+
targetRef="searchProcessDefinitions" />
|
|
76
|
+
<bpmn:serviceTask id="Activity_07ot1fg" name="getProcessDefinitionXml"
|
|
77
|
+
zeebe:modelerTemplate="io.camunda.connectors.agenticai.mcp.remoteclient.v0"
|
|
78
|
+
zeebe:modelerTemplateVersion="2"
|
|
79
|
+
zeebe:modelerTemplateIcon="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyMDAiIGhlaWdodD0iMjAwIiBmaWxsPSJub25lIiB2aWV3Qm94PSIwIDAgMjAwIDIwMCI+CiAgICA8cGF0aCBkPSJNMjUgOTcuODUyOEw5Mi44ODIzIDI5Ljk3MDZDMTAyLjI1NSAyMC41OTggMTE3LjQ1MSAyMC41OTggMTI2LjgyMyAyOS45NzA2VjI5Ljk3MDZDMTM2LjE5NiAzOS4zNDMxIDEzNi4xOTYgNTQuNTM5MSAxMjYuODIzIDYzLjkxMTdMNzUuNTU4MSAxMTUuMTc3IiBzdHJva2U9ImJsYWNrIiBzdHJva2Utd2lkdGg9IjEyIiBzdHJva2UtbGluZWNhcD0icm91bmQiLz4KICAgIDxwYXRoIGQ9Ik03Ni4yNjUzIDExNC40N0wxMjYuODIzIDYzLjkxMTdDMTM2LjE5NiA1NC41MzkxIDE1MS4zOTIgNTQuNTM5MSAxNjAuNzY1IDYzLjkxMTdMMTYxLjExOCA2NC4yNjUyQzE3MC40OTEgNzMuNjM3OCAxNzAuNDkxIDg4LjgzMzggMTYxLjExOCA5OC4yMDYzTDk5LjcyNDggMTU5LjZDOTYuNjAwNiAxNjIuNzI0IDk2LjYwMDYgMTY3Ljc4OSA5OS43MjQ4IDE3MC45MTNMMTEyLjMzMSAxODMuNTIiIHN0cm9rZT0iYmxhY2siIHN0cm9rZS13aWR0aD0iMTIiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIvPgogICAgPHBhdGggZD0iTTEwOS44NTMgNDYuOTQxMUw1OS42NDgyIDk3LjE0NTdDNTAuMjc1NyAxMDYuNTE4IDUwLjI3NTcgMTIxLjcxNCA1OS42NDgyIDEzMS4wODdWMTMxLjA4N0M2OS4wMjA4IDE0MC40NTkgODQuMjE2OCAxNDAuNDU5IDkzLjU4OTQgMTMxLjA4N0wxNDMuNzk0IDgwLjg4MjIiIHN0cm9rZT0iYmxhY2siIHN0cm9rZS13aWR0aD0iMTIiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIvPgo8L3N2Zz4K">
|
|
80
|
+
<bpmn:extensionElements>
|
|
81
|
+
<zeebe:taskDefinition type="io.camunda.agenticai:mcpremoteclient:1" retries="3" />
|
|
82
|
+
<zeebe:ioMapping>
|
|
83
|
+
<zeebe:input source="http" target="data.transport.type" />
|
|
84
|
+
<zeebe:input source="=mcpBaseUrl + "/mcp/cluster""
|
|
85
|
+
target="data.transport.http.url" />
|
|
86
|
+
<zeebe:input source="oauth-client-credentials-flow"
|
|
87
|
+
target="data.transport.http.authentication.type" />
|
|
88
|
+
<zeebe:input source="=mcpOauthUrl"
|
|
89
|
+
target="data.transport.http.authentication.oauthTokenEndpoint" />
|
|
90
|
+
<zeebe:input source="=mcpClientId"
|
|
91
|
+
target="data.transport.http.authentication.clientId" />
|
|
92
|
+
<zeebe:input source="=mcpClientSecret"
|
|
93
|
+
target="data.transport.http.authentication.clientSecret" />
|
|
94
|
+
<zeebe:input source="=mcpTokenAudience"
|
|
95
|
+
target="data.transport.http.authentication.audience" />
|
|
96
|
+
<zeebe:input source="CREDENTIALS_BODY"
|
|
97
|
+
target="data.transport.http.authentication.clientAuthentication" />
|
|
98
|
+
<zeebe:input source="=true" target="data.options.clientCache" />
|
|
99
|
+
<zeebe:input source="standalone" target="data.connectorMode.type" />
|
|
100
|
+
<zeebe:input source="tools/call" target="data.connectorMode.operation.type" />
|
|
101
|
+
<zeebe:input source="getProcessDefinitionXml"
|
|
102
|
+
target="data.connectorMode.operation.toolName" />
|
|
103
|
+
<zeebe:input
|
|
104
|
+
source="={"processDefinitionKey":string(testFileProcessKey)}"
|
|
105
|
+
target="data.connectorMode.operation.toolArguments" />
|
|
106
|
+
</zeebe:ioMapping>
|
|
107
|
+
<zeebe:taskHeaders>
|
|
108
|
+
<zeebe:header key="elementTemplateVersion" value="2" />
|
|
109
|
+
<zeebe:header key="elementTemplateId"
|
|
110
|
+
value="io.camunda.connectors.agenticai.mcp.remoteclient.v0" />
|
|
111
|
+
<zeebe:header key="resultVariable" value="mcpResultGetProcessDefinitionXml" />
|
|
112
|
+
<zeebe:header key="retryBackoff" value="PT0S" />
|
|
113
|
+
</zeebe:taskHeaders>
|
|
114
|
+
</bpmn:extensionElements>
|
|
115
|
+
<bpmn:incoming>Flow_066dp5w</bpmn:incoming>
|
|
116
|
+
<bpmn:outgoing>Flow_1x7w6kt</bpmn:outgoing>
|
|
117
|
+
</bpmn:serviceTask>
|
|
118
|
+
<bpmn:sequenceFlow id="Flow_066dp5w" sourceRef="Gateway_1axprup"
|
|
119
|
+
targetRef="Activity_07ot1fg" />
|
|
120
|
+
<bpmn:sequenceFlow id="Flow_1x7w6kt" sourceRef="Activity_07ot1fg"
|
|
121
|
+
targetRef="Gateway_1t2m7hj" />
|
|
122
|
+
<bpmn:sequenceFlow id="Flow_0jqbea8" sourceRef="Gateway_1t2m7hj" targetRef="EndEvent_1" />
|
|
123
|
+
<bpmn:sequenceFlow id="Flow_0kgfpue" sourceRef="Gateway_1axprup"
|
|
124
|
+
targetRef="getProcessDefinition" />
|
|
125
|
+
<bpmn:serviceTask id="getProcessDefinition" name="getProcessDefinition"
|
|
126
|
+
zeebe:modelerTemplate="io.camunda.connectors.agenticai.mcp.remoteclient.v0"
|
|
127
|
+
zeebe:modelerTemplateVersion="2"
|
|
128
|
+
zeebe:modelerTemplateIcon="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyMDAiIGhlaWdodD0iMjAwIiBmaWxsPSJub25lIiB2aWV3Qm94PSIwIDAgMjAwIDIwMCI+CiAgICA8cGF0aCBkPSJNMjUgOTcuODUyOEw5Mi44ODIzIDI5Ljk3MDZDMTAyLjI1NSAyMC41OTggMTE3LjQ1MSAyMC41OTggMTI2LjgyMyAyOS45NzA2VjI5Ljk3MDZDMTM2LjE5NiAzOS4zNDMxIDEzNi4xOTYgNTQuNTM5MSAxMjYuODIzIDYzLjkxMTdMNzUuNTU4MSAxMTUuMTc3IiBzdHJva2U9ImJsYWNrIiBzdHJva2Utd2lkdGg9IjEyIiBzdHJva2UtbGluZWNhcD0icm91bmQiLz4KICAgIDxwYXRoIGQ9Ik03Ni4yNjUzIDExNC40N0wxMjYuODIzIDYzLjkxMTdDMTM2LjE5NiA1NC41MzkxIDE1MS4zOTIgNTQuNTM5MSAxNjAuNzY1IDYzLjkxMTdMMTYxLjExOCA2NC4yNjUyQzE3MC40OTEgNzMuNjM3OCAxNzAuNDkxIDg4LjgzMzggMTYxLjExOCA5OC4yMDYzTDk5LjcyNDggMTU5LjZDOTYuNjAwNiAxNjIuNzI0IDk2LjYwMDYgMTY3Ljc4OSA5OS43MjQ4IDE3MC45MTNMMTEyLjMzMSAxODMuNTIiIHN0cm9rZT0iYmxhY2siIHN0cm9rZS13aWR0aD0iMTIiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIvPgogICAgPHBhdGggZD0iTTEwOS44NTMgNDYuOTQxMUw1OS42NDgyIDk3LjE0NTdDNTAuMjc1NyAxMDYuNTE4IDUwLjI3NTcgMTIxLjcxNCA1OS42NDgyIDEzMS4wODdWMTMxLjA4N0M2OS4wMjA4IDE0MC40NTkgODQuMjE2OCAxNDAuNDU5IDkzLjU4OTQgMTMxLjA4N0wxNDMuNzk0IDgwLjg4MjIiIHN0cm9rZT0iYmxhY2siIHN0cm9rZS13aWR0aD0iMTIiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIvPgo8L3N2Zz4K">
|
|
129
|
+
<bpmn:extensionElements>
|
|
130
|
+
<zeebe:taskDefinition type="io.camunda.agenticai:mcpremoteclient:1" retries="3" />
|
|
131
|
+
<zeebe:ioMapping>
|
|
132
|
+
<zeebe:input source="http" target="data.transport.type" />
|
|
133
|
+
<zeebe:input source="=mcpBaseUrl + "/mcp/cluster""
|
|
134
|
+
target="data.transport.http.url" />
|
|
135
|
+
<zeebe:input source="oauth-client-credentials-flow"
|
|
136
|
+
target="data.transport.http.authentication.type" />
|
|
137
|
+
<zeebe:input source="=mcpOauthUrl"
|
|
138
|
+
target="data.transport.http.authentication.oauthTokenEndpoint" />
|
|
139
|
+
<zeebe:input source="=mcpClientId"
|
|
140
|
+
target="data.transport.http.authentication.clientId" />
|
|
141
|
+
<zeebe:input source="=mcpClientSecret"
|
|
142
|
+
target="data.transport.http.authentication.clientSecret" />
|
|
143
|
+
<zeebe:input source="=mcpTokenAudience"
|
|
144
|
+
target="data.transport.http.authentication.audience" />
|
|
145
|
+
<zeebe:input source="CREDENTIALS_BODY"
|
|
146
|
+
target="data.transport.http.authentication.clientAuthentication" />
|
|
147
|
+
<zeebe:input source="=true" target="data.options.clientCache" />
|
|
148
|
+
<zeebe:input source="standalone" target="data.connectorMode.type" />
|
|
149
|
+
<zeebe:input source="tools/call" target="data.connectorMode.operation.type" />
|
|
150
|
+
<zeebe:input source="getProcessDefinition"
|
|
151
|
+
target="data.connectorMode.operation.toolName" />
|
|
152
|
+
<zeebe:input
|
|
153
|
+
source="={"processDefinitionKey":string(testFileProcessKey)}"
|
|
154
|
+
target="data.connectorMode.operation.toolArguments" />
|
|
155
|
+
</zeebe:ioMapping>
|
|
156
|
+
<zeebe:taskHeaders>
|
|
157
|
+
<zeebe:header key="elementTemplateVersion" value="2" />
|
|
158
|
+
<zeebe:header key="elementTemplateId"
|
|
159
|
+
value="io.camunda.connectors.agenticai.mcp.remoteclient.v0" />
|
|
160
|
+
<zeebe:header key="resultVariable" value="mcpResultGetProcessDefinition" />
|
|
161
|
+
<zeebe:header key="retryBackoff" value="PT0S" />
|
|
162
|
+
</zeebe:taskHeaders>
|
|
163
|
+
</bpmn:extensionElements>
|
|
164
|
+
<bpmn:incoming>Flow_0kgfpue</bpmn:incoming>
|
|
165
|
+
<bpmn:outgoing>Flow_0lzmh5m</bpmn:outgoing>
|
|
166
|
+
</bpmn:serviceTask>
|
|
167
|
+
<bpmn:sequenceFlow id="Flow_0lzmh5m" sourceRef="getProcessDefinition"
|
|
168
|
+
targetRef="Gateway_1t2m7hj" />
|
|
169
|
+
</bpmn:process>
|
|
170
|
+
<bpmndi:BPMNDiagram id="BPMNDiagram_1">
|
|
171
|
+
<bpmndi:BPMNPlane id="BPMNPlane_1" bpmnElement="mcp_process_definition_tools">
|
|
172
|
+
<bpmndi:BPMNShape id="_BPMNShape_StartEvent_2" bpmnElement="StartEvent_1">
|
|
173
|
+
<dc:Bounds x="112" y="162" width="36" height="36" />
|
|
174
|
+
</bpmndi:BPMNShape>
|
|
175
|
+
<bpmndi:BPMNShape id="EndEvent_1_di" bpmnElement="EndEvent_1">
|
|
176
|
+
<dc:Bounds x="512" y="162" width="36" height="36" />
|
|
177
|
+
</bpmndi:BPMNShape>
|
|
178
|
+
<bpmndi:BPMNShape id="CallClusterStatus_di" bpmnElement="searchProcessDefinitions">
|
|
179
|
+
<dc:Bounds x="270" y="0" width="100" height="80" />
|
|
180
|
+
<bpmndi:BPMNLabel />
|
|
181
|
+
</bpmndi:BPMNShape>
|
|
182
|
+
<bpmndi:BPMNShape id="Gateway_0zao8hh_di" bpmnElement="Gateway_1t2m7hj">
|
|
183
|
+
<dc:Bounds x="405" y="155" width="50" height="50" />
|
|
184
|
+
</bpmndi:BPMNShape>
|
|
185
|
+
<bpmndi:BPMNShape id="Gateway_0hi8l2e_di" bpmnElement="Gateway_1axprup">
|
|
186
|
+
<dc:Bounds x="185" y="155" width="50" height="50" />
|
|
187
|
+
</bpmndi:BPMNShape>
|
|
188
|
+
<bpmndi:BPMNShape id="BPMNShape_0igquhd" bpmnElement="Activity_07ot1fg">
|
|
189
|
+
<dc:Bounds x="270" y="280" width="100" height="80" />
|
|
190
|
+
<bpmndi:BPMNLabel />
|
|
191
|
+
</bpmndi:BPMNShape>
|
|
192
|
+
<bpmndi:BPMNShape id="BPMNShape_07gxsv7" bpmnElement="getProcessDefinition">
|
|
193
|
+
<dc:Bounds x="260" y="140" width="100" height="80" />
|
|
194
|
+
<bpmndi:BPMNLabel />
|
|
195
|
+
</bpmndi:BPMNShape>
|
|
196
|
+
<bpmndi:BPMNEdge id="Flow_1nrepge_di" bpmnElement="Flow_1nrepge">
|
|
197
|
+
<di:waypoint x="148" y="180" />
|
|
198
|
+
<di:waypoint x="185" y="180" />
|
|
199
|
+
</bpmndi:BPMNEdge>
|
|
200
|
+
<bpmndi:BPMNEdge id="Flow_101za4d_di" bpmnElement="Flow_101za4d">
|
|
201
|
+
<di:waypoint x="370" y="40" />
|
|
202
|
+
<di:waypoint x="430" y="40" />
|
|
203
|
+
<di:waypoint x="430" y="155" />
|
|
204
|
+
</bpmndi:BPMNEdge>
|
|
205
|
+
<bpmndi:BPMNEdge id="Flow_0l0tehi_di" bpmnElement="Flow_0l0tehi">
|
|
206
|
+
<di:waypoint x="210" y="155" />
|
|
207
|
+
<di:waypoint x="210" y="40" />
|
|
208
|
+
<di:waypoint x="270" y="40" />
|
|
209
|
+
</bpmndi:BPMNEdge>
|
|
210
|
+
<bpmndi:BPMNEdge id="Flow_066dp5w_di" bpmnElement="Flow_066dp5w">
|
|
211
|
+
<di:waypoint x="210" y="205" />
|
|
212
|
+
<di:waypoint x="210" y="320" />
|
|
213
|
+
<di:waypoint x="270" y="320" />
|
|
214
|
+
</bpmndi:BPMNEdge>
|
|
215
|
+
<bpmndi:BPMNEdge id="Flow_1x7w6kt_di" bpmnElement="Flow_1x7w6kt">
|
|
216
|
+
<di:waypoint x="370" y="320" />
|
|
217
|
+
<di:waypoint x="430" y="320" />
|
|
218
|
+
<di:waypoint x="430" y="205" />
|
|
219
|
+
</bpmndi:BPMNEdge>
|
|
220
|
+
<bpmndi:BPMNEdge id="Flow_0jqbea8_di" bpmnElement="Flow_0jqbea8">
|
|
221
|
+
<di:waypoint x="455" y="180" />
|
|
222
|
+
<di:waypoint x="512" y="180" />
|
|
223
|
+
</bpmndi:BPMNEdge>
|
|
224
|
+
<bpmndi:BPMNEdge id="Flow_0kgfpue_di" bpmnElement="Flow_0kgfpue">
|
|
225
|
+
<di:waypoint x="235" y="180" />
|
|
226
|
+
<di:waypoint x="260" y="180" />
|
|
227
|
+
</bpmndi:BPMNEdge>
|
|
228
|
+
<bpmndi:BPMNEdge id="Flow_0lzmh5m_di" bpmnElement="Flow_0lzmh5m">
|
|
229
|
+
<di:waypoint x="360" y="180" />
|
|
230
|
+
<di:waypoint x="405" y="180" />
|
|
231
|
+
</bpmndi:BPMNEdge>
|
|
232
|
+
</bpmndi:BPMNPlane>
|
|
233
|
+
</bpmndi:BPMNDiagram>
|
|
234
|
+
</bpmn:definitions>
|