MCP Server
Active
1
0
Files
incident-triage/resources/mappings.yaml

195 lines
7.1 KiB
YAML

kind: uapf.resources.mapping
# Host-readable contract for the seven capability-backed service tasks in
# this package. Algorithm Card references live on the BPMN service tasks
# themselves (uapf24:algorithmCardRef attribute) per UAPF v2.4.0+. The
# targets below are dispatch endpoints only.
targets:
- id: agent.intake_normalizer
type: system_api
name: Signal normalizer
description: Host capability intake.normalize@1, governed by the normalize_signal Algorithm Card.
capabilities:
- capability.intake.normalize
- id: agent.classifier
type: ai_agent
name: Incident taxonomy classifier
description: Host capability ai.classify@1 (LLM-backed), governed by the classify_incident Algorithm Card.
capabilities:
- capability.ai.classify
- id: agent.priority_suggester
type: ai_agent
name: Priority suggester
description: Host capability ai.suggest_priority@1, governed by the suggest_priority Algorithm Card.
capabilities:
- capability.ai.suggest_priority
- id: agent.dmn_evaluator
type: system_api
name: DMN decision evaluator
description: Host capability dmn.evaluate@1, governed by the evaluate_dmn Algorithm Card. Invoked three times in the BPMN with different decision_id input.
capabilities:
- capability.dmn.evaluate
- id: agent.response_drafter
type: ai_agent
name: Customer response drafter
description: Host capability ai.draft_response@1, governed by the draft_response Algorithm Card. Requires human approval before send.
capabilities:
- capability.ai.draft_response
- id: agent.incident_updater
type: system_api
name: Incident state writer
description: Host capability incident.update@1, governed by the update_incident Algorithm Card. Applies field patches and FSM transitions.
capabilities:
- capability.incident.update
- id: agent.event_emitter
type: system_api
name: Case event emitter
description: Host capability event.emit@1, governed by the emit_event Algorithm Card. Append-only timeline writer.
capabilities:
- capability.event.emit
bindings:
- source: { type: bpmn.serviceTask, ref: Task_NormalizeSignal }
targetId: agent.intake_normalizer
mode: autonomous
contract:
input:
- { name: signal_id, type: string, required: true }
output:
- { name: normalized_payload, type: object }
- { name: dedupe_hash, type: string }
- { name: source_kind, type: string }
timeout: "5s"
requiredCapabilities: [capability.intake.normalize]
- source: { type: bpmn.serviceTask, ref: Task_ClassifyIncident }
targetId: agent.classifier
mode: autonomous
contract:
input:
- { name: payload, type: object, required: true }
- { name: text, type: string }
output:
- { name: taxonomy_code, type: string }
- { name: confidence, type: number, description: "0.0-1.0 model confidence" }
- { name: reasoning, type: string }
- { name: label_hint, type: string }
timeout: "30s"
requiredCapabilities: [capability.ai.classify]
- source: { type: bpmn.serviceTask, ref: Task_SuggestPriority }
targetId: agent.priority_suggester
mode: autonomous
contract:
input:
- { name: severity, type: string, required: true }
- { name: service_tier, type: string, required: true }
- { name: classification, type: string, required: true }
output:
- { name: priority, type: string }
- { name: reason, type: string }
timeout: "30s"
requiredCapabilities: [capability.ai.suggest_priority]
- source: { type: bpmn.serviceTask, ref: Task_EvaluatePriorityDmn }
targetId: agent.dmn_evaluator
mode: autonomous
contract:
input:
- { name: package_id, type: string, required: true }
- { name: decision_id, type: string, required: true }
- { name: inputs, type: object, required: true }
output:
- { name: output, type: object }
- { name: hit_rule_ids, type: array }
- { name: hit_policy, type: string }
timeout: "5s"
requiredCapabilities: [capability.dmn.evaluate]
- source: { type: bpmn.serviceTask, ref: Task_EvaluateOwnershipDmn }
targetId: agent.dmn_evaluator
mode: autonomous
contract:
input:
- { name: package_id, type: string, required: true }
- { name: decision_id, type: string, required: true }
- { name: inputs, type: object, required: true }
output:
- { name: output, type: object }
- { name: hit_rule_ids, type: array }
- { name: hit_policy, type: string }
timeout: "5s"
requiredCapabilities: [capability.dmn.evaluate]
- source: { type: bpmn.serviceTask, ref: Task_EvaluateRoutingDmn }
targetId: agent.dmn_evaluator
mode: autonomous
contract:
input:
- { name: package_id, type: string, required: true }
- { name: decision_id, type: string, required: true }
- { name: inputs, type: object, required: true }
output:
- { name: output, type: object }
- { name: hit_rule_ids, type: array }
- { name: hit_policy, type: string }
timeout: "5s"
requiredCapabilities: [capability.dmn.evaluate]
- source: { type: bpmn.serviceTask, ref: Task_UpdateIncident }
targetId: agent.incident_updater
mode: autonomous
contract:
input:
- { name: case_id, type: string, required: true }
- { name: patch, type: object, required: true }
- { name: status, type: string }
- { name: reason, type: string }
output:
- { name: case_id, type: string }
- { name: new_status, type: string }
- { name: success, type: boolean }
- { name: event_ids, type: array }
timeout: "10s"
requiredCapabilities: [capability.incident.update]
- source: { type: bpmn.serviceTask, ref: Task_DraftResponse }
targetId: agent.response_drafter
mode: supervised
contract:
input:
- { name: case_id, type: string, required: true }
- { name: locale, type: string }
- { name: what_happened, type: string, required: true }
- { name: eta_minutes, type: number }
output:
- { name: subject_lv, type: string }
- { name: subject_en, type: string }
- { name: body_lv, type: string }
- { name: body_en, type: string }
- { name: locale, type: string }
timeout: "60s"
requiredCapabilities: [capability.ai.draft_response]
- source: { type: bpmn.serviceTask, ref: Task_EmitEvent }
targetId: agent.event_emitter
mode: autonomous
contract:
input:
- { name: case_id, type: string, required: true }
- { name: type, type: string, required: true }
- { name: payload, type: object }
- { name: actor_label, type: string }
output:
- { name: event_id, type: string }
- { name: recorded_at, type: string }
timeout: "5s"
requiredCapabilities: [capability.event.emit]