






















@@ -1,5 +1,6 @@
11import { t } from "../../i18n/index.ts";
22import { DEFAULT_CRON_FORM } from "../app-defaults.ts";
3+import { getCronJobPayload, hasCronJobPayload } from "../cron-payload.ts";
34import { toNumber } from "../format.ts";
45import type { GatewayBrowserClient } from "../gateway.ts";
56import { normalizeLowercaseStringOrEmpty } from "../string-coerce.ts";
@@ -300,14 +301,15 @@ export async function loadCronJobsPage(state: CronState, opts?: { append?: boole
300301sortBy: state.cronJobsSortBy,
301302sortDir: state.cronJobsSortDir,
302303});
303-const jobs = Array.isArray(res.jobs) ? res.jobs : [];
304+const rawJobs = Array.isArray(res.jobs) ? res.jobs : [];
305+const jobs = rawJobs.filter(hasCronJobPayload);
304306state.cronJobs = append ? [...state.cronJobs, ...jobs] : jobs;
305307const meta = normalizeCronPageMeta({
306308totalRaw: res.total,
307309offsetRaw: res.offset,
308310nextOffsetRaw: res.nextOffset,
309311hasMoreRaw: res.hasMore,
310-pageCount: jobs.length,
312+pageCount: rawJobs.length,
311313});
312314state.cronJobsTotal = Math.max(meta.total, state.cronJobs.length);
313315state.cronJobsHasMore = meta.hasMore;
@@ -440,6 +442,7 @@ function parseStaggerSchedule(
440442441443function jobToForm(job: CronJob, prev: CronFormState): CronFormState {
442444const failureAlert = job.failureAlert;
445+const payload = getCronJobPayload(job);
443446const next: CronFormState = {
444447 ...prev,
445448name: job.name,
@@ -460,12 +463,11 @@ function jobToForm(job: CronJob, prev: CronFormState): CronFormState {
460463staggerUnit: "seconds",
461464sessionTarget: job.sessionTarget,
462465wakeMode: job.wakeMode,
463-payloadKind: job.payload.kind,
464-payloadText: job.payload.kind === "systemEvent" ? job.payload.text : job.payload.message,
465-payloadModel: job.payload.kind === "agentTurn" ? (job.payload.model ?? "") : "",
466-payloadThinking: job.payload.kind === "agentTurn" ? (job.payload.thinking ?? "") : "",
467-payloadLightContext:
468-job.payload.kind === "agentTurn" ? job.payload.lightContext === true : false,
466+payloadKind: payload?.kind ?? DEFAULT_CRON_FORM.payloadKind,
467+payloadText: payload?.kind === "systemEvent" ? payload.text : (payload?.message ?? ""),
468+payloadModel: payload?.kind === "agentTurn" ? (payload.model ?? "") : "",
469+payloadThinking: payload?.kind === "agentTurn" ? (payload.thinking ?? "") : "",
470+payloadLightContext: payload?.kind === "agentTurn" ? payload.lightContext === true : false,
469471deliveryMode: job.delivery?.mode ?? "none",
470472deliveryChannel: job.delivery?.channel ?? CRON_CHANNEL_LAST,
471473deliveryTo: job.delivery?.to ?? "",
@@ -499,8 +501,8 @@ function jobToForm(job: CronJob, prev: CronFormState): CronFormState {
499501failureAlertAccountId:
500502failureAlert && typeof failureAlert === "object" ? (failureAlert.accountId ?? "") : "",
501503timeoutSeconds:
502-job.payload.kind === "agentTurn" && typeof job.payload.timeoutSeconds === "number"
503- ? String(job.payload.timeoutSeconds)
504+payload?.kind === "agentTurn" && typeof payload.timeoutSeconds === "number"
505+ ? String(payload.timeoutSeconds)
504506 : "",
505507};
506508@@ -658,9 +660,10 @@ export async function addCronJob(state: CronState) {
658660const editingJob = state.cronEditingJobId
659661 ? state.cronJobs.find((job) => job.id === state.cronEditingJobId)
660662 : undefined;
663+const editingPayload = editingJob ? getCronJobPayload(editingJob) : null;
661664if (payload.kind === "agentTurn") {
662665const existingLightContext =
663-editingJob?.payload.kind === "agentTurn" ? editingJob.payload.lightContext : undefined;
666+editingPayload?.kind === "agentTurn" ? editingPayload.lightContext : undefined;
664667if (
665668!form.payloadLightContext &&
666669state.cronEditingJobId &&
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。