1
0
Files
Rihards 59c87ee9a4 feat(3.1.0): align with UAPF v2.4.0 — algorithm card refs move to BPMN task
UAPF v2.4.0 reverses the v2.3.0 decision to place algorithm card
references on resource targets. The card belongs on the BPMN task
itself, where it is visible as a first-class process element and its
inputs/outputs render as visible data objects on the diagram.

Changes from v3.0.0:
- bpmn/semantic-document-analysis.bpmn: each of 3 service tasks now
  carries xmlns:uapf24=https://uapf.dev/bpmn/v2.4 + the
  uapf24:algorithmCardRef attribute pointing at the governing card,
  plus a <bpmn:ioSpecification> synthesised from the card's io block
  so inputs/outputs render as visible data objects
- resources/mappings.yaml: algorithm_card dropped from each of the
  3 targets (they go back to being just dispatch endpoints)
- uapf.yaml + manifest.json: version 3.0.0 -> 3.1.0
- README rewritten with v3.1.0 delta + audit-question table

Cards themselves are unchanged. DMN files are unchanged.
2026-05-20 14:23:16 +00:00

88 lines
3.7 KiB
YAML

kind: uapf.resources.mapping
# Host-readable contract for the capability-backed service tasks.
#
# v3.1.0 change: the algorithm_card reference (added in v3.0.0 on each
# target) has been removed per UAPF v2.4.0 — the Algorithm Card reference
# now lives on the BPMN serviceTask itself via the
# uapf24:algorithmCardRef attribute (see bpmn/semantic-document-analysis.bpmn).
# Targets here keep their role as dispatch endpoints only.
#
# The three DMN decisions (assess-personal-data-risk,
# gdpr-processing-route, human-validation-gate) remain self-describing
# and continue to need no host resource — they are evaluated by the
# UAPF runtime against the dmn/ cornerstone.
targets:
- id: agent.pii_redactor
type: ai_agent
name: PII detection and redaction agent
description: |
Host capability ai.redact@1, governed by the
pii_redactor Algorithm Card.
capabilities:
- capability.ai.redact
- id: agent.vdvc_semantic_extractor
type: ai_agent
name: VDVC semantic metadata extractor agent
description: |
Host capability ai.extract@1, governed by the
vdvc_semantic_extractor Algorithm Card. EU AI Act
Annex III high-risk; human oversight is mandatory and is
enforced downstream by the human-validation-gate DMN.
capabilities:
- capability.ai.extract
- id: agent.completion_event_emitter
type: ai_agent
name: Completion event emitter agent
description: |
Host capability event.emit@1, governed by the
completion_event_emitter Algorithm Card.
capabilities:
- capability.event.emit
bindings:
- source: { type: bpmn.serviceTask, ref: Task_DetectRedactPii }
targetId: agent.pii_redactor
mode: autonomous
contract:
input:
- { name: content, type: string, required: true }
output:
- { name: redactedContent, type: string, description: "Source text with PII masked." }
- { name: detectedEntityTypes, type: array, description: "PII TYPE names only, never values." }
- { name: personasKodaPresent, type: boolean, description: "Latvian national ID regex hit." }
- { name: financialDataPresent,type: boolean, description: "IBAN regex hit." }
- { name: contactDataPresent, type: boolean, description: "E-mail or phone regex hit." }
- { name: piiCategoryCount, type: number, description: "Count of distinct PII categories detected." }
timeout: "10s"
requiredCapabilities: [capability.ai.redact]
- source: { type: bpmn.serviceTask, ref: Task_ExtractSemantics }
targetId: agent.vdvc_semantic_extractor
mode: autonomous
contract:
input:
- { name: redactedContent, type: string, required: true }
- { name: schemaRef, type: string, required: true, description: "resources/schemas/vdvc-semantic-summary.schema.json" }
output:
- { name: semanticSummary, type: object, description: "Validates against the VDVC v1.1 schema." }
- { name: sensitivityControl, type: object }
- { name: aiConfidenceScore, type: number, description: "Flat 0.0-1.0; consumed by human-validation-gate." }
- { name: outputPiiErrorCount, type: number, description: "PII re-scan hits on extracted text; consumed by human-validation-gate." }
timeout: "30s"
retries: { maxAttempts: 2, backoffMs: 2000 }
requiredCapabilities: [capability.ai.extract]
- source: { type: bpmn.serviceTask, ref: Task_EmitResult }
targetId: agent.completion_event_emitter
mode: autonomous
contract:
input:
- { name: eventType, type: string, required: true }
- { name: payload, type: object, required: true }
timeout: "5s"
requiredCapabilities: [capability.event.emit]