@@ -12,6 +12,7 @@ import { Textarea } from '@ui/components/editor/common/Textarea'
1212import { Toggler } from '@ui/components/editor/common/Toggler'
1313import { Button } from '@ui/components/editor/common/Button'
1414import { TextButton } from '@ui/components/editor/settings/TextButton'
15+ import { Notice } from '@ui/components/editor/settings/Notice'
1516import {
1617 ConfigurationForClient ,
1718 ProviderForClient ,
@@ -146,6 +147,7 @@ type Props = {
146147 on_delete_config : ( tool_name : string , configuration_id : string ) => void
147148 on_set_default_config : ( tool_name : string , configuration_id : string ) => void
148149 on_unset_default_config : ( tool_name : string ) => void
150+ on_open_external_url : ( url : string ) => void
149151 scroll_to_section_on_load ?: NavItem
150152}
151153
@@ -387,6 +389,26 @@ export const Home: React.FC<Props> = (props) => {
387389 < Button on_click = { ( ) => props . on_add_provider ( ) } > Add New...</ Button >
388390 }
389391 >
392+ < Notice type = "info" >
393+ API keys are stored securely in the{ ' ' }
394+ < a
395+ href = "#"
396+ onClick = { ( e ) => {
397+ e . preventDefault ( )
398+ props . on_open_external_url (
399+ 'https://code.visualstudio.com/api/references/vscode-api#SecretStorage'
400+ )
401+ } }
402+ >
403+ SecretStorage
404+ </ a >
405+ .
406+ </ Notice >
407+ { props . providers . length == 0 && (
408+ < Notice type = "warning" >
409+ Add a model provider to use API features.
410+ </ Notice >
411+ ) }
390412 < Group >
391413 < ModelProvidersSection
392414 providers = { props . providers }
@@ -417,6 +439,11 @@ export const Home: React.FC<Props> = (props) => {
417439 </ Button >
418440 }
419441 >
442+ { props . edit_context_configs . length == 0 && (
443+ < Notice type = "warning" >
444+ Add a configuration to use this feature.
445+ </ Notice >
446+ ) }
420447 < Group >
421448 < ApiToolConfigurationSection
422449 configurations = { props . edit_context_configs }
@@ -465,6 +492,11 @@ export const Home: React.FC<Props> = (props) => {
465492 </ Button >
466493 }
467494 >
495+ { props . intelligent_update_configs . length == 0 && (
496+ < Notice type = "warning" >
497+ Add a configuration to use this feature.
498+ </ Notice >
499+ ) }
468500 < Group >
469501 < ApiToolConfigurationSection
470502 configurations = { props . intelligent_update_configs }
@@ -516,6 +548,11 @@ export const Home: React.FC<Props> = (props) => {
516548 </ Button >
517549 }
518550 >
551+ { props . prune_context_configs . length == 0 && (
552+ < Notice type = "warning" >
553+ Add a configuration to use this feature.
554+ </ Notice >
555+ ) }
519556 < Group >
520557 < ApiToolConfigurationSection
521558 configurations = { props . prune_context_configs }
@@ -547,6 +584,11 @@ export const Home: React.FC<Props> = (props) => {
547584 </ Button >
548585 }
549586 >
587+ { props . code_at_cursor_configs . length == 0 && (
588+ < Notice type = "warning" >
589+ Add a configuration to use this feature.
590+ </ Notice >
591+ ) }
550592 < Group >
551593 < ApiToolConfigurationSection
552594 configurations = { props . code_at_cursor_configs }
@@ -599,6 +641,11 @@ export const Home: React.FC<Props> = (props) => {
599641 </ Button >
600642 }
601643 >
644+ { props . voice_input_configs . length == 0 && (
645+ < Notice type = "warning" >
646+ Add a configuration to use this feature.
647+ </ Notice >
648+ ) }
602649 < Group >
603650 < ApiToolConfigurationSection
604651 configurations = { props . voice_input_configs }
@@ -637,6 +684,11 @@ export const Home: React.FC<Props> = (props) => {
637684 </ Button >
638685 }
639686 >
687+ { props . commit_messages_configs . length == 0 && (
688+ < Notice type = "warning" >
689+ Add a configuration to use this feature.
690+ </ Notice >
691+ ) }
640692 < Group >
641693 < ApiToolConfigurationSection
642694 configurations = { props . commit_messages_configs }
0 commit comments