@nanobpm/nano-workforce 0.56.0 → 0.57.0
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 +7 -0
- package/README.md +9 -1
- package/SPEC.md +6 -2
- package/app/agentGuide.ts +1 -1
- package/app/github.test.ts +179 -1
- package/app/github.ts +132 -0
- package/app/plan.test.ts +268 -20
- package/app/plan.ts +147 -15
- package/nano.app.json +4 -0
- package/openapi.yaml +56 -11
- package/operations/startAndMessage.test.ts +62 -2
- package/operations/startPlanFanout.admission.integration.test.ts +263 -0
- package/operations/startPlanFanout.ts +70 -11
- package/package.json +1 -1
- package/pages/epic.page.json +4 -1
- package/resources/agent-guide.md +38 -2
- package/resources/processes/plan-fanout.bpmn +168 -149
- package/workers/ensure-base-branch/head-task.integration.test.ts +126 -0
- package/workers/ensure-base-branch/worker.test.ts +104 -0
- package/workers/ensure-base-branch/worker.ts +31 -0
package/resources/agent-guide.md
CHANGED
|
@@ -97,13 +97,49 @@ PR is then enrolled into its own convergence loop (§1).
|
|
|
97
97
|
```bash
|
|
98
98
|
curl -sS -X POST __BASE__/actions/start/plan-fanout \
|
|
99
99
|
-H 'content-type: application/json' \
|
|
100
|
-
-d '{ "issue": "owner/repo#123" }'
|
|
100
|
+
-d '{ "issue": "owner/repo#123", "baseBranch": "epic/agent-protocol" }'
|
|
101
101
|
```
|
|
102
102
|
|
|
103
|
-
The body is flat: `issue` (or `url`) — `owner/repo#123` or an issue URL
|
|
103
|
+
The body is flat: `issue` (or `url`) — `owner/repo#123` or an issue URL — plus a REQUIRED
|
|
104
|
+
`baseBranch` (ADR 0003), the branch the fleet branches off and opens every PR against; a
|
|
105
|
+
blank/absent base is rejected with a 400. Starting a
|
|
104
106
|
plan is idempotent on the plan key; an already-running plan short-circuits. The
|
|
105
107
|
response (202) echoes the `planKey` and engine `processKey`.
|
|
106
108
|
|
|
109
|
+
### Base-branch admission (ADR 0003)
|
|
110
|
+
|
|
111
|
+
`startPlanFanout` admits the base through one fail-fast gate before any task fans out.
|
|
112
|
+
Four ordered rules govern which base is accepted:
|
|
113
|
+
|
|
114
|
+
1. **Required + explicit.** `baseBranch` is mandatory — a blank/absent value is a `400`
|
|
115
|
+
(`MissingBaseBranchError`), and an implausible name is a `400` (`InvalidBaseBranchError`).
|
|
116
|
+
There is no silent "land on the default branch" fallback.
|
|
117
|
+
2. **Create-if-missing, `epic/*` only.** A missing `epic/*` base is **auto-created** off the
|
|
118
|
+
repository default branch's HEAD (idempotently — an existing branch is never reset). A
|
|
119
|
+
missing base that is **not** `epic/*` is a clean `400` (`BaseBranchMustExistError`): a typo
|
|
120
|
+
can't silently spawn a wrong-rooted branch, so any non-`epic/*` base must already exist.
|
|
121
|
+
3. **Confirm-default.** Naming the repository **default branch** as the base requires
|
|
122
|
+
`confirmDefaultBase: true`, else `400` (`DefaultBaseNotConfirmedError`). This is a
|
|
123
|
+
deliberate acknowledgement that every task lands directly on the default branch with no
|
|
124
|
+
integration buffer, and any merge-to-default side effect fires per task.
|
|
125
|
+
4. **Shared-base guard.** If another **active** epic (status not `done`/`failed`/`abandoned`)
|
|
126
|
+
already targets the **same repo + same custom base**, admission is a `409` (`SharedBaseError`)
|
|
127
|
+
unless you pass `allowSharedBase: true`. The default branch is exempt — many epics target it
|
|
128
|
+
concurrently without colliding.
|
|
129
|
+
|
|
130
|
+
So the body may also carry two optional booleans — `confirmDefaultBase` and `allowSharedBase` —
|
|
131
|
+
each a "warn you can't skip" for its rule:
|
|
132
|
+
|
|
133
|
+
```bash
|
|
134
|
+
curl -sS -X POST __BASE__/actions/start/plan-fanout \
|
|
135
|
+
-H 'content-type: application/json' \
|
|
136
|
+
-d '{ "issue": "owner/repo#123", "baseBranch": "main", "confirmDefaultBase": true }'
|
|
137
|
+
```
|
|
138
|
+
|
|
139
|
+
Grandfathered: in-flight plans launched before this admission gate (with a `null` base branch)
|
|
140
|
+
keep running unchanged — the requirement is enforced at admission of **new** launches, not by a
|
|
141
|
+
database constraint.
|
|
142
|
+
|
|
107
143
|
Track a plan the same way you track PRs — its `process_key` is an engine instance you
|
|
108
144
|
can inspect in §5, and the PRs it opens show up in `/status` as ordinary convergence
|
|
109
145
|
loops.
|
|
@@ -17,8 +17,19 @@
|
|
|
17
17
|
</bpmn:message>
|
|
18
18
|
<bpmn:process id="plan-fanout" name="Agent Fleet — plan & implement" isExecutable="true">
|
|
19
19
|
<bpmn:startEvent id="Start" name="Issue submitted">
|
|
20
|
-
<bpmn:outgoing>
|
|
20
|
+
<bpmn:outgoing>f_toEnsureBase</bpmn:outgoing>
|
|
21
21
|
</bpmn:startEvent>
|
|
22
|
+
<bpmn:serviceTask id="ensure-base-branch" name="Ensure base branch">
|
|
23
|
+
<bpmn:extensionElements>
|
|
24
|
+
<zeebe:taskDefinition type="pr.ensure-base-branch" />
|
|
25
|
+
<zeebe:ioMapping>
|
|
26
|
+
<zeebe:input source="=repo" target="repo" />
|
|
27
|
+
<zeebe:input source="=baseBranch" target="baseBranch" />
|
|
28
|
+
</zeebe:ioMapping>
|
|
29
|
+
</bpmn:extensionElements>
|
|
30
|
+
<bpmn:incoming>f_toEnsureBase</bpmn:incoming>
|
|
31
|
+
<bpmn:outgoing>f_toPlan</bpmn:outgoing>
|
|
32
|
+
</bpmn:serviceTask>
|
|
22
33
|
<bpmn:serviceTask id="plan" name="Plan (agent)">
|
|
23
34
|
<bpmn:extensionElements>
|
|
24
35
|
<zeebe:taskDefinition type="senior:plan" />
|
|
@@ -235,7 +246,8 @@
|
|
|
235
246
|
<bpmn:endEvent id="End" name="Fleet dispatched">
|
|
236
247
|
<bpmn:incoming>f_toEnd</bpmn:incoming>
|
|
237
248
|
</bpmn:endEvent>
|
|
238
|
-
<bpmn:sequenceFlow id="
|
|
249
|
+
<bpmn:sequenceFlow id="f_toEnsureBase" sourceRef="Start" targetRef="ensure-base-branch" />
|
|
250
|
+
<bpmn:sequenceFlow id="f_toPlan" sourceRef="ensure-base-branch" targetRef="plan" />
|
|
239
251
|
<bpmn:sequenceFlow id="f_toRecordPlan" sourceRef="plan" targetRef="record-plan" />
|
|
240
252
|
<bpmn:sequenceFlow id="f_toReviewPlan" sourceRef="record-plan" targetRef="review-plan" />
|
|
241
253
|
<bpmn:sequenceFlow id="f_toRecordPlanReview" sourceRef="review-plan" targetRef="record-plan-review" />
|
|
@@ -287,341 +299,348 @@
|
|
|
287
299
|
<dc:Bounds x="63" y="263" width="70" height="28" />
|
|
288
300
|
</bpmndi:BPMNLabel>
|
|
289
301
|
</bpmndi:BPMNShape>
|
|
290
|
-
<bpmndi:BPMNShape id="
|
|
302
|
+
<bpmndi:BPMNShape id="BPMNShape_ensure-base-branch" bpmnElement="ensure-base-branch">
|
|
291
303
|
<dc:Bounds x="216" y="200" width="100" height="80" />
|
|
292
304
|
</bpmndi:BPMNShape>
|
|
293
|
-
<bpmndi:BPMNShape id="
|
|
305
|
+
<bpmndi:BPMNShape id="BPMNShape_plan" bpmnElement="plan">
|
|
294
306
|
<dc:Bounds x="416" y="200" width="100" height="80" />
|
|
295
307
|
</bpmndi:BPMNShape>
|
|
296
|
-
<bpmndi:BPMNShape id="
|
|
308
|
+
<bpmndi:BPMNShape id="BPMNShape_record-plan" bpmnElement="record-plan">
|
|
297
309
|
<dc:Bounds x="616" y="200" width="100" height="80" />
|
|
298
310
|
</bpmndi:BPMNShape>
|
|
299
|
-
<bpmndi:BPMNShape id="
|
|
311
|
+
<bpmndi:BPMNShape id="BPMNShape_review-plan" bpmnElement="review-plan">
|
|
300
312
|
<dc:Bounds x="816" y="200" width="100" height="80" />
|
|
301
313
|
</bpmndi:BPMNShape>
|
|
314
|
+
<bpmndi:BPMNShape id="BPMNShape_record-plan-review" bpmnElement="record-plan-review">
|
|
315
|
+
<dc:Bounds x="1016" y="200" width="100" height="80" />
|
|
316
|
+
</bpmndi:BPMNShape>
|
|
302
317
|
<bpmndi:BPMNShape id="BPMNShape_gw-plan-review" bpmnElement="gw-plan-review" isMarkerVisible="true">
|
|
303
|
-
<dc:Bounds x="
|
|
318
|
+
<dc:Bounds x="1216" y="215" width="50" height="50" />
|
|
304
319
|
<bpmndi:BPMNLabel>
|
|
305
|
-
<dc:Bounds x="
|
|
320
|
+
<dc:Bounds x="1168" y="270" width="67" height="28" />
|
|
306
321
|
</bpmndi:BPMNLabel>
|
|
307
322
|
</bpmndi:BPMNShape>
|
|
308
323
|
<bpmndi:BPMNShape id="BPMNShape_persist-plan-escalation" bpmnElement="persist-plan-escalation">
|
|
309
|
-
<dc:Bounds x="
|
|
324
|
+
<dc:Bounds x="1366" y="360" width="100" height="80" />
|
|
310
325
|
</bpmndi:BPMNShape>
|
|
311
326
|
<bpmndi:BPMNShape id="BPMNShape_wait-plan-answer" bpmnElement="wait-plan-answer">
|
|
312
|
-
<dc:Bounds x="
|
|
327
|
+
<dc:Bounds x="1566" y="382" width="36" height="36" />
|
|
313
328
|
<bpmndi:BPMNLabel>
|
|
314
|
-
<dc:Bounds x="
|
|
329
|
+
<dc:Bounds x="1547" y="423" width="75" height="28" />
|
|
315
330
|
</bpmndi:BPMNLabel>
|
|
316
331
|
</bpmndi:BPMNShape>
|
|
317
332
|
<bpmndi:BPMNShape id="BPMNShape_gw-plan-answer" bpmnElement="gw-plan-answer" isMarkerVisible="true">
|
|
318
|
-
<dc:Bounds x="
|
|
333
|
+
<dc:Bounds x="1702" y="375" width="50" height="50" />
|
|
319
334
|
<bpmndi:BPMNLabel>
|
|
320
|
-
<dc:Bounds x="
|
|
335
|
+
<dc:Bounds x="1757" y="386" width="67" height="28" />
|
|
321
336
|
</bpmndi:BPMNLabel>
|
|
322
337
|
</bpmndi:BPMNShape>
|
|
323
338
|
<bpmndi:BPMNShape id="BPMNShape_select-wave" bpmnElement="select-wave">
|
|
324
|
-
<dc:Bounds x="
|
|
339
|
+
<dc:Bounds x="1852" y="200" width="100" height="80" />
|
|
325
340
|
</bpmndi:BPMNShape>
|
|
326
341
|
<bpmndi:BPMNShape id="BPMNShape_implement" bpmnElement="implement" isExpanded="true">
|
|
327
|
-
<dc:Bounds x="
|
|
342
|
+
<dc:Bounds x="2052" y="80" width="802" height="320" />
|
|
328
343
|
</bpmndi:BPMNShape>
|
|
329
344
|
<bpmndi:BPMNShape id="BPMNShape_record-wave" bpmnElement="record-wave">
|
|
330
|
-
<dc:Bounds x="
|
|
345
|
+
<dc:Bounds x="2954" y="200" width="100" height="80" />
|
|
331
346
|
</bpmndi:BPMNShape>
|
|
332
347
|
<bpmndi:BPMNShape id="BPMNShape_gw-trial-needed" bpmnElement="gw-trial-needed" isMarkerVisible="true">
|
|
333
|
-
<dc:Bounds x="
|
|
348
|
+
<dc:Bounds x="3154" y="215" width="50" height="50" />
|
|
334
349
|
<bpmndi:BPMNLabel>
|
|
335
|
-
<dc:Bounds x="
|
|
350
|
+
<dc:Bounds x="3135" y="196" width="88" height="14" />
|
|
336
351
|
</bpmndi:BPMNLabel>
|
|
337
352
|
</bpmndi:BPMNShape>
|
|
338
353
|
<bpmndi:BPMNShape id="BPMNShape_trial-merge" bpmnElement="trial-merge">
|
|
339
|
-
<dc:Bounds x="
|
|
354
|
+
<dc:Bounds x="3304" y="360" width="100" height="80" />
|
|
340
355
|
</bpmndi:BPMNShape>
|
|
341
356
|
<bpmndi:BPMNShape id="BPMNShape_record-trial-merge" bpmnElement="record-trial-merge">
|
|
342
|
-
<dc:Bounds x="
|
|
357
|
+
<dc:Bounds x="3504" y="360" width="100" height="80" />
|
|
343
358
|
</bpmndi:BPMNShape>
|
|
344
359
|
<bpmndi:BPMNShape id="BPMNShape_gw-trial" bpmnElement="gw-trial" isMarkerVisible="true">
|
|
345
|
-
<dc:Bounds x="
|
|
360
|
+
<dc:Bounds x="3704" y="375" width="50" height="50" />
|
|
346
361
|
<bpmndi:BPMNLabel>
|
|
347
|
-
<dc:Bounds x="
|
|
362
|
+
<dc:Bounds x="3759" y="393" width="71" height="14" />
|
|
348
363
|
</bpmndi:BPMNLabel>
|
|
349
364
|
</bpmndi:BPMNShape>
|
|
350
365
|
<bpmndi:BPMNShape id="BPMNShape_persist-trial-escalation" bpmnElement="persist-trial-escalation">
|
|
351
|
-
<dc:Bounds x="
|
|
366
|
+
<dc:Bounds x="3854" y="520" width="100" height="80" />
|
|
352
367
|
</bpmndi:BPMNShape>
|
|
353
368
|
<bpmndi:BPMNShape id="BPMNShape_wait-trial-answer" bpmnElement="wait-trial-answer">
|
|
354
|
-
<dc:Bounds x="
|
|
369
|
+
<dc:Bounds x="4054" y="542" width="36" height="36" />
|
|
355
370
|
<bpmndi:BPMNLabel>
|
|
356
|
-
<dc:Bounds x="
|
|
371
|
+
<dc:Bounds x="4031" y="583" width="82" height="28" />
|
|
357
372
|
</bpmndi:BPMNLabel>
|
|
358
373
|
</bpmndi:BPMNShape>
|
|
359
374
|
<bpmndi:BPMNShape id="BPMNShape_gw-trial-answer" bpmnElement="gw-trial-answer" isMarkerVisible="true">
|
|
360
|
-
<dc:Bounds x="
|
|
375
|
+
<dc:Bounds x="4190" y="535" width="50" height="50" />
|
|
361
376
|
<bpmndi:BPMNLabel>
|
|
362
|
-
<dc:Bounds x="
|
|
377
|
+
<dc:Bounds x="4245" y="546" width="67" height="28" />
|
|
363
378
|
</bpmndi:BPMNLabel>
|
|
364
379
|
</bpmndi:BPMNShape>
|
|
365
380
|
<bpmndi:BPMNShape id="BPMNShape_gw-more" bpmnElement="gw-more" isMarkerVisible="true">
|
|
366
|
-
<dc:Bounds x="
|
|
381
|
+
<dc:Bounds x="4340" y="215" width="50" height="50" />
|
|
367
382
|
<bpmndi:BPMNLabel>
|
|
368
|
-
<dc:Bounds x="
|
|
383
|
+
<dc:Bounds x="4323" y="196" width="84" height="14" />
|
|
369
384
|
</bpmndi:BPMNLabel>
|
|
370
385
|
</bpmndi:BPMNShape>
|
|
371
386
|
<bpmndi:BPMNShape id="BPMNShape_wait-wave-merged" bpmnElement="wait-wave-merged">
|
|
372
|
-
<dc:Bounds x="
|
|
387
|
+
<dc:Bounds x="4522" y="382" width="36" height="36" />
|
|
373
388
|
<bpmndi:BPMNLabel>
|
|
374
|
-
<dc:Bounds x="
|
|
389
|
+
<dc:Bounds x="4501" y="349" width="78" height="28" />
|
|
375
390
|
</bpmndi:BPMNLabel>
|
|
376
391
|
</bpmndi:BPMNShape>
|
|
377
392
|
<bpmndi:BPMNShape id="BPMNShape_record-results" bpmnElement="record-results">
|
|
378
|
-
<dc:Bounds x="
|
|
393
|
+
<dc:Bounds x="4490" y="200" width="100" height="80" />
|
|
379
394
|
</bpmndi:BPMNShape>
|
|
380
395
|
<bpmndi:BPMNShape id="BPMNShape_End" bpmnElement="End">
|
|
381
|
-
<dc:Bounds x="
|
|
396
|
+
<dc:Bounds x="4690" y="222" width="36" height="36" />
|
|
382
397
|
<bpmndi:BPMNLabel>
|
|
383
|
-
<dc:Bounds x="
|
|
398
|
+
<dc:Bounds x="4671" y="263" width="74" height="28" />
|
|
384
399
|
</bpmndi:BPMNLabel>
|
|
385
400
|
</bpmndi:BPMNShape>
|
|
386
|
-
<bpmndi:BPMNEdge id="
|
|
401
|
+
<bpmndi:BPMNEdge id="BPMNEdge_f_toEnsureBase" bpmnElement="f_toEnsureBase">
|
|
387
402
|
<di:waypoint x="116" y="240" />
|
|
388
403
|
<di:waypoint x="216" y="240" />
|
|
389
404
|
</bpmndi:BPMNEdge>
|
|
390
|
-
<bpmndi:BPMNEdge id="
|
|
405
|
+
<bpmndi:BPMNEdge id="BPMNEdge_f_toPlan" bpmnElement="f_toPlan">
|
|
391
406
|
<di:waypoint x="316" y="240" />
|
|
392
407
|
<di:waypoint x="416" y="240" />
|
|
393
408
|
</bpmndi:BPMNEdge>
|
|
394
|
-
<bpmndi:BPMNEdge id="
|
|
409
|
+
<bpmndi:BPMNEdge id="BPMNEdge_f_toRecordPlan" bpmnElement="f_toRecordPlan">
|
|
395
410
|
<di:waypoint x="516" y="240" />
|
|
396
411
|
<di:waypoint x="616" y="240" />
|
|
397
412
|
</bpmndi:BPMNEdge>
|
|
398
|
-
<bpmndi:BPMNEdge id="
|
|
413
|
+
<bpmndi:BPMNEdge id="BPMNEdge_f_toReviewPlan" bpmnElement="f_toReviewPlan">
|
|
399
414
|
<di:waypoint x="716" y="240" />
|
|
400
415
|
<di:waypoint x="816" y="240" />
|
|
401
416
|
</bpmndi:BPMNEdge>
|
|
402
|
-
<bpmndi:BPMNEdge id="
|
|
417
|
+
<bpmndi:BPMNEdge id="BPMNEdge_f_toRecordPlanReview" bpmnElement="f_toRecordPlanReview">
|
|
403
418
|
<di:waypoint x="916" y="240" />
|
|
404
419
|
<di:waypoint x="1016" y="240" />
|
|
405
420
|
</bpmndi:BPMNEdge>
|
|
421
|
+
<bpmndi:BPMNEdge id="BPMNEdge_f_toGwPlanReview" bpmnElement="f_toGwPlanReview">
|
|
422
|
+
<di:waypoint x="1116" y="240" />
|
|
423
|
+
<di:waypoint x="1216" y="240" />
|
|
424
|
+
</bpmndi:BPMNEdge>
|
|
406
425
|
<bpmndi:BPMNEdge id="BPMNEdge_f_plan_proceed" bpmnElement="f_plan_proceed">
|
|
407
|
-
<di:waypoint x="
|
|
408
|
-
<di:waypoint x="
|
|
426
|
+
<di:waypoint x="1266" y="240" />
|
|
427
|
+
<di:waypoint x="1852" y="240" />
|
|
409
428
|
<bpmndi:BPMNLabel>
|
|
410
|
-
<dc:Bounds x="
|
|
429
|
+
<dc:Bounds x="1467" y="218" width="60" height="14" />
|
|
411
430
|
</bpmndi:BPMNLabel>
|
|
412
431
|
</bpmndi:BPMNEdge>
|
|
413
432
|
<bpmndi:BPMNEdge id="BPMNEdge_f_toImplement" bpmnElement="f_toImplement">
|
|
414
|
-
<di:waypoint x="
|
|
415
|
-
<di:waypoint x="
|
|
433
|
+
<di:waypoint x="1952" y="240" />
|
|
434
|
+
<di:waypoint x="2052" y="240" />
|
|
416
435
|
</bpmndi:BPMNEdge>
|
|
417
436
|
<bpmndi:BPMNEdge id="BPMNEdge_f_toRecordWave" bpmnElement="f_toRecordWave">
|
|
418
|
-
<di:waypoint x="2654" y="240" />
|
|
419
|
-
<di:waypoint x="2754" y="240" />
|
|
420
|
-
</bpmndi:BPMNEdge>
|
|
421
|
-
<bpmndi:BPMNEdge id="BPMNEdge_f_toTrialNeeded" bpmnElement="f_toTrialNeeded">
|
|
422
437
|
<di:waypoint x="2854" y="240" />
|
|
423
438
|
<di:waypoint x="2954" y="240" />
|
|
424
439
|
</bpmndi:BPMNEdge>
|
|
440
|
+
<bpmndi:BPMNEdge id="BPMNEdge_f_toTrialNeeded" bpmnElement="f_toTrialNeeded">
|
|
441
|
+
<di:waypoint x="3054" y="240" />
|
|
442
|
+
<di:waypoint x="3154" y="240" />
|
|
443
|
+
</bpmndi:BPMNEdge>
|
|
425
444
|
<bpmndi:BPMNEdge id="BPMNEdge_f_skipTrialMerge" bpmnElement="f_skipTrialMerge">
|
|
426
|
-
<di:waypoint x="
|
|
427
|
-
<di:waypoint x="
|
|
445
|
+
<di:waypoint x="3204" y="240" />
|
|
446
|
+
<di:waypoint x="4340" y="240" />
|
|
428
447
|
<bpmndi:BPMNLabel>
|
|
429
|
-
<dc:Bounds x="
|
|
448
|
+
<dc:Bounds x="3451" y="218" width="32" height="14" />
|
|
430
449
|
</bpmndi:BPMNLabel>
|
|
431
450
|
</bpmndi:BPMNEdge>
|
|
432
451
|
<bpmndi:BPMNEdge id="BPMNEdge_f_done" bpmnElement="f_done">
|
|
433
|
-
<di:waypoint x="
|
|
434
|
-
<di:waypoint x="
|
|
452
|
+
<di:waypoint x="4390" y="240" />
|
|
453
|
+
<di:waypoint x="4490" y="240" />
|
|
435
454
|
<bpmndi:BPMNLabel>
|
|
436
|
-
<dc:Bounds x="
|
|
455
|
+
<dc:Bounds x="4434" y="218" width="32" height="14" />
|
|
437
456
|
</bpmndi:BPMNLabel>
|
|
438
457
|
</bpmndi:BPMNEdge>
|
|
439
458
|
<bpmndi:BPMNEdge id="BPMNEdge_f_toEnd" bpmnElement="f_toEnd">
|
|
440
|
-
<di:waypoint x="
|
|
441
|
-
<di:waypoint x="
|
|
459
|
+
<di:waypoint x="4590" y="240" />
|
|
460
|
+
<di:waypoint x="4690" y="240" />
|
|
442
461
|
</bpmndi:BPMNEdge>
|
|
443
462
|
<bpmndi:BPMNEdge id="BPMNEdge_f_plan_answer_revise" bpmnElement="f_plan_answer_revise">
|
|
444
|
-
<di:waypoint x="
|
|
445
|
-
<di:waypoint x="
|
|
446
|
-
<di:waypoint x="
|
|
447
|
-
<di:waypoint x="
|
|
463
|
+
<di:waypoint x="1727" y="425" />
|
|
464
|
+
<di:waypoint x="1727" y="460" />
|
|
465
|
+
<di:waypoint x="466" y="460" />
|
|
466
|
+
<di:waypoint x="466" y="280" />
|
|
448
467
|
<bpmndi:BPMNLabel>
|
|
449
|
-
<dc:Bounds x="
|
|
468
|
+
<dc:Bounds x="1074" y="438" width="46" height="14" />
|
|
450
469
|
</bpmndi:BPMNLabel>
|
|
451
470
|
</bpmndi:BPMNEdge>
|
|
452
471
|
<bpmndi:BPMNEdge id="BPMNEdge_f_toRecordTrialMerge" bpmnElement="f_toRecordTrialMerge">
|
|
453
|
-
<di:waypoint x="3204" y="400" />
|
|
454
|
-
<di:waypoint x="3304" y="400" />
|
|
455
|
-
</bpmndi:BPMNEdge>
|
|
456
|
-
<bpmndi:BPMNEdge id="BPMNEdge_f_toGwTrial" bpmnElement="f_toGwTrial">
|
|
457
472
|
<di:waypoint x="3404" y="400" />
|
|
458
473
|
<di:waypoint x="3504" y="400" />
|
|
459
474
|
</bpmndi:BPMNEdge>
|
|
475
|
+
<bpmndi:BPMNEdge id="BPMNEdge_f_toGwTrial" bpmnElement="f_toGwTrial">
|
|
476
|
+
<di:waypoint x="3604" y="400" />
|
|
477
|
+
<di:waypoint x="3704" y="400" />
|
|
478
|
+
</bpmndi:BPMNEdge>
|
|
460
479
|
<bpmndi:BPMNEdge id="BPMNEdge_f_trialProceed" bpmnElement="f_trialProceed">
|
|
461
|
-
<di:waypoint x="
|
|
462
|
-
<di:waypoint x="
|
|
463
|
-
<di:waypoint x="
|
|
480
|
+
<di:waypoint x="3729" y="375" />
|
|
481
|
+
<di:waypoint x="3729" y="240" />
|
|
482
|
+
<di:waypoint x="4340" y="240" />
|
|
464
483
|
<bpmndi:BPMNLabel>
|
|
465
|
-
<dc:Bounds x="
|
|
484
|
+
<dc:Bounds x="3734" y="301" width="53" height="14" />
|
|
466
485
|
</bpmndi:BPMNLabel>
|
|
467
486
|
</bpmndi:BPMNEdge>
|
|
468
487
|
<bpmndi:BPMNEdge id="BPMNEdge_f_trialAnswerRerun" bpmnElement="f_trialAnswerRerun">
|
|
469
|
-
<di:waypoint x="
|
|
470
|
-
<di:waypoint x="
|
|
471
|
-
<di:waypoint x="
|
|
472
|
-
<di:waypoint x="
|
|
488
|
+
<di:waypoint x="4215" y="585" />
|
|
489
|
+
<di:waypoint x="4215" y="620" />
|
|
490
|
+
<di:waypoint x="3354" y="620" />
|
|
491
|
+
<di:waypoint x="3354" y="440" />
|
|
473
492
|
<bpmndi:BPMNLabel>
|
|
474
|
-
<dc:Bounds x="
|
|
493
|
+
<dc:Bounds x="3765" y="598" width="39" height="14" />
|
|
475
494
|
</bpmndi:BPMNLabel>
|
|
476
495
|
</bpmndi:BPMNEdge>
|
|
477
496
|
<bpmndi:BPMNEdge id="BPMNEdge_f_plan_escalate" bpmnElement="f_plan_escalate">
|
|
478
|
-
<di:waypoint x="
|
|
479
|
-
<di:waypoint x="
|
|
480
|
-
<di:waypoint x="
|
|
497
|
+
<di:waypoint x="1241" y="265" />
|
|
498
|
+
<di:waypoint x="1241" y="400" />
|
|
499
|
+
<di:waypoint x="1366" y="400" />
|
|
481
500
|
<bpmndi:BPMNLabel>
|
|
482
|
-
<dc:Bounds x="
|
|
501
|
+
<dc:Bounds x="1246" y="326" width="67" height="14" />
|
|
483
502
|
</bpmndi:BPMNLabel>
|
|
484
503
|
</bpmndi:BPMNEdge>
|
|
485
504
|
<bpmndi:BPMNEdge id="BPMNEdge_f_plan_answer_proceed" bpmnElement="f_plan_answer_proceed">
|
|
486
|
-
<di:waypoint x="
|
|
487
|
-
<di:waypoint x="
|
|
488
|
-
<di:waypoint x="
|
|
505
|
+
<di:waypoint x="1727" y="375" />
|
|
506
|
+
<di:waypoint x="1727" y="240" />
|
|
507
|
+
<di:waypoint x="1852" y="240" />
|
|
489
508
|
<bpmndi:BPMNLabel>
|
|
490
|
-
<dc:Bounds x="
|
|
509
|
+
<dc:Bounds x="1732" y="301" width="53" height="14" />
|
|
491
510
|
</bpmndi:BPMNLabel>
|
|
492
511
|
</bpmndi:BPMNEdge>
|
|
493
512
|
<bpmndi:BPMNEdge id="BPMNEdge_f_runTrialMerge" bpmnElement="f_runTrialMerge">
|
|
494
|
-
<di:waypoint x="
|
|
495
|
-
<di:waypoint x="
|
|
496
|
-
<di:waypoint x="
|
|
513
|
+
<di:waypoint x="3179" y="265" />
|
|
514
|
+
<di:waypoint x="3179" y="400" />
|
|
515
|
+
<di:waypoint x="3304" y="400" />
|
|
497
516
|
<bpmndi:BPMNLabel>
|
|
498
|
-
<dc:Bounds x="
|
|
517
|
+
<dc:Bounds x="3184" y="326" width="25" height="14" />
|
|
499
518
|
</bpmndi:BPMNLabel>
|
|
500
519
|
</bpmndi:BPMNEdge>
|
|
501
520
|
<bpmndi:BPMNEdge id="BPMNEdge_f_trialEscalate" bpmnElement="f_trialEscalate">
|
|
502
|
-
<di:waypoint x="
|
|
503
|
-
<di:waypoint x="
|
|
504
|
-
<di:waypoint x="
|
|
521
|
+
<di:waypoint x="3729" y="425" />
|
|
522
|
+
<di:waypoint x="3729" y="560" />
|
|
523
|
+
<di:waypoint x="3854" y="560" />
|
|
505
524
|
<bpmndi:BPMNLabel>
|
|
506
|
-
<dc:Bounds x="
|
|
525
|
+
<dc:Bounds x="3734" y="486" width="85" height="14" />
|
|
507
526
|
</bpmndi:BPMNLabel>
|
|
508
527
|
</bpmndi:BPMNEdge>
|
|
509
528
|
<bpmndi:BPMNEdge id="BPMNEdge_f_trialAnswerProceed" bpmnElement="f_trialAnswerProceed">
|
|
510
|
-
<di:waypoint x="
|
|
511
|
-
<di:waypoint x="
|
|
512
|
-
<di:waypoint x="
|
|
513
|
-
<di:waypoint x="
|
|
529
|
+
<di:waypoint x="4215" y="535" />
|
|
530
|
+
<di:waypoint x="4215" y="385" />
|
|
531
|
+
<di:waypoint x="4365" y="385" />
|
|
532
|
+
<di:waypoint x="4365" y="265" />
|
|
514
533
|
<bpmndi:BPMNLabel>
|
|
515
|
-
<dc:Bounds x="
|
|
534
|
+
<dc:Bounds x="4264" y="363" width="53" height="14" />
|
|
516
535
|
</bpmndi:BPMNLabel>
|
|
517
536
|
</bpmndi:BPMNEdge>
|
|
518
537
|
<bpmndi:BPMNEdge id="BPMNEdge_f_moreWaves" bpmnElement="f_moreWaves">
|
|
519
|
-
<di:waypoint x="
|
|
520
|
-
<di:waypoint x="
|
|
521
|
-
<di:waypoint x="
|
|
522
|
-
<di:waypoint x="
|
|
523
|
-
<di:waypoint x="
|
|
524
|
-
<di:waypoint x="
|
|
525
|
-
<di:waypoint x="
|
|
526
|
-
<di:waypoint x="
|
|
527
|
-
<di:waypoint x="
|
|
538
|
+
<di:waypoint x="4390" y="240" />
|
|
539
|
+
<di:waypoint x="4410" y="240" />
|
|
540
|
+
<di:waypoint x="4410" y="265" />
|
|
541
|
+
<di:waypoint x="4444" y="265" />
|
|
542
|
+
<di:waypoint x="4444" y="420" />
|
|
543
|
+
<di:waypoint x="4522" y="420" />
|
|
544
|
+
<di:waypoint x="4522" y="438" />
|
|
545
|
+
<di:waypoint x="4540" y="438" />
|
|
546
|
+
<di:waypoint x="4540" y="418" />
|
|
528
547
|
<bpmndi:BPMNLabel>
|
|
529
|
-
<dc:Bounds x="
|
|
548
|
+
<dc:Bounds x="4449" y="336" width="35" height="14" />
|
|
530
549
|
</bpmndi:BPMNLabel>
|
|
531
550
|
</bpmndi:BPMNEdge>
|
|
532
551
|
<bpmndi:BPMNEdge id="BPMNEdge_f_toWaitPlanAnswer" bpmnElement="f_toWaitPlanAnswer">
|
|
533
|
-
<di:waypoint x="
|
|
534
|
-
<di:waypoint x="
|
|
552
|
+
<di:waypoint x="1466" y="400" />
|
|
553
|
+
<di:waypoint x="1566" y="400" />
|
|
535
554
|
</bpmndi:BPMNEdge>
|
|
536
555
|
<bpmndi:BPMNEdge id="BPMNEdge_f_toGwPlanAnswer" bpmnElement="f_toGwPlanAnswer">
|
|
537
|
-
<di:waypoint x="
|
|
538
|
-
<di:waypoint x="
|
|
556
|
+
<di:waypoint x="1602" y="400" />
|
|
557
|
+
<di:waypoint x="1702" y="400" />
|
|
539
558
|
</bpmndi:BPMNEdge>
|
|
540
559
|
<bpmndi:BPMNEdge id="BPMNEdge_f_toWaitTrial" bpmnElement="f_toWaitTrial">
|
|
541
|
-
<di:waypoint x="
|
|
542
|
-
<di:waypoint x="
|
|
560
|
+
<di:waypoint x="3954" y="560" />
|
|
561
|
+
<di:waypoint x="4054" y="560" />
|
|
543
562
|
</bpmndi:BPMNEdge>
|
|
544
563
|
<bpmndi:BPMNEdge id="BPMNEdge_f_toGwTrialAnswer" bpmnElement="f_toGwTrialAnswer">
|
|
545
|
-
<di:waypoint x="
|
|
546
|
-
<di:waypoint x="
|
|
564
|
+
<di:waypoint x="4090" y="560" />
|
|
565
|
+
<di:waypoint x="4190" y="560" />
|
|
547
566
|
</bpmndi:BPMNEdge>
|
|
548
567
|
<bpmndi:BPMNEdge id="BPMNEdge_f_plan_revise" bpmnElement="f_plan_revise">
|
|
549
|
-
<di:waypoint x="
|
|
550
|
-
<di:waypoint x="
|
|
551
|
-
<di:waypoint x="
|
|
552
|
-
<di:waypoint x="
|
|
568
|
+
<di:waypoint x="1241" y="215" />
|
|
569
|
+
<di:waypoint x="1241" y="180" />
|
|
570
|
+
<di:waypoint x="466" y="180" />
|
|
571
|
+
<di:waypoint x="466" y="200" />
|
|
553
572
|
<bpmndi:BPMNLabel>
|
|
554
|
-
<dc:Bounds x="
|
|
573
|
+
<dc:Bounds x="831" y="158" width="46" height="14" />
|
|
555
574
|
</bpmndi:BPMNLabel>
|
|
556
575
|
</bpmndi:BPMNEdge>
|
|
557
576
|
<bpmndi:BPMNEdge id="BPMNEdge_f_waveMerged" bpmnElement="f_waveMerged">
|
|
558
|
-
<di:waypoint x="
|
|
559
|
-
<di:waypoint x="
|
|
560
|
-
<di:waypoint x="
|
|
561
|
-
<di:waypoint x="
|
|
577
|
+
<di:waypoint x="4540" y="418" />
|
|
578
|
+
<di:waypoint x="4540" y="640" />
|
|
579
|
+
<di:waypoint x="1902" y="640" />
|
|
580
|
+
<di:waypoint x="1902" y="280" />
|
|
562
581
|
</bpmndi:BPMNEdge>
|
|
563
582
|
<bpmndi:BPMNShape id="BPMNShape_w_start" bpmnElement="w_start">
|
|
564
|
-
<dc:Bounds x="
|
|
583
|
+
<dc:Bounds x="2092" y="142" width="36" height="36" />
|
|
565
584
|
<bpmndi:BPMNLabel>
|
|
566
|
-
<dc:Bounds x="
|
|
585
|
+
<dc:Bounds x="2093" y="183" width="34" height="14" />
|
|
567
586
|
</bpmndi:BPMNLabel>
|
|
568
587
|
</bpmndi:BPMNShape>
|
|
569
588
|
<bpmndi:BPMNShape id="BPMNShape_implement-task" bpmnElement="implement-task">
|
|
570
|
-
<dc:Bounds x="
|
|
589
|
+
<dc:Bounds x="2228" y="120" width="100" height="80" />
|
|
571
590
|
</bpmndi:BPMNShape>
|
|
572
591
|
<bpmndi:BPMNShape id="BPMNShape_w_gw" bpmnElement="w_gw" isMarkerVisible="true">
|
|
573
|
-
<dc:Bounds x="
|
|
592
|
+
<dc:Bounds x="2428" y="135" width="50" height="50" />
|
|
574
593
|
<bpmndi:BPMNLabel>
|
|
575
|
-
<dc:Bounds x="
|
|
594
|
+
<dc:Bounds x="2416" y="116" width="74" height="14" />
|
|
576
595
|
</bpmndi:BPMNLabel>
|
|
577
596
|
</bpmndi:BPMNShape>
|
|
578
597
|
<bpmndi:BPMNShape id="BPMNShape_persist-task-escalation" bpmnElement="persist-task-escalation">
|
|
579
|
-
<dc:Bounds x="
|
|
598
|
+
<dc:Bounds x="2578" y="280" width="100" height="80" />
|
|
580
599
|
</bpmndi:BPMNShape>
|
|
581
600
|
<bpmndi:BPMNShape id="BPMNShape_wait-feature-answer" bpmnElement="wait-feature-answer">
|
|
582
|
-
<dc:Bounds x="
|
|
601
|
+
<dc:Bounds x="2778" y="302" width="36" height="36" />
|
|
583
602
|
<bpmndi:BPMNLabel>
|
|
584
|
-
<dc:Bounds x="
|
|
603
|
+
<dc:Bounds x="2754" y="269" width="85" height="28" />
|
|
585
604
|
</bpmndi:BPMNLabel>
|
|
586
605
|
</bpmndi:BPMNShape>
|
|
587
606
|
<bpmndi:BPMNShape id="BPMNShape_w_end" bpmnElement="w_end">
|
|
588
|
-
<dc:Bounds x="
|
|
607
|
+
<dc:Bounds x="2610" y="142" width="36" height="36" />
|
|
589
608
|
<bpmndi:BPMNLabel>
|
|
590
|
-
<dc:Bounds x="
|
|
609
|
+
<dc:Bounds x="2595" y="183" width="66" height="14" />
|
|
591
610
|
</bpmndi:BPMNLabel>
|
|
592
611
|
</bpmndi:BPMNShape>
|
|
593
612
|
<bpmndi:BPMNEdge id="BPMNEdge_w_toImpl" bpmnElement="w_toImpl">
|
|
594
|
-
<di:waypoint x="1928" y="160" />
|
|
595
|
-
<di:waypoint x="2028" y="160" />
|
|
596
|
-
</bpmndi:BPMNEdge>
|
|
597
|
-
<bpmndi:BPMNEdge id="BPMNEdge_w_toGw" bpmnElement="w_toGw">
|
|
598
613
|
<di:waypoint x="2128" y="160" />
|
|
599
614
|
<di:waypoint x="2228" y="160" />
|
|
600
615
|
</bpmndi:BPMNEdge>
|
|
616
|
+
<bpmndi:BPMNEdge id="BPMNEdge_w_toGw" bpmnElement="w_toGw">
|
|
617
|
+
<di:waypoint x="2328" y="160" />
|
|
618
|
+
<di:waypoint x="2428" y="160" />
|
|
619
|
+
</bpmndi:BPMNEdge>
|
|
601
620
|
<bpmndi:BPMNEdge id="BPMNEdge_w_done" bpmnElement="w_done">
|
|
602
|
-
<di:waypoint x="
|
|
603
|
-
<di:waypoint x="
|
|
621
|
+
<di:waypoint x="2478" y="160" />
|
|
622
|
+
<di:waypoint x="2610" y="160" />
|
|
604
623
|
<bpmndi:BPMNLabel>
|
|
605
|
-
<dc:Bounds x="
|
|
624
|
+
<dc:Bounds x="2528" y="138" width="32" height="14" />
|
|
606
625
|
</bpmndi:BPMNLabel>
|
|
607
626
|
</bpmndi:BPMNEdge>
|
|
608
627
|
<bpmndi:BPMNEdge id="BPMNEdge_w_escalate" bpmnElement="w_escalate">
|
|
609
|
-
<di:waypoint x="
|
|
610
|
-
<di:waypoint x="
|
|
611
|
-
<di:waypoint x="
|
|
628
|
+
<di:waypoint x="2453" y="185" />
|
|
629
|
+
<di:waypoint x="2453" y="320" />
|
|
630
|
+
<di:waypoint x="2578" y="320" />
|
|
612
631
|
<bpmndi:BPMNLabel>
|
|
613
|
-
<dc:Bounds x="
|
|
632
|
+
<dc:Bounds x="2458" y="246" width="67" height="14" />
|
|
614
633
|
</bpmndi:BPMNLabel>
|
|
615
634
|
</bpmndi:BPMNEdge>
|
|
616
635
|
<bpmndi:BPMNEdge id="BPMNEdge_w_toWait" bpmnElement="w_toWait">
|
|
617
|
-
<di:waypoint x="
|
|
618
|
-
<di:waypoint x="
|
|
636
|
+
<di:waypoint x="2678" y="320" />
|
|
637
|
+
<di:waypoint x="2778" y="320" />
|
|
619
638
|
</bpmndi:BPMNEdge>
|
|
620
639
|
<bpmndi:BPMNEdge id="BPMNEdge_w_answerLoop" bpmnElement="w_answerLoop">
|
|
621
|
-
<di:waypoint x="
|
|
622
|
-
<di:waypoint x="
|
|
623
|
-
<di:waypoint x="
|
|
624
|
-
<di:waypoint x="
|
|
640
|
+
<di:waypoint x="2796" y="338" />
|
|
641
|
+
<di:waypoint x="2796" y="380" />
|
|
642
|
+
<di:waypoint x="2278" y="380" />
|
|
643
|
+
<di:waypoint x="2278" y="200" />
|
|
625
644
|
</bpmndi:BPMNEdge>
|
|
626
645
|
</bpmndi:BPMNPlane>
|
|
627
646
|
</bpmndi:BPMNDiagram>
|