Skip to content

Commit d131aa0

Browse files
committed
version without an specific dojo agent
1 parent ccb1277 commit d131aa0

24 files changed

+90
-719
lines changed

ingesters/__tests__/AsciiDocIngester.test.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -66,7 +66,7 @@ describe('AsciiDocIngester', () => {
6666
bookConfig: {
6767
repoOwner: 'test-owner',
6868
repoName: 'test-repo',
69-
fileExtension: '.adoc',
69+
fileExtensions: '.adoc',
7070
chunkSize: 1000,
7171
chunkOverlap: 200,
7272
baseUrl: 'https://example.com',
@@ -300,7 +300,7 @@ This is page 2 content.`,
300300
bookConfig: {
301301
repoOwner: 'test-owner',
302302
repoName: 'test-repo',
303-
fileExtension: '.adoc',
303+
fileExtensions: '.adoc',
304304
chunkSize: 1000,
305305
chunkOverlap: 200,
306306
baseUrl: '',

ingesters/__tests__/DojoDocsIngester.test.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ describe('DojoDocsIngester', () => {
1212
expect(ingester.config).toEqual({
1313
repoOwner: 'dojoengine',
1414
repoName: 'book',
15-
fileExtension: '.md',
15+
fileExtensions: ['.md', '.mdx'],
1616
chunkSize: 4096,
1717
chunkOverlap: 512,
1818
baseUrl: 'https://book.dojoengine.org',

ingesters/__tests__/MarkdownIngester.test.ts

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ const markdownIngester = new TestMarkdownIngester(
1515
repoOwner: 'test',
1616
repoName: 'test',
1717
baseUrl: 'https://test.com',
18-
fileExtension: 'md',
18+
fileExtensions: 'md',
1919
urlSuffix: '.html',
2020
chunkSize: 1000,
2121
chunkOverlap: 100,
@@ -311,7 +311,7 @@ describe('URL sourcing and generation', () => {
311311
repoOwner: 'test',
312312
repoName: 'test',
313313
baseUrl: 'https://docs.example.com',
314-
fileExtension: 'md',
314+
fileExtensions: 'md',
315315
urlSuffix: '.html',
316316
chunkSize: 1000,
317317
chunkOverlap: 100,
@@ -342,7 +342,7 @@ describe('URL sourcing and generation', () => {
342342
repoOwner: 'test',
343343
repoName: 'test',
344344
baseUrl: 'https://docs.starknet.io',
345-
fileExtension: 'md',
345+
fileExtensions: 'md',
346346
urlSuffix: '',
347347
chunkSize: 1000,
348348
chunkOverlap: 100,
@@ -379,7 +379,7 @@ describe('URL sourcing and generation', () => {
379379
repoOwner: 'test',
380380
repoName: 'test',
381381
baseUrl: 'https://book.cairo-lang.org',
382-
fileExtension: 'md',
382+
fileExtensions: 'md',
383383
urlSuffix: '.html',
384384
chunkSize: 1000,
385385
chunkOverlap: 100,

ingesters/__tests__/StarknetDocsIngester.test.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ describe('StarknetDocsIngester', () => {
1212
expect(ingester.config).toEqual({
1313
repoOwner: 'starknet-io',
1414
repoName: 'starknet-docs',
15-
fileExtension: '.mdx',
15+
fileExtensions: '.mdx',
1616
chunkSize: 4096,
1717
chunkOverlap: 512,
1818
baseUrl: 'https://docs.starknet.io',

ingesters/src/ingesters/AsciiDocIngester.ts

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -161,13 +161,13 @@ export abstract class AsciiDocIngester extends BaseIngester {
161161
*
162162
* @param sourceDir - Source directory
163163
* @param targetDir - Target directory
164-
* @param fileExtension - File extension to process
164+
* @param fileExtensions - File extension to process
165165
* @returns Promise<boolean> - Whether relevant files were found
166166
*/
167167
private async restructureFiles(
168168
sourceDir: string,
169169
targetDir: string,
170-
fileExtension: string = '.adoc',
170+
fileExtensions: string = '.adoc',
171171
): Promise<boolean> {
172172
const entries = await fs.readdir(sourceDir, { withFileTypes: true });
173173
let hasRelevantFiles = false;
@@ -185,7 +185,7 @@ export abstract class AsciiDocIngester extends BaseIngester {
185185
const subDirHasRelevantFiles = await this.restructureFiles(
186186
sourcePath,
187187
targetDir,
188-
fileExtension,
188+
fileExtensions,
189189
);
190190
if (subDirHasRelevantFiles) {
191191
hasRelevantFiles = true;
@@ -194,13 +194,13 @@ export abstract class AsciiDocIngester extends BaseIngester {
194194
const subDirHasRelevantFiles = await this.restructureFiles(
195195
sourcePath,
196196
targetPath,
197-
fileExtension,
197+
fileExtensions,
198198
);
199199
if (subDirHasRelevantFiles) {
200200
hasRelevantFiles = true;
201201
}
202202
}
203-
} else if (entry.isFile() && path.extname(entry.name) === fileExtension) {
203+
} else if (entry.isFile() && path.extname(entry.name) === fileExtensions) {
204204
if (entry.name.toLowerCase() === 'nav.adoc') {
205205
continue;
206206
}

ingesters/src/ingesters/CairoBookIngester.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ export class CairoBookIngester extends MarkdownIngester {
2929
const config: BookConfig = {
3030
repoOwner: 'cairo-book',
3131
repoName: 'cairo-book',
32-
fileExtension: '.md',
32+
fileExtensions: ['.md'],
3333
chunkSize: 4096,
3434
chunkOverlap: 512,
3535
baseUrl: 'https://book.cairo-lang.org',

ingesters/src/ingesters/CairoByExampleIngester.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ export class CairoByExampleIngester extends MarkdownIngester {
1717
const config: BookConfig = {
1818
repoOwner: 'enitrat',
1919
repoName: 'cairo-by-example',
20-
fileExtension: '.md',
20+
fileExtensions: ['.md'],
2121
chunkSize: 4096,
2222
chunkOverlap: 512,
2323
baseUrl: 'https://enitrat.github.io/cairo-by-example',

ingesters/src/ingesters/CoreLibDocsIngester.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ export class CoreLibDocsIngester extends MarkdownIngester {
2929
const config: BookConfig = {
3030
repoOwner: 'enitrat',
3131
repoName: 'cairo-docs',
32-
fileExtension: '.md',
32+
fileExtensions: ['.md'],
3333
chunkSize: 4096,
3434
chunkOverlap: 512,
3535
baseUrl: 'https://docs.starknet.io/build/corelib/intro',

ingesters/src/ingesters/DojoDocsIngester.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ export class DojoDocsIngester extends MarkdownIngester {
2121
const config: BookConfig = {
2222
repoName: 'book',
2323
repoOwner: 'dojoengine',
24-
fileExtension: '.md',
24+
fileExtensions: ['.md', '.mdx'],
2525
chunkSize: 4096,
2626
chunkOverlap: 512,
2727
baseUrl: DojoDocsIngester.BASE_URL,

ingesters/src/ingesters/OpenZeppelinDocsIngester.ts

Lines changed: 24 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ export class OpenZeppelinDocsIngester extends AsciiDocIngester {
2828
const config: BookConfig = {
2929
repoOwner: 'OpenZeppelin',
3030
repoName: 'cairo-contracts',
31-
fileExtension: '.adoc',
31+
fileExtensions: ['.adoc'],
3232
chunkSize: 4096,
3333
chunkOverlap: 512,
3434
baseUrl: 'https://docs.openzeppelin.com',
@@ -68,31 +68,33 @@ export class OpenZeppelinDocsIngester extends AsciiDocIngester {
6868
const entries = await fsPromises.readdir(dir, { withFileTypes: true });
6969

7070
for (const entry of entries) {
71-
const fullPath = path.join(dir, entry.name);
71+
for (const fileExtension of config.fileExtensions) {
72+
const fullPath = path.join(dir, entry.name);
7273

73-
if (entry.isDirectory()) {
74-
// Recursively process subdirectories
75-
await processDirectory(fullPath);
76-
} else if (
77-
entry.isFile() &&
78-
path.extname(entry.name).toLowerCase() === config.fileExtension
79-
) {
80-
// Process AsciiDoc files
81-
const content = await fsPromises.readFile(fullPath, 'utf8');
74+
if (entry.isDirectory()) {
75+
// Recursively process subdirectories
76+
await processDirectory(fullPath);
77+
} else if (
78+
entry.isFile() &&
79+
path.extname(entry.name).toLowerCase() === fileExtension // TODO: handle multiple extensions
80+
) {
81+
// Process AsciiDoc files
82+
const content = await fsPromises.readFile(fullPath, 'utf8');
8283

83-
// Get the relative path of the file from the base directory - which reflects the online website directory structure
84-
const relativePath = path.relative(directory, fullPath);
84+
// Get the relative path of the file from the base directory - which reflects the online website directory structure
85+
const relativePath = path.relative(directory, fullPath);
8586

86-
// Inject cairo-contracts/2.0.0 in the fullPath to reflect online website directory structure
87-
// This is the special handling for OpenZeppelin docs
88-
const adaptedFullPageName = path
89-
.join('contracts-cairo', OZ_DOCS_VERSION, relativePath)
90-
.replace(config.fileExtension, '');
87+
// Inject cairo-contracts/2.0.0 in the fullPath to reflect online website directory structure
88+
// This is the special handling for OpenZeppelin docs
89+
const adaptedFullPageName = path
90+
.join('contracts-cairo', OZ_DOCS_VERSION, relativePath)
91+
.replace(fileExtension, '');
9192

92-
pages.push({
93-
name: adaptedFullPageName,
94-
content,
95-
});
93+
pages.push({
94+
name: adaptedFullPageName,
95+
content,
96+
});
97+
}
9698
}
9799
}
98100
}

0 commit comments

Comments
 (0)