@camunda/e2e-test-suite 0.0.1366 → 0.0.1368

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.
@@ -0,0 +1,115 @@
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:modeler="http://camunda.org/schema/modeler/1.0"
7
+ xmlns:di="http://www.omg.org/spec/DD/20100524/DI" id="Definitions_1"
8
+ targetNamespace="http://bpmn.io/schema/bpmn" exporter="Camunda Web Modeler"
9
+ exporterVersion="eb83922" modeler:executionPlatform="Camunda Cloud"
10
+ modeler:executionPlatformVersion="8.9.0">
11
+ <bpmn:process id="ai-agent-sub-process-with-tools-aws-key"
12
+ name="AI Agent Sub Process With Tools AWS Key" isExecutable="true">
13
+ <bpmn:endEvent id="Event_16luwcp">
14
+ <bpmn:incoming>Flow_08u9aut</bpmn:incoming>
15
+ </bpmn:endEvent>
16
+ <bpmn:startEvent id="Event_02uvz35">
17
+ <bpmn:outgoing>Flow_1as80ip</bpmn:outgoing>
18
+ </bpmn:startEvent>
19
+ <bpmn:adHocSubProcess id="Activity_1u44499"
20
+ zeebe:modelerTemplate="io.camunda.connectors.agenticai.aiagent.jobworker.v1"
21
+ zeebe:modelerTemplateVersion="6"
22
+ zeebe:modelerTemplateIcon="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMzIiIGhlaWdodD0iMzIiIHZpZXdCb3g9IjAgMCAzMiAzMiIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPGNpcmNsZSBjeD0iMTYiIGN5PSIxNiIgcj0iMTYiIGZpbGw9IiNBNTZFRkYiLz4KPG1hc2sgaWQ9InBhdGgtMi1vdXRzaWRlLTFfMTg1XzYiIG1hc2tVbml0cz0idXNlclNwYWNlT25Vc2UiIHg9IjQiIHk9IjQiIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgZmlsbD0iYmxhY2siPgo8cmVjdCBmaWxsPSJ3aGl0ZSIgeD0iNCIgeT0iNCIgd2lkdGg9IjI0IiBoZWlnaHQ9IjI0Ii8+CjxwYXRoIGZpbGwtcnVsZT0iZXZlbm9kZCIgY2xpcC1ydWxlPSJldmVub2RkIiBkPSJNMjAuMDEwNSAxMi4wOTg3QzE4LjQ5IDEwLjU4OTQgMTcuMTU5NCA4LjEwODE0IDE2LjE3OTkgNi4wMTEwM0MxNi4xNTIgNi4wMDQ1MSAxNi4xMTc2IDYgMTYuMDc5NCA2QzE2LjA0MTEgNiAxNi4wMDY2IDYuMDA0NTEgMTUuOTc4OCA2LjAxMTA0QzE0Ljk5OTQgOC4xMDgxNCAxMy42Njk3IDEwLjU4ODkgMTIuMTQ4MSAxMi4wOTgxQzEwLjYyNjkgMTMuNjA3MSA4LjEyNTY4IDE0LjkyNjQgNi4wMTE1NyAxNS44OTgxQzYuMDA0NzQgMTUuOTI2MSA2IDE1Ljk2MTEgNiAxNkM2IDE2LjAzODcgNi4wMDQ2OCAxNi4wNzM2IDYuMDExNDQgMTYuMTAxNEM4LjEyNTE5IDE3LjA3MjkgMTAuNjI2MiAxOC4zOTE5IDEyLjE0NzcgMTkuOTAxNkMxMy42Njk3IDIxLjQxMDcgMTQuOTk5NiAyMy44OTIgMTUuOTc5MSAyNS45ODlDMTYuMDA2OCAyNS45OTU2IDE2LjA0MTEgMjYgMTYuMDc5MyAyNkMxNi4xMTc1IDI2IDE2LjE1MTkgMjUuOTk1NCAxNi4xNzk2IDI1Ljk4OUMxNy4xNTkxIDIzLjg5MiAxOC40ODg4IDIxLjQxMSAyMC4wMDk5IDE5LjkwMjFNMjAuMDA5OSAxOS45MDIxQzIxLjUyNTMgMTguMzk4NyAyMy45NDY1IDE3LjA2NjkgMjUuOTkxNSAxNi4wODI0QzI1Ljk5NjUgMTYuMDU5MyAyNiAxNi4wMzEgMjYgMTUuOTk5N0MyNiAxNS45Njg0IDI1Ljk5NjUgMTUuOTQwMyAyNS45OTE1IDE1LjkxNzFDMjMuOTQ3NCAxNC45MzI3IDIxLjUyNTkgMTMuNjAxIDIwLjAxMDUgMTIuMDk4NyIvPgo8L21hc2s+CjxwYXRoIGZpbGwtcnVsZT0iZXZlbm9kZCIgY2xpcC1ydWxlPSJldmVub2RkIiBkPSJNMjAuMDEwNSAxMi4wOTg3QzE4LjQ5IDEwLjU4OTQgMTcuMTU5NCA4LjEwODE0IDE2LjE3OTkgNi4wMTEwM0MxNi4xNTIgNi4wMDQ1MSAxNi4xMTc2IDYgMTYuMDc5NCA2QzE2LjA0MTEgNiAxNi4wMDY2IDYuMDA0NTEgMTUuOTc4OCA2LjAxMTA0QzE0Ljk5OTQgOC4xMDgxNCAxMy42Njk3IDEwLjU4ODkgMTIuMTQ4MSAxMi4wOTgxQzEwLjYyNjkgMTMuNjA3MSA4LjEyNTY4IDE0LjkyNjQgNi4wMTE1NyAxNS44OTgxQzYuMDA0NzQgMTUuOTI2MSA2IDE1Ljk2MTEgNiAxNkM2IDE2LjAzODcgNi4wMDQ2OCAxNi4wNzM2IDYuMDExNDQgMTYuMTAxNEM4LjEyNTE5IDE3LjA3MjkgMTAuNjI2MiAxOC4zOTE5IDEyLjE0NzcgMTkuOTAxNkMxMy42Njk3IDIxLjQxMDcgMTQuOTk5NiAyMy44OTIgMTUuOTc5MSAyNS45ODlDMTYuMDA2OCAyNS45OTU2IDE2LjA0MTEgMjYgMTYuMDc5MyAyNkMxNi4xMTc1IDI2IDE2LjE1MTkgMjUuOTk1NCAxNi4xNzk2IDI1Ljk4OUMxNy4xNTkxIDIzLjg5MiAxOC40ODg4IDIxLjQxMSAyMC4wMDk5IDE5LjkwMjFNMjAuMDA5OSAxOS45MDIxQzIxLjUyNTMgMTguMzk4NyAyMy45NDY1IDE3LjA2NjkgMjUuOTkxNSAxNi4wODI0QzI1Ljk5NjUgMTYuMDU5MyAyNiAxNi4wMzEgMjYgMTUuOTk5N0MyNiAxNS45Njg0IDI1Ljk5NjUgMTUuOTQwMyAyNS45OTE1IDE1LjkxNzFDMjMuOTQ3NCAxNC45MzI3IDIxLjUyNTkgMTMuNjAxIDIwLjAxMDUgMTIuMDk4NyIgZmlsbD0id2hpdGUiLz4KPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0yMC4wMTA1IDEyLjA5ODdDMTguNDkgMTAuNTg5NCAxNy4xNTk0IDguMTA4MTQgMTYuMTc5OSA2LjAxMTAzQzE2LjE1MiA2LjAwNDUxIDE2LjExNzYgNiAxNi4wNzk0IDZDMTYuMDQxMSA2IDE2LjAwNjYgNi4wMDQ1MSAxNS45Nzg4IDYuMDExMDRDMTQuOTk5NCA4LjEwODE0IDEzLjY2OTcgMTAuNTg4OSAxMi4xNDgxIDEyLjA5ODFDMTAuNjI2OSAxMy42MDcxIDguMTI1NjggMTQuOTI2NCA2LjAxMTU3IDE1Ljg5ODFDNi4wMDQ3NCAxNS45MjYxIDYgMTUuOTYxMSA2IDE2QzYgMTYuMDM4NyA2LjAwNDY4IDE2LjA3MzYgNi4wMTE0NCAxNi4xMDE0QzguMTI1MTkgMTcuMDcyOSAxMC42MjYyIDE4LjM5MTkgMTIuMTQ3NyAxOS45MDE2QzEzLjY2OTcgMjEuNDEwNyAxNC45OTk2IDIzLjg5MiAxNS45NzkxIDI1Ljk4OUMxNi4wMDY4IDI1Ljk5NTYgMTYuMDQxMSAyNiAxNi4wNzkzIDI2QzE2LjExNzUgMjYgMTYuMTUxOSAyNS45OTU0IDE2LjE3OTYgMjUuOTg5QzE3LjE1OTEgMjMuODkyIDE4LjQ4ODggMjEuNDExIDIwLjAwOTkgMTkuOTAyMU0yMC4wMDk5IDE5LjkwMjFDMjEuNTI1MyAxOC4zOTg3IDIzLjk0NjUgMTcuMDY2OSAyNS45OTE1IDE2LjA4MjRDMjUuOTk2NSAxNi4wNTkzIDI2IDE2LjAzMSAyNiAxNS45OTk3QzI2IDE1Ljk2ODQgMjUuOTk2NSAxNS45NDAzIDI1Ljk5MTUgMTUuOTE3MUMyMy45NDc0IDE0LjkzMjcgMjEuNTI1OSAxMy42MDEgMjAuMDEwNSAxMi4wOTg3IiBzdHJva2U9IiM0OTFEOEIiIHN0cm9rZS13aWR0aD0iNCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIgbWFzaz0idXJsKCNwYXRoLTItb3V0c2lkZS0xXzE4NV82KSIvPgo8L3N2Zz4K">
23
+ <bpmn:extensionElements>
24
+ <zeebe:taskDefinition type="io.camunda.agenticai:aiagent-job-worker:1" retries="3" />
25
+ <zeebe:ioMapping>
26
+ <zeebe:input source="bedrock" target="provider.type" />
27
+ <zeebe:input source="{{secrets.IDP_AWS_REGION}}" target="provider.bedrock.region" />
28
+ <zeebe:input source="apiKey" target="provider.bedrock.authentication.type" />
29
+ <zeebe:input source="{{secrets.AI_AGENT_AWS_KEY}}"
30
+ target="provider.bedrock.authentication.apiKey" />
31
+ <zeebe:input source="global.anthropic.claude-sonnet-4-5-20250929-v1:0"
32
+ target="provider.bedrock.model.model" />
33
+ <zeebe:input
34
+ source="=&#34;You are **TaskAgent**, a helpful, generic chat agent that can handle a wide variety of customer requests using your own domain knowledge **and** any tools explicitly provided to you at runtime.&#10;&#10;If tools are provided, you should prefer them instead of guessing an answer. You can call the same tool multiple times by providing different input values. Don&#39;t guess any tools which were not explicitly configured. If no tool matches the request, try to generate an answer. If you&#39;re not able to find a good answer, return with a message stating why you&#39;re not able to.&#10;&#10;Wrap minimal, inspectable reasoning in *exactly* this XML template:&#10;&#10;&#60;thinking&#62;&#10;&#60;context&#62;…briefly state the customer’s need and current state…&#60;/context&#62;&#10;&#60;reflection&#62;…list candidate tools, justify which you will call next and why…&#60;/reflection&#62;&#10;&#60;/thinking&#62;&#10;&#10;Reveal **no** additional private reasoning outside these tags.&#34;"
35
+ target="data.systemPrompt.prompt" />
36
+ <zeebe:input
37
+ source="=&#34;Generate a single sentence in the following exact format, always using a new random city and country each time:&#10;&#10;The current date and time in {City, Country}, is approximately {h:mm AM/PM} on {Month day, year}.&#10;&#10;But only with the sentence/format as above, nothing else&#34;"
38
+ target="data.userPrompt.prompt" />
39
+ <zeebe:input target="agentContext" />
40
+ <zeebe:input source="in-process" target="data.memory.storage.type" />
41
+ <zeebe:input source="=20" target="data.memory.contextWindowSize" />
42
+ <zeebe:input source="=10" target="data.limits.maxModelCalls" />
43
+ <zeebe:input source="WAIT_FOR_TOOL_CALL_RESULTS" target="data.events.behavior" />
44
+ <zeebe:input source="text" target="data.response.format.type" />
45
+ <zeebe:input source="=false" target="data.response.format.parseJson" />
46
+ <zeebe:input source="=false" target="data.response.includeAssistantMessage" />
47
+ <zeebe:input source="=false" target="data.response.includeAgentContext" />
48
+ <zeebe:output source="=agent" target="agent" />
49
+ </zeebe:ioMapping>
50
+ <zeebe:taskHeaders>
51
+ <zeebe:header key="elementTemplateVersion" value="6" />
52
+ <zeebe:header key="elementTemplateId"
53
+ value="io.camunda.connectors.agenticai.aiagent.jobworker.v1" />
54
+ <zeebe:header key="retryBackoff" value="PT0S" />
55
+ </zeebe:taskHeaders>
56
+ <zeebe:adHoc outputCollection="toolCallResults"
57
+ outputElement="={&#10; id: toolCall._meta.id,&#10; name: toolCall._meta.name,&#10; content: toolCallResult&#10;}" />
58
+ </bpmn:extensionElements>
59
+ <bpmn:incoming>Flow_1as80ip</bpmn:incoming>
60
+ <bpmn:outgoing>Flow_0zkcbw0</bpmn:outgoing>
61
+ <bpmn:scriptTask id="GetDateAndTime" name="Get Date And Time">
62
+ <bpmn:extensionElements>
63
+ <zeebe:script expression="=now()" resultVariable="toolCallResult" />
64
+ </bpmn:extensionElements>
65
+ </bpmn:scriptTask>
66
+ </bpmn:adHocSubProcess>
67
+ <bpmn:sequenceFlow id="Flow_1as80ip" sourceRef="Event_02uvz35" targetRef="Activity_1u44499" />
68
+ <bpmn:sequenceFlow id="Flow_0zkcbw0" sourceRef="Activity_1u44499" targetRef="Activity_09igvpy" />
69
+ <bpmn:userTask id="Activity_09igvpy" name="User Feedback">
70
+ <bpmn:extensionElements>
71
+ <zeebe:userTask />
72
+ <zeebe:formDefinition formId="ai-agent-chat-user-feedback" />
73
+ <zeebe:ioMapping>
74
+ <zeebe:input source="=agent.responseText" target="agent.responseText" />
75
+ </zeebe:ioMapping>
76
+ </bpmn:extensionElements>
77
+ <bpmn:incoming>Flow_0zkcbw0</bpmn:incoming>
78
+ <bpmn:outgoing>Flow_08u9aut</bpmn:outgoing>
79
+ </bpmn:userTask>
80
+ <bpmn:sequenceFlow id="Flow_08u9aut" sourceRef="Activity_09igvpy" targetRef="Event_16luwcp" />
81
+ </bpmn:process>
82
+ <bpmndi:BPMNDiagram id="BPMNDiagram_1">
83
+ <bpmndi:BPMNPlane id="BPMNPlane_1" bpmnElement="ai-agent-sub-process-with-tools-aws-key">
84
+ <bpmndi:BPMNShape id="Event_16luwcp_di" bpmnElement="Event_16luwcp">
85
+ <dc:Bounds x="942" y="172" width="36" height="36" />
86
+ </bpmndi:BPMNShape>
87
+ <bpmndi:BPMNShape id="Event_02uvz35_di" bpmnElement="Event_02uvz35">
88
+ <dc:Bounds x="152" y="172" width="36" height="36" />
89
+ </bpmndi:BPMNShape>
90
+ <bpmndi:BPMNShape id="Activity_0xva5vz_di" bpmnElement="Activity_1u44499" isExpanded="true">
91
+ <dc:Bounds x="270" y="80" width="350" height="200" />
92
+ </bpmndi:BPMNShape>
93
+ <bpmndi:BPMNShape id="Activity_1cyou11_di" bpmnElement="GetDateAndTime">
94
+ <dc:Bounds x="400" y="140" width="100" height="80" />
95
+ <bpmndi:BPMNLabel />
96
+ </bpmndi:BPMNShape>
97
+ <bpmndi:BPMNShape id="Activity_0qxhgfa_di" bpmnElement="Activity_09igvpy">
98
+ <dc:Bounds x="730" y="150" width="100" height="80" />
99
+ <bpmndi:BPMNLabel />
100
+ </bpmndi:BPMNShape>
101
+ <bpmndi:BPMNEdge id="Flow_1as80ip_di" bpmnElement="Flow_1as80ip">
102
+ <di:waypoint x="188" y="190" />
103
+ <di:waypoint x="270" y="190" />
104
+ </bpmndi:BPMNEdge>
105
+ <bpmndi:BPMNEdge id="Flow_0zkcbw0_di" bpmnElement="Flow_0zkcbw0">
106
+ <di:waypoint x="620" y="190" />
107
+ <di:waypoint x="730" y="190" />
108
+ </bpmndi:BPMNEdge>
109
+ <bpmndi:BPMNEdge id="Flow_08u9aut_di" bpmnElement="Flow_08u9aut">
110
+ <di:waypoint x="830" y="190" />
111
+ <di:waypoint x="942" y="190" />
112
+ </bpmndi:BPMNEdge>
113
+ </bpmndi:BPMNPlane>
114
+ </bpmndi:BPMNDiagram>
115
+ </bpmn:definitions>
@@ -80,7 +80,7 @@ const dbVectorTestCases = [
80
80
  const aiAgentSubProcessTestCases = [
81
81
  {
82
82
  provider: 'AWS Key',
83
- bpmnPath: './resources/agentic_ai/ai-agent-subprocess-with-tools_aws_key.bpmn',
83
+ bpmnPath: './resources/agentic_ai/v1/ai-agent-subprocess-with-tools_aws_key.bpmn',
84
84
  },
85
85
  ];
86
86
  const regexTestCases = [
@@ -150,8 +150,7 @@ _8_9_1.test.describe('Agentic Orchestation User Flows', () => {
150
150
  });
151
151
  _8_9_1.test.describe('AI Agent sub process - provider user tests flow', () => {
152
152
  for (const params of aiAgentSubProcessTestCases) {
153
- // Skipped due to bug #8490: https://github.com/camunda/connectors/issues/8490
154
- _8_9_1.test.skip(`AI agent sub process with tools provides feedback to user - ${params.provider}`, async ({ appsPage, operateHomePage, operateProcessInstancePage, operateProcessesPage, taskPanelPage, taskDetailsPage, }) => {
153
+ (0, _8_9_1.test)(`AI agent sub process with tools provides feedback to user - ${params.provider}`, async ({ appsPage, operateHomePage, operateProcessInstancePage, operateProcessesPage, taskPanelPage, taskDetailsPage, }) => {
155
154
  _8_9_1.test.slow();
156
155
  const processKey = await (0, apiHelpers_1.deployProcess)(params.bpmnPath, authToken);
157
156
  if (processKey == null) {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@camunda/e2e-test-suite",
3
- "version": "0.0.1366",
3
+ "version": "0.0.1368",
4
4
  "description": "End-to-end test helpers for Camunda 8",
5
5
  "repository": {
6
6
  "type": "git",
@@ -0,0 +1,115 @@
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:modeler="http://camunda.org/schema/modeler/1.0"
7
+ xmlns:di="http://www.omg.org/spec/DD/20100524/DI" id="Definitions_1"
8
+ targetNamespace="http://bpmn.io/schema/bpmn" exporter="Camunda Web Modeler"
9
+ exporterVersion="eb83922" modeler:executionPlatform="Camunda Cloud"
10
+ modeler:executionPlatformVersion="8.9.0">
11
+ <bpmn:process id="ai-agent-sub-process-with-tools-aws-key"
12
+ name="AI Agent Sub Process With Tools AWS Key" isExecutable="true">
13
+ <bpmn:endEvent id="Event_16luwcp">
14
+ <bpmn:incoming>Flow_08u9aut</bpmn:incoming>
15
+ </bpmn:endEvent>
16
+ <bpmn:startEvent id="Event_02uvz35">
17
+ <bpmn:outgoing>Flow_1as80ip</bpmn:outgoing>
18
+ </bpmn:startEvent>
19
+ <bpmn:adHocSubProcess id="Activity_1u44499"
20
+ zeebe:modelerTemplate="io.camunda.connectors.agenticai.aiagent.jobworker.v1"
21
+ zeebe:modelerTemplateVersion="6"
22
+ zeebe:modelerTemplateIcon="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMzIiIGhlaWdodD0iMzIiIHZpZXdCb3g9IjAgMCAzMiAzMiIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPGNpcmNsZSBjeD0iMTYiIGN5PSIxNiIgcj0iMTYiIGZpbGw9IiNBNTZFRkYiLz4KPG1hc2sgaWQ9InBhdGgtMi1vdXRzaWRlLTFfMTg1XzYiIG1hc2tVbml0cz0idXNlclNwYWNlT25Vc2UiIHg9IjQiIHk9IjQiIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgZmlsbD0iYmxhY2siPgo8cmVjdCBmaWxsPSJ3aGl0ZSIgeD0iNCIgeT0iNCIgd2lkdGg9IjI0IiBoZWlnaHQ9IjI0Ii8+CjxwYXRoIGZpbGwtcnVsZT0iZXZlbm9kZCIgY2xpcC1ydWxlPSJldmVub2RkIiBkPSJNMjAuMDEwNSAxMi4wOTg3QzE4LjQ5IDEwLjU4OTQgMTcuMTU5NCA4LjEwODE0IDE2LjE3OTkgNi4wMTEwM0MxNi4xNTIgNi4wMDQ1MSAxNi4xMTc2IDYgMTYuMDc5NCA2QzE2LjA0MTEgNiAxNi4wMDY2IDYuMDA0NTEgMTUuOTc4OCA2LjAxMTA0QzE0Ljk5OTQgOC4xMDgxNCAxMy42Njk3IDEwLjU4ODkgMTIuMTQ4MSAxMi4wOTgxQzEwLjYyNjkgMTMuNjA3MSA4LjEyNTY4IDE0LjkyNjQgNi4wMTE1NyAxNS44OTgxQzYuMDA0NzQgMTUuOTI2MSA2IDE1Ljk2MTEgNiAxNkM2IDE2LjAzODcgNi4wMDQ2OCAxNi4wNzM2IDYuMDExNDQgMTYuMTAxNEM4LjEyNTE5IDE3LjA3MjkgMTAuNjI2MiAxOC4zOTE5IDEyLjE0NzcgMTkuOTAxNkMxMy42Njk3IDIxLjQxMDcgMTQuOTk5NiAyMy44OTIgMTUuOTc5MSAyNS45ODlDMTYuMDA2OCAyNS45OTU2IDE2LjA0MTEgMjYgMTYuMDc5MyAyNkMxNi4xMTc1IDI2IDE2LjE1MTkgMjUuOTk1NCAxNi4xNzk2IDI1Ljk4OUMxNy4xNTkxIDIzLjg5MiAxOC40ODg4IDIxLjQxMSAyMC4wMDk5IDE5LjkwMjFNMjAuMDA5OSAxOS45MDIxQzIxLjUyNTMgMTguMzk4NyAyMy45NDY1IDE3LjA2NjkgMjUuOTkxNSAxNi4wODI0QzI1Ljk5NjUgMTYuMDU5MyAyNiAxNi4wMzEgMjYgMTUuOTk5N0MyNiAxNS45Njg0IDI1Ljk5NjUgMTUuOTQwMyAyNS45OTE1IDE1LjkxNzFDMjMuOTQ3NCAxNC45MzI3IDIxLjUyNTkgMTMuNjAxIDIwLjAxMDUgMTIuMDk4NyIvPgo8L21hc2s+CjxwYXRoIGZpbGwtcnVsZT0iZXZlbm9kZCIgY2xpcC1ydWxlPSJldmVub2RkIiBkPSJNMjAuMDEwNSAxMi4wOTg3QzE4LjQ5IDEwLjU4OTQgMTcuMTU5NCA4LjEwODE0IDE2LjE3OTkgNi4wMTEwM0MxNi4xNTIgNi4wMDQ1MSAxNi4xMTc2IDYgMTYuMDc5NCA2QzE2LjA0MTEgNiAxNi4wMDY2IDYuMDA0NTEgMTUuOTc4OCA2LjAxMTA0QzE0Ljk5OTQgOC4xMDgxNCAxMy42Njk3IDEwLjU4ODkgMTIuMTQ4MSAxMi4wOTgxQzEwLjYyNjkgMTMuNjA3MSA4LjEyNTY4IDE0LjkyNjQgNi4wMTE1NyAxNS44OTgxQzYuMDA0NzQgMTUuOTI2MSA2IDE1Ljk2MTEgNiAxNkM2IDE2LjAzODcgNi4wMDQ2OCAxNi4wNzM2IDYuMDExNDQgMTYuMTAxNEM4LjEyNTE5IDE3LjA3MjkgMTAuNjI2MiAxOC4zOTE5IDEyLjE0NzcgMTkuOTAxNkMxMy42Njk3IDIxLjQxMDcgMTQuOTk5NiAyMy44OTIgMTUuOTc5MSAyNS45ODlDMTYuMDA2OCAyNS45OTU2IDE2LjA0MTEgMjYgMTYuMDc5MyAyNkMxNi4xMTc1IDI2IDE2LjE1MTkgMjUuOTk1NCAxNi4xNzk2IDI1Ljk4OUMxNy4xNTkxIDIzLjg5MiAxOC40ODg4IDIxLjQxMSAyMC4wMDk5IDE5LjkwMjFNMjAuMDA5OSAxOS45MDIxQzIxLjUyNTMgMTguMzk4NyAyMy45NDY1IDE3LjA2NjkgMjUuOTkxNSAxNi4wODI0QzI1Ljk5NjUgMTYuMDU5MyAyNiAxNi4wMzEgMjYgMTUuOTk5N0MyNiAxNS45Njg0IDI1Ljk5NjUgMTUuOTQwMyAyNS45OTE1IDE1LjkxNzFDMjMuOTQ3NCAxNC45MzI3IDIxLjUyNTkgMTMuNjAxIDIwLjAxMDUgMTIuMDk4NyIgZmlsbD0id2hpdGUiLz4KPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0yMC4wMTA1IDEyLjA5ODdDMTguNDkgMTAuNTg5NCAxNy4xNTk0IDguMTA4MTQgMTYuMTc5OSA2LjAxMTAzQzE2LjE1MiA2LjAwNDUxIDE2LjExNzYgNiAxNi4wNzk0IDZDMTYuMDQxMSA2IDE2LjAwNjYgNi4wMDQ1MSAxNS45Nzg4IDYuMDExMDRDMTQuOTk5NCA4LjEwODE0IDEzLjY2OTcgMTAuNTg4OSAxMi4xNDgxIDEyLjA5ODFDMTAuNjI2OSAxMy42MDcxIDguMTI1NjggMTQuOTI2NCA2LjAxMTU3IDE1Ljg5ODFDNi4wMDQ3NCAxNS45MjYxIDYgMTUuOTYxMSA2IDE2QzYgMTYuMDM4NyA2LjAwNDY4IDE2LjA3MzYgNi4wMTE0NCAxNi4xMDE0QzguMTI1MTkgMTcuMDcyOSAxMC42MjYyIDE4LjM5MTkgMTIuMTQ3NyAxOS45MDE2QzEzLjY2OTcgMjEuNDEwNyAxNC45OTk2IDIzLjg5MiAxNS45NzkxIDI1Ljk4OUMxNi4wMDY4IDI1Ljk5NTYgMTYuMDQxMSAyNiAxNi4wNzkzIDI2QzE2LjExNzUgMjYgMTYuMTUxOSAyNS45OTU0IDE2LjE3OTYgMjUuOTg5QzE3LjE1OTEgMjMuODkyIDE4LjQ4ODggMjEuNDExIDIwLjAwOTkgMTkuOTAyMU0yMC4wMDk5IDE5LjkwMjFDMjEuNTI1MyAxOC4zOTg3IDIzLjk0NjUgMTcuMDY2OSAyNS45OTE1IDE2LjA4MjRDMjUuOTk2NSAxNi4wNTkzIDI2IDE2LjAzMSAyNiAxNS45OTk3QzI2IDE1Ljk2ODQgMjUuOTk2NSAxNS45NDAzIDI1Ljk5MTUgMTUuOTE3MUMyMy45NDc0IDE0LjkzMjcgMjEuNTI1OSAxMy42MDEgMjAuMDEwNSAxMi4wOTg3IiBzdHJva2U9IiM0OTFEOEIiIHN0cm9rZS13aWR0aD0iNCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIgbWFzaz0idXJsKCNwYXRoLTItb3V0c2lkZS0xXzE4NV82KSIvPgo8L3N2Zz4K">
23
+ <bpmn:extensionElements>
24
+ <zeebe:taskDefinition type="io.camunda.agenticai:aiagent-job-worker:1" retries="3" />
25
+ <zeebe:ioMapping>
26
+ <zeebe:input source="bedrock" target="provider.type" />
27
+ <zeebe:input source="{{secrets.IDP_AWS_REGION}}" target="provider.bedrock.region" />
28
+ <zeebe:input source="apiKey" target="provider.bedrock.authentication.type" />
29
+ <zeebe:input source="{{secrets.AI_AGENT_AWS_KEY}}"
30
+ target="provider.bedrock.authentication.apiKey" />
31
+ <zeebe:input source="global.anthropic.claude-sonnet-4-5-20250929-v1:0"
32
+ target="provider.bedrock.model.model" />
33
+ <zeebe:input
34
+ source="=&#34;You are **TaskAgent**, a helpful, generic chat agent that can handle a wide variety of customer requests using your own domain knowledge **and** any tools explicitly provided to you at runtime.&#10;&#10;If tools are provided, you should prefer them instead of guessing an answer. You can call the same tool multiple times by providing different input values. Don&#39;t guess any tools which were not explicitly configured. If no tool matches the request, try to generate an answer. If you&#39;re not able to find a good answer, return with a message stating why you&#39;re not able to.&#10;&#10;Wrap minimal, inspectable reasoning in *exactly* this XML template:&#10;&#10;&#60;thinking&#62;&#10;&#60;context&#62;…briefly state the customer’s need and current state…&#60;/context&#62;&#10;&#60;reflection&#62;…list candidate tools, justify which you will call next and why…&#60;/reflection&#62;&#10;&#60;/thinking&#62;&#10;&#10;Reveal **no** additional private reasoning outside these tags.&#34;"
35
+ target="data.systemPrompt.prompt" />
36
+ <zeebe:input
37
+ source="=&#34;Generate a single sentence in the following exact format, always using a new random city and country each time:&#10;&#10;The current date and time in {City, Country}, is approximately {h:mm AM/PM} on {Month day, year}.&#10;&#10;But only with the sentence/format as above, nothing else&#34;"
38
+ target="data.userPrompt.prompt" />
39
+ <zeebe:input target="agentContext" />
40
+ <zeebe:input source="in-process" target="data.memory.storage.type" />
41
+ <zeebe:input source="=20" target="data.memory.contextWindowSize" />
42
+ <zeebe:input source="=10" target="data.limits.maxModelCalls" />
43
+ <zeebe:input source="WAIT_FOR_TOOL_CALL_RESULTS" target="data.events.behavior" />
44
+ <zeebe:input source="text" target="data.response.format.type" />
45
+ <zeebe:input source="=false" target="data.response.format.parseJson" />
46
+ <zeebe:input source="=false" target="data.response.includeAssistantMessage" />
47
+ <zeebe:input source="=false" target="data.response.includeAgentContext" />
48
+ <zeebe:output source="=agent" target="agent" />
49
+ </zeebe:ioMapping>
50
+ <zeebe:taskHeaders>
51
+ <zeebe:header key="elementTemplateVersion" value="6" />
52
+ <zeebe:header key="elementTemplateId"
53
+ value="io.camunda.connectors.agenticai.aiagent.jobworker.v1" />
54
+ <zeebe:header key="retryBackoff" value="PT0S" />
55
+ </zeebe:taskHeaders>
56
+ <zeebe:adHoc outputCollection="toolCallResults"
57
+ outputElement="={&#10; id: toolCall._meta.id,&#10; name: toolCall._meta.name,&#10; content: toolCallResult&#10;}" />
58
+ </bpmn:extensionElements>
59
+ <bpmn:incoming>Flow_1as80ip</bpmn:incoming>
60
+ <bpmn:outgoing>Flow_0zkcbw0</bpmn:outgoing>
61
+ <bpmn:scriptTask id="GetDateAndTime" name="Get Date And Time">
62
+ <bpmn:extensionElements>
63
+ <zeebe:script expression="=now()" resultVariable="toolCallResult" />
64
+ </bpmn:extensionElements>
65
+ </bpmn:scriptTask>
66
+ </bpmn:adHocSubProcess>
67
+ <bpmn:sequenceFlow id="Flow_1as80ip" sourceRef="Event_02uvz35" targetRef="Activity_1u44499" />
68
+ <bpmn:sequenceFlow id="Flow_0zkcbw0" sourceRef="Activity_1u44499" targetRef="Activity_09igvpy" />
69
+ <bpmn:userTask id="Activity_09igvpy" name="User Feedback">
70
+ <bpmn:extensionElements>
71
+ <zeebe:userTask />
72
+ <zeebe:formDefinition formId="ai-agent-chat-user-feedback" />
73
+ <zeebe:ioMapping>
74
+ <zeebe:input source="=agent.responseText" target="agent.responseText" />
75
+ </zeebe:ioMapping>
76
+ </bpmn:extensionElements>
77
+ <bpmn:incoming>Flow_0zkcbw0</bpmn:incoming>
78
+ <bpmn:outgoing>Flow_08u9aut</bpmn:outgoing>
79
+ </bpmn:userTask>
80
+ <bpmn:sequenceFlow id="Flow_08u9aut" sourceRef="Activity_09igvpy" targetRef="Event_16luwcp" />
81
+ </bpmn:process>
82
+ <bpmndi:BPMNDiagram id="BPMNDiagram_1">
83
+ <bpmndi:BPMNPlane id="BPMNPlane_1" bpmnElement="ai-agent-sub-process-with-tools-aws-key">
84
+ <bpmndi:BPMNShape id="Event_16luwcp_di" bpmnElement="Event_16luwcp">
85
+ <dc:Bounds x="942" y="172" width="36" height="36" />
86
+ </bpmndi:BPMNShape>
87
+ <bpmndi:BPMNShape id="Event_02uvz35_di" bpmnElement="Event_02uvz35">
88
+ <dc:Bounds x="152" y="172" width="36" height="36" />
89
+ </bpmndi:BPMNShape>
90
+ <bpmndi:BPMNShape id="Activity_0xva5vz_di" bpmnElement="Activity_1u44499" isExpanded="true">
91
+ <dc:Bounds x="270" y="80" width="350" height="200" />
92
+ </bpmndi:BPMNShape>
93
+ <bpmndi:BPMNShape id="Activity_1cyou11_di" bpmnElement="GetDateAndTime">
94
+ <dc:Bounds x="400" y="140" width="100" height="80" />
95
+ <bpmndi:BPMNLabel />
96
+ </bpmndi:BPMNShape>
97
+ <bpmndi:BPMNShape id="Activity_0qxhgfa_di" bpmnElement="Activity_09igvpy">
98
+ <dc:Bounds x="730" y="150" width="100" height="80" />
99
+ <bpmndi:BPMNLabel />
100
+ </bpmndi:BPMNShape>
101
+ <bpmndi:BPMNEdge id="Flow_1as80ip_di" bpmnElement="Flow_1as80ip">
102
+ <di:waypoint x="188" y="190" />
103
+ <di:waypoint x="270" y="190" />
104
+ </bpmndi:BPMNEdge>
105
+ <bpmndi:BPMNEdge id="Flow_0zkcbw0_di" bpmnElement="Flow_0zkcbw0">
106
+ <di:waypoint x="620" y="190" />
107
+ <di:waypoint x="730" y="190" />
108
+ </bpmndi:BPMNEdge>
109
+ <bpmndi:BPMNEdge id="Flow_08u9aut_di" bpmnElement="Flow_08u9aut">
110
+ <di:waypoint x="830" y="190" />
111
+ <di:waypoint x="942" y="190" />
112
+ </bpmndi:BPMNEdge>
113
+ </bpmndi:BPMNPlane>
114
+ </bpmndi:BPMNDiagram>
115
+ </bpmn:definitions>