8
8
llm ,
9
9
NAME ,
10
10
recipe ,
11
- Schema ,
12
11
str ,
13
12
UI ,
14
13
} from "@commontools/builder" ;
@@ -398,6 +397,8 @@ export default recipe(
398
397
const extractionResult = llm ( {
399
398
system : systemPrompt ,
400
399
prompt : userPrompt ,
400
+ model : "google:gemini-2.0-flash" ,
401
+ mode : "json" ,
401
402
} ) ;
402
403
403
404
// Return email with extracted dates
@@ -469,39 +470,41 @@ export default recipe(
469
470
< common-hstack gap = "md" >
470
471
< common-vstack gap = "sm" >
471
472
< div >
472
- < common-checkbox
473
+ < input
474
+ type = "checkbox"
473
475
checked = { settings . includeEmailDate }
474
- oncommon-checked = { includeEmailDateHandler }
476
+ onChange = { includeEmailDateHandler }
475
477
/>
476
478
< label > Include email sent date</ label >
477
479
</ div >
478
480
479
481
< div >
480
- < common-checkbox
482
+ < input
483
+ type = "checkbox"
481
484
checked = { settings . extractTimes }
482
- oncommon-checked = { extractTimesHandler }
485
+ onChange = { extractTimesHandler }
483
486
/>
484
487
< label > Extract time information</ label >
485
488
</ div >
486
489
487
490
< div >
488
491
< label > Context length</ label >
489
- < common- input
492
+ < input
490
493
type = "number"
491
494
value = { settings . contextLength }
492
- oncommon-input = { contextLengthHandler }
495
+ onChange = { contextLengthHandler }
493
496
/>
494
497
</ div >
495
498
496
499
< div >
497
500
< label > Min confidence (0-1)</ label >
498
- < common- input
501
+ < input
499
502
type = "number"
500
503
step = "0.1"
501
504
min = "0"
502
505
max = "1"
503
506
value = { settings . minConfidence }
504
- oncommon-input = { minConfidenceHandler }
507
+ onChange = { minConfidenceHandler }
505
508
/>
506
509
</ div >
507
510
</ common-vstack >
@@ -534,11 +537,14 @@ export default recipe(
534
537
) }
535
538
< td > { date . context } </ td >
536
539
< td >
537
- { derive ( date , ( d ) => ( d . confidence * 100 ) . toFixed ( 0 ) ) } %
540
+ { derive ( date , ( d ) =>
541
+ ( d ?. confidence ?? 0 * 100 ) . toFixed ( 0 ) ) } %
538
542
</ td >
539
543
< td >
540
544
{ derive ( emailsWithDates , ( items ) =>
541
- items . find ( ( e ) => e . dates . includes ( date ) ) ?. email
545
+ items . find ( ( e ) =>
546
+ e . dates . includes ( date )
547
+ ) ?. email
542
548
. subject ||
543
549
"" ) }
544
550
</ td >
@@ -562,7 +568,7 @@ export default recipe(
562
568
< tr >
563
569
< th > DATE TEXT</ th >
564
570
< th > NORMALIZED</ th >
565
- { ifElse ( settings . extractTimes , < th > TIME</ th > , null ) }
571
+ { ifElse ( settings . extractTimes , ( < th > TIME</ th > ) , null ) }
566
572
< th > CONTEXT</ th >
567
573
< th > CONFIDENCE</ th >
568
574
</ tr >
@@ -574,20 +580,20 @@ export default recipe(
574
580
< td > { date . normalizedDate } </ td >
575
581
{ ifElse (
576
582
settings . extractTimes ,
577
- < td >
583
+ ( < td >
578
584
{ ifElse (
579
585
date . normalizedTime ,
580
586
date . normalizedTime ,
581
587
"-" ,
582
588
) }
583
- </ td > ,
589
+ </ td > ) ,
584
590
null ,
585
591
) }
586
592
< td > { date . context } </ td >
587
593
< td >
588
594
{ derive (
589
595
date ,
590
- ( d ) => ( d . confidence * 100 ) . toFixed ( 0 ) ,
596
+ ( d ) => ( d ? .confidence ?? 0 * 100 ) . toFixed ( 0 ) ,
591
597
) } %
592
598
</ td >
593
599
</ tr >
0 commit comments