paper-search-cli 0.3.1 → 0.3.2
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 +1 -1
- package/README.zh.md +1 -1
- package/dist/capabilities/body-snippet-search/handler.d.ts +9 -0
- package/dist/capabilities/body-snippet-search/handler.d.ts.map +1 -0
- package/dist/capabilities/body-snippet-search/handler.js +17 -0
- package/dist/capabilities/body-snippet-search/handler.js.map +1 -0
- package/dist/capabilities/body-snippet-search/index.d.ts +7 -0
- package/dist/capabilities/body-snippet-search/index.d.ts.map +1 -0
- package/dist/capabilities/body-snippet-search/index.js +6 -0
- package/dist/capabilities/body-snippet-search/index.js.map +1 -0
- package/dist/capabilities/body-snippet-search/schemas.d.ts +36 -0
- package/dist/capabilities/body-snippet-search/schemas.d.ts.map +1 -0
- package/dist/capabilities/body-snippet-search/schemas.js +16 -0
- package/dist/capabilities/body-snippet-search/schemas.js.map +1 -0
- package/dist/capabilities/body-snippet-search/service.d.ts +4 -0
- package/dist/capabilities/body-snippet-search/service.d.ts.map +1 -0
- package/dist/capabilities/body-snippet-search/service.js +4 -0
- package/dist/capabilities/body-snippet-search/service.js.map +1 -0
- package/dist/capabilities/body-snippet-search/tools.d.ts +187 -0
- package/dist/capabilities/body-snippet-search/tools.d.ts.map +1 -0
- package/dist/capabilities/body-snippet-search/tools.js +49 -0
- package/dist/capabilities/body-snippet-search/tools.js.map +1 -0
- package/dist/capabilities/body-snippet-search/types.d.ts +14 -0
- package/dist/capabilities/body-snippet-search/types.d.ts.map +1 -0
- package/dist/capabilities/body-snippet-search/types.js +2 -0
- package/dist/capabilities/body-snippet-search/types.js.map +1 -0
- package/dist/capabilities/citation-expansion/CitationService.d.ts +47 -0
- package/dist/capabilities/citation-expansion/CitationService.d.ts.map +1 -0
- package/dist/capabilities/citation-expansion/CitationService.js +243 -0
- package/dist/capabilities/citation-expansion/CitationService.js.map +1 -0
- package/dist/capabilities/citation-expansion/handler.d.ts +36 -0
- package/dist/capabilities/citation-expansion/handler.d.ts.map +1 -0
- package/dist/capabilities/citation-expansion/handler.js +44 -0
- package/dist/capabilities/citation-expansion/handler.js.map +1 -0
- package/dist/capabilities/citation-expansion/index.d.ts +6 -0
- package/dist/capabilities/citation-expansion/index.d.ts.map +1 -0
- package/dist/capabilities/citation-expansion/index.js +5 -0
- package/dist/capabilities/citation-expansion/index.js.map +1 -0
- package/dist/capabilities/citation-expansion/schemas.d.ts +28 -0
- package/dist/capabilities/citation-expansion/schemas.d.ts.map +1 -0
- package/dist/capabilities/citation-expansion/schemas.js +13 -0
- package/dist/capabilities/citation-expansion/schemas.js.map +1 -0
- package/dist/capabilities/citation-expansion/tools.d.ts +82 -0
- package/dist/capabilities/citation-expansion/tools.d.ts.map +1 -0
- package/dist/capabilities/citation-expansion/tools.js +48 -0
- package/dist/capabilities/citation-expansion/tools.js.map +1 -0
- package/dist/capabilities/citation-expansion/types.d.ts +22 -0
- package/dist/capabilities/citation-expansion/types.d.ts.map +1 -0
- package/dist/capabilities/citation-expansion/types.js +2 -0
- package/dist/capabilities/citation-expansion/types.js.map +1 -0
- package/dist/capabilities/journal-metrics/JournalMetricsService.d.ts +3 -0
- package/dist/capabilities/journal-metrics/JournalMetricsService.d.ts.map +1 -0
- package/dist/capabilities/journal-metrics/JournalMetricsService.js +142 -0
- package/dist/capabilities/journal-metrics/JournalMetricsService.js.map +1 -0
- package/dist/capabilities/journal-metrics/handler.d.ts +12 -0
- package/dist/capabilities/journal-metrics/handler.d.ts.map +1 -0
- package/dist/capabilities/journal-metrics/handler.js +38 -0
- package/dist/capabilities/journal-metrics/handler.js.map +1 -0
- package/dist/capabilities/journal-metrics/index.d.ts +6 -0
- package/dist/capabilities/journal-metrics/index.d.ts.map +1 -0
- package/dist/capabilities/journal-metrics/index.js +5 -0
- package/dist/capabilities/journal-metrics/index.js.map +1 -0
- package/dist/capabilities/journal-metrics/schemas.d.ts +28 -0
- package/dist/capabilities/journal-metrics/schemas.d.ts.map +1 -0
- package/dist/capabilities/journal-metrics/schemas.js +13 -0
- package/dist/capabilities/journal-metrics/schemas.js.map +1 -0
- package/dist/capabilities/journal-metrics/tools.d.ts +67 -0
- package/dist/capabilities/journal-metrics/tools.d.ts.map +1 -0
- package/dist/capabilities/journal-metrics/tools.js +27 -0
- package/dist/capabilities/journal-metrics/tools.js.map +1 -0
- package/dist/capabilities/journal-metrics/types.d.ts +36 -0
- package/dist/capabilities/journal-metrics/types.d.ts.map +1 -0
- package/dist/capabilities/journal-metrics/types.js +2 -0
- package/dist/capabilities/journal-metrics/types.js.map +1 -0
- package/dist/capabilities/metadata-search/MultiSourceSearchService.d.ts +9 -0
- package/dist/capabilities/metadata-search/MultiSourceSearchService.d.ts.map +1 -0
- package/dist/capabilities/metadata-search/MultiSourceSearchService.js +78 -0
- package/dist/capabilities/metadata-search/MultiSourceSearchService.js.map +1 -0
- package/dist/capabilities/metadata-search/handler.d.ts +23 -0
- package/dist/capabilities/metadata-search/handler.d.ts.map +1 -0
- package/dist/capabilities/metadata-search/handler.js +163 -0
- package/dist/capabilities/metadata-search/handler.js.map +1 -0
- package/dist/capabilities/metadata-search/index.d.ts +6 -0
- package/dist/capabilities/metadata-search/index.d.ts.map +1 -0
- package/dist/capabilities/metadata-search/index.js +5 -0
- package/dist/capabilities/metadata-search/index.js.map +1 -0
- package/dist/capabilities/metadata-search/schemas.d.ts +83 -0
- package/dist/capabilities/metadata-search/schemas.d.ts.map +1 -0
- package/dist/capabilities/metadata-search/schemas.js +81 -0
- package/dist/capabilities/metadata-search/schemas.js.map +1 -0
- package/dist/capabilities/metadata-search/tools.d.ts +178 -0
- package/dist/capabilities/metadata-search/tools.d.ts.map +1 -0
- package/dist/capabilities/metadata-search/tools.js +75 -0
- package/dist/capabilities/metadata-search/tools.js.map +1 -0
- package/dist/capabilities/metadata-search/types.d.ts +13 -0
- package/dist/capabilities/metadata-search/types.d.ts.map +1 -0
- package/dist/capabilities/metadata-search/types.js +2 -0
- package/dist/capabilities/metadata-search/types.js.map +1 -0
- package/dist/capabilities/pdf-discovery/DownloadTier.d.ts +22 -0
- package/dist/capabilities/pdf-discovery/DownloadTier.d.ts.map +1 -0
- package/dist/capabilities/pdf-discovery/DownloadTier.js +2 -0
- package/dist/capabilities/pdf-discovery/DownloadTier.js.map +1 -0
- package/dist/capabilities/pdf-discovery/OpenAccessFallbackService.d.ts +10 -0
- package/dist/capabilities/pdf-discovery/OpenAccessFallbackService.d.ts.map +1 -0
- package/dist/capabilities/pdf-discovery/OpenAccessFallbackService.js +53 -0
- package/dist/capabilities/pdf-discovery/OpenAccessFallbackService.js.map +1 -0
- package/dist/capabilities/pdf-discovery/handler.d.ts +19 -0
- package/dist/capabilities/pdf-discovery/handler.d.ts.map +1 -0
- package/dist/capabilities/pdf-discovery/handler.js +56 -0
- package/dist/capabilities/pdf-discovery/handler.js.map +1 -0
- package/dist/capabilities/pdf-discovery/index.d.ts +7 -0
- package/dist/capabilities/pdf-discovery/index.d.ts.map +1 -0
- package/dist/capabilities/pdf-discovery/index.js +5 -0
- package/dist/capabilities/pdf-discovery/index.js.map +1 -0
- package/dist/capabilities/pdf-discovery/schemas.d.ts +37 -0
- package/dist/capabilities/pdf-discovery/schemas.d.ts.map +1 -0
- package/dist/capabilities/pdf-discovery/schemas.js +22 -0
- package/dist/capabilities/pdf-discovery/schemas.js.map +1 -0
- package/dist/capabilities/pdf-discovery/tiers/directPdfUrl.d.ts +3 -0
- package/dist/capabilities/pdf-discovery/tiers/directPdfUrl.d.ts.map +1 -0
- package/dist/capabilities/pdf-discovery/tiers/directPdfUrl.js +27 -0
- package/dist/capabilities/pdf-discovery/tiers/directPdfUrl.js.map +1 -0
- package/dist/capabilities/pdf-discovery/tiers/primary.d.ts +3 -0
- package/dist/capabilities/pdf-discovery/tiers/primary.d.ts.map +1 -0
- package/dist/capabilities/pdf-discovery/tiers/primary.js +21 -0
- package/dist/capabilities/pdf-discovery/tiers/primary.js.map +1 -0
- package/dist/capabilities/pdf-discovery/tiers/repositories.d.ts +3 -0
- package/dist/capabilities/pdf-discovery/tiers/repositories.d.ts.map +1 -0
- package/dist/capabilities/pdf-discovery/tiers/repositories.js +35 -0
- package/dist/capabilities/pdf-discovery/tiers/repositories.js.map +1 -0
- package/dist/capabilities/pdf-discovery/tiers/scihub.d.ts +3 -0
- package/dist/capabilities/pdf-discovery/tiers/scihub.d.ts.map +1 -0
- package/dist/capabilities/pdf-discovery/tiers/scihub.js +21 -0
- package/dist/capabilities/pdf-discovery/tiers/scihub.js.map +1 -0
- package/dist/capabilities/pdf-discovery/tiers/unpaywall.d.ts +3 -0
- package/dist/capabilities/pdf-discovery/tiers/unpaywall.d.ts.map +1 -0
- package/dist/capabilities/pdf-discovery/tiers/unpaywall.js +29 -0
- package/dist/capabilities/pdf-discovery/tiers/unpaywall.js.map +1 -0
- package/dist/capabilities/pdf-discovery/tools.d.ts +114 -0
- package/dist/capabilities/pdf-discovery/tools.d.ts.map +1 -0
- package/dist/capabilities/pdf-discovery/tools.js +42 -0
- package/dist/capabilities/pdf-discovery/tools.js.map +1 -0
- package/dist/capabilities/pdf-discovery/types.d.ts +19 -0
- package/dist/capabilities/pdf-discovery/types.d.ts.map +1 -0
- package/dist/capabilities/pdf-discovery/types.js +2 -0
- package/dist/capabilities/pdf-discovery/types.js.map +1 -0
- package/dist/cli.js +6 -6
- package/dist/cli.js.map +1 -1
- package/dist/core/capabilityProfile.d.ts +1 -17
- package/dist/core/capabilityProfile.d.ts.map +1 -1
- package/dist/core/capabilityProfile.js +1 -166
- package/dist/core/capabilityProfile.js.map +1 -1
- package/dist/core/diagnostics.d.ts +1 -42
- package/dist/core/diagnostics.d.ts.map +1 -1
- package/dist/core/diagnostics.js +1 -585
- package/dist/core/diagnostics.js.map +1 -1
- package/dist/core/handleToolCall.d.ts +1 -0
- package/dist/core/handleToolCall.d.ts.map +1 -1
- package/dist/core/handleToolCall.js +265 -509
- package/dist/core/handleToolCall.js.map +1 -1
- package/dist/core/httpPolicies.d.ts +2 -0
- package/dist/core/httpPolicies.d.ts.map +1 -0
- package/dist/core/httpPolicies.js +2 -0
- package/dist/core/httpPolicies.js.map +1 -0
- package/dist/core/liveSmoke.d.ts +1 -41
- package/dist/core/liveSmoke.d.ts.map +1 -1
- package/dist/core/liveSmoke.js +1 -225
- package/dist/core/liveSmoke.js.map +1 -1
- package/dist/core/platformFactories.d.ts +2 -0
- package/dist/core/platformFactories.d.ts.map +1 -0
- package/dist/core/platformFactories.js +2 -0
- package/dist/core/platformFactories.js.map +1 -0
- package/dist/core/platformMetadata.d.ts +1 -27
- package/dist/core/platformMetadata.d.ts.map +1 -1
- package/dist/core/platformMetadata.js +1 -257
- package/dist/core/platformMetadata.js.map +1 -1
- package/dist/core/schemas.d.ts +10 -202
- package/dist/core/schemas.d.ts.map +1 -1
- package/dist/core/schemas.js +11 -118
- package/dist/core/schemas.js.map +1 -1
- package/dist/core/searchers.d.ts +24 -24
- package/dist/core/searchers.d.ts.map +1 -1
- package/dist/core/searchers.js +14 -79
- package/dist/core/searchers.js.map +1 -1
- package/dist/core/textReports.d.ts +1 -20
- package/dist/core/textReports.d.ts.map +1 -1
- package/dist/core/textReports.js +1 -84
- package/dist/core/textReports.js.map +1 -1
- package/dist/core/tools.d.ts.map +1 -1
- package/dist/core/tools.js +15 -237
- package/dist/core/tools.js.map +1 -1
- package/dist/infrastructure/cache/RequestCache.d.ts +26 -0
- package/dist/infrastructure/cache/RequestCache.d.ts.map +1 -0
- package/dist/infrastructure/cache/RequestCache.js +66 -0
- package/dist/infrastructure/cache/RequestCache.js.map +1 -0
- package/dist/infrastructure/http/ErrorHandler.d.ts +99 -0
- package/dist/infrastructure/http/ErrorHandler.d.ts.map +1 -0
- package/dist/infrastructure/http/ErrorHandler.js +266 -0
- package/dist/infrastructure/http/ErrorHandler.js.map +1 -0
- package/dist/infrastructure/http/HttpClient.d.ts +31 -0
- package/dist/infrastructure/http/HttpClient.d.ts.map +1 -0
- package/dist/infrastructure/http/HttpClient.js +50 -0
- package/dist/infrastructure/http/HttpClient.js.map +1 -0
- package/dist/infrastructure/pdf/PDFExtractor.d.ts +34 -0
- package/dist/infrastructure/pdf/PDFExtractor.d.ts.map +1 -0
- package/dist/infrastructure/pdf/PDFExtractor.js +130 -0
- package/dist/infrastructure/pdf/PDFExtractor.js.map +1 -0
- package/dist/infrastructure/pdf/PdfDownload.d.ts +7 -0
- package/dist/infrastructure/pdf/PdfDownload.d.ts.map +1 -0
- package/dist/infrastructure/pdf/PdfDownload.js +175 -0
- package/dist/infrastructure/pdf/PdfDownload.js.map +1 -0
- package/dist/infrastructure/rate-limit/RateLimiter.d.ts +50 -0
- package/dist/infrastructure/rate-limit/RateLimiter.d.ts.map +1 -0
- package/dist/infrastructure/rate-limit/RateLimiter.js +128 -0
- package/dist/infrastructure/rate-limit/RateLimiter.js.map +1 -0
- package/dist/infrastructure/security/SecurityUtils.d.ts +80 -0
- package/dist/infrastructure/security/SecurityUtils.d.ts.map +1 -0
- package/dist/infrastructure/security/SecurityUtils.js +357 -0
- package/dist/infrastructure/security/SecurityUtils.js.map +1 -0
- package/dist/management/capability-profile/index.d.ts +18 -0
- package/dist/management/capability-profile/index.d.ts.map +1 -0
- package/dist/management/capability-profile/index.js +167 -0
- package/dist/management/capability-profile/index.js.map +1 -0
- package/dist/management/config/index.d.ts +2 -0
- package/dist/management/config/index.d.ts.map +1 -0
- package/dist/management/config/index.js +2 -0
- package/dist/management/config/index.js.map +1 -0
- package/dist/management/diagnostics/index.d.ts +43 -0
- package/dist/management/diagnostics/index.d.ts.map +1 -0
- package/dist/management/diagnostics/index.js +586 -0
- package/dist/management/diagnostics/index.js.map +1 -0
- package/dist/management/reports/index.d.ts +21 -0
- package/dist/management/reports/index.d.ts.map +1 -0
- package/dist/management/reports/index.js +85 -0
- package/dist/management/reports/index.js.map +1 -0
- package/dist/management/skills/index.d.ts +2 -0
- package/dist/management/skills/index.d.ts.map +1 -0
- package/dist/management/skills/index.js +2 -0
- package/dist/management/skills/index.js.map +1 -0
- package/dist/management/smoke/index.d.ts +42 -0
- package/dist/management/smoke/index.d.ts.map +1 -0
- package/dist/management/smoke/index.js +226 -0
- package/dist/management/smoke/index.js.map +1 -0
- package/dist/registry/aliases.d.ts +2 -0
- package/dist/registry/aliases.d.ts.map +1 -0
- package/dist/registry/aliases.js +2 -0
- package/dist/registry/aliases.js.map +1 -0
- package/dist/registry/httpPolicies.d.ts +3 -0
- package/dist/registry/httpPolicies.d.ts.map +1 -0
- package/dist/registry/httpPolicies.js +17 -0
- package/dist/registry/httpPolicies.js.map +1 -0
- package/dist/registry/platformFactories.d.ts +8 -0
- package/dist/registry/platformFactories.d.ts.map +1 -0
- package/dist/registry/platformFactories.js +55 -0
- package/dist/registry/platformFactories.js.map +1 -0
- package/dist/registry/platformMetadata.d.ts +39 -0
- package/dist/registry/platformMetadata.d.ts.map +1 -0
- package/dist/registry/platformMetadata.js +321 -0
- package/dist/registry/platformMetadata.js.map +1 -0
- package/dist/services/CitationService.d.ts +2 -65
- package/dist/services/CitationService.d.ts.map +1 -1
- package/dist/services/CitationService.js +1 -242
- package/dist/services/CitationService.js.map +1 -1
- package/dist/services/JournalMetricsService.d.ts +2 -37
- package/dist/services/JournalMetricsService.d.ts.map +1 -1
- package/dist/services/JournalMetricsService.js +1 -141
- package/dist/services/JournalMetricsService.js.map +1 -1
- package/dist/services/MultiSourceSearchService.d.ts +2 -18
- package/dist/services/MultiSourceSearchService.d.ts.map +1 -1
- package/dist/services/MultiSourceSearchService.js +1 -77
- package/dist/services/MultiSourceSearchService.js.map +1 -1
- package/dist/services/OpenAccessFallbackService.d.ts +3 -40
- package/dist/services/OpenAccessFallbackService.d.ts.map +1 -1
- package/dist/services/OpenAccessFallbackService.js +1 -146
- package/dist/services/OpenAccessFallbackService.js.map +1 -1
- package/dist/utils/ErrorHandler.d.ts +2 -98
- package/dist/utils/ErrorHandler.d.ts.map +1 -1
- package/dist/utils/ErrorHandler.js +2 -265
- package/dist/utils/ErrorHandler.js.map +1 -1
- package/dist/utils/HttpClient.d.ts +1 -5
- package/dist/utils/HttpClient.d.ts.map +1 -1
- package/dist/utils/HttpClient.js +1 -29
- package/dist/utils/HttpClient.js.map +1 -1
- package/dist/utils/PDFExtractor.d.ts +2 -33
- package/dist/utils/PDFExtractor.d.ts.map +1 -1
- package/dist/utils/PDFExtractor.js +2 -129
- package/dist/utils/PDFExtractor.js.map +1 -1
- package/dist/utils/PdfDownload.d.ts +1 -6
- package/dist/utils/PdfDownload.d.ts.map +1 -1
- package/dist/utils/PdfDownload.js +1 -141
- package/dist/utils/PdfDownload.js.map +1 -1
- package/dist/utils/RateLimiter.d.ts +1 -49
- package/dist/utils/RateLimiter.d.ts.map +1 -1
- package/dist/utils/RateLimiter.js +1 -127
- package/dist/utils/RateLimiter.js.map +1 -1
- package/dist/utils/RequestCache.d.ts +2 -25
- package/dist/utils/RequestCache.d.ts.map +1 -1
- package/dist/utils/RequestCache.js +2 -65
- package/dist/utils/RequestCache.js.map +1 -1
- package/dist/utils/SecurityUtils.d.ts +2 -79
- package/dist/utils/SecurityUtils.d.ts.map +1 -1
- package/dist/utils/SecurityUtils.js +2 -356
- package/dist/utils/SecurityUtils.js.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
export function renderDoctorTextReport(report) {
|
|
2
|
+
const lines = [
|
|
3
|
+
'Paper Search Doctor',
|
|
4
|
+
'',
|
|
5
|
+
`Config: ${report.config.path}`,
|
|
6
|
+
`Configured keys: ${report.config.configured}`,
|
|
7
|
+
`Missing keys: ${report.config.missing.length}`,
|
|
8
|
+
''
|
|
9
|
+
];
|
|
10
|
+
const configuredEntries = report.config.entries.filter(entry => entry.configured);
|
|
11
|
+
if (configuredEntries.length > 0) {
|
|
12
|
+
lines.push('Configured:');
|
|
13
|
+
for (const entry of configuredEntries) {
|
|
14
|
+
lines.push(`- ${entry.key}: ${entry.value} (${entry.source})`);
|
|
15
|
+
}
|
|
16
|
+
lines.push('');
|
|
17
|
+
}
|
|
18
|
+
lines.push('Capability Profile:');
|
|
19
|
+
for (const entry of report.capabilityProfile.entries) {
|
|
20
|
+
lines.push(`- ${entry.id}: ${entry.status}`);
|
|
21
|
+
lines.push(` Reason: ${entry.reason}`);
|
|
22
|
+
if (entry.missing.length > 0) {
|
|
23
|
+
lines.push(` Missing: ${entry.missing.join(', ')}`);
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
lines.push('');
|
|
27
|
+
const platformData = report.platformStatus?.data;
|
|
28
|
+
if (Array.isArray(platformData)) {
|
|
29
|
+
const counts = countBy(platformData, item => String(item.apiKeyStatus || 'unknown'));
|
|
30
|
+
lines.push('Platform API key status:');
|
|
31
|
+
for (const [status, count] of Object.entries(counts).sort()) {
|
|
32
|
+
lines.push(`- ${status}: ${count}`);
|
|
33
|
+
}
|
|
34
|
+
lines.push('');
|
|
35
|
+
}
|
|
36
|
+
lines.push('Next commands:');
|
|
37
|
+
lines.push('- paper-search smoke --mock --pretty');
|
|
38
|
+
lines.push('- paper-search smoke --live --pretty');
|
|
39
|
+
lines.push('- paper-search skills status --pretty');
|
|
40
|
+
return lines.join('\n');
|
|
41
|
+
}
|
|
42
|
+
export function renderSkillDiffTextReport(report) {
|
|
43
|
+
const lines = [
|
|
44
|
+
'Paper Search Skill Diff',
|
|
45
|
+
'',
|
|
46
|
+
`Skill: ${report.skill}`,
|
|
47
|
+
`Root: ${report.root}`,
|
|
48
|
+
`Targets: ${report.selected.join(', ') || '(none)'}`,
|
|
49
|
+
''
|
|
50
|
+
];
|
|
51
|
+
for (const target of report.targets) {
|
|
52
|
+
lines.push(`${target.target} (${target.label})`);
|
|
53
|
+
lines.push(`Path: ${target.path}`);
|
|
54
|
+
lines.push(`Status: ${target.status}`);
|
|
55
|
+
lines.push(`Managed files: ${target.files}; installed files: ${target.installedFiles}`);
|
|
56
|
+
if (target.error) {
|
|
57
|
+
lines.push(`Error: ${target.error}`);
|
|
58
|
+
}
|
|
59
|
+
if (target.missingFiles.length > 0) {
|
|
60
|
+
lines.push(`Missing managed files: ${target.missingFiles.join(', ')}`);
|
|
61
|
+
}
|
|
62
|
+
if (target.staleFiles.length > 0) {
|
|
63
|
+
lines.push(`Stale managed files: ${target.staleFiles.join(', ')}`);
|
|
64
|
+
}
|
|
65
|
+
if (target.extraFiles.length > 0) {
|
|
66
|
+
lines.push(`Extra Skill Files (${target.extraFiles.length}, names only): ${target.extraFiles.join(', ')}`);
|
|
67
|
+
}
|
|
68
|
+
const diffs = target.managedFiles.filter(file => file.status === 'stale' && file.diff);
|
|
69
|
+
for (const diff of diffs) {
|
|
70
|
+
lines.push('');
|
|
71
|
+
lines.push(String(diff.diff));
|
|
72
|
+
}
|
|
73
|
+
lines.push('');
|
|
74
|
+
}
|
|
75
|
+
return lines.join('\n').trimEnd();
|
|
76
|
+
}
|
|
77
|
+
function countBy(items, getKey) {
|
|
78
|
+
const counts = {};
|
|
79
|
+
for (const item of items) {
|
|
80
|
+
const key = getKey(item);
|
|
81
|
+
counts[key] = (counts[key] || 0) + 1;
|
|
82
|
+
}
|
|
83
|
+
return counts;
|
|
84
|
+
}
|
|
85
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/management/reports/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/management/skills/index.ts"],"names":[],"mappings":"AAAA,cAAc,gCAAgC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/management/skills/index.ts"],"names":[],"mappings":"AAAA,cAAc,gCAAgC,CAAC"}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import type { CapabilityProfile } from '../capability-profile/index.js';
|
|
2
|
+
import type { SkillStatusResult } from '../skills/index.js';
|
|
3
|
+
export type SmokeSeverity = 'critical' | 'degraded' | 'warning' | 'skipped';
|
|
4
|
+
export type SmokeCaseStatus = 'passed' | 'failed' | 'skipped';
|
|
5
|
+
export interface SmokeCase {
|
|
6
|
+
name: string;
|
|
7
|
+
ok: boolean;
|
|
8
|
+
severity: SmokeSeverity;
|
|
9
|
+
status: SmokeCaseStatus;
|
|
10
|
+
message: string;
|
|
11
|
+
remediation?: string;
|
|
12
|
+
configured?: boolean;
|
|
13
|
+
enabled?: boolean;
|
|
14
|
+
skipped?: boolean;
|
|
15
|
+
tool?: string;
|
|
16
|
+
data?: unknown;
|
|
17
|
+
}
|
|
18
|
+
export interface LiveSmokeResult {
|
|
19
|
+
ok: boolean;
|
|
20
|
+
mode: 'live';
|
|
21
|
+
cases: SmokeCase[];
|
|
22
|
+
failedCases: SmokeCase[];
|
|
23
|
+
degradedCases: SmokeCase[];
|
|
24
|
+
severityCounts: Record<SmokeSeverity, number>;
|
|
25
|
+
capabilityProfile: CapabilityProfile;
|
|
26
|
+
skillStatus?: SkillStatusResult;
|
|
27
|
+
nextSteps: string[];
|
|
28
|
+
exitCode: number;
|
|
29
|
+
}
|
|
30
|
+
export interface LiveSmokeRunner {
|
|
31
|
+
callTool(tool: string, args: Record<string, unknown>): Promise<{
|
|
32
|
+
ok: boolean;
|
|
33
|
+
message?: string;
|
|
34
|
+
data?: unknown;
|
|
35
|
+
}>;
|
|
36
|
+
capabilityProfile: CapabilityProfile;
|
|
37
|
+
skillStatus?: SkillStatusResult;
|
|
38
|
+
hasConfig(key: string): boolean;
|
|
39
|
+
}
|
|
40
|
+
export declare function runLiveSmoke(runner: LiveSmokeRunner): Promise<LiveSmokeResult>;
|
|
41
|
+
export declare function summarizeLiveSmoke(cases: SmokeCase[], capabilityProfile: CapabilityProfile, skillStatus?: SkillStatusResult): LiveSmokeResult;
|
|
42
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/management/smoke/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAC;AACxE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAE5D,MAAM,MAAM,aAAa,GAAG,UAAU,GAAG,UAAU,GAAG,SAAS,GAAG,SAAS,CAAC;AAC5E,MAAM,MAAM,eAAe,GAAG,QAAQ,GAAG,QAAQ,GAAG,SAAS,CAAC;AAE9D,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,OAAO,CAAC;IACZ,QAAQ,EAAE,aAAa,CAAC;IACxB,MAAM,EAAE,eAAe,CAAC;IACxB,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AAED,MAAM,WAAW,eAAe;IAC9B,EAAE,EAAE,OAAO,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,SAAS,EAAE,CAAC;IACnB,WAAW,EAAE,SAAS,EAAE,CAAC;IACzB,aAAa,EAAE,SAAS,EAAE,CAAC;IAC3B,cAAc,EAAE,MAAM,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC;IAC9C,iBAAiB,EAAE,iBAAiB,CAAC;IACrC,WAAW,CAAC,EAAE,iBAAiB,CAAC;IAChC,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC;QAAE,EAAE,EAAE,OAAO,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,OAAO,CAAA;KAAE,CAAC,CAAC;IAClH,iBAAiB,EAAE,iBAAiB,CAAC;IACrC,WAAW,CAAC,EAAE,iBAAiB,CAAC;IAChC,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACjC;AAkBD,wBAAsB,YAAY,CAAC,MAAM,EAAE,eAAe,GAAG,OAAO,CAAC,eAAe,CAAC,CAoEpF;AAED,wBAAgB,kBAAkB,CAChC,KAAK,EAAE,SAAS,EAAE,EAClB,iBAAiB,EAAE,iBAAiB,EACpC,WAAW,CAAC,EAAE,iBAAiB,GAC9B,eAAe,CAkCjB"}
|
|
@@ -0,0 +1,226 @@
|
|
|
1
|
+
export async function runLiveSmoke(runner) {
|
|
2
|
+
const checks = buildLiveSmokeChecks(runner.hasConfig);
|
|
3
|
+
const cases = [];
|
|
4
|
+
for (const check of checks) {
|
|
5
|
+
if (check.skipWhen) {
|
|
6
|
+
const severity = check.configured || check.enabled ? check.severity : 'skipped';
|
|
7
|
+
cases.push({
|
|
8
|
+
name: check.name,
|
|
9
|
+
ok: true,
|
|
10
|
+
severity,
|
|
11
|
+
status: 'skipped',
|
|
12
|
+
skipped: true,
|
|
13
|
+
configured: check.configured,
|
|
14
|
+
enabled: check.enabled,
|
|
15
|
+
tool: check.tool,
|
|
16
|
+
message: check.skipMessage || 'Skipped.',
|
|
17
|
+
remediation: severity === 'skipped' ? undefined : check.remediation,
|
|
18
|
+
data: check.data
|
|
19
|
+
});
|
|
20
|
+
continue;
|
|
21
|
+
}
|
|
22
|
+
if (!check.tool) {
|
|
23
|
+
cases.push({
|
|
24
|
+
name: check.name,
|
|
25
|
+
ok: true,
|
|
26
|
+
severity: check.severity,
|
|
27
|
+
status: 'passed',
|
|
28
|
+
configured: check.configured,
|
|
29
|
+
enabled: check.enabled,
|
|
30
|
+
message: check.passMessage,
|
|
31
|
+
data: check.data
|
|
32
|
+
});
|
|
33
|
+
continue;
|
|
34
|
+
}
|
|
35
|
+
try {
|
|
36
|
+
const result = await runner.callTool(check.tool, check.args || {});
|
|
37
|
+
const passed = result.ok && (check.validate ? check.validate(result) : true);
|
|
38
|
+
cases.push({
|
|
39
|
+
name: check.name,
|
|
40
|
+
ok: passed,
|
|
41
|
+
severity: check.severity,
|
|
42
|
+
status: passed ? 'passed' : 'failed',
|
|
43
|
+
configured: check.configured,
|
|
44
|
+
enabled: check.enabled,
|
|
45
|
+
tool: check.tool,
|
|
46
|
+
message: passed ? check.passMessage : `${check.failMessage}: ${result.message || 'no result message'}`,
|
|
47
|
+
remediation: passed ? undefined : check.remediation,
|
|
48
|
+
data: result.data
|
|
49
|
+
});
|
|
50
|
+
}
|
|
51
|
+
catch (error) {
|
|
52
|
+
cases.push({
|
|
53
|
+
name: check.name,
|
|
54
|
+
ok: false,
|
|
55
|
+
severity: check.severity,
|
|
56
|
+
status: 'failed',
|
|
57
|
+
configured: check.configured,
|
|
58
|
+
enabled: check.enabled,
|
|
59
|
+
tool: check.tool,
|
|
60
|
+
message: `${check.failMessage}: ${error?.message || String(error)}`,
|
|
61
|
+
remediation: check.remediation
|
|
62
|
+
});
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
return summarizeLiveSmoke(cases, runner.capabilityProfile, runner.skillStatus);
|
|
66
|
+
}
|
|
67
|
+
export function summarizeLiveSmoke(cases, capabilityProfile, skillStatus) {
|
|
68
|
+
const severityCounts = {
|
|
69
|
+
critical: 0,
|
|
70
|
+
degraded: 0,
|
|
71
|
+
warning: 0,
|
|
72
|
+
skipped: 0
|
|
73
|
+
};
|
|
74
|
+
for (const item of cases) {
|
|
75
|
+
if (!item.ok || item.status === 'skipped') {
|
|
76
|
+
severityCounts[item.severity] += 1;
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
const failedCases = cases.filter(item => !item.ok && item.severity === 'critical');
|
|
80
|
+
const degradedCases = cases.filter(item => !item.ok && item.severity === 'degraded');
|
|
81
|
+
const nextSteps = [
|
|
82
|
+
'Review degraded cases and run the listed remediation commands if a configured capability should work.',
|
|
83
|
+
'Run "paper-search doctor --pretty" to inspect masked configuration and capability profile.',
|
|
84
|
+
'Run "paper-search config list --pretty" to confirm key sources without exposing raw secrets.'
|
|
85
|
+
];
|
|
86
|
+
return {
|
|
87
|
+
ok: failedCases.length === 0,
|
|
88
|
+
mode: 'live',
|
|
89
|
+
cases,
|
|
90
|
+
failedCases,
|
|
91
|
+
degradedCases,
|
|
92
|
+
severityCounts,
|
|
93
|
+
capabilityProfile,
|
|
94
|
+
skillStatus,
|
|
95
|
+
nextSteps,
|
|
96
|
+
exitCode: failedCases.length > 0 ? 1 : 0
|
|
97
|
+
};
|
|
98
|
+
}
|
|
99
|
+
function buildLiveSmokeChecks(hasConfig) {
|
|
100
|
+
const hasSemantic = hasConfig('SEMANTIC_SCHOLAR_API_KEY');
|
|
101
|
+
const hasEasyScholar = hasConfig('EASYSCHOLAR_KEY');
|
|
102
|
+
const hasWos = hasConfig('WOS_API_KEY');
|
|
103
|
+
const hasElsevier = hasConfig('ELSEVIER_API_KEY');
|
|
104
|
+
const hasSpringer = hasConfig('SPRINGER_API_KEY');
|
|
105
|
+
const hasIeee = hasConfig('IEEE_API_KEY');
|
|
106
|
+
const hasWiley = hasConfig('WILEY_TDM_TOKEN');
|
|
107
|
+
return [
|
|
108
|
+
{
|
|
109
|
+
name: 'free metadata search (Crossref)',
|
|
110
|
+
tool: 'search_crossref',
|
|
111
|
+
args: { query: 'machine learning', maxResults: 1 },
|
|
112
|
+
severity: 'critical',
|
|
113
|
+
passMessage: 'Free metadata search returned a live response.',
|
|
114
|
+
failMessage: 'Free metadata search failed',
|
|
115
|
+
remediation: 'Check network/proxy settings, then rerun `paper-search search "machine learning" --platform crossref --max-results 1 --pretty`.'
|
|
116
|
+
},
|
|
117
|
+
{
|
|
118
|
+
name: 'Sci-Hub availability fallback',
|
|
119
|
+
tool: 'check_scihub_mirrors',
|
|
120
|
+
args: { forceCheck: true },
|
|
121
|
+
severity: 'degraded',
|
|
122
|
+
enabled: true,
|
|
123
|
+
passMessage: 'Sci-Hub fallback is enabled and at least one mirror is reachable.',
|
|
124
|
+
failMessage: 'Sci-Hub fallback is enabled, but no mirror passed the lightweight availability check',
|
|
125
|
+
remediation: 'Check local network access to Sci-Hub mirrors, proxy settings, or rerun later. Live smoke does not download PDFs.',
|
|
126
|
+
validate: result => Array.isArray(result.data) && result.data.some((item) => item?.status === 'Working')
|
|
127
|
+
},
|
|
128
|
+
{
|
|
129
|
+
name: 'Semantic Scholar snippet capability',
|
|
130
|
+
tool: 'search_semantic_snippets',
|
|
131
|
+
args: { query: 'machine learning', limit: 1 },
|
|
132
|
+
severity: 'degraded',
|
|
133
|
+
configured: hasSemantic,
|
|
134
|
+
skipWhen: !hasSemantic,
|
|
135
|
+
skipMessage: 'SEMANTIC_SCHOLAR_API_KEY is not configured; body snippet live check skipped.',
|
|
136
|
+
passMessage: 'SEMANTIC_SCHOLAR_API_KEY is configured and snippet search responded.',
|
|
137
|
+
failMessage: 'SEMANTIC_SCHOLAR_API_KEY is configured, but snippet search could not be verified',
|
|
138
|
+
remediation: 'Run `paper-search config get SEMANTIC_SCHOLAR_API_KEY --pretty`, confirm the key is valid and has quota, then rerun `paper-search run search_semantic_snippets --arg query="machine learning" --arg limit=1 --pretty`.'
|
|
139
|
+
},
|
|
140
|
+
{
|
|
141
|
+
name: 'EasyScholar journal metrics',
|
|
142
|
+
tool: 'query_journal_metrics',
|
|
143
|
+
args: { journals: ['Nature'] },
|
|
144
|
+
severity: 'degraded',
|
|
145
|
+
configured: hasEasyScholar,
|
|
146
|
+
skipWhen: !hasEasyScholar,
|
|
147
|
+
skipMessage: 'EASYSCHOLAR_KEY is not configured; journal metrics live check skipped.',
|
|
148
|
+
passMessage: 'EASYSCHOLAR_KEY is configured and journal metrics responded.',
|
|
149
|
+
failMessage: 'EASYSCHOLAR_KEY is configured, but journal metrics could not be verified',
|
|
150
|
+
remediation: 'Run `paper-search config get EASYSCHOLAR_KEY --pretty`, confirm the EasyScholar SecretKey is valid, then rerun `paper-search journal-metrics "Nature" --pretty`.'
|
|
151
|
+
},
|
|
152
|
+
{
|
|
153
|
+
name: 'Web of Science metadata',
|
|
154
|
+
tool: 'search_webofscience',
|
|
155
|
+
args: { query: 'machine learning', maxResults: 1 },
|
|
156
|
+
severity: 'degraded',
|
|
157
|
+
configured: hasWos,
|
|
158
|
+
skipWhen: !hasWos,
|
|
159
|
+
skipMessage: 'WOS_API_KEY is not configured; Web of Science live check skipped.',
|
|
160
|
+
passMessage: 'WOS_API_KEY is configured and Web of Science metadata responded.',
|
|
161
|
+
failMessage: 'WOS_API_KEY is configured, but Web of Science metadata could not be verified',
|
|
162
|
+
remediation: 'Run `paper-search config get WOS_API_KEY --pretty`, confirm Clarivate API entitlement/version, then rerun `paper-search run search_webofscience --arg query="machine learning" --arg maxResults=1 --pretty`.'
|
|
163
|
+
},
|
|
164
|
+
{
|
|
165
|
+
name: 'ScienceDirect metadata',
|
|
166
|
+
tool: 'search_sciencedirect',
|
|
167
|
+
args: { query: 'machine learning', maxResults: 1 },
|
|
168
|
+
severity: 'degraded',
|
|
169
|
+
configured: hasElsevier,
|
|
170
|
+
skipWhen: !hasElsevier,
|
|
171
|
+
skipMessage: 'ELSEVIER_API_KEY is not configured; ScienceDirect live check skipped.',
|
|
172
|
+
passMessage: 'ELSEVIER_API_KEY is configured and ScienceDirect metadata responded.',
|
|
173
|
+
failMessage: 'ELSEVIER_API_KEY is configured, but ScienceDirect metadata could not be verified',
|
|
174
|
+
remediation: 'Run `paper-search config get ELSEVIER_API_KEY --pretty`, confirm Elsevier product entitlement, then rerun `paper-search run search_sciencedirect --arg query="machine learning" --arg maxResults=1 --pretty`.'
|
|
175
|
+
},
|
|
176
|
+
{
|
|
177
|
+
name: 'Scopus metadata',
|
|
178
|
+
tool: 'search_scopus',
|
|
179
|
+
args: { query: 'machine learning', maxResults: 1 },
|
|
180
|
+
severity: 'degraded',
|
|
181
|
+
configured: hasElsevier,
|
|
182
|
+
skipWhen: !hasElsevier,
|
|
183
|
+
skipMessage: 'ELSEVIER_API_KEY is not configured; Scopus live check skipped.',
|
|
184
|
+
passMessage: 'ELSEVIER_API_KEY is configured and Scopus metadata responded.',
|
|
185
|
+
failMessage: 'ELSEVIER_API_KEY is configured, but Scopus metadata could not be verified',
|
|
186
|
+
remediation: 'Confirm the Elsevier key has Scopus entitlement; ScienceDirect access does not automatically imply Scopus access.'
|
|
187
|
+
},
|
|
188
|
+
{
|
|
189
|
+
name: 'Springer metadata',
|
|
190
|
+
tool: 'search_springer',
|
|
191
|
+
args: { query: 'machine learning', maxResults: 1 },
|
|
192
|
+
severity: 'degraded',
|
|
193
|
+
configured: hasSpringer,
|
|
194
|
+
skipWhen: !hasSpringer,
|
|
195
|
+
skipMessage: 'SPRINGER_API_KEY is not configured; Springer live check skipped.',
|
|
196
|
+
passMessage: 'SPRINGER_API_KEY is configured and Springer metadata responded.',
|
|
197
|
+
failMessage: 'SPRINGER_API_KEY is configured, but Springer metadata could not be verified',
|
|
198
|
+
remediation: 'Run `paper-search config get SPRINGER_API_KEY --pretty`, confirm Springer API entitlement, then rerun `paper-search run search_springer --arg query="machine learning" --arg maxResults=1 --pretty`.'
|
|
199
|
+
},
|
|
200
|
+
{
|
|
201
|
+
name: 'IEEE metadata',
|
|
202
|
+
tool: 'search_ieee',
|
|
203
|
+
args: { query: 'machine learning', maxResults: 1 },
|
|
204
|
+
severity: 'degraded',
|
|
205
|
+
configured: hasIeee,
|
|
206
|
+
skipWhen: !hasIeee,
|
|
207
|
+
skipMessage: 'IEEE_API_KEY is not configured; IEEE live check skipped.',
|
|
208
|
+
passMessage: 'IEEE_API_KEY is configured and IEEE metadata responded.',
|
|
209
|
+
failMessage: 'IEEE_API_KEY is configured, but IEEE metadata could not be verified',
|
|
210
|
+
remediation: 'Run `paper-search config get IEEE_API_KEY --pretty`, confirm IEEE Xplore API entitlement, then rerun `paper-search run search_ieee --arg query="machine learning" --arg maxResults=1 --pretty`.'
|
|
211
|
+
},
|
|
212
|
+
{
|
|
213
|
+
name: 'Wiley TDM token',
|
|
214
|
+
severity: 'warning',
|
|
215
|
+
configured: hasWiley,
|
|
216
|
+
skipWhen: true,
|
|
217
|
+
skipMessage: hasWiley
|
|
218
|
+
? 'WILEY_TDM_TOKEN is configured, but live smoke avoids Wiley DOI/full-text download checks.'
|
|
219
|
+
: 'WILEY_TDM_TOKEN is not configured; Wiley live check skipped.',
|
|
220
|
+
passMessage: 'Wiley TDM live smoke skipped.',
|
|
221
|
+
failMessage: 'Wiley TDM live smoke skipped',
|
|
222
|
+
remediation: 'Use `paper-search download <doi> --platform wiley --pretty` only when you intentionally want to test Wiley DOI download access.'
|
|
223
|
+
}
|
|
224
|
+
];
|
|
225
|
+
}
|
|
226
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/management/smoke/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"aliases.d.ts","sourceRoot":"","sources":["../../src/registry/aliases.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,WAAW,EACX,eAAe,EACf,iBAAiB,EAClB,MAAM,uBAAuB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"aliases.js","sourceRoot":"","sources":["../../src/registry/aliases.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,WAAW,EACX,eAAe,EACf,iBAAiB,EAClB,MAAM,uBAAuB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"httpPolicies.d.ts","sourceRoot":"","sources":["../../src/registry/httpPolicies.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,sCAAsC,CAAC;AAEvE,eAAO,MAAM,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,CAepD,CAAC"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
export const HTTP_POLICIES = {
|
|
2
|
+
crossref: {
|
|
3
|
+
rateLimit: { rps: 1 },
|
|
4
|
+
cache: { ttlMs: 3_600_000 },
|
|
5
|
+
timeoutMs: 10_000
|
|
6
|
+
},
|
|
7
|
+
openalex: {
|
|
8
|
+
rateLimit: { rps: 1 },
|
|
9
|
+
cache: { ttlMs: 3_600_000 },
|
|
10
|
+
timeoutMs: 10_000
|
|
11
|
+
},
|
|
12
|
+
arxiv: {
|
|
13
|
+
rateLimit: { rps: 0.33 },
|
|
14
|
+
timeoutMs: 10_000
|
|
15
|
+
}
|
|
16
|
+
};
|
|
17
|
+
//# sourceMappingURL=httpPolicies.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"httpPolicies.js","sourceRoot":"","sources":["../../src/registry/httpPolicies.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,aAAa,GAA+B;IACvD,QAAQ,EAAE;QACR,SAAS,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE;QACrB,KAAK,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE;QAC3B,SAAS,EAAE,MAAM;KAClB;IACD,QAAQ,EAAE;QACR,SAAS,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE;QACrB,KAAK,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE;QAC3B,SAAS,EAAE,MAAM;KAClB;IACD,KAAK,EAAE;QACL,SAAS,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE;QACxB,SAAS,EAAE,MAAM;KAClB;CACF,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { PaperSource } from '../platforms/PaperSource.js';
|
|
2
|
+
export interface PlatformFactoryContext {
|
|
3
|
+
env: NodeJS.ProcessEnv;
|
|
4
|
+
instances: Record<string, PaperSource>;
|
|
5
|
+
}
|
|
6
|
+
export type PlatformFactory = (context: PlatformFactoryContext) => PaperSource;
|
|
7
|
+
export declare const PLATFORM_FACTORIES: Record<string, PlatformFactory>;
|
|
8
|
+
//# sourceMappingURL=platformFactories.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"platformFactories.d.ts","sourceRoot":"","sources":["../../src/registry/platformFactories.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAC;AA0B/D,MAAM,WAAW,sBAAsB;IACrC,GAAG,EAAE,MAAM,CAAC,UAAU,CAAC;IACvB,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;CACxC;AAED,MAAM,MAAM,eAAe,GAAG,CAAC,OAAO,EAAE,sBAAsB,KAAK,WAAW,CAAC;AAE/E,eAAO,MAAM,kBAAkB,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,CA6B9D,CAAC"}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
import { ACMSearcher } from '../platforms/ACMSearcher.js';
|
|
2
|
+
import { ArxivSearcher } from '../platforms/ArxivSearcher.js';
|
|
3
|
+
import { BioRxivSearcher, MedRxivSearcher } from '../platforms/BioRxivSearcher.js';
|
|
4
|
+
import { CORESearcher } from '../platforms/CORESearcher.js';
|
|
5
|
+
import { CrossrefSearcher } from '../platforms/CrossrefSearcher.js';
|
|
6
|
+
import { DBLPSearcher } from '../platforms/DBLPSearcher.js';
|
|
7
|
+
import { EuropePMCSearcher } from '../platforms/EuropePMCSearcher.js';
|
|
8
|
+
import { GoogleScholarSearcher } from '../platforms/GoogleScholarSearcher.js';
|
|
9
|
+
import { IACRSearcher } from '../platforms/IACRSearcher.js';
|
|
10
|
+
import { IEEESearcher } from '../platforms/IEEESearcher.js';
|
|
11
|
+
import { OpenAIRESearcher } from '../platforms/OpenAIRESearcher.js';
|
|
12
|
+
import { OpenAlexSearcher } from '../platforms/OpenAlexSearcher.js';
|
|
13
|
+
import { OpenReviewSearcher } from '../platforms/OpenReviewSearcher.js';
|
|
14
|
+
import { PMCSearcher } from '../platforms/PMCSearcher.js';
|
|
15
|
+
import { PubMedSearcher } from '../platforms/PubMedSearcher.js';
|
|
16
|
+
import { ScienceDirectSearcher } from '../platforms/ScienceDirectSearcher.js';
|
|
17
|
+
import { SciHubSearcher } from '../platforms/SciHubSearcher.js';
|
|
18
|
+
import { ScopusSearcher } from '../platforms/ScopusSearcher.js';
|
|
19
|
+
import { SemanticScholarSearcher } from '../platforms/SemanticScholarSearcher.js';
|
|
20
|
+
import { SpringerSearcher } from '../platforms/SpringerSearcher.js';
|
|
21
|
+
import { UnpaywallSearcher } from '../platforms/UnpaywallSearcher.js';
|
|
22
|
+
import { USENIXSearcher } from '../platforms/USENIXSearcher.js';
|
|
23
|
+
import { WebOfScienceSearcher } from '../platforms/WebOfScienceSearcher.js';
|
|
24
|
+
import { WileySearcher } from '../platforms/WileySearcher.js';
|
|
25
|
+
export const PLATFORM_FACTORIES = {
|
|
26
|
+
crossref: ({ env }) => new CrossrefSearcher(env.CROSSREF_MAILTO),
|
|
27
|
+
openalex: () => new OpenAlexSearcher(),
|
|
28
|
+
pubmed: ({ env }) => new PubMedSearcher(env.PUBMED_API_KEY),
|
|
29
|
+
pmc: () => new PMCSearcher(),
|
|
30
|
+
europepmc: () => new EuropePMCSearcher(),
|
|
31
|
+
arxiv: () => new ArxivSearcher(),
|
|
32
|
+
biorxiv: () => new BioRxivSearcher('biorxiv'),
|
|
33
|
+
medrxiv: () => new MedRxivSearcher(),
|
|
34
|
+
semantic: ({ env }) => new SemanticScholarSearcher(env.SEMANTIC_SCHOLAR_API_KEY),
|
|
35
|
+
iacr: () => new IACRSearcher(),
|
|
36
|
+
core: () => new CORESearcher(),
|
|
37
|
+
openaire: () => new OpenAIRESearcher(),
|
|
38
|
+
googlescholar: () => new GoogleScholarSearcher(),
|
|
39
|
+
webofscience: ({ env }) => new WebOfScienceSearcher(env.WOS_API_KEY, env.WOS_API_VERSION),
|
|
40
|
+
sciencedirect: ({ env }) => new ScienceDirectSearcher(env.ELSEVIER_API_KEY),
|
|
41
|
+
springer: ({ env }) => new SpringerSearcher(env.SPRINGER_API_KEY, env.SPRINGER_OPENACCESS_API_KEY),
|
|
42
|
+
scopus: ({ env }) => new ScopusSearcher(env.ELSEVIER_API_KEY),
|
|
43
|
+
scihub: () => new SciHubSearcher(),
|
|
44
|
+
unpaywall: () => new UnpaywallSearcher(),
|
|
45
|
+
dblp: () => new DBLPSearcher(),
|
|
46
|
+
ieee: ({ env }) => new IEEESearcher(env.IEEE_API_KEY),
|
|
47
|
+
acm: ({ env }) => new ACMSearcher(env.CROSSREF_MAILTO),
|
|
48
|
+
usenix: ({ instances }) => {
|
|
49
|
+
const dblp = instances.dblp instanceof DBLPSearcher ? instances.dblp : new DBLPSearcher();
|
|
50
|
+
return new USENIXSearcher(dblp);
|
|
51
|
+
},
|
|
52
|
+
openreview: () => new OpenReviewSearcher(),
|
|
53
|
+
wiley: ({ env }) => new WileySearcher(env.WILEY_TDM_TOKEN)
|
|
54
|
+
};
|
|
55
|
+
//# sourceMappingURL=platformFactories.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"platformFactories.js","sourceRoot":"","sources":["../../src/registry/platformFactories.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import type { SearchOptions } from '../platforms/PaperSource.js';
|
|
2
|
+
export type PlatformSourceKind = 'official-api' | 'metadata-proxy' | 'html' | 'alias';
|
|
3
|
+
export type CapabilityGroup = 'metadata_search' | 'citation_expansion' | 'body_snippet_search' | 'journal_metrics' | 'pdf_discovery' | 'entitled_access';
|
|
4
|
+
export type PlatformSchemaKind = 'generic' | 'arxiv' | 'webofscience' | 'pubmed' | 'biorxiv' | 'medrxiv' | 'semantic-scholar' | 'google-scholar' | 'iacr' | 'core' | 'springer' | 'sciencedirect' | 'scopus' | 'wiley-deprecated' | 'crossref' | 'openalex' | 'pmc-style' | 'unpaywall' | 'scihub' | 'custom';
|
|
5
|
+
export interface PlatformMetadata {
|
|
6
|
+
id: string;
|
|
7
|
+
aliases?: string[];
|
|
8
|
+
displayName: string;
|
|
9
|
+
sourceKind: PlatformSourceKind;
|
|
10
|
+
defaultInAll: boolean;
|
|
11
|
+
directTool?: boolean;
|
|
12
|
+
toolName?: string;
|
|
13
|
+
configKeys?: string[][];
|
|
14
|
+
optionalConfigKeys?: string[][];
|
|
15
|
+
supportedOptions: (keyof SearchOptions)[];
|
|
16
|
+
schemaKind?: PlatformSchemaKind;
|
|
17
|
+
optionCaps?: {
|
|
18
|
+
maxResults?: number;
|
|
19
|
+
};
|
|
20
|
+
capabilityGroups?: CapabilityGroup[];
|
|
21
|
+
supportsDoiLookup?: boolean;
|
|
22
|
+
isRepository?: boolean;
|
|
23
|
+
description?: string;
|
|
24
|
+
}
|
|
25
|
+
export declare const PLATFORM_METADATA: PlatformMetadata[];
|
|
26
|
+
export declare const SEARCH_PLATFORM_IDS: string[];
|
|
27
|
+
export declare const SEARCH_PLATFORM_VALUES: string[];
|
|
28
|
+
export declare const DEFAULT_ALL_SOURCES: string[];
|
|
29
|
+
export declare function resolvePlatformId(platform: string): string;
|
|
30
|
+
export declare function isPlatformAlias(platform: string): boolean;
|
|
31
|
+
export declare function isKnownSearchPlatform(platform: string): boolean;
|
|
32
|
+
export declare function getPlatformMetadata(platform: string): PlatformMetadata | undefined;
|
|
33
|
+
export declare function getDefaultAllSources(): string[];
|
|
34
|
+
export declare function getAliasMap(): Record<string, string>;
|
|
35
|
+
export declare function getGenericSearchToolPlatform(toolName: string): string | undefined;
|
|
36
|
+
export declare function getGenericSearchToolNames(): string[];
|
|
37
|
+
export declare function getPlatformToolDescriptors(): PlatformMetadata[];
|
|
38
|
+
export declare function getGenericPlatformToolDescriptors(): PlatformMetadata[];
|
|
39
|
+
//# sourceMappingURL=platformMetadata.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"platformMetadata.d.ts","sourceRoot":"","sources":["../../src/registry/platformMetadata.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAEjE,MAAM,MAAM,kBAAkB,GAAG,cAAc,GAAG,gBAAgB,GAAG,MAAM,GAAG,OAAO,CAAC;AACtF,MAAM,MAAM,eAAe,GACvB,iBAAiB,GACjB,oBAAoB,GACpB,qBAAqB,GACrB,iBAAiB,GACjB,eAAe,GACf,iBAAiB,CAAC;AACtB,MAAM,MAAM,kBAAkB,GAC1B,SAAS,GACT,OAAO,GACP,cAAc,GACd,QAAQ,GACR,SAAS,GACT,SAAS,GACT,kBAAkB,GAClB,gBAAgB,GAChB,MAAM,GACN,MAAM,GACN,UAAU,GACV,eAAe,GACf,QAAQ,GACR,kBAAkB,GAClB,UAAU,GACV,UAAU,GACV,WAAW,GACX,WAAW,GACX,QAAQ,GACR,QAAQ,CAAC;AAEb,MAAM,WAAW,gBAAgB;IAC/B,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,kBAAkB,CAAC;IAC/B,YAAY,EAAE,OAAO,CAAC;IACtB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,EAAE,EAAE,CAAC;IACxB,kBAAkB,CAAC,EAAE,MAAM,EAAE,EAAE,CAAC;IAChC,gBAAgB,EAAE,CAAC,MAAM,aAAa,CAAC,EAAE,CAAC;IAC1C,UAAU,CAAC,EAAE,kBAAkB,CAAC;IAChC,UAAU,CAAC,EAAE;QAAE,UAAU,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IACrC,gBAAgB,CAAC,EAAE,eAAe,EAAE,CAAC;IACrC,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,eAAO,MAAM,iBAAiB,EAAE,gBAAgB,EAqQ/C,CAAC;AAEF,eAAO,MAAM,mBAAmB,UAAiD,CAAC;AAClF,eAAO,MAAM,sBAAsB,UAGjC,CAAC;AACH,eAAO,MAAM,mBAAmB,UAED,CAAC;AAehC,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAG1D;AAED,wBAAgB,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAEzD;AAED,wBAAgB,qBAAqB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAG/D;AAED,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,MAAM,GAAG,gBAAgB,GAAG,SAAS,CAElF;AAED,wBAAgB,oBAAoB,IAAI,MAAM,EAAE,CAE/C;AAED,wBAAgB,WAAW,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAEpD;AAED,wBAAgB,4BAA4B,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAMjF;AAED,wBAAgB,yBAAyB,IAAI,MAAM,EAAE,CAKpD;AAED,wBAAgB,0BAA0B,IAAI,gBAAgB,EAAE,CAE/D;AAED,wBAAgB,iCAAiC,IAAI,gBAAgB,EAAE,CAEtE"}
|