@@ -65,53 +65,63 @@ export type AddParams = {
65
65
favicon ?: string ;
66
66
} ;
67
67
68
- const markFailedInGlobalContext = (
69
- siteIndexingConfig : SiteIndexingConfig ,
70
- continueConfig : ContinueConfig ,
71
- ) => {
68
+ const markFailedInGlobalContext = ( siteIndexingConfig : SiteIndexingConfig ) => {
72
69
const globalContext = new GlobalContext ( ) ;
73
70
const failedDocs = globalContext . get ( "failedDocs" ) ?? [ ] ;
74
71
const newFailedDocs = failedDocs . filter (
75
- ( d ) => ! docConfigsAreEqual ( siteIndexingConfig , d , continueConfig ) ,
72
+ ( d ) => ! docConfigsAreEqual ( siteIndexingConfig , d ) ,
76
73
) ;
77
74
newFailedDocs . push ( siteIndexingConfig ) ;
78
75
globalContext . update ( "failedDocs" , newFailedDocs ) ;
79
76
} ;
80
77
81
78
const removeFromFailedGlobalContext = (
82
79
siteIndexingConfig : SiteIndexingConfig ,
83
- continueConfig : ContinueConfig ,
84
80
) => {
85
81
const globalContext = new GlobalContext ( ) ;
86
82
const failedDocs = globalContext . get ( "failedDocs" ) ?? [ ] ;
87
83
const newFailedDocs = failedDocs . filter (
88
- ( d ) => ! docConfigsAreEqual ( siteIndexingConfig , d , continueConfig ) ,
84
+ ( d ) => ! docConfigsAreEqual ( siteIndexingConfig , d ) ,
89
85
) ;
90
86
globalContext . update ( "failedDocs" , newFailedDocs ) ;
91
87
} ;
92
88
93
- const hasIndexingFailed = (
94
- siteIndexingConfig : SiteIndexingConfig ,
95
- continueConfig : ContinueConfig ,
96
- ) => {
89
+ const hasIndexingFailed = ( siteIndexingConfig : SiteIndexingConfig ) => {
97
90
const globalContext = new GlobalContext ( ) ;
98
91
const failedDocs = globalContext . get ( "failedDocs" ) ?? [ ] ;
99
- return failedDocs . find ( ( d ) =>
100
- docConfigsAreEqual ( siteIndexingConfig , d , continueConfig ) ,
101
- ) ;
92
+ return failedDocs . find ( ( d ) => docConfigsAreEqual ( siteIndexingConfig , d ) ) ;
102
93
} ;
103
94
95
+ export function embedModelsAreEqual (
96
+ llm1 : ILLM | null | undefined ,
97
+ llm2 : ILLM | null | undefined ,
98
+ ) : boolean {
99
+ return (
100
+ llm1 ?. underlyingProviderName === llm2 ?. underlyingProviderName &&
101
+ llm1 ?. title === llm2 ?. title &&
102
+ llm1 ?. maxEmbeddingChunkSize === llm2 ?. maxEmbeddingChunkSize
103
+ ) ;
104
+ }
105
+
104
106
const docConfigsAreEqual = (
105
107
siteConfig1 : SiteIndexingConfig ,
106
108
siteConfig2 : SiteIndexingConfig ,
107
- contConfig : ContinueConfig ,
108
109
) => {
109
- return siteIndexingConfigsAreEqual (
110
- siteConfig1 ,
111
- siteConfig2 ,
112
- // These are equal because this function only checks the doc configs for changes
113
- contConfig ,
114
- contConfig ,
110
+ return (
111
+ siteConfig1 . faviconUrl === siteConfig2 . faviconUrl &&
112
+ siteConfig1 . title === siteConfig2 . title &&
113
+ docConfigsAreEqualExceptTitleAndFavicon ( siteConfig1 , siteConfig2 )
114
+ ) ;
115
+ } ;
116
+
117
+ const docConfigsAreEqualExceptTitleAndFavicon = (
118
+ siteConfig1 : SiteIndexingConfig ,
119
+ siteConfig2 : SiteIndexingConfig ,
120
+ ) => {
121
+ return (
122
+ siteConfig1 . startUrl === siteConfig2 . startUrl &&
123
+ siteConfig1 . maxDepth === siteConfig2 . maxDepth &&
124
+ siteConfig1 . useLocalCrawling === siteConfig2 . useLocalCrawling
115
125
) ;
116
126
} ;
117
127
@@ -122,13 +132,10 @@ const siteIndexingConfigsAreEqual = (
122
132
contConfig2 : ContinueConfig ,
123
133
) => {
124
134
return (
125
- siteConfig1 . faviconUrl === siteConfig2 . faviconUrl &&
126
- siteConfig1 . title === siteConfig2 . title &&
127
- siteIndexingConfigsAreEqualExceptTitleAndFavicon (
128
- siteConfig1 ,
129
- siteConfig2 ,
130
- contConfig1 ,
131
- contConfig2 ,
135
+ docConfigsAreEqual ( siteConfig1 , siteConfig2 ) &&
136
+ embedModelsAreEqual (
137
+ contConfig1 ?. selectedModelByRole . embed ,
138
+ contConfig2 . selectedModelByRole . embed ,
132
139
)
133
140
) ;
134
141
} ;
@@ -140,9 +147,7 @@ const siteIndexingConfigsAreEqualExceptTitleAndFavicon = (
140
147
contConfig2 : ContinueConfig ,
141
148
) => {
142
149
return (
143
- siteConfig1 . startUrl === siteConfig2 . startUrl &&
144
- siteConfig1 . maxDepth === siteConfig2 . maxDepth &&
145
- siteConfig1 . useLocalCrawling === siteConfig2 . useLocalCrawling &&
150
+ docConfigsAreEqualExceptTitleAndFavicon ( siteConfig1 , siteConfig2 ) &&
146
151
embedModelsAreEqual (
147
152
contConfig1 ?. selectedModelByRole . embed ,
148
153
contConfig2 . selectedModelByRole . embed ,
@@ -538,7 +543,7 @@ export default class DocsService {
538
543
539
544
// If not force-reindexing and has failed with same config, don't reattempt
540
545
if ( ! forceReindex ) {
541
- if ( hasIndexingFailed ( siteIndexingConfig , this . config ) ) {
546
+ if ( hasIndexingFailed ( siteIndexingConfig ) ) {
542
547
console . log (
543
548
`Not reattempting to index ${ siteIndexingConfig . startUrl } , has already failed with same config` ,
544
549
) ;
@@ -721,7 +726,7 @@ export default class DocsService {
721
726
} ) ;
722
727
723
728
// void this.ide.showToast("info", `Failed to index ${startUrl}`);
724
- markFailedInGlobalContext ( siteIndexingConfig , this . config ) ;
729
+ markFailedInGlobalContext ( siteIndexingConfig ) ;
725
730
return ;
726
731
}
727
732
@@ -779,7 +784,7 @@ export default class DocsService {
779
784
void this . ide . showToast ( "info" , `Successfully indexed ${ startUrl } ` ) ;
780
785
}
781
786
782
- removeFromFailedGlobalContext ( siteIndexingConfig , this . config ) ;
787
+ removeFromFailedGlobalContext ( siteIndexingConfig ) ;
783
788
} catch ( e ) {
784
789
console . error (
785
790
`Error indexing docs at: ${ siteIndexingConfig . startUrl } ` ,
@@ -800,7 +805,7 @@ export default class DocsService {
800
805
status : "failed" ,
801
806
progress : 1 ,
802
807
} ) ;
803
- markFailedInGlobalContext ( siteIndexingConfig , this . config ) ;
808
+ markFailedInGlobalContext ( siteIndexingConfig ) ;
804
809
} finally {
805
810
this . docsIndexingQueue . delete ( startUrl ) ;
806
811
}
@@ -1303,7 +1308,7 @@ export default class DocsService {
1303
1308
// Handles the case where a user has manually added the doc to config.json
1304
1309
// so it already exists in the file
1305
1310
const doesEquivalentDocExist = this . config . docs ?. some ( ( doc ) =>
1306
- docConfigsAreEqual ( doc , siteIndexingConfig , this . config ) ,
1311
+ docConfigsAreEqual ( doc , siteIndexingConfig ) ,
1307
1312
) ;
1308
1313
1309
1314
if ( ! doesEquivalentDocExist ) {
@@ -1406,14 +1411,3 @@ export default class DocsService {
1406
1411
this . statuses . delete ( startUrl ) ;
1407
1412
}
1408
1413
}
1409
-
1410
- export function embedModelsAreEqual (
1411
- llm1 : ILLM | null | undefined ,
1412
- llm2 : ILLM | null | undefined ,
1413
- ) : boolean {
1414
- return (
1415
- llm1 ?. underlyingProviderName === llm2 ?. underlyingProviderName &&
1416
- llm1 ?. title === llm2 ?. title &&
1417
- llm1 ?. maxEmbeddingChunkSize === llm2 ?. maxEmbeddingChunkSize
1418
- ) ;
1419
- }
0 commit comments