@nanobpm/nano-workforce 0.200.7 → 0.200.8
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 +6 -0
- package/SPEC.md +41 -0
- package/app/agentSla.test.ts +48 -0
- package/app/agentSla.ts +36 -11
- package/app/agentic/vocab/agent-sla-boundary.test.ts +170 -0
- package/app/agentic/vocab/job-types.ts +60 -0
- package/app/conformance.test.ts +114 -0
- package/app/conformance.ts +72 -0
- package/app/contracts.ts +2 -2
- package/app/deliveryRunner.ts +5 -0
- package/app/feature.ts +5 -0
- package/app/plan.ts +12 -0
- package/app/retro.test.ts +5 -0
- package/app/retro.ts +4 -0
- package/app/service.ts +27 -8
- package/e2e/agent-sla-boundary.e2e.ts +598 -0
- package/e2e/support/pin-agent-sla.ts +47 -0
- package/package.json +1 -1
- package/resources/processes/feature.bpmn +1 -0
- package/resources/processes/implement-cell.bpmn +96 -46
- package/resources/processes/merge-cell.bpmn +60 -12
- package/resources/processes/plan-fanout.bpmn +1 -0
- package/resources/processes/retro.bpmn +100 -3
- package/test/derivation-parity/derivation-parity.test.ts +35 -11
- package/test/derivation-parity/flows.ts +14 -1
- package/workers/conformance-record/worker.test.ts +87 -1
- package/workers/conformance-record/worker.ts +34 -7
|
@@ -32,6 +32,12 @@
|
|
|
32
32
|
<bpmn:incoming>ic_answerLoop</bpmn:incoming>
|
|
33
33
|
<bpmn:outgoing>ic_toGw</bpmn:outgoing>
|
|
34
34
|
</bpmn:serviceTask>
|
|
35
|
+
<bpmn:boundaryEvent id="be_implement_sla" name="Agent SLA elapsed" attachedToRef="implement-task">
|
|
36
|
+
<bpmn:outgoing>ic_sla</bpmn:outgoing>
|
|
37
|
+
<bpmn:timerEventDefinition id="ted_implement_sla">
|
|
38
|
+
<bpmn:timeDuration xsi:type="bpmn:tFormalExpression">=agentSlaTimeout</bpmn:timeDuration>
|
|
39
|
+
</bpmn:timerEventDefinition>
|
|
40
|
+
</bpmn:boundaryEvent>
|
|
35
41
|
<bpmn:exclusiveGateway id="ic_gw" name="clean terminal?" default="ic_escalate">
|
|
36
42
|
<bpmn:incoming>ic_toGw</bpmn:incoming>
|
|
37
43
|
<bpmn:outgoing>ic_escalate</bpmn:outgoing>
|
|
@@ -81,6 +87,20 @@
|
|
|
81
87
|
<bpmn:incoming>ic_toRecordEscalation</bpmn:incoming>
|
|
82
88
|
<bpmn:outgoing>ic_toEscalate</bpmn:outgoing>
|
|
83
89
|
</bpmn:serviceTask>
|
|
90
|
+
<bpmn:serviceTask id="record-escalation-sla" name="Record escalation (agent SLA)">
|
|
91
|
+
<bpmn:extensionElements>
|
|
92
|
+
<zeebe:taskDefinition type="pr.record-feature-escalation" />
|
|
93
|
+
<zeebe:properties>
|
|
94
|
+
<zeebe:property name="io.nanobpm.dataEnvelope.in" value="RecordEscalationIn" />
|
|
95
|
+
</zeebe:properties>
|
|
96
|
+
<zeebe:ioMapping>
|
|
97
|
+
<zeebe:input source="="The implementation agent exceeded its time budget (SLA " + agentSlaTimeout + ") without completing — it is hung or looping. Check its progress or intervene, then answer to resume (the run continues on its deterministic feat/<task.id> branch), or abandon it."" target="question" />
|
|
98
|
+
<zeebe:output source="=question" target="question" />
|
|
99
|
+
</zeebe:ioMapping>
|
|
100
|
+
</bpmn:extensionElements>
|
|
101
|
+
<bpmn:incoming>ic_sla</bpmn:incoming>
|
|
102
|
+
<bpmn:outgoing>ic_slaToEscalate</bpmn:outgoing>
|
|
103
|
+
</bpmn:serviceTask>
|
|
84
104
|
<bpmn:exclusiveGateway id="ic_gw_answer" name="answer?" default="ic_abandon">
|
|
85
105
|
<bpmn:incoming>ic_toAnswerGw</bpmn:incoming>
|
|
86
106
|
<bpmn:outgoing>ic_answerLoop</bpmn:outgoing>
|
|
@@ -112,6 +132,8 @@
|
|
|
112
132
|
<bpmn:conditionExpression xsi:type="bpmn:tFormalExpression">=reconciled = true</bpmn:conditionExpression>
|
|
113
133
|
</bpmn:sequenceFlow>
|
|
114
134
|
<bpmn:sequenceFlow id="ic_toRecordEscalation" name="escalated" sourceRef="ic_reconcile_gw" targetRef="record-escalation" />
|
|
135
|
+
<bpmn:sequenceFlow id="ic_sla" name="agent SLA elapsed" sourceRef="be_implement_sla" targetRef="record-escalation-sla" />
|
|
136
|
+
<bpmn:sequenceFlow id="ic_slaToEscalate" sourceRef="record-escalation-sla" targetRef="escalate" />
|
|
115
137
|
<bpmn:sequenceFlow id="ic_toEscalate" sourceRef="record-escalation" targetRef="escalate" />
|
|
116
138
|
<bpmn:sequenceFlow id="ic_toAnswerGw" sourceRef="escalate" targetRef="ic_gw_answer" />
|
|
117
139
|
<bpmn:sequenceFlow id="ic_answerLoop" name="answer" sourceRef="ic_gw_answer" targetRef="record-implementing">
|
|
@@ -132,39 +154,48 @@
|
|
|
132
154
|
<dc:Bounds x="216" y="80" width="100" height="80" />
|
|
133
155
|
</bpmndi:BPMNShape>
|
|
134
156
|
<bpmndi:BPMNShape id="BPMNShape_ic_gw" bpmnElement="ic_gw" isMarkerVisible="true">
|
|
135
|
-
<dc:Bounds x="
|
|
157
|
+
<dc:Bounds x="441" y="95" width="50" height="50" />
|
|
136
158
|
<bpmndi:BPMNLabel>
|
|
137
|
-
<dc:Bounds x="
|
|
159
|
+
<dc:Bounds x="391" y="150" width="70" height="28" />
|
|
138
160
|
</bpmndi:BPMNLabel>
|
|
139
161
|
</bpmndi:BPMNShape>
|
|
140
162
|
<bpmndi:BPMNShape id="BPMNShape_reconcile-implement" bpmnElement="reconcile-implement">
|
|
141
|
-
<dc:Bounds x="
|
|
163
|
+
<dc:Bounds x="616" y="80" width="100" height="80" />
|
|
142
164
|
</bpmndi:BPMNShape>
|
|
143
165
|
<bpmndi:BPMNShape id="BPMNShape_ic_reconcile_gw" bpmnElement="ic_reconcile_gw" isMarkerVisible="true">
|
|
144
|
-
<dc:Bounds x="
|
|
166
|
+
<dc:Bounds x="816" y="95" width="50" height="50" />
|
|
145
167
|
<bpmndi:BPMNLabel>
|
|
146
|
-
<dc:Bounds x="
|
|
168
|
+
<dc:Bounds x="801" y="76" width="81" height="14" />
|
|
147
169
|
</bpmndi:BPMNLabel>
|
|
148
170
|
</bpmndi:BPMNShape>
|
|
149
171
|
<bpmndi:BPMNShape id="BPMNShape_escalate" bpmnElement="escalate">
|
|
150
|
-
<dc:Bounds x="
|
|
172
|
+
<dc:Bounds x="1166" y="80" width="100" height="80" />
|
|
151
173
|
</bpmndi:BPMNShape>
|
|
152
174
|
<bpmndi:BPMNShape id="BPMNShape_record-escalation" bpmnElement="record-escalation">
|
|
153
|
-
<dc:Bounds x="
|
|
175
|
+
<dc:Bounds x="966" y="80" width="100" height="80" />
|
|
176
|
+
</bpmndi:BPMNShape>
|
|
177
|
+
<bpmndi:BPMNShape id="BPMNShape_record-escalation-sla" bpmnElement="record-escalation-sla">
|
|
178
|
+
<dc:Bounds x="416" y="240" width="100" height="80" />
|
|
154
179
|
</bpmndi:BPMNShape>
|
|
155
180
|
<bpmndi:BPMNShape id="BPMNShape_ic_gw_answer" bpmnElement="ic_gw_answer" isMarkerVisible="true">
|
|
156
|
-
<dc:Bounds x="
|
|
181
|
+
<dc:Bounds x="1366" y="95" width="50" height="50" />
|
|
157
182
|
<bpmndi:BPMNLabel>
|
|
158
|
-
<dc:Bounds x="
|
|
183
|
+
<dc:Bounds x="1323" y="150" width="56" height="14" />
|
|
159
184
|
</bpmndi:BPMNLabel>
|
|
160
185
|
</bpmndi:BPMNShape>
|
|
161
186
|
<bpmndi:BPMNShape id="BPMNShape_record-implementing" bpmnElement="record-implementing">
|
|
162
|
-
<dc:Bounds x="
|
|
187
|
+
<dc:Bounds x="1516" y="240" width="100" height="80" />
|
|
163
188
|
</bpmndi:BPMNShape>
|
|
164
189
|
<bpmndi:BPMNShape id="BPMNShape_ic_end" bpmnElement="ic_end">
|
|
165
|
-
<dc:Bounds x="
|
|
190
|
+
<dc:Bounds x="1548" y="102" width="36" height="36" />
|
|
166
191
|
<bpmndi:BPMNLabel>
|
|
167
|
-
<dc:Bounds x="
|
|
192
|
+
<dc:Bounds x="1493" y="143" width="66" height="14" />
|
|
193
|
+
</bpmndi:BPMNLabel>
|
|
194
|
+
</bpmndi:BPMNShape>
|
|
195
|
+
<bpmndi:BPMNShape id="BPMNShape_be_implement_sla" bpmnElement="be_implement_sla">
|
|
196
|
+
<dc:Bounds x="248" y="142" width="36" height="36" />
|
|
197
|
+
<bpmndi:BPMNLabel>
|
|
198
|
+
<dc:Bounds x="170" y="183" width="72" height="28" />
|
|
168
199
|
</bpmndi:BPMNLabel>
|
|
169
200
|
</bpmndi:BPMNShape>
|
|
170
201
|
<bpmndi:BPMNEdge id="BPMNEdge_ic_toImplement" bpmnElement="ic_toImplement">
|
|
@@ -173,72 +204,91 @@
|
|
|
173
204
|
</bpmndi:BPMNEdge>
|
|
174
205
|
<bpmndi:BPMNEdge id="BPMNEdge_ic_toGw" bpmnElement="ic_toGw">
|
|
175
206
|
<di:waypoint x="316" y="120" />
|
|
176
|
-
<di:waypoint x="
|
|
207
|
+
<di:waypoint x="441" y="120" />
|
|
177
208
|
</bpmndi:BPMNEdge>
|
|
178
209
|
<bpmndi:BPMNEdge id="BPMNEdge_ic_escalate" bpmnElement="ic_escalate">
|
|
179
|
-
<di:waypoint x="
|
|
180
|
-
<di:waypoint x="
|
|
210
|
+
<di:waypoint x="491" y="120" />
|
|
211
|
+
<di:waypoint x="616" y="120" />
|
|
181
212
|
<bpmndi:BPMNLabel>
|
|
182
|
-
<dc:Bounds x="
|
|
213
|
+
<dc:Bounds x="520" y="98" width="67" height="14" />
|
|
183
214
|
</bpmndi:BPMNLabel>
|
|
184
215
|
</bpmndi:BPMNEdge>
|
|
185
216
|
<bpmndi:BPMNEdge id="BPMNEdge_ic_toReconcileGw" bpmnElement="ic_toReconcileGw">
|
|
186
|
-
<di:waypoint x="
|
|
187
|
-
<di:waypoint x="
|
|
217
|
+
<di:waypoint x="716" y="120" />
|
|
218
|
+
<di:waypoint x="816" y="120" />
|
|
188
219
|
</bpmndi:BPMNEdge>
|
|
189
220
|
<bpmndi:BPMNEdge id="BPMNEdge_ic_toRecordEscalation" bpmnElement="ic_toRecordEscalation">
|
|
190
|
-
<di:waypoint x="
|
|
191
|
-
<di:waypoint x="
|
|
221
|
+
<di:waypoint x="866" y="120" />
|
|
222
|
+
<di:waypoint x="966" y="120" />
|
|
192
223
|
<bpmndi:BPMNLabel>
|
|
193
|
-
<dc:Bounds x="
|
|
224
|
+
<dc:Bounds x="883" y="128" width="67" height="14" />
|
|
194
225
|
</bpmndi:BPMNLabel>
|
|
195
226
|
</bpmndi:BPMNEdge>
|
|
196
227
|
<bpmndi:BPMNEdge id="BPMNEdge_ic_toEscalate" bpmnElement="ic_toEscalate">
|
|
197
|
-
<di:waypoint x="
|
|
198
|
-
<di:waypoint x="
|
|
228
|
+
<di:waypoint x="1066" y="120" />
|
|
229
|
+
<di:waypoint x="1166" y="120" />
|
|
199
230
|
</bpmndi:BPMNEdge>
|
|
200
231
|
<bpmndi:BPMNEdge id="BPMNEdge_ic_toAnswerGw" bpmnElement="ic_toAnswerGw">
|
|
201
|
-
<di:waypoint x="
|
|
202
|
-
<di:waypoint x="
|
|
232
|
+
<di:waypoint x="1266" y="120" />
|
|
233
|
+
<di:waypoint x="1366" y="120" />
|
|
203
234
|
</bpmndi:BPMNEdge>
|
|
204
235
|
<bpmndi:BPMNEdge id="BPMNEdge_ic_abandon" bpmnElement="ic_abandon">
|
|
205
|
-
<di:waypoint x="
|
|
206
|
-
<di:waypoint x="
|
|
236
|
+
<di:waypoint x="1416" y="120" />
|
|
237
|
+
<di:waypoint x="1548" y="120" />
|
|
207
238
|
<bpmndi:BPMNLabel>
|
|
208
|
-
<dc:Bounds x="
|
|
239
|
+
<dc:Bounds x="1456" y="98" width="53" height="14" />
|
|
209
240
|
</bpmndi:BPMNLabel>
|
|
210
241
|
</bpmndi:BPMNEdge>
|
|
211
242
|
<bpmndi:BPMNEdge id="BPMNEdge_ic_answerLoop" bpmnElement="ic_answerLoop">
|
|
212
|
-
<di:waypoint x="
|
|
213
|
-
<di:waypoint x="
|
|
214
|
-
<di:waypoint x="
|
|
243
|
+
<di:waypoint x="1391" y="145" />
|
|
244
|
+
<di:waypoint x="1391" y="280" />
|
|
245
|
+
<di:waypoint x="1516" y="280" />
|
|
215
246
|
<bpmndi:BPMNLabel>
|
|
216
|
-
<dc:Bounds x="
|
|
247
|
+
<dc:Bounds x="1337" y="206" width="49" height="14" />
|
|
217
248
|
</bpmndi:BPMNLabel>
|
|
218
249
|
</bpmndi:BPMNEdge>
|
|
219
250
|
<bpmndi:BPMNEdge id="BPMNEdge_ic_done" bpmnElement="ic_done">
|
|
220
|
-
<di:waypoint x="
|
|
221
|
-
<di:waypoint x="
|
|
222
|
-
<di:waypoint x="
|
|
223
|
-
<di:waypoint x="
|
|
251
|
+
<di:waypoint x="466" y="145" />
|
|
252
|
+
<di:waypoint x="466" y="200" />
|
|
253
|
+
<di:waypoint x="1566" y="200" />
|
|
254
|
+
<di:waypoint x="1566" y="138" />
|
|
224
255
|
<bpmndi:BPMNLabel>
|
|
225
|
-
<dc:Bounds x="
|
|
256
|
+
<dc:Bounds x="1000" y="208" width="32" height="14" />
|
|
226
257
|
</bpmndi:BPMNLabel>
|
|
227
258
|
</bpmndi:BPMNEdge>
|
|
228
259
|
<bpmndi:BPMNEdge id="BPMNEdge_ic_reconciled" bpmnElement="ic_reconciled">
|
|
229
|
-
<di:waypoint x="
|
|
230
|
-
<di:waypoint x="
|
|
231
|
-
<di:waypoint x="
|
|
232
|
-
<di:waypoint x="
|
|
260
|
+
<di:waypoint x="841" y="145" />
|
|
261
|
+
<di:waypoint x="841" y="180" />
|
|
262
|
+
<di:waypoint x="1566" y="180" />
|
|
263
|
+
<di:waypoint x="1566" y="138" />
|
|
264
|
+
<bpmndi:BPMNLabel>
|
|
265
|
+
<dc:Bounds x="1097" y="158" width="53" height="14" />
|
|
266
|
+
</bpmndi:BPMNLabel>
|
|
267
|
+
</bpmndi:BPMNEdge>
|
|
268
|
+
<bpmndi:BPMNEdge id="BPMNEdge_ic_slaToEscalate" bpmnElement="ic_slaToEscalate">
|
|
269
|
+
<di:waypoint x="516" y="300" />
|
|
270
|
+
<di:waypoint x="536" y="300" />
|
|
271
|
+
<di:waypoint x="536" y="340" />
|
|
272
|
+
<di:waypoint x="1436" y="340" />
|
|
273
|
+
<di:waypoint x="1436" y="220" />
|
|
274
|
+
<di:waypoint x="1604" y="220" />
|
|
275
|
+
<di:waypoint x="1604" y="82" />
|
|
276
|
+
<di:waypoint x="1266" y="82" />
|
|
277
|
+
</bpmndi:BPMNEdge>
|
|
278
|
+
<bpmndi:BPMNEdge id="BPMNEdge_ic_sla" bpmnElement="ic_sla">
|
|
279
|
+
<di:waypoint x="266" y="178" />
|
|
280
|
+
<di:waypoint x="266" y="280" />
|
|
281
|
+
<di:waypoint x="416" y="280" />
|
|
233
282
|
<bpmndi:BPMNLabel>
|
|
234
|
-
<dc:Bounds x="
|
|
283
|
+
<dc:Bounds x="271" y="215" width="70" height="28" />
|
|
235
284
|
</bpmndi:BPMNLabel>
|
|
236
285
|
</bpmndi:BPMNEdge>
|
|
237
286
|
<bpmndi:BPMNEdge id="BPMNEdge_ic_reImplement" bpmnElement="ic_reImplement">
|
|
238
|
-
<di:waypoint x="
|
|
239
|
-
<di:waypoint x="
|
|
240
|
-
<di:waypoint x="
|
|
241
|
-
<di:waypoint x="266" y="
|
|
287
|
+
<di:waypoint x="1616" y="280" />
|
|
288
|
+
<di:waypoint x="1636" y="280" />
|
|
289
|
+
<di:waypoint x="1636" y="60" />
|
|
290
|
+
<di:waypoint x="266" y="60" />
|
|
291
|
+
<di:waypoint x="266" y="80" />
|
|
242
292
|
</bpmndi:BPMNEdge>
|
|
243
293
|
</bpmndi:BPMNPlane>
|
|
244
294
|
</bpmndi:BPMNDiagram>
|
|
@@ -24,6 +24,12 @@
|
|
|
24
24
|
<bpmn:incoming>mc_sla</bpmn:incoming>
|
|
25
25
|
<bpmn:outgoing>mc_toRecord</bpmn:outgoing>
|
|
26
26
|
</bpmn:serviceTask>
|
|
27
|
+
<bpmn:boundaryEvent id="be_trial_agent_sla" name="Agent SLA elapsed" attachedToRef="trial-merge">
|
|
28
|
+
<bpmn:outgoing>mc_agentSla</bpmn:outgoing>
|
|
29
|
+
<bpmn:timerEventDefinition id="ted_trial_agent_sla">
|
|
30
|
+
<bpmn:timeDuration xsi:type="bpmn:tFormalExpression">=agentSlaTimeout</bpmn:timeDuration>
|
|
31
|
+
</bpmn:timerEventDefinition>
|
|
32
|
+
</bpmn:boundaryEvent>
|
|
27
33
|
<bpmn:serviceTask id="record-trial-merge" name="Record trial merge">
|
|
28
34
|
<bpmn:extensionElements>
|
|
29
35
|
<zeebe:taskDefinition type="pr.record-trial-merge" />
|
|
@@ -34,8 +40,25 @@
|
|
|
34
40
|
<bpmn:incoming>mc_toRecord</bpmn:incoming>
|
|
35
41
|
<bpmn:outgoing>mc_toGwTrial</bpmn:outgoing>
|
|
36
42
|
</bpmn:serviceTask>
|
|
43
|
+
<bpmn:serviceTask id="record-trial-merge-sla" name="Record trial merge (agent SLA)">
|
|
44
|
+
<bpmn:extensionElements>
|
|
45
|
+
<zeebe:taskDefinition type="pr.record-trial-merge" />
|
|
46
|
+
<zeebe:properties>
|
|
47
|
+
<zeebe:property name="io.nanobpm.dataEnvelope.in" value="RecordTrialMergeIn" />
|
|
48
|
+
</zeebe:properties>
|
|
49
|
+
<zeebe:ioMapping>
|
|
50
|
+
<zeebe:input source="="suite-failed"" target="result" />
|
|
51
|
+
<zeebe:input source="="The trial-merge agent exceeded its time budget (SLA " + agentSlaTimeout + ") without returning a machine-readable result — it is hung or looping. Acknowledge to record the timeout and decide whether to rerun the trial merge."" target="summary" />
|
|
52
|
+
<zeebe:input source="=null" target="conflicts" />
|
|
53
|
+
<zeebe:input source="=null" target="failing" />
|
|
54
|
+
</zeebe:ioMapping>
|
|
55
|
+
</bpmn:extensionElements>
|
|
56
|
+
<bpmn:incoming>mc_agentSla</bpmn:incoming>
|
|
57
|
+
<bpmn:outgoing>mc_slaToGwTrial</bpmn:outgoing>
|
|
58
|
+
</bpmn:serviceTask>
|
|
37
59
|
<bpmn:exclusiveGateway id="gw-trial" name="trial red?" default="mc_proceed">
|
|
38
60
|
<bpmn:incoming>mc_toGwTrial</bpmn:incoming>
|
|
61
|
+
<bpmn:incoming>mc_slaToGwTrial</bpmn:incoming>
|
|
39
62
|
<bpmn:outgoing>mc_escalate</bpmn:outgoing>
|
|
40
63
|
<bpmn:outgoing>mc_proceed</bpmn:outgoing>
|
|
41
64
|
</bpmn:exclusiveGateway>
|
|
@@ -80,6 +103,7 @@
|
|
|
80
103
|
<bpmn:sequenceFlow id="mc_toTrial" sourceRef="Start" targetRef="trial-merge" />
|
|
81
104
|
<bpmn:sequenceFlow id="mc_toRecord" sourceRef="trial-merge" targetRef="record-trial-merge" />
|
|
82
105
|
<bpmn:sequenceFlow id="mc_toGwTrial" sourceRef="record-trial-merge" targetRef="gw-trial" />
|
|
106
|
+
<bpmn:sequenceFlow id="mc_slaToGwTrial" sourceRef="record-trial-merge-sla" targetRef="gw-trial" />
|
|
83
107
|
<bpmn:sequenceFlow id="mc_escalate" name="suite failed" sourceRef="gw-trial" targetRef="trial-merge-decision">
|
|
84
108
|
<bpmn:conditionExpression xsi:type="bpmn:tFormalExpression">=trialMergeRed</bpmn:conditionExpression>
|
|
85
109
|
</bpmn:sequenceFlow>
|
|
@@ -94,6 +118,7 @@
|
|
|
94
118
|
</bpmn:sequenceFlow>
|
|
95
119
|
<bpmn:sequenceFlow id="mc_rerun" name="rebase" sourceRef="gw-trial-answer" targetRef="trial-merge" />
|
|
96
120
|
<bpmn:sequenceFlow id="mc_sla" name="SLA auto-rerun" sourceRef="be_trial_sla" targetRef="trial-merge" />
|
|
121
|
+
<bpmn:sequenceFlow id="mc_agentSla" name="agent SLA elapsed" sourceRef="be_trial_agent_sla" targetRef="record-trial-merge-sla" />
|
|
97
122
|
</bpmn:process>
|
|
98
123
|
<bpmndi:BPMNDiagram id="BPMNDiagram_merge-cell">
|
|
99
124
|
<bpmndi:BPMNPlane id="BPMNPlane_merge-cell" bpmnElement="merge-cell">
|
|
@@ -109,6 +134,9 @@
|
|
|
109
134
|
<bpmndi:BPMNShape id="BPMNShape_record-trial-merge" bpmnElement="record-trial-merge">
|
|
110
135
|
<dc:Bounds x="416" y="80" width="100" height="80" />
|
|
111
136
|
</bpmndi:BPMNShape>
|
|
137
|
+
<bpmndi:BPMNShape id="BPMNShape_record-trial-merge-sla" bpmnElement="record-trial-merge-sla">
|
|
138
|
+
<dc:Bounds x="416" y="400" width="100" height="80" />
|
|
139
|
+
</bpmndi:BPMNShape>
|
|
112
140
|
<bpmndi:BPMNShape id="BPMNShape_gw-trial" bpmnElement="gw-trial" isMarkerVisible="true">
|
|
113
141
|
<dc:Bounds x="616" y="95" width="50" height="50" />
|
|
114
142
|
<bpmndi:BPMNLabel>
|
|
@@ -139,10 +167,16 @@
|
|
|
139
167
|
<dc:Bounds x="1300" y="463" width="69" height="14" />
|
|
140
168
|
</bpmndi:BPMNLabel>
|
|
141
169
|
</bpmndi:BPMNShape>
|
|
170
|
+
<bpmndi:BPMNShape id="BPMNShape_be_trial_agent_sla" bpmnElement="be_trial_agent_sla">
|
|
171
|
+
<dc:Bounds x="248" y="142" width="36" height="36" />
|
|
172
|
+
<bpmndi:BPMNLabel>
|
|
173
|
+
<dc:Bounds x="290" y="183" width="72" height="28" />
|
|
174
|
+
</bpmndi:BPMNLabel>
|
|
175
|
+
</bpmndi:BPMNShape>
|
|
142
176
|
<bpmndi:BPMNShape id="BPMNShape_be_trial_sla" bpmnElement="be_trial_sla">
|
|
143
177
|
<dc:Bounds x="798" y="302" width="36" height="36" />
|
|
144
178
|
<bpmndi:BPMNLabel>
|
|
145
|
-
<dc:Bounds x="
|
|
179
|
+
<dc:Bounds x="714" y="343" width="84" height="14" />
|
|
146
180
|
</bpmndi:BPMNLabel>
|
|
147
181
|
</bpmndi:BPMNShape>
|
|
148
182
|
<bpmndi:BPMNEdge id="BPMNEdge_mc_toTrial" bpmnElement="mc_toTrial">
|
|
@@ -165,12 +199,12 @@
|
|
|
165
199
|
</bpmndi:BPMNLabel>
|
|
166
200
|
</bpmndi:BPMNEdge>
|
|
167
201
|
<bpmndi:BPMNEdge id="BPMNEdge_mc_rerun" bpmnElement="mc_rerun">
|
|
168
|
-
<di:waypoint x="1191" y="
|
|
169
|
-
<di:waypoint x="1191" y="
|
|
170
|
-
<di:waypoint x="266" y="
|
|
171
|
-
<di:waypoint x="266" y="
|
|
202
|
+
<di:waypoint x="1191" y="255" />
|
|
203
|
+
<di:waypoint x="1191" y="60" />
|
|
204
|
+
<di:waypoint x="266" y="60" />
|
|
205
|
+
<di:waypoint x="266" y="80" />
|
|
172
206
|
<bpmndi:BPMNLabel>
|
|
173
|
-
<dc:Bounds x="706" y="
|
|
207
|
+
<dc:Bounds x="706" y="38" width="46" height="14" />
|
|
174
208
|
</bpmndi:BPMNLabel>
|
|
175
209
|
</bpmndi:BPMNEdge>
|
|
176
210
|
<bpmndi:BPMNEdge id="BPMNEdge_mc_escalate" bpmnElement="mc_escalate">
|
|
@@ -178,7 +212,7 @@
|
|
|
178
212
|
<di:waypoint x="641" y="280" />
|
|
179
213
|
<di:waypoint x="766" y="280" />
|
|
180
214
|
<bpmndi:BPMNLabel>
|
|
181
|
-
<dc:Bounds x="646" y="
|
|
215
|
+
<dc:Bounds x="646" y="216" width="85" height="14" />
|
|
182
216
|
</bpmndi:BPMNLabel>
|
|
183
217
|
</bpmndi:BPMNEdge>
|
|
184
218
|
<bpmndi:BPMNEdge id="BPMNEdge_mc_answerProceed" bpmnElement="mc_answerProceed">
|
|
@@ -194,9 +228,15 @@
|
|
|
194
228
|
<di:waypoint x="1191" y="440" />
|
|
195
229
|
<di:waypoint x="1316" y="440" />
|
|
196
230
|
<bpmndi:BPMNLabel>
|
|
197
|
-
<dc:Bounds x="1196" y="
|
|
231
|
+
<dc:Bounds x="1196" y="366" width="53" height="14" />
|
|
198
232
|
</bpmndi:BPMNLabel>
|
|
199
233
|
</bpmndi:BPMNEdge>
|
|
234
|
+
<bpmndi:BPMNEdge id="BPMNEdge_mc_slaToGwTrial" bpmnElement="mc_slaToGwTrial">
|
|
235
|
+
<di:waypoint x="466" y="400" />
|
|
236
|
+
<di:waypoint x="466" y="165" />
|
|
237
|
+
<di:waypoint x="641" y="165" />
|
|
238
|
+
<di:waypoint x="641" y="145" />
|
|
239
|
+
</bpmndi:BPMNEdge>
|
|
200
240
|
<bpmndi:BPMNEdge id="BPMNEdge_mc_toResolve" bpmnElement="mc_toResolve">
|
|
201
241
|
<di:waypoint x="866" y="280" />
|
|
202
242
|
<di:waypoint x="966" y="280" />
|
|
@@ -205,13 +245,21 @@
|
|
|
205
245
|
<di:waypoint x="1066" y="280" />
|
|
206
246
|
<di:waypoint x="1166" y="280" />
|
|
207
247
|
</bpmndi:BPMNEdge>
|
|
248
|
+
<bpmndi:BPMNEdge id="BPMNEdge_mc_agentSla" bpmnElement="mc_agentSla">
|
|
249
|
+
<di:waypoint x="266" y="178" />
|
|
250
|
+
<di:waypoint x="266" y="440" />
|
|
251
|
+
<di:waypoint x="416" y="440" />
|
|
252
|
+
<bpmndi:BPMNLabel>
|
|
253
|
+
<dc:Bounds x="271" y="295" width="70" height="28" />
|
|
254
|
+
</bpmndi:BPMNLabel>
|
|
255
|
+
</bpmndi:BPMNEdge>
|
|
208
256
|
<bpmndi:BPMNEdge id="BPMNEdge_mc_sla" bpmnElement="mc_sla">
|
|
209
257
|
<di:waypoint x="816" y="338" />
|
|
210
|
-
<di:waypoint x="816" y="
|
|
211
|
-
<di:waypoint x="
|
|
212
|
-
<di:waypoint x="
|
|
258
|
+
<di:waypoint x="816" y="498" />
|
|
259
|
+
<di:waypoint x="241" y="498" />
|
|
260
|
+
<di:waypoint x="241" y="160" />
|
|
213
261
|
<bpmndi:BPMNLabel>
|
|
214
|
-
<dc:Bounds x="
|
|
262
|
+
<dc:Bounds x="492" y="503" width="74" height="28" />
|
|
215
263
|
</bpmndi:BPMNLabel>
|
|
216
264
|
</bpmndi:BPMNEdge>
|
|
217
265
|
</bpmndi:BPMNPlane>
|
|
@@ -445,6 +445,7 @@
|
|
|
445
445
|
<zeebe:input source="=planKey" target="subjectKey" />
|
|
446
446
|
<zeebe:input source="=baseBranch" target="baseBranch" />
|
|
447
447
|
<zeebe:input source="=escalationSlaTimeout" target="escalationSlaTimeout" />
|
|
448
|
+
<zeebe:input source="=agentSlaTimeout" target="agentSlaTimeout" />
|
|
448
449
|
<zeebe:input source="=if (is defined(escalationAssignee)) then escalationAssignee else null" target="escalationAssignee" />
|
|
449
450
|
<zeebe:input source="=if (is defined(baseBranchBrief)) then baseBranchBrief else null" target="baseBranchBrief" />
|
|
450
451
|
<zeebe:input source="=if (is defined(blackboardBrief)) then blackboardBrief else null" target="blackboardBrief" />
|
|
@@ -23,6 +23,8 @@
|
|
|
23
23
|
<nano:extend name="deviationsRaised" type="integer" optional="true" />
|
|
24
24
|
<nano:extend name="deviationsUnraised" type="integer" optional="true" />
|
|
25
25
|
<nano:extend name="hasDeviations" type="boolean" optional="true" />
|
|
26
|
+
<nano:extend name="agentSlaElapsed" type="boolean" optional="true" />
|
|
27
|
+
<nano:extend name="preserveConformance" type="boolean" optional="true" />
|
|
26
28
|
<nano:extend name="summary" type="string" optional="true" />
|
|
27
29
|
</nano:shape>
|
|
28
30
|
</nano:shapes>
|
|
@@ -54,16 +56,56 @@
|
|
|
54
56
|
<bpmn:incoming>f_toConformance</bpmn:incoming>
|
|
55
57
|
<bpmn:outgoing>f_toRecordConformance</bpmn:outgoing>
|
|
56
58
|
</bpmn:serviceTask>
|
|
59
|
+
<bpmn:boundaryEvent id="be_conformance_sla" name="Agent SLA elapsed" attachedToRef="conformance">
|
|
60
|
+
<bpmn:outgoing>f_conformanceSla</bpmn:outgoing>
|
|
61
|
+
<bpmn:timerEventDefinition id="ted_conformance_sla">
|
|
62
|
+
<bpmn:timeDuration xsi:type="bpmn:tFormalExpression">=agentSlaTimeout</bpmn:timeDuration>
|
|
63
|
+
</bpmn:timerEventDefinition>
|
|
64
|
+
</bpmn:boundaryEvent>
|
|
57
65
|
<bpmn:serviceTask id="record-conformance" name="Record conformance">
|
|
58
66
|
<bpmn:extensionElements>
|
|
59
67
|
<zeebe:taskDefinition type="pr.conformance-record" />
|
|
60
68
|
<zeebe:properties>
|
|
61
69
|
<zeebe:property name="io.nanobpm.dataEnvelope.in" value="ConformanceRecordIn" />
|
|
62
70
|
</zeebe:properties>
|
|
71
|
+
<zeebe:ioMapping>
|
|
72
|
+
<zeebe:input source="=false" target="agentSlaElapsed" />
|
|
73
|
+
<zeebe:input source="=false" target="preserveConformance" />
|
|
74
|
+
</zeebe:ioMapping>
|
|
63
75
|
</bpmn:extensionElements>
|
|
64
76
|
<bpmn:incoming>f_toRecordConformance</bpmn:incoming>
|
|
65
77
|
<bpmn:outgoing>f_toDeviationsGw</bpmn:outgoing>
|
|
66
78
|
</bpmn:serviceTask>
|
|
79
|
+
<bpmn:serviceTask id="record-conformance-sla" name="Record conformance (agent SLA)">
|
|
80
|
+
<bpmn:extensionElements>
|
|
81
|
+
<zeebe:taskDefinition type="pr.conformance-record" />
|
|
82
|
+
<zeebe:properties>
|
|
83
|
+
<zeebe:property name="io.nanobpm.dataEnvelope.in" value="ConformanceRecordIn" />
|
|
84
|
+
</zeebe:properties>
|
|
85
|
+
<zeebe:ioMapping>
|
|
86
|
+
<zeebe:input source="=true" target="agentSlaElapsed" />
|
|
87
|
+
<zeebe:input source="=false" target="preserveConformance" />
|
|
88
|
+
<zeebe:input source="="The spec-conformance agent exceeded its time budget (SLA " + agentSlaTimeout + ") without returning a verdict — it is hung or looping. Acknowledge to record the timeout and continue to the retrospective synthesis."" target="summary" />
|
|
89
|
+
</zeebe:ioMapping>
|
|
90
|
+
</bpmn:extensionElements>
|
|
91
|
+
<bpmn:incoming>f_conformanceSla</bpmn:incoming>
|
|
92
|
+
<bpmn:outgoing>f_conformanceSlaToEsc</bpmn:outgoing>
|
|
93
|
+
</bpmn:serviceTask>
|
|
94
|
+
<bpmn:serviceTask id="record-synthesize-sla" name="Record synthesize (agent SLA)">
|
|
95
|
+
<bpmn:extensionElements>
|
|
96
|
+
<zeebe:taskDefinition type="pr.conformance-record" />
|
|
97
|
+
<zeebe:properties>
|
|
98
|
+
<zeebe:property name="io.nanobpm.dataEnvelope.in" value="ConformanceRecordIn" />
|
|
99
|
+
</zeebe:properties>
|
|
100
|
+
<zeebe:ioMapping>
|
|
101
|
+
<zeebe:input source="=true" target="agentSlaElapsed" />
|
|
102
|
+
<zeebe:input source="=true" target="preserveConformance" />
|
|
103
|
+
<zeebe:input source="="The retrospective-synthesis agent exceeded its time budget (SLA " + agentSlaTimeout + ") without completing — it is hung or looping. Acknowledge to record the timeout and continue."" target="summary" />
|
|
104
|
+
</zeebe:ioMapping>
|
|
105
|
+
</bpmn:extensionElements>
|
|
106
|
+
<bpmn:incoming>f_synthesizeSla</bpmn:incoming>
|
|
107
|
+
<bpmn:outgoing>f_synthesizeSlaToEsc</bpmn:outgoing>
|
|
108
|
+
</bpmn:serviceTask>
|
|
67
109
|
<bpmn:exclusiveGateway id="gw-deviations" name="deviations?" default="f_noDeviations">
|
|
68
110
|
<bpmn:incoming>f_toDeviationsGw</bpmn:incoming>
|
|
69
111
|
<bpmn:outgoing>f_deviations</bpmn:outgoing>
|
|
@@ -104,6 +146,12 @@
|
|
|
104
146
|
<bpmn:incoming>f_ackToSynthesize</bpmn:incoming>
|
|
105
147
|
<bpmn:outgoing>f_toRecord</bpmn:outgoing>
|
|
106
148
|
</bpmn:serviceTask>
|
|
149
|
+
<bpmn:boundaryEvent id="be_synthesize_sla" name="Agent SLA elapsed" attachedToRef="synthesize">
|
|
150
|
+
<bpmn:outgoing>f_synthesizeSla</bpmn:outgoing>
|
|
151
|
+
<bpmn:timerEventDefinition id="ted_synthesize_sla">
|
|
152
|
+
<bpmn:timeDuration xsi:type="bpmn:tFormalExpression">=agentSlaTimeout</bpmn:timeDuration>
|
|
153
|
+
</bpmn:timerEventDefinition>
|
|
154
|
+
</bpmn:boundaryEvent>
|
|
107
155
|
<bpmn:serviceTask id="record" name="Record retro">
|
|
108
156
|
<bpmn:extensionElements>
|
|
109
157
|
<zeebe:taskDefinition type="pr.retro-record" />
|
|
@@ -119,6 +167,10 @@
|
|
|
119
167
|
</bpmn:endEvent>
|
|
120
168
|
<bpmn:sequenceFlow id="f_start" sourceRef="Start" targetRef="gather" />
|
|
121
169
|
<bpmn:sequenceFlow id="f_toConformance" sourceRef="gather" targetRef="conformance" />
|
|
170
|
+
<bpmn:sequenceFlow id="f_conformanceSla" name="conformance agent SLA elapsed" sourceRef="be_conformance_sla" targetRef="record-conformance-sla" />
|
|
171
|
+
<bpmn:sequenceFlow id="f_synthesizeSla" name="synthesize agent SLA elapsed" sourceRef="be_synthesize_sla" targetRef="record-synthesize-sla" />
|
|
172
|
+
<bpmn:sequenceFlow id="f_conformanceSlaToEsc" sourceRef="record-conformance-sla" targetRef="conformance-escalation" />
|
|
173
|
+
<bpmn:sequenceFlow id="f_synthesizeSlaToEsc" sourceRef="record-synthesize-sla" targetRef="conformance-escalation" />
|
|
122
174
|
<bpmn:sequenceFlow id="f_toRecordConformance" sourceRef="conformance" targetRef="record-conformance" />
|
|
123
175
|
<bpmn:sequenceFlow id="f_toDeviationsGw" sourceRef="record-conformance" targetRef="gw-deviations" />
|
|
124
176
|
<bpmn:sequenceFlow id="f_deviations" name="deviations" sourceRef="gw-deviations" targetRef="conformance-escalation">
|
|
@@ -147,6 +199,12 @@
|
|
|
147
199
|
<bpmndi:BPMNShape id="BPMNShape_record-conformance" bpmnElement="record-conformance">
|
|
148
200
|
<dc:Bounds x="616" y="80" width="100" height="80" />
|
|
149
201
|
</bpmndi:BPMNShape>
|
|
202
|
+
<bpmndi:BPMNShape id="BPMNShape_record-conformance-sla" bpmnElement="record-conformance-sla">
|
|
203
|
+
<dc:Bounds x="616" y="400" width="100" height="80" />
|
|
204
|
+
</bpmndi:BPMNShape>
|
|
205
|
+
<bpmndi:BPMNShape id="BPMNShape_record-synthesize-sla" bpmnElement="record-synthesize-sla">
|
|
206
|
+
<dc:Bounds x="1566" y="400" width="100" height="80" />
|
|
207
|
+
</bpmndi:BPMNShape>
|
|
150
208
|
<bpmndi:BPMNShape id="BPMNShape_gw-deviations" bpmnElement="gw-deviations" isMarkerVisible="true">
|
|
151
209
|
<dc:Bounds x="816" y="95" width="50" height="50" />
|
|
152
210
|
<bpmndi:BPMNLabel>
|
|
@@ -171,6 +229,18 @@
|
|
|
171
229
|
<dc:Bounds x="1744" y="143" width="80" height="14" />
|
|
172
230
|
</bpmndi:BPMNLabel>
|
|
173
231
|
</bpmndi:BPMNShape>
|
|
232
|
+
<bpmndi:BPMNShape id="BPMNShape_be_conformance_sla" bpmnElement="be_conformance_sla">
|
|
233
|
+
<dc:Bounds x="448" y="142" width="36" height="36" />
|
|
234
|
+
<bpmndi:BPMNLabel>
|
|
235
|
+
<dc:Bounds x="370" y="183" width="72" height="28" />
|
|
236
|
+
</bpmndi:BPMNLabel>
|
|
237
|
+
</bpmndi:BPMNShape>
|
|
238
|
+
<bpmndi:BPMNShape id="BPMNShape_be_synthesize_sla" bpmnElement="be_synthesize_sla">
|
|
239
|
+
<dc:Bounds x="1398" y="142" width="36" height="36" />
|
|
240
|
+
<bpmndi:BPMNLabel>
|
|
241
|
+
<dc:Bounds x="1320" y="183" width="72" height="28" />
|
|
242
|
+
</bpmndi:BPMNLabel>
|
|
243
|
+
</bpmndi:BPMNShape>
|
|
174
244
|
<bpmndi:BPMNEdge id="BPMNEdge_f_start" bpmnElement="f_start">
|
|
175
245
|
<di:waypoint x="116" y="120" />
|
|
176
246
|
<di:waypoint x="216" y="120" />
|
|
@@ -207,14 +277,41 @@
|
|
|
207
277
|
<dc:Bounds x="846" y="206" width="74" height="14" />
|
|
208
278
|
</bpmndi:BPMNLabel>
|
|
209
279
|
</bpmndi:BPMNEdge>
|
|
280
|
+
<bpmndi:BPMNEdge id="BPMNEdge_f_conformanceSlaToEsc" bpmnElement="f_conformanceSlaToEsc">
|
|
281
|
+
<di:waypoint x="716" y="440" />
|
|
282
|
+
<di:waypoint x="1016" y="440" />
|
|
283
|
+
<di:waypoint x="1016" y="320" />
|
|
284
|
+
</bpmndi:BPMNEdge>
|
|
210
285
|
<bpmndi:BPMNEdge id="BPMNEdge_f_toConformanceAck" bpmnElement="f_toConformanceAck">
|
|
211
286
|
<di:waypoint x="1066" y="280" />
|
|
212
287
|
<di:waypoint x="1166" y="280" />
|
|
213
288
|
</bpmndi:BPMNEdge>
|
|
214
289
|
<bpmndi:BPMNEdge id="BPMNEdge_f_ackToSynthesize" bpmnElement="f_ackToSynthesize">
|
|
215
|
-
<di:waypoint x="
|
|
216
|
-
<di:waypoint x="
|
|
217
|
-
<di:waypoint x="
|
|
290
|
+
<di:waypoint x="1216" y="240" />
|
|
291
|
+
<di:waypoint x="1216" y="120" />
|
|
292
|
+
<di:waypoint x="1366" y="120" />
|
|
293
|
+
</bpmndi:BPMNEdge>
|
|
294
|
+
<bpmndi:BPMNEdge id="BPMNEdge_f_conformanceSla" bpmnElement="f_conformanceSla">
|
|
295
|
+
<di:waypoint x="466" y="178" />
|
|
296
|
+
<di:waypoint x="466" y="440" />
|
|
297
|
+
<di:waypoint x="616" y="440" />
|
|
298
|
+
<bpmndi:BPMNLabel>
|
|
299
|
+
<dc:Bounds x="471" y="288" width="84" height="42" />
|
|
300
|
+
</bpmndi:BPMNLabel>
|
|
301
|
+
</bpmndi:BPMNEdge>
|
|
302
|
+
<bpmndi:BPMNEdge id="BPMNEdge_f_synthesizeSla" bpmnElement="f_synthesizeSla">
|
|
303
|
+
<di:waypoint x="1416" y="178" />
|
|
304
|
+
<di:waypoint x="1416" y="440" />
|
|
305
|
+
<di:waypoint x="1566" y="440" />
|
|
306
|
+
<bpmndi:BPMNLabel>
|
|
307
|
+
<dc:Bounds x="1421" y="288" width="74" height="42" />
|
|
308
|
+
</bpmndi:BPMNLabel>
|
|
309
|
+
</bpmndi:BPMNEdge>
|
|
310
|
+
<bpmndi:BPMNEdge id="BPMNEdge_f_synthesizeSlaToEsc" bpmnElement="f_synthesizeSlaToEsc">
|
|
311
|
+
<di:waypoint x="1616" y="480" />
|
|
312
|
+
<di:waypoint x="1616" y="500" />
|
|
313
|
+
<di:waypoint x="1016" y="500" />
|
|
314
|
+
<di:waypoint x="1016" y="320" />
|
|
218
315
|
</bpmndi:BPMNEdge>
|
|
219
316
|
</bpmndi:BPMNPlane>
|
|
220
317
|
</bpmndi:BPMNDiagram>
|