| 157 | } |
| 158 | |
| 159 | function getRecurrenceMeta(schedule: JsonRecord | null): { |
| 160 | kind: "once" | "recurring" | "interval" | "unknown"; |
| 161 | label: string; |
| 162 | } { |
| 163 | switch (schedule?.kind) { |
| 164 | case "at": |
| 165 | return { kind: "once", label: "One-time" }; |
| 166 | case "cron": |
| 167 | return { kind: "recurring", label: "Recurring" }; |
| 168 | case "every": |
| 169 | return { kind: "interval", label: "Interval" }; |
| 170 | default: |
| 171 | return { kind: "unknown", label: "Unknown" }; |
| 172 | } |
| 173 | } |
| 174 | |
| 175 | function getSessionTargetMeta(target: unknown): { label: string; description: string } { |
| 176 | switch (target) { |