Files
multica/examples/plugins/triage-notify/multica.plugin.json
Jiayuan Zhangandmultica-agent 5bf10d485c MUL-6582: add durable scheduled Plugin hooks (#7448)
* MUL-6582 feat(plugins): add durable scheduled hooks

Co-authored-by: multica-agent <[email protected]>

* MUL-6582: add schedule-pulse example plugin

Ship a real scheduled plugin that records each unique delivery_id in
workspace storage, so a host retry does not look like a second pulse.
The cmd/server test installs this example manifest and drives two
scheduler replicas through a dropped first attempt.

Co-authored-by: multica-agent <[email protected]>

* MUL-6582 fix(migrations): make schedule indexes retry-safe

Co-authored-by: multica-agent <[email protected]>

---------

Co-authored-by: multica-agent <[email protected]>
2026-08-23 17:37:21 +08:00

86 lines
2.1 KiB
JSON

{
"manifest_version": 1,
"key": "ai.multica.triage-notify",
"name": "Triage Notify",
"description": "Sends an issue to an external triage service and writes its answer back as a comment. Also demonstrates a no-side-effect Hook that Multica wakes every five minutes.",
"version": "1.1.0",
"author": {
"name": "multica",
"url": "https://multica.ai"
},
"scopes": [
"issues:read",
"comments:read",
"comments:write",
"net:triage.example.com"
],
"config": {
"team": {
"type": "string",
"label": "Team",
"description": "Passed to the triage service so it can route the issue.",
"required": true,
"placeholder": "platform"
}
},
"contributes": {
"surfaces": [
{
"key": "triage",
"type": "issue_panel",
"name": "Triage",
"entry": "ui/main.js",
"platforms": [
"web",
"desktop"
]
}
],
"hooks": [
{
"key": "triage_issue",
"name": "Triage this issue",
"description": "Sends the issue title and description to the triage service and posts its suggested owner and priority back as a comment.",
"input_schema": {
"type": "object",
"properties": {
"reason": {
"type": "string"
}
}
},
"triggers": [
"ui",
"manual",
"event"
],
"events": [
"issue.created"
],
"transport": {
"type": "http",
"url": "https://triage.example.com/hooks/triage"
},
"timeout_ms": 8000
},
{
"key": "scheduled_heartbeat",
"name": "Scheduled heartbeat",
"description": "Acknowledges a durable scheduled delivery without writing to Multica or another service.",
"triggers": [
"schedule"
],
"schedule": {
"cron": "*/5 * * * *",
"timezone": "UTC"
},
"transport": {
"type": "http",
"url": "https://triage.example.com/hooks/heartbeat"
},
"timeout_ms": 8000
}
]
}
}