You've already forked incident-triage
Import UAPF package
Import UAPF package: incident-triage.uapf
This commit is contained in:
194
resources/mappings.yaml
Normal file
194
resources/mappings.yaml
Normal file
@@ -0,0 +1,194 @@
|
||||
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]
|
||||
Reference in New Issue
Block a user