feat(automation): add scheduled minio memory sync jobs

This commit is contained in:
William Valentin
2026-02-16 14:25:18 -08:00
parent 22f225998f
commit 21c986b671
10 changed files with 384 additions and 3 deletions
+25
View File
@@ -377,6 +377,28 @@ const dailyBriefingSchema = z.object({
model_tier: modelTierEnum.optional(),
}).default({});
const minioSyncTaskSchema = z.object({
prefix: z.string().min(1, 'MinIO sync prefix is required'),
bucket: z.string().optional(),
namespace_base: z.string().min(1).default('global/knowledge/minio'),
mode: z.enum(['append', 'replace']).default('append'),
max_objects: z.number().min(1).max(500).default(20),
max_chars_per_object: z.number().min(1).max(1_000_000).default(8_000),
force: z.boolean().default(false),
});
const minioSyncAutomationSchema = z.object({
enabled: z.boolean().default(false),
interval: z.string().default('6h'),
run_on_start: z.boolean().default(false),
tasks: z.array(minioSyncTaskSchema).default([]),
notify: z.object({
channel: z.string().min(1),
peer: z.string().min(1),
}).optional(),
notify_on_success: z.boolean().default(false),
}).default({});
const automationDeliveryModeSchema = z.enum(['shared_session', 'isolated_job']);
const automationSchema = z.object({
@@ -390,6 +412,7 @@ const automationSchema = z.object({
gdrive: gdriveSchema,
gtasks: gtasksSchema,
daily_briefing: dailyBriefingSchema,
minio_sync: minioSyncAutomationSchema,
heartbeat: heartbeatSchema,
}).default({});
@@ -860,6 +883,8 @@ export type GdocsConfig = z.infer<typeof gdocsSchema>;
export type GdriveConfig = z.infer<typeof gdriveSchema>;
export type GtasksConfig = z.infer<typeof gtasksSchema>;
export type DailyBriefingConfig = z.infer<typeof dailyBriefingSchema>;
export type MinioSyncTaskConfig = z.infer<typeof minioSyncTaskSchema>;
export type MinioSyncAutomationConfig = z.infer<typeof minioSyncAutomationSchema>;
export type AutomationDeliveryMode = z.infer<typeof automationDeliveryModeSchema>;
export type PairingCodeConfig = z.infer<typeof pairingSchema>;
export type LogLevel = z.infer<typeof logLevelSchema>;