Files
sim/apps
Waleed be6f69365c feat(pagerduty): validate integration + add 9 tools for deeper API coverage (#5446)
* feat(pagerduty): validate integration + add 9 tools for deeper API coverage

- fix list tools' total field to null-default (matches PagerDuty spec, was wrong 0 default)
- add pagination offset across all list tools
- add incidentKey, resolution, urgencies, triggered status support
- add get_incident, get_service, list_escalation_policies, list_incident_alerts,
  list_schedules, list_users, merge_incidents, snooze_incident tools (REST API v2)
- add send_event tool (Events API v2) for trigger/acknowledge/resolve via routing key
- add 2 new BlockMeta skills grounded in documented PagerDuty workflows

* fix(pagerduty): address review findings on send_event/snooze/merge validation

- match required condition to visibility condition for eventSummary/eventSource (trigger-only)
- validate trigger payload has summary/source/severity before sending, throw descriptive error
- validate snooze duration is finite and within PagerDuty's 1-604800 range
- drop empty segments when splitting merge source incident IDs

* fix(pagerduty): reject empty merge sources, enforce dedupKey, require integer snooze duration

- merge_incidents: throw if source_incidents ends up empty after filtering blanks
- send_event: require dedupKey for acknowledge/resolve to match block's required condition
- snooze_incident: require an integer duration, not just a finite number

* fix(pagerduty): reject resolution note unless status is resolved

PagerDuty only accepts an incident's resolution field when status is
being set to resolved in the same request; sending it otherwise gets
rejected by the API with an opaque error.

* docs(pagerduty): mention triggered as a valid update_incident status
2026-07-06 15:50:30 -07:00
..