@malikasadjaved/readme-ai 1.0.1 → 1.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +406 -309
- package/dist/analyzers/badge-generator.js +27 -27
- package/dist/analyzers/badge-generator.js.map +1 -1
- package/dist/analyzers/code-analyzer.js +37 -2
- package/dist/analyzers/code-analyzer.js.map +1 -1
- package/dist/analyzers/dependency-analyzer.d.ts.map +1 -1
- package/dist/analyzers/dependency-analyzer.js +203 -26
- package/dist/analyzers/dependency-analyzer.js.map +1 -1
- package/dist/analyzers/diagram-builder.js +19 -18
- package/dist/analyzers/diagram-builder.js.map +1 -1
- package/dist/analyzers/file-scanner.d.ts.map +1 -1
- package/dist/analyzers/file-scanner.js +13 -13
- package/dist/analyzers/file-scanner.js.map +1 -1
- package/dist/analyzers/index.d.ts +1 -1
- package/dist/analyzers/index.d.ts.map +1 -1
- package/dist/analyzers/index.js +1 -1
- package/dist/analyzers/index.js.map +1 -1
- package/dist/analyzers/repo-fetcher.d.ts.map +1 -1
- package/dist/analyzers/repo-fetcher.js +40 -13
- package/dist/analyzers/repo-fetcher.js.map +1 -1
- package/dist/cli.js +1 -1
- package/dist/cli.js.map +1 -1
- package/dist/commands/generate.d.ts.map +1 -1
- package/dist/commands/generate.js +58 -6
- package/dist/commands/generate.js.map +1 -1
- package/dist/config.d.ts +14 -0
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +24 -0
- package/dist/config.js.map +1 -1
- package/dist/generators/contributing.js +3 -3
- package/dist/generators/contributing.js.map +1 -1
- package/dist/generators/index.d.ts +1 -1
- package/dist/generators/index.d.ts.map +1 -1
- package/dist/generators/index.js +1 -1
- package/dist/generators/index.js.map +1 -1
- package/dist/generators/install.d.ts.map +1 -1
- package/dist/generators/install.js.map +1 -1
- package/dist/generators/overview.d.ts.map +1 -1
- package/dist/generators/overview.js +12 -5
- package/dist/generators/overview.js.map +1 -1
- package/dist/generators/usage.d.ts.map +1 -1
- package/dist/generators/usage.js +15 -9
- package/dist/generators/usage.js.map +1 -1
- package/dist/index.js.map +1 -1
- package/dist/plugins/index.d.ts +49 -0
- package/dist/plugins/index.d.ts.map +1 -0
- package/dist/plugins/index.js +113 -0
- package/dist/plugins/index.js.map +1 -0
- package/dist/providers/anthropic.d.ts.map +1 -1
- package/dist/providers/anthropic.js +4 -1
- package/dist/providers/anthropic.js.map +1 -1
- package/dist/providers/gemini.d.ts.map +1 -1
- package/dist/providers/gemini.js +5 -1
- package/dist/providers/gemini.js.map +1 -1
- package/dist/providers/index.d.ts +1 -0
- package/dist/providers/index.d.ts.map +1 -1
- package/dist/providers/index.js +31 -2
- package/dist/providers/index.js.map +1 -1
- package/dist/providers/ollama.d.ts.map +1 -1
- package/dist/providers/ollama.js +6 -3
- package/dist/providers/ollama.js.map +1 -1
- package/dist/providers/openai.d.ts.map +1 -1
- package/dist/providers/openai.js.map +1 -1
- package/dist/themes/academic.js +2 -2
- package/dist/themes/academic.js.map +1 -1
- package/dist/themes/default.js +2 -2
- package/dist/themes/default.js.map +1 -1
- package/dist/themes/hacker.js +4 -4
- package/dist/themes/hacker.js.map +1 -1
- package/dist/themes/index.d.ts.map +1 -1
- package/dist/themes/index.js +7 -2
- package/dist/themes/index.js.map +1 -1
- package/dist/themes/minimal.js +3 -3
- package/dist/themes/minimal.js.map +1 -1
- package/dist/themes/modern.js +2 -2
- package/dist/themes/modern.js.map +1 -1
- package/dist/utils/cache.d.ts +4 -0
- package/dist/utils/cache.d.ts.map +1 -0
- package/dist/utils/cache.js +48 -0
- package/dist/utils/cache.js.map +1 -0
- package/dist/utils/file-utils.d.ts.map +1 -1
- package/dist/utils/file-utils.js +45 -13
- package/dist/utils/file-utils.js.map +1 -1
- package/dist/utils/github-api.d.ts.map +1 -1
- package/dist/utils/github-api.js +2 -2
- package/dist/utils/github-api.js.map +1 -1
- package/dist/utils/language-detector.d.ts.map +1 -1
- package/dist/utils/language-detector.js +56 -30
- package/dist/utils/language-detector.js.map +1 -1
- package/dist/utils/markdown-writer.d.ts.map +1 -1
- package/dist/utils/markdown-writer.js +1 -3
- package/dist/utils/markdown-writer.js.map +1 -1
- package/dist/utils/template-engine.d.ts.map +1 -1
- package/dist/utils/template-engine.js +6 -3
- package/dist/utils/template-engine.js.map +1 -1
- package/package.json +128 -60
package/dist/config.d.ts
CHANGED
|
@@ -10,8 +10,22 @@ export interface ReadmeAIConfig {
|
|
|
10
10
|
default_theme?: string;
|
|
11
11
|
default_output?: string;
|
|
12
12
|
}
|
|
13
|
+
export interface ProjectConfig {
|
|
14
|
+
provider?: string;
|
|
15
|
+
model?: string;
|
|
16
|
+
theme?: string;
|
|
17
|
+
output?: string;
|
|
18
|
+
diagram?: boolean;
|
|
19
|
+
badges?: boolean;
|
|
20
|
+
apiDocs?: boolean;
|
|
21
|
+
action?: boolean;
|
|
22
|
+
context?: string;
|
|
23
|
+
ignore?: string[];
|
|
24
|
+
plugins?: string[];
|
|
25
|
+
}
|
|
13
26
|
export declare const config: Conf<ReadmeAIConfig>;
|
|
14
27
|
export declare function getAPIKey(provider: string): string | undefined;
|
|
15
28
|
export declare function getGitHubToken(): string | undefined;
|
|
16
29
|
export declare function getOllamaURL(): string;
|
|
30
|
+
export declare function loadProjectConfig(repoPath: string): Promise<ProjectConfig>;
|
|
17
31
|
//# sourceMappingURL=config.d.ts.map
|
package/dist/config.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,MAAM,CAAC;AAKxB,MAAM,WAAW,cAAc;IAC7B,QAAQ,EAAE,WAAW,GAAG,QAAQ,GAAG,QAAQ,GAAG,QAAQ,CAAC;IACvD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;CACpB;AAED,eAAO,MAAM,MAAM,sBAOjB,CAAC;AAEH,wBAAgB,SAAS,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAW9D;AAED,wBAAgB,cAAc,IAAI,MAAM,GAAG,SAAS,CAEnD;AAED,wBAAgB,YAAY,IAAI,MAAM,CAErC;AAID,wBAAsB,iBAAiB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC,CAqBhF"}
|
package/dist/config.js
CHANGED
|
@@ -1,4 +1,7 @@
|
|
|
1
1
|
import Conf from 'conf';
|
|
2
|
+
import path from 'node:path';
|
|
3
|
+
import { pathToFileURL } from 'node:url';
|
|
4
|
+
import fs from 'node:fs/promises';
|
|
2
5
|
export const config = new Conf({
|
|
3
6
|
projectName: 'readme-ai',
|
|
4
7
|
defaults: {
|
|
@@ -25,4 +28,25 @@ export function getGitHubToken() {
|
|
|
25
28
|
export function getOllamaURL() {
|
|
26
29
|
return process.env.OLLAMA_BASE_URL || config.get('ollama_url') || 'http://localhost:11434';
|
|
27
30
|
}
|
|
31
|
+
const CONFIG_FILES = ['readme-ai.config.js', 'readme-ai.config.mjs', '.readmeairc.json'];
|
|
32
|
+
export async function loadProjectConfig(repoPath) {
|
|
33
|
+
for (const filename of CONFIG_FILES) {
|
|
34
|
+
const filePath = path.join(repoPath, filename);
|
|
35
|
+
try {
|
|
36
|
+
await fs.access(filePath);
|
|
37
|
+
}
|
|
38
|
+
catch {
|
|
39
|
+
continue;
|
|
40
|
+
}
|
|
41
|
+
if (filename.endsWith('.json')) {
|
|
42
|
+
const content = await fs.readFile(filePath, 'utf-8');
|
|
43
|
+
return JSON.parse(content);
|
|
44
|
+
}
|
|
45
|
+
// JS/MJS config — dynamic import
|
|
46
|
+
const fileUrl = pathToFileURL(path.resolve(filePath)).href;
|
|
47
|
+
const mod = await import(fileUrl);
|
|
48
|
+
return (mod.default || mod);
|
|
49
|
+
}
|
|
50
|
+
return {};
|
|
51
|
+
}
|
|
28
52
|
//# sourceMappingURL=config.js.map
|
package/dist/config.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,MAAM,kBAAkB,CAAC;AA4BlC,MAAM,CAAC,MAAM,MAAM,GAAG,IAAI,IAAI,CAAiB;IAC7C,WAAW,EAAE,WAAW;IACxB,QAAQ,EAAE;QACR,QAAQ,EAAE,WAAW;QACrB,aAAa,EAAE,SAAS;QACxB,cAAc,EAAE,WAAW;KAC5B;CACF,CAAC,CAAC;AAEH,MAAM,UAAU,SAAS,CAAC,QAAgB;IACxC,QAAQ,QAAQ,EAAE,CAAC;QACjB,KAAK,WAAW;YACd,OAAO,OAAO,CAAC,GAAG,CAAC,iBAAiB,IAAI,MAAM,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC;QAC1E,KAAK,QAAQ;YACX,OAAO,OAAO,CAAC,GAAG,CAAC,cAAc,IAAI,MAAM,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;QACpE,KAAK,QAAQ;YACX,OAAO,OAAO,CAAC,GAAG,CAAC,cAAc,IAAI,MAAM,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;QACpE;YACE,OAAO,SAAS,CAAC;IACrB,CAAC;AACH,CAAC;AAED,MAAM,UAAU,cAAc;IAC5B,OAAO,OAAO,CAAC,GAAG,CAAC,YAAY,IAAI,MAAM,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;AAChE,CAAC;AAED,MAAM,UAAU,YAAY;IAC1B,OAAO,OAAO,CAAC,GAAG,CAAC,eAAe,IAAI,MAAM,CAAC,GAAG,CAAC,YAAY,CAAC,IAAI,wBAAwB,CAAC;AAC7F,CAAC;AAED,MAAM,YAAY,GAAG,CAAC,qBAAqB,EAAE,sBAAsB,EAAE,kBAAkB,CAAC,CAAC;AAEzF,MAAM,CAAC,KAAK,UAAU,iBAAiB,CAAC,QAAgB;IACtD,KAAK,MAAM,QAAQ,IAAI,YAAY,EAAE,CAAC;QACpC,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;QAC/C,IAAI,CAAC;YACH,MAAM,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QAC5B,CAAC;QAAC,MAAM,CAAC;YACP,SAAS;QACX,CAAC;QAED,IAAI,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;YAC/B,MAAM,OAAO,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;YACrD,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAkB,CAAC;QAC9C,CAAC;QAED,iCAAiC;QACjC,MAAM,OAAO,GAAG,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC;QAC3D,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,CAAC;QAClC,OAAO,CAAC,GAAG,CAAC,OAAO,IAAI,GAAG,CAAkB,CAAC;IAC/C,CAAC;IAED,OAAO,EAAE,CAAC;AACZ,CAAC"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
export function generateContributing(scan, deps) {
|
|
2
2
|
const lines = [];
|
|
3
|
-
lines.push(
|
|
3
|
+
lines.push("Contributions are welcome! Here's how to get started:");
|
|
4
4
|
lines.push('');
|
|
5
5
|
lines.push('1. Fork the repository');
|
|
6
6
|
lines.push('2. Create a feature branch (`git checkout -b feature/amazing-feature`)');
|
|
@@ -8,12 +8,12 @@ export function generateContributing(scan, deps) {
|
|
|
8
8
|
if (scan.hasTests) {
|
|
9
9
|
const testCmd = deps?.testCommand || 'npm test';
|
|
10
10
|
lines.push(`4. Run the tests (\`${testCmd}\`)`);
|
|
11
|
-
lines.push(
|
|
11
|
+
lines.push("5. Commit your changes (`git commit -m 'Add amazing feature'`)");
|
|
12
12
|
lines.push('6. Push to the branch (`git push origin feature/amazing-feature`)');
|
|
13
13
|
lines.push('7. Open a Pull Request');
|
|
14
14
|
}
|
|
15
15
|
else {
|
|
16
|
-
lines.push(
|
|
16
|
+
lines.push("4. Commit your changes (`git commit -m 'Add amazing feature'`)");
|
|
17
17
|
lines.push('5. Push to the branch (`git push origin feature/amazing-feature`)');
|
|
18
18
|
lines.push('6. Open a Pull Request');
|
|
19
19
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"contributing.js","sourceRoot":"","sources":["../../src/generators/contributing.ts"],"names":[],"mappings":"AAGA,MAAM,UAAU,oBAAoB,CAAC,IAAgB,EAAE,IAAyB;IAC9E,MAAM,KAAK,GAAa,EAAE,CAAC;IAE3B,KAAK,CAAC,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"contributing.js","sourceRoot":"","sources":["../../src/generators/contributing.ts"],"names":[],"mappings":"AAGA,MAAM,UAAU,oBAAoB,CAAC,IAAgB,EAAE,IAAyB;IAC9E,MAAM,KAAK,GAAa,EAAE,CAAC;IAE3B,KAAK,CAAC,IAAI,CAAC,uDAAuD,CAAC,CAAC;IACpE,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACf,KAAK,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC;IACrC,KAAK,CAAC,IAAI,CAAC,wEAAwE,CAAC,CAAC;IACrF,KAAK,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;IAEnC,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;QAClB,MAAM,OAAO,GAAG,IAAI,EAAE,WAAW,IAAI,UAAU,CAAC;QAChD,KAAK,CAAC,IAAI,CAAC,uBAAuB,OAAO,KAAK,CAAC,CAAC;QAChD,KAAK,CAAC,IAAI,CAAC,gEAAgE,CAAC,CAAC;QAC7E,KAAK,CAAC,IAAI,CAAC,mEAAmE,CAAC,CAAC;QAChF,KAAK,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC;IACvC,CAAC;SAAM,CAAC;QACN,KAAK,CAAC,IAAI,CAAC,gEAAgE,CAAC,CAAC;QAC7E,KAAK,CAAC,IAAI,CAAC,mEAAmE,CAAC,CAAC;QAChF,KAAK,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC;IACvC,CAAC;IAED,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,IAAgB;IACzC,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;QACpB,OAAO,sCAAsC,IAAI,CAAC,UAAU,yDAAyD,CAAC;IACxH,CAAC;IACD,OAAO,8CAA8C,CAAC;AACxD,CAAC"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
export { generateOverview, type OverviewResult } from './overview.js';
|
|
2
2
|
export { generateInstallSection, type InstallResult, type InstallStep } from './install.js';
|
|
3
|
-
export { generateUsageSection, generateAPIDocs, type UsageResult, type UsageExample, type APIDocsResult, type APIDocEntry } from './usage.js';
|
|
3
|
+
export { generateUsageSection, generateAPIDocs, type UsageResult, type UsageExample, type APIDocsResult, type APIDocEntry, } from './usage.js';
|
|
4
4
|
export { generateContributing, getLicense } from './contributing.js';
|
|
5
5
|
export { generateChangelogSection, type ChangelogEntry } from './changelog.js';
|
|
6
6
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/generators/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,KAAK,cAAc,EAAE,MAAM,eAAe,CAAC;AACtE,OAAO,EAAE,sBAAsB,EAAE,KAAK,aAAa,EAAE,KAAK,WAAW,EAAE,MAAM,cAAc,CAAC;AAC5F,OAAO,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/generators/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,KAAK,cAAc,EAAE,MAAM,eAAe,CAAC;AACtE,OAAO,EAAE,sBAAsB,EAAE,KAAK,aAAa,EAAE,KAAK,WAAW,EAAE,MAAM,cAAc,CAAC;AAC5F,OAAO,EACL,oBAAoB,EACpB,eAAe,EACf,KAAK,WAAW,EAChB,KAAK,YAAY,EACjB,KAAK,aAAa,EAClB,KAAK,WAAW,GACjB,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,oBAAoB,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AACrE,OAAO,EAAE,wBAAwB,EAAE,KAAK,cAAc,EAAE,MAAM,gBAAgB,CAAC"}
|
package/dist/generators/index.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
export { generateOverview } from './overview.js';
|
|
2
2
|
export { generateInstallSection } from './install.js';
|
|
3
|
-
export { generateUsageSection, generateAPIDocs } from './usage.js';
|
|
3
|
+
export { generateUsageSection, generateAPIDocs, } from './usage.js';
|
|
4
4
|
export { generateContributing, getLicense } from './contributing.js';
|
|
5
5
|
export { generateChangelogSection } from './changelog.js';
|
|
6
6
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/generators/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAuB,MAAM,eAAe,CAAC;AACtE,OAAO,EAAE,sBAAsB,EAAwC,MAAM,cAAc,CAAC;AAC5F,OAAO,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/generators/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAuB,MAAM,eAAe,CAAC;AACtE,OAAO,EAAE,sBAAsB,EAAwC,MAAM,cAAc,CAAC;AAC5F,OAAO,EACL,oBAAoB,EACpB,eAAe,GAKhB,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,oBAAoB,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AACrE,OAAO,EAAE,wBAAwB,EAAuB,MAAM,gBAAgB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"install.d.ts","sourceRoot":"","sources":["../../src/generators/install.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,qCAAqC,CAAC;AAC9E,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAC;AAE/D,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,aAAa;IAC5B,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,YAAY,EAAE,WAAW,EAAE,CAAC;IAC5B,aAAa,CAAC,EAAE,WAAW,EAAE,CAAC;IAC9B,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,kBAAkB,EAAE,IAAI,EAAE,UAAU,GAAG,aAAa,
|
|
1
|
+
{"version":3,"file":"install.d.ts","sourceRoot":"","sources":["../../src/generators/install.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,qCAAqC,CAAC;AAC9E,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAC;AAE/D,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,aAAa;IAC5B,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,YAAY,EAAE,WAAW,EAAE,CAAC;IAC5B,aAAa,CAAC,EAAE,WAAW,EAAE,CAAC;IAC9B,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,kBAAkB,EAAE,IAAI,EAAE,UAAU,GAAG,aAAa,CAuGhG"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"install.js","sourceRoot":"","sources":["../../src/generators/install.ts"],"names":[],"mappings":"AAeA,MAAM,UAAU,sBAAsB,CAAC,IAAwB,EAAE,IAAgB;IAC/E,MAAM,aAAa,GAAa,EAAE,CAAC;IACnC,MAAM,YAAY,GAAkB,EAAE,CAAC;IACvC,MAAM,aAAa,GAAkB,EAAE,CAAC;IACxC,IAAI,aAAiC,CAAC;IAEtC,aAAa;IACb,YAAY,CAAC,IAAI,CAAC;QAChB,KAAK,EAAE,sBAAsB;QAC7B,OAAO,EAAE,+CAA+C;KACzD,CAAC,CAAC;IAEH,QAAQ,IAAI,CAAC,cAAc,EAAE,CAAC;QAC5B,KAAK,KAAK,CAAC;QACX,KAAK,MAAM,CAAC;QACZ,KAAK,MAAM;YACT,aAAa,CAAC,IAAI,CAAC,WAAW,IAAI,CAAC,WAAW,IAAI,OAAO,EAAE,CAAC,CAAC;YAC7D,IAAI,IAAI,CAAC,cAAc,KAAK,KAAK,EAAE,CAAC;gBAClC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;YAC1C,CAAC;YACD,YAAY,CAAC,IAAI,CAAC;gBAChB,KAAK,EAAE,sBAAsB;gBAC7B,OAAO,EAAE,IAAI,CAAC,cAAc;aAC7B,CAAC,CAAC;YACH,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;gBACtB,YAAY,CAAC,IAAI,CAAC;oBAChB,KAAK,EAAE,mBAAmB;oBAC1B,OAAO,EAAE,IAAI,CAAC,YAAY;iBAC3B,CAAC,CAAC;YACL,CAAC;YACD,aAAa,GAAG,IAAI,CAAC,UAAU,CAAC;YAChC,MAAM;QAER,KAAK,KAAK;YACR,aAAa,CAAC,IAAI,CAAC,UAAU,IAAI,CAAC,aAAa,IAAI,QAAQ,EAAE,CAAC,CAAC;YAC/D,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAC1B,YAAY,CAAC,IAAI,CAAC;gBAChB,KAAK,EAAE,8BAA8B;gBACrC,OAAO,
|
|
1
|
+
{"version":3,"file":"install.js","sourceRoot":"","sources":["../../src/generators/install.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"overview.d.ts","sourceRoot":"","sources":["../../src/generators/overview.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAC;AAC/D,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,qCAAqC,CAAC;AAC9E,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAClE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAExD,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,cAAc,EAAE,MAAM,CAAC;CACxB;AAED,wBAAsB,gBAAgB,CAAC,MAAM,EAAE;IAC7C,IAAI,EAAE,UAAU,CAAC;IACjB,IAAI,EAAE,kBAAkB,CAAC;IACzB,YAAY,EAAE,YAAY,CAAC;IAC3B,QAAQ,EAAE,UAAU,CAAC;IACrB,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB,GAAG,OAAO,CAAC,cAAc,CAAC,
|
|
1
|
+
{"version":3,"file":"overview.d.ts","sourceRoot":"","sources":["../../src/generators/overview.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAC;AAC/D,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,qCAAqC,CAAC;AAC9E,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAClE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAExD,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,cAAc,EAAE,MAAM,CAAC;CACxB;AAED,wBAAsB,gBAAgB,CAAC,MAAM,EAAE;IAC7C,IAAI,EAAE,UAAU,CAAC;IACjB,IAAI,EAAE,kBAAkB,CAAC;IACzB,YAAY,EAAE,YAAY,CAAC;IAC3B,QAAQ,EAAE,UAAU,CAAC;IACrB,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB,GAAG,OAAO,CAAC,cAAc,CAAC,CA2D1B"}
|
|
@@ -4,7 +4,10 @@ export async function generateOverview(params) {
|
|
|
4
4
|
|
|
5
5
|
PROJECT INFO:
|
|
6
6
|
- Primary language: ${scan.languages[0]?.name || 'Unknown'} (${scan.languages[0]?.percentage || 0}%)
|
|
7
|
-
- Other languages: ${scan.languages
|
|
7
|
+
- Other languages: ${scan.languages
|
|
8
|
+
.slice(1, 4)
|
|
9
|
+
.map((l) => l.name)
|
|
10
|
+
.join(', ') || 'None'}
|
|
8
11
|
- Frameworks: ${scan.frameworks.join(', ') || 'None detected'}
|
|
9
12
|
- Package manager: ${deps.packageManager || 'None detected'}
|
|
10
13
|
- Has tests: ${scan.hasTests}
|
|
@@ -23,9 +26,12 @@ ENTRY POINTS:
|
|
|
23
26
|
${scan.entryPoints.join(', ') || 'None found'}
|
|
24
27
|
|
|
25
28
|
KEY CODE PATTERNS DETECTED:
|
|
26
|
-
- API Endpoints: ${codeAnalysis.apiEndpoints.map(e => `${e.method} ${e.path}`).join(', ') || 'None'}
|
|
27
|
-
- CLI Commands: ${codeAnalysis.cliCommands.map(c => c.name).join(', ') || 'None'}
|
|
28
|
-
- Main exports: ${codeAnalysis.exports
|
|
29
|
+
- API Endpoints: ${codeAnalysis.apiEndpoints.map((e) => `${e.method} ${e.path}`).join(', ') || 'None'}
|
|
30
|
+
- CLI Commands: ${codeAnalysis.cliCommands.map((c) => c.name).join(', ') || 'None'}
|
|
31
|
+
- Main exports: ${codeAnalysis.exports
|
|
32
|
+
.slice(0, 10)
|
|
33
|
+
.map((e) => e.name)
|
|
34
|
+
.join(', ') || 'None'}
|
|
29
35
|
- Environment variables: ${codeAnalysis.envVariables.join(', ') || 'None'}
|
|
30
36
|
|
|
31
37
|
${existingDescription ? `EXISTING DESCRIPTION: ${existingDescription}` : ''}
|
|
@@ -50,7 +56,8 @@ Generate a JSON response with these fields:
|
|
|
50
56
|
function buildFallbackOverview(scan, deps, code, existingDescription) {
|
|
51
57
|
const lang = scan.languages[0]?.name || 'Unknown';
|
|
52
58
|
const frameworks = scan.frameworks;
|
|
53
|
-
const tagline = existingDescription ||
|
|
59
|
+
const tagline = existingDescription ||
|
|
60
|
+
`A ${lang} project${frameworks.length ? ` built with ${frameworks[0]}` : ''}`;
|
|
54
61
|
const parts = [];
|
|
55
62
|
parts.push(`This project is built with ${lang}${frameworks.length ? ` using ${frameworks.join(', ')}` : ''}.`);
|
|
56
63
|
if (code.apiEndpoints.length > 0) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"overview.js","sourceRoot":"","sources":["../../src/generators/overview.ts"],"names":[],"mappings":"AAaA,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAC,MAOtC;IACC,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,YAAY,EAAE,QAAQ,EAAE,mBAAmB,EAAE,WAAW,EAAE,GAAG,MAAM,CAAC;IAExF,MAAM,MAAM,GAAG;;;sBAGK,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,IAAI,IAAI,SAAS,KAAK,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,UAAU,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"overview.js","sourceRoot":"","sources":["../../src/generators/overview.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"usage.d.ts","sourceRoot":"","sources":["../../src/generators/usage.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAClE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAC;AAC/D,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,qCAAqC,CAAC;AAC9E,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAExD,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,WAAW;IAC1B,QAAQ,EAAE,YAAY,EAAE,CAAC;CAC1B;AAED,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,WAAW,EAAE,CAAC;CACxB;AAED,wBAAsB,oBAAoB,CAAC,MAAM,EAAE;IACjD,YAAY,EAAE,YAAY,CAAC;IAC3B,IAAI,EAAE,UAAU,CAAC;IACjB,IAAI,EAAE,kBAAkB,CAAC;IACzB,QAAQ,EAAE,UAAU,CAAC;CACtB,GAAG,OAAO,CAAC,WAAW,CAAC,
|
|
1
|
+
{"version":3,"file":"usage.d.ts","sourceRoot":"","sources":["../../src/generators/usage.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAClE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAC;AAC/D,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,qCAAqC,CAAC;AAC9E,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAExD,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,WAAW;IAC1B,QAAQ,EAAE,YAAY,EAAE,CAAC;CAC1B;AAED,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,WAAW,EAAE,CAAC;CACxB;AAED,wBAAsB,oBAAoB,CAAC,MAAM,EAAE;IACjD,YAAY,EAAE,YAAY,CAAC;IAC3B,IAAI,EAAE,UAAU,CAAC;IACjB,IAAI,EAAE,kBAAkB,CAAC;IACzB,QAAQ,EAAE,UAAU,CAAC;CACtB,GAAG,OAAO,CAAC,WAAW,CAAC,CAgFvB;AAkCD,wBAAsB,eAAe,CAAC,MAAM,EAAE;IAC5C,YAAY,EAAE,YAAY,CAAC;IAC3B,QAAQ,EAAE,UAAU,CAAC;CACtB,GAAG,OAAO,CAAC,aAAa,CAAC,CAwCzB"}
|
package/dist/generators/usage.js
CHANGED
|
@@ -22,10 +22,13 @@ export async function generateUsageSection(params) {
|
|
|
22
22
|
}
|
|
23
23
|
// API endpoints
|
|
24
24
|
if (codeAnalysis.apiEndpoints.length > 0) {
|
|
25
|
-
const curlExamples = codeAnalysis.apiEndpoints
|
|
25
|
+
const curlExamples = codeAnalysis.apiEndpoints
|
|
26
|
+
.slice(0, 3)
|
|
27
|
+
.map((ep) => {
|
|
26
28
|
const method = ep.method === 'GET' ? '' : ` -X ${ep.method}`;
|
|
27
29
|
return `curl${method} http://localhost:3000${ep.path}`;
|
|
28
|
-
})
|
|
30
|
+
})
|
|
31
|
+
.join('\n');
|
|
29
32
|
examples.push({
|
|
30
33
|
title: 'API Examples',
|
|
31
34
|
description: 'Making requests to the API:',
|
|
@@ -35,8 +38,9 @@ export async function generateUsageSection(params) {
|
|
|
35
38
|
}
|
|
36
39
|
// CLI commands
|
|
37
40
|
if (codeAnalysis.cliCommands.length > 0) {
|
|
38
|
-
const cmdExamples = codeAnalysis.cliCommands
|
|
39
|
-
.
|
|
41
|
+
const cmdExamples = codeAnalysis.cliCommands
|
|
42
|
+
.slice(0, 3)
|
|
43
|
+
.map((cmd) => `# ${cmd.description}\n${cmd.name}`)
|
|
40
44
|
.join('\n\n');
|
|
41
45
|
examples.push({
|
|
42
46
|
title: 'CLI Commands',
|
|
@@ -57,7 +61,6 @@ export async function generateUsageSection(params) {
|
|
|
57
61
|
}
|
|
58
62
|
// Ensure at least one example
|
|
59
63
|
if (examples.length === 0) {
|
|
60
|
-
const lang = scan.languages[0]?.name || 'Unknown';
|
|
61
64
|
examples.push({
|
|
62
65
|
title: 'Getting Started',
|
|
63
66
|
description: `Start using the project:`,
|
|
@@ -68,7 +71,10 @@ export async function generateUsageSection(params) {
|
|
|
68
71
|
return { examples };
|
|
69
72
|
}
|
|
70
73
|
async function generateAIUsageExamples(code, scan, provider) {
|
|
71
|
-
const exports = code.exports
|
|
74
|
+
const exports = code.exports
|
|
75
|
+
.slice(0, 5)
|
|
76
|
+
.map((e) => `${e.type} ${e.signature} (${e.file})`)
|
|
77
|
+
.join('\n');
|
|
72
78
|
const prompt = `Generate 2 practical usage examples for this project.
|
|
73
79
|
|
|
74
80
|
Language: ${scan.languages[0]?.name || 'Unknown'}
|
|
@@ -93,9 +99,9 @@ export async function generateAPIDocs(params) {
|
|
|
93
99
|
const { codeAnalysis, provider } = params;
|
|
94
100
|
// Group exports by file
|
|
95
101
|
const entries = codeAnalysis.exports
|
|
96
|
-
.filter(exp => exp.type === 'function' || exp.type === 'class')
|
|
102
|
+
.filter((exp) => exp.type === 'function' || exp.type === 'class')
|
|
97
103
|
.slice(0, 20)
|
|
98
|
-
.map(exp => ({
|
|
104
|
+
.map((exp) => ({
|
|
99
105
|
name: exp.name,
|
|
100
106
|
signature: exp.signature,
|
|
101
107
|
description: '',
|
|
@@ -106,7 +112,7 @@ export async function generateAPIDocs(params) {
|
|
|
106
112
|
try {
|
|
107
113
|
const prompt = `Generate brief descriptions (1 sentence each) for these exported functions/classes:
|
|
108
114
|
|
|
109
|
-
${entries.map(e => `- ${e.signature} (in ${e.file})`).join('\n')}
|
|
115
|
+
${entries.map((e) => `- ${e.signature} (in ${e.file})`).join('\n')}
|
|
110
116
|
|
|
111
117
|
Return JSON:
|
|
112
118
|
{
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"usage.js","sourceRoot":"","sources":["../../src/generators/usage.ts"],"names":[],"mappings":"AA2BA,MAAM,CAAC,KAAK,UAAU,oBAAoB,CAAC,MAK1C;IACC,MAAM,EAAE,YAAY,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,MAAM,CAAC;IAEtD,8CAA8C;IAC9C,MAAM,QAAQ,GAAmB,EAAE,CAAC;IAEpC,cAAc;IACd,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;QACpB,QAAQ,CAAC,IAAI,CAAC;YACZ,KAAK,EAAE,qBAAqB;YAC5B,WAAW,EAAE,wBAAwB;YACrC,QAAQ,EAAE,MAAM;YAChB,IAAI,EAAE,IAAI,CAAC,UAAU;SACtB,CAAC,CAAC;IACL,CAAC;IAED,eAAe;IACf,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;QACrB,QAAQ,CAAC,IAAI,CAAC;YACZ,KAAK,EAAE,eAAe;YACtB,WAAW,EAAE,yBAAyB;YACtC,QAAQ,EAAE,MAAM;YAChB,IAAI,EAAE,IAAI,CAAC,WAAW;SACvB,CAAC,CAAC;IACL,CAAC;IAED,gBAAgB;IAChB,IAAI,YAAY,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACzC,MAAM,YAAY,GAAG,YAAY,CAAC,YAAY,
|
|
1
|
+
{"version":3,"file":"usage.js","sourceRoot":"","sources":["../../src/generators/usage.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AACrD,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAE5C,MAAM,OAAO,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC/C,MAAM,GAAG,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAC;AAEvC,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;AAE9B,OAAO;KACJ,IAAI,CAAC,WAAW,CAAC;KACjB,WAAW,CAAC,uDAAuD,CAAC;KACpE,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC;KACpB,QAAQ,CAAC,QAAQ,EAAE,uEAAuE,CAAC;KAC3F,MAAM,CAAC,qBAAqB,EAAE,kBAAkB,EAAE,WAAW,CAAC;KAC9D,MAAM,CAAC,uBAAuB,EAAE,mDAAmD,EAAE,WAAW,CAAC;KACjG,MAAM,CAAC,oBAAoB,EAAE,kCAAkC,CAAC;KAChE,MAAM,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AACrD,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAE5C,MAAM,OAAO,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC/C,MAAM,GAAG,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAC;AAEvC,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;AAE9B,OAAO;KACJ,IAAI,CAAC,WAAW,CAAC;KACjB,WAAW,CAAC,uDAAuD,CAAC;KACpE,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC;KACpB,QAAQ,CAAC,QAAQ,EAAE,uEAAuE,CAAC;KAC3F,MAAM,CAAC,qBAAqB,EAAE,kBAAkB,EAAE,WAAW,CAAC;KAC9D,MAAM,CAAC,uBAAuB,EAAE,mDAAmD,EAAE,WAAW,CAAC;KACjG,MAAM,CAAC,oBAAoB,EAAE,kCAAkC,CAAC;KAChE,MAAM,CACL,oBAAoB,EACpB,8DAA8D,EAC9D,SAAS,CACV;KACA,MAAM,CAAC,cAAc,EAAE,mCAAmC,CAAC;KAC3D,MAAM,CAAC,aAAa,EAAE,uBAAuB,CAAC;KAC9C,MAAM,CAAC,eAAe,EAAE,gCAAgC,CAAC;KACzD,MAAM,CAAC,eAAe,EAAE,6DAA6D,CAAC;KACtF,MAAM,CAAC,UAAU,EAAE,wDAAwD,CAAC;KAC5E,MAAM,CAAC,aAAa,EAAE,0CAA0C,CAAC;KACjE,MAAM,CAAC,WAAW,EAAE,mDAAmD,CAAC;KACxE,MAAM,CAAC,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE;IAC3B,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;QAC9B,MAAM,MAAM,EAAE,CAAC;IACjB,CAAC;SAAM,CAAC;QACN,MAAM,WAAW,CAAC;YAChB,IAAI,EAAE,IAAI,IAAI,GAAG;YACjB,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,MAAM,EAAE,IAAI,CAAC,MAAM;SACpB,CAAC,CAAC;IACL,CAAC;AACH,CAAC,CAAC,CAAC;AAEL,OAAO,CAAC,KAAK,EAAE,CAAC"}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import type { Theme, ThemeData } from '../themes/index.js';
|
|
2
|
+
import type { CodeAnalysis } from '../analyzers/code-analyzer.js';
|
|
3
|
+
import type { ScanResult } from '../analyzers/file-scanner.js';
|
|
4
|
+
import type { DependencyAnalysis } from '../analyzers/dependency-analyzer.js';
|
|
5
|
+
export interface AnalyzerPlugin {
|
|
6
|
+
name: string;
|
|
7
|
+
/** Hook that runs after built-in analysis and can augment results. */
|
|
8
|
+
analyze: (context: AnalyzerContext) => Promise<AnalyzerResult>;
|
|
9
|
+
}
|
|
10
|
+
export interface AnalyzerContext {
|
|
11
|
+
scan: ScanResult;
|
|
12
|
+
codeAnalysis: CodeAnalysis;
|
|
13
|
+
deps: DependencyAnalysis;
|
|
14
|
+
}
|
|
15
|
+
export interface AnalyzerResult {
|
|
16
|
+
/** Extra sections appended to the README (markdown strings keyed by heading). */
|
|
17
|
+
sections?: Record<string, string>;
|
|
18
|
+
/** Extra badges in shields.io format. */
|
|
19
|
+
badges?: Array<{
|
|
20
|
+
label: string;
|
|
21
|
+
message: string;
|
|
22
|
+
color: string;
|
|
23
|
+
url?: string;
|
|
24
|
+
}>;
|
|
25
|
+
}
|
|
26
|
+
export interface ThemePlugin {
|
|
27
|
+
name: string;
|
|
28
|
+
render: (data: ThemeData) => string;
|
|
29
|
+
}
|
|
30
|
+
export type Plugin = {
|
|
31
|
+
name: string;
|
|
32
|
+
analyzers?: AnalyzerPlugin[];
|
|
33
|
+
themes?: ThemePlugin[];
|
|
34
|
+
};
|
|
35
|
+
export declare function registerPlugin(plugin: Plugin): void;
|
|
36
|
+
export declare function getAnalyzerPlugins(): AnalyzerPlugin[];
|
|
37
|
+
export declare function getThemePlugin(name: string): Theme | undefined;
|
|
38
|
+
export declare function listPluginThemes(): string[];
|
|
39
|
+
/**
|
|
40
|
+
* Loads plugins from:
|
|
41
|
+
* 1. Project config `readme-ai.config.js` → `plugins: [...]`
|
|
42
|
+
* 2. `readme-ai-plugin-*` packages found in node_modules
|
|
43
|
+
*/
|
|
44
|
+
export declare function loadPlugins(repoPath: string): Promise<void>;
|
|
45
|
+
/**
|
|
46
|
+
* Run all registered analyzer plugins and collect their results.
|
|
47
|
+
*/
|
|
48
|
+
export declare function runAnalyzerPlugins(context: AnalyzerContext): Promise<AnalyzerResult[]>;
|
|
49
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/plugins/index.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC3D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAClE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAC;AAC/D,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,qCAAqC,CAAC;AAI9E,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,sEAAsE;IACtE,OAAO,EAAE,CAAC,OAAO,EAAE,eAAe,KAAK,OAAO,CAAC,cAAc,CAAC,CAAC;CAChE;AAED,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,UAAU,CAAC;IACjB,YAAY,EAAE,YAAY,CAAC;IAC3B,IAAI,EAAE,kBAAkB,CAAC;CAC1B;AAED,MAAM,WAAW,cAAc;IAC7B,iFAAiF;IACjF,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAClC,yCAAyC;IACzC,MAAM,CAAC,EAAE,KAAK,CAAC;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,GAAG,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CACjF;AAED,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,CAAC,IAAI,EAAE,SAAS,KAAK,MAAM,CAAC;CACrC;AAED,MAAM,MAAM,MAAM,GAAG;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,CAAC,EAAE,cAAc,EAAE,CAAC;IAC7B,MAAM,CAAC,EAAE,WAAW,EAAE,CAAC;CACxB,CAAC;AAOF,wBAAgB,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAWnD;AAED,wBAAgB,kBAAkB,IAAI,cAAc,EAAE,CAErD;AAED,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,KAAK,GAAG,SAAS,CAE9D;AAED,wBAAgB,gBAAgB,IAAI,MAAM,EAAE,CAE3C;AAMD;;;;GAIG;AACH,wBAAsB,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAMjE;AAkED;;GAEG;AACH,wBAAsB,kBAAkB,CAAC,OAAO,EAAE,eAAe,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC,CAa5F"}
|
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
import path from 'node:path';
|
|
2
|
+
import fs from 'node:fs/promises';
|
|
3
|
+
import { pathToFileURL } from 'node:url';
|
|
4
|
+
// ─── Plugin registry ─────────────────────────────────────────────────────────
|
|
5
|
+
const analyzerPlugins = [];
|
|
6
|
+
const themePlugins = new Map();
|
|
7
|
+
export function registerPlugin(plugin) {
|
|
8
|
+
if (plugin.analyzers) {
|
|
9
|
+
for (const analyzer of plugin.analyzers) {
|
|
10
|
+
analyzerPlugins.push(analyzer);
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
if (plugin.themes) {
|
|
14
|
+
for (const theme of plugin.themes) {
|
|
15
|
+
themePlugins.set(theme.name, { name: theme.name, render: theme.render });
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
export function getAnalyzerPlugins() {
|
|
20
|
+
return analyzerPlugins;
|
|
21
|
+
}
|
|
22
|
+
export function getThemePlugin(name) {
|
|
23
|
+
return themePlugins.get(name);
|
|
24
|
+
}
|
|
25
|
+
export function listPluginThemes() {
|
|
26
|
+
return [...themePlugins.keys()];
|
|
27
|
+
}
|
|
28
|
+
// ─── Plugin loader ───────────────────────────────────────────────────────────
|
|
29
|
+
const PLUGIN_CONFIG_KEY = 'plugins';
|
|
30
|
+
/**
|
|
31
|
+
* Loads plugins from:
|
|
32
|
+
* 1. Project config `readme-ai.config.js` → `plugins: [...]`
|
|
33
|
+
* 2. `readme-ai-plugin-*` packages found in node_modules
|
|
34
|
+
*/
|
|
35
|
+
export async function loadPlugins(repoPath) {
|
|
36
|
+
// 1. Load from project config
|
|
37
|
+
await loadFromProjectConfig(repoPath);
|
|
38
|
+
// 2. Load from node_modules (auto-discover readme-ai-plugin-* packages)
|
|
39
|
+
await loadFromNodeModules(repoPath);
|
|
40
|
+
}
|
|
41
|
+
async function loadFromProjectConfig(repoPath) {
|
|
42
|
+
const configFiles = ['readme-ai.config.js', 'readme-ai.config.mjs'];
|
|
43
|
+
for (const filename of configFiles) {
|
|
44
|
+
const filePath = path.join(repoPath, filename);
|
|
45
|
+
try {
|
|
46
|
+
await fs.access(filePath);
|
|
47
|
+
}
|
|
48
|
+
catch {
|
|
49
|
+
continue;
|
|
50
|
+
}
|
|
51
|
+
const fileUrl = pathToFileURL(path.resolve(filePath)).href;
|
|
52
|
+
const mod = await import(fileUrl);
|
|
53
|
+
const config = mod.default || mod;
|
|
54
|
+
if (Array.isArray(config[PLUGIN_CONFIG_KEY])) {
|
|
55
|
+
for (const pluginPath of config[PLUGIN_CONFIG_KEY]) {
|
|
56
|
+
await loadSinglePlugin(repoPath, pluginPath);
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
break;
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
async function loadSinglePlugin(repoPath, pluginRef) {
|
|
63
|
+
let resolved;
|
|
64
|
+
if (pluginRef.startsWith('.') || pluginRef.startsWith('/')) {
|
|
65
|
+
// Relative or absolute path
|
|
66
|
+
resolved = pathToFileURL(path.resolve(repoPath, pluginRef)).href;
|
|
67
|
+
}
|
|
68
|
+
else {
|
|
69
|
+
// npm package name — resolve from node_modules
|
|
70
|
+
resolved = pathToFileURL(path.resolve(repoPath, 'node_modules', pluginRef, 'index.js')).href;
|
|
71
|
+
}
|
|
72
|
+
const mod = await import(resolved);
|
|
73
|
+
const plugin = mod.default || mod;
|
|
74
|
+
if (plugin && plugin.name) {
|
|
75
|
+
registerPlugin(plugin);
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
async function loadFromNodeModules(repoPath) {
|
|
79
|
+
const nodeModulesPath = path.join(repoPath, 'node_modules');
|
|
80
|
+
try {
|
|
81
|
+
await fs.access(nodeModulesPath);
|
|
82
|
+
}
|
|
83
|
+
catch {
|
|
84
|
+
return;
|
|
85
|
+
}
|
|
86
|
+
const entries = await fs.readdir(nodeModulesPath);
|
|
87
|
+
const pluginDirs = entries.filter((e) => e.startsWith('readme-ai-plugin-'));
|
|
88
|
+
for (const dir of pluginDirs) {
|
|
89
|
+
try {
|
|
90
|
+
await loadSinglePlugin(repoPath, dir);
|
|
91
|
+
}
|
|
92
|
+
catch {
|
|
93
|
+
// Skip broken plugins silently
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
/**
|
|
98
|
+
* Run all registered analyzer plugins and collect their results.
|
|
99
|
+
*/
|
|
100
|
+
export async function runAnalyzerPlugins(context) {
|
|
101
|
+
const results = [];
|
|
102
|
+
for (const plugin of analyzerPlugins) {
|
|
103
|
+
try {
|
|
104
|
+
const result = await plugin.analyze(context);
|
|
105
|
+
results.push(result);
|
|
106
|
+
}
|
|
107
|
+
catch {
|
|
108
|
+
// Skip failing plugins
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
return results;
|
|
112
|
+
}
|
|
113
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/plugins/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"anthropic.d.ts","sourceRoot":"","sources":["../../src/providers/anthropic.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAG7C,wBAAgB,uBAAuB,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,UAAU,
|
|
1
|
+
{"version":3,"file":"anthropic.d.ts","sourceRoot":"","sources":["../../src/providers/anthropic.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAG7C,wBAAgB,uBAAuB,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,UAAU,CAuDlE"}
|
|
@@ -37,7 +37,10 @@ export function createAnthropicProvider(model) {
|
|
|
37
37
|
});
|
|
38
38
|
const block = response.content[0];
|
|
39
39
|
if (block.type === 'text') {
|
|
40
|
-
const text = block.text
|
|
40
|
+
const text = block.text
|
|
41
|
+
.trim()
|
|
42
|
+
.replace(/^```json\n?/, '')
|
|
43
|
+
.replace(/\n?```$/, '');
|
|
41
44
|
return JSON.parse(text);
|
|
42
45
|
}
|
|
43
46
|
throw new Error('Unexpected response format from Anthropic');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"anthropic.js","sourceRoot":"","sources":["../../src/providers/anthropic.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,mBAAmB,CAAC;AAE1C,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAEzC,MAAM,UAAU,uBAAuB,CAAC,KAAc;IACpD,MAAM,MAAM,GAAG,SAAS,CAAC,WAAW,CAAC,CAAC;IACtC,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,MAAM,IAAI,KAAK,CACb,8BAA8B;
|
|
1
|
+
{"version":3,"file":"anthropic.js","sourceRoot":"","sources":["../../src/providers/anthropic.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,mBAAmB,CAAC;AAE1C,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAEzC,MAAM,UAAU,uBAAuB,CAAC,KAAc;IACpD,MAAM,MAAM,GAAG,SAAS,CAAC,WAAW,CAAC,CAAC;IACtC,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,MAAM,IAAI,KAAK,CACb,8BAA8B;YAC5B,wDAAwD;YACxD,2CAA2C,CAC9C,CAAC;IACJ,CAAC;IAED,MAAM,MAAM,GAAG,IAAI,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC;IACzC,MAAM,OAAO,GAAG,KAAK,IAAI,0BAA0B,CAAC;IAEpD,OAAO;QACL,IAAI,EAAE,WAAW;QACjB,KAAK,EAAE,OAAO;QAEd,KAAK,CAAC,QAAQ,CAAC,MAAc;YAC3B,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC;gBAC5C,KAAK,EAAE,OAAO;gBACd,UAAU,EAAE,IAAI;gBAChB,QAAQ,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC;aAC9C,CAAC,CAAC;YAEH,MAAM,KAAK,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;YAClC,IAAI,KAAK,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;gBAC1B,OAAO,KAAK,CAAC,IAAI,CAAC;YACpB,CAAC;YACD,MAAM,IAAI,KAAK,CAAC,2CAA2C,CAAC,CAAC;QAC/D,CAAC;QAED,KAAK,CAAC,YAAY,CAAI,MAAc;YAClC,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC;gBAC5C,KAAK,EAAE,OAAO;gBACd,UAAU,EAAE,IAAI;gBAChB,QAAQ,EAAE;oBACR;wBACE,IAAI,EAAE,MAAM;wBACZ,OAAO,EACL,MAAM,GAAG,uEAAuE;qBACnF;iBACF;aACF,CAAC,CAAC;YAEH,MAAM,KAAK,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;YAClC,IAAI,KAAK,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;gBAC1B,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI;qBACpB,IAAI,EAAE;qBACN,OAAO,CAAC,aAAa,EAAE,EAAE,CAAC;qBAC1B,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;gBAC1B,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAM,CAAC;YAC/B,CAAC;YACD,MAAM,IAAI,KAAK,CAAC,2CAA2C,CAAC,CAAC;QAC/D,CAAC;KACF,CAAC;AACJ,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gemini.d.ts","sourceRoot":"","sources":["../../src/providers/gemini.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAG7C,wBAAgB,oBAAoB,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,UAAU,
|
|
1
|
+
{"version":3,"file":"gemini.d.ts","sourceRoot":"","sources":["../../src/providers/gemini.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAG7C,wBAAgB,oBAAoB,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,UAAU,CAoC/D"}
|
package/dist/providers/gemini.js
CHANGED
|
@@ -20,7 +20,11 @@ export function createGeminiProvider(model) {
|
|
|
20
20
|
async generateJSON(prompt) {
|
|
21
21
|
const genModel = genAI.getGenerativeModel({ model: modelId });
|
|
22
22
|
const result = await genModel.generateContent(prompt + '\n\nRespond with valid JSON only. No markdown fences, no explanation.');
|
|
23
|
-
const text = result.response
|
|
23
|
+
const text = result.response
|
|
24
|
+
.text()
|
|
25
|
+
.trim()
|
|
26
|
+
.replace(/^```json\n?/, '')
|
|
27
|
+
.replace(/\n?```$/, '');
|
|
24
28
|
return JSON.parse(text);
|
|
25
29
|
},
|
|
26
30
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gemini.js","sourceRoot":"","sources":["../../src/providers/gemini.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAE3D,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAEzC,MAAM,UAAU,oBAAoB,CAAC,KAAc;IACjD,MAAM,MAAM,GAAG,SAAS,CAAC,QAAQ,CAAC,CAAC;IACnC,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,MAAM,IAAI,KAAK,CACb,2BAA2B;
|
|
1
|
+
{"version":3,"file":"gemini.js","sourceRoot":"","sources":["../../src/providers/gemini.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAE3D,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAEzC,MAAM,UAAU,oBAAoB,CAAC,KAAc;IACjD,MAAM,MAAM,GAAG,SAAS,CAAC,QAAQ,CAAC,CAAC;IACnC,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,MAAM,IAAI,KAAK,CACb,2BAA2B;YACzB,8CAA8C;YAC9C,2CAA2C,CAC9C,CAAC;IACJ,CAAC;IAED,MAAM,KAAK,GAAG,IAAI,kBAAkB,CAAC,MAAM,CAAC,CAAC;IAC7C,MAAM,OAAO,GAAG,KAAK,IAAI,kBAAkB,CAAC;IAE5C,OAAO;QACL,IAAI,EAAE,QAAQ;QACd,KAAK,EAAE,OAAO;QAEd,KAAK,CAAC,QAAQ,CAAC,MAAc;YAC3B,MAAM,QAAQ,GAAG,KAAK,CAAC,kBAAkB,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC;YAC9D,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;YACtD,OAAO,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;QAChC,CAAC;QAED,KAAK,CAAC,YAAY,CAAI,MAAc;YAClC,MAAM,QAAQ,GAAG,KAAK,CAAC,kBAAkB,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC;YAC9D,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,eAAe,CAC3C,MAAM,GAAG,uEAAuE,CACjF,CAAC;YACF,MAAM,IAAI,GAAG,MAAM,CAAC,QAAQ;iBACzB,IAAI,EAAE;iBACN,IAAI,EAAE;iBACN,OAAO,CAAC,aAAa,EAAE,EAAE,CAAC;iBAC1B,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;YAC1B,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAM,CAAC;QAC/B,CAAC;KACF,CAAC;AACJ,CAAC"}
|
|
@@ -5,4 +5,5 @@ export interface AIProvider {
|
|
|
5
5
|
generateJSON<T>(prompt: string): Promise<T>;
|
|
6
6
|
}
|
|
7
7
|
export declare function createProvider(name: string, model?: string): Promise<AIProvider>;
|
|
8
|
+
export declare function createCachedProvider(name: string, model?: string): Promise<AIProvider>;
|
|
8
9
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/providers/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/providers/index.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAC1C,YAAY,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;CAC7C;AA6BD,wBAAsB,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC,CAuBtF;AAED,wBAAsB,oBAAoB,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC,CAG5F"}
|