11import { sanitizeAgentId } from "../routing/session-key.js" ;
2+ import {
3+ normalizeLowercaseStringOrEmpty ,
4+ normalizeOptionalLowercaseString ,
5+ } from "../shared/string-coerce.js" ;
26import { isRecord } from "../utils.js" ;
37import {
48 TimeoutSecondsFieldSchema ,
@@ -61,7 +65,7 @@ function normalizeTrimmedStringArray(
6165
6266function coerceSchedule ( schedule : UnknownRecord ) {
6367 const next : UnknownRecord = { ...schedule } ;
64- const rawKind = typeof schedule . kind === "string" ? schedule . kind . trim ( ) . toLowerCase ( ) : "" ;
68+ const rawKind = normalizeLowercaseStringOrEmpty ( schedule . kind ) ;
6569 const kind = rawKind === "at" || rawKind === "every" || rawKind === "cron" ? rawKind : undefined ;
6670 const exprRaw = typeof schedule . expr === "string" ? schedule . expr . trim ( ) : "" ;
6771 const legacyCronRaw = typeof schedule . cron === "string" ? schedule . cron . trim ( ) : "" ;
@@ -141,7 +145,7 @@ function coerceSchedule(schedule: UnknownRecord) {
141145
142146function coercePayload ( payload : UnknownRecord ) {
143147 const next : UnknownRecord = { ...payload } ;
144- const kindRaw = typeof next . kind === "string" ? next . kind . trim ( ) . toLowerCase ( ) : "" ;
148+ const kindRaw = normalizeLowercaseStringOrEmpty ( next . kind ) ;
145149 if ( kindRaw === "agentturn" ) {
146150 next . kind = "agentTurn" ;
147151 } else if ( kindRaw === "systemevent" ) {
@@ -316,7 +320,7 @@ function normalizeSessionTarget(raw: unknown) {
316320 return undefined ;
317321 }
318322 const trimmed = raw . trim ( ) ;
319- const lower = trimmed . toLowerCase ( ) ;
323+ const lower = normalizeLowercaseStringOrEmpty ( trimmed ) ;
320324 if ( lower === "main" || lower === "isolated" || lower === "current" ) {
321325 return lower ;
322326 }
@@ -331,7 +335,7 @@ function normalizeWakeMode(raw: unknown) {
331335 if ( typeof raw !== "string" ) {
332336 return undefined ;
333337 }
334- const trimmed = raw . trim ( ) . toLowerCase ( ) ;
338+ const trimmed = normalizeOptionalLowercaseString ( raw ) ;
335339 if ( trimmed === "now" || trimmed === "next-heartbeat" ) {
336340 return trimmed ;
337341 }
@@ -439,7 +443,7 @@ export function normalizeCronJobInput(
439443 if ( typeof enabled === "boolean" ) {
440444 next . enabled = enabled ;
441445 } else if ( typeof enabled === "string" ) {
442- const trimmed = enabled . trim ( ) . toLowerCase ( ) ;
446+ const trimmed = normalizeOptionalLowercaseString ( enabled ) ;
443447 if ( trimmed === "true" ) {
444448 next . enabled = true ;
445449 }
0 commit comments