mirror of
https://github.com/supabase/supabase.git
synced 2026-09-06 09:59:03 +08:00
<!-- CURSOR_AGENT_PR_BODY_BEGIN --> ## Stack Draft stack extracted from `docs/monitoring`. Merge bottom-up. Troubleshooting / debugging-guide rewrite is out of scope. 1. #49503 move inspect and advisors 2. #49501 split Studio logs from ClickHouse queries 3. #49500 treat reports as signal dashboards 4. #49502 add Observe the data hub 5. #49506 add agent setup components 6. **#49504** add hire-an-agent templates ← **this PR** 7. #49505 restructure observability nav and overview ## I have read the [CONTRIBUTING.md](https://github.com/supabase/supabase/blob/master/CONTRIBUTING.md) file. YES ## What kind of change does this PR introduce? Docs update. Sixth layer in the observability stack. ## What is the current behavior? Humans and agents have no packaged, copy-paste observability routines to run in their own harness. ## What is the new behavior? - Hire an agent hub plus Doctor, Security officer, Personal trainer, and Accountant - Each page is a prompt + schedule + harness setup (Claude, Codex, Cursor) - MCP security guidance covers unattended read-only monitoring on production ## Additional context These pages are the agent-facing templates from the prototype. #49505 puts them in the Observability overview and sidebar. <!-- CURSOR_AGENT_PR_BODY_END --> <div><a href="https://cursor.com/agents/bc-a3cb5ece-925b-4046-b58a-5d69e9a9d794?cursor_ref=pr_footer&cursor_cta=open_in_web"><picture><source media="(prefers-color-scheme: dark)" srcset="https://cursor.com/assets/images/open-in-web-dark.png"><source media="(prefers-color-scheme: light)" srcset="https://cursor.com/assets/images/open-in-web-light.png"><img alt="Open in Web" width="114" height="28" src="https://cursor.com/assets/images/open-in-web-dark.png"></picture></a> <a href="https://cursor.com/background-agent?bcId=bc-a3cb5ece-925b-4046-b58a-5d69e9a9d794&cursor_ref=pr_footer&cursor_cta=open_in_cursor"><picture><source media="(prefers-color-scheme: dark)" srcset="https://cursor.com/assets/images/open-in-cursor-dark.png"><source media="(prefers-color-scheme: light)" srcset="https://cursor.com/assets/images/open-in-cursor-light.png"><img alt="Open in Cursor" width="131" height="28" src="https://cursor.com/assets/images/open-in-cursor-dark.png"></picture></a> </div> --------- Co-authored-by: Cursor Agent <cursoragent@cursor.com> Co-authored-by: Saxon Fletcher <SaxonF@users.noreply.github.com> Co-authored-by: Steven Eubank <eubank.steven88@gmail.com>
65 lines
2.0 KiB
TypeScript
65 lines
2.0 KiB
TypeScript
import type { AiPromptId } from './ai-prompts.data'
|
|
|
|
export const monitoringAgents = {
|
|
health: {
|
|
id: 'health',
|
|
name: 'Health monitor',
|
|
promptId: 'monitoring-agent-health' as AiPromptId,
|
|
schedule: {
|
|
cadence: 'once per hour',
|
|
intervalMinutes: 60,
|
|
scheduled: 'Run it once per hour on a schedule.',
|
|
onDemand:
|
|
'Run it on demand after a deployment, or whenever you need a health check outside that interval.',
|
|
},
|
|
},
|
|
security: {
|
|
id: 'security',
|
|
name: 'Security monitor',
|
|
promptId: 'monitoring-agent-security' as AiPromptId,
|
|
schedule: {
|
|
cadence: 'once per day',
|
|
intervalMinutes: 1440,
|
|
scheduled: 'Run it once per day on a schedule.',
|
|
onDemand: 'Run it on demand after you change Auth, RLS, or other access controls.',
|
|
},
|
|
},
|
|
performance: {
|
|
id: 'performance',
|
|
name: 'Performance monitor',
|
|
promptId: 'monitoring-agent-performance' as AiPromptId,
|
|
schedule: {
|
|
cadence: 'once per hour',
|
|
intervalMinutes: 60,
|
|
scheduled: 'Run it once per hour on a schedule.',
|
|
onDemand: 'Run it on demand after a latency regression or a schema change.',
|
|
},
|
|
},
|
|
usage: {
|
|
id: 'usage',
|
|
name: 'Capacity monitor',
|
|
promptId: 'monitoring-agent-usage' as AiPromptId,
|
|
schedule: {
|
|
cadence: 'once each morning',
|
|
intervalMinutes: 1440,
|
|
scheduled: 'Run it once per day on a schedule.',
|
|
onDemand: 'Run it on demand after an unexpected traffic change.',
|
|
},
|
|
},
|
|
all: {
|
|
id: 'all',
|
|
name: 'Generalist',
|
|
promptId: 'monitoring-agent-all' as AiPromptId,
|
|
schedule: {
|
|
cadence: 'once per day',
|
|
intervalMinutes: 1440,
|
|
scheduled: 'Run it once per day at the start of your day or shift.',
|
|
onDemand:
|
|
'Run it on demand after a deployment or whenever you want a full project health check.',
|
|
},
|
|
},
|
|
} as const
|
|
|
|
export type MonitoringAgentId = keyof typeof monitoringAgents
|
|
export type MonitoringAgent = (typeof monitoringAgents)[MonitoringAgentId]
|