@mweinbach/apple-docs-mcp 1.0.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/LICENSE +21 -0
- package/README.md +560 -0
- package/dist/constants/browser-headers.d.ts +48 -0
- package/dist/constants/browser-headers.d.ts.map +1 -0
- package/dist/constants/browser-headers.js +166 -0
- package/dist/constants/browser-headers.js.map +1 -0
- package/dist/index.d.ts +83 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +215 -0
- package/dist/index.js.map +1 -0
- package/dist/schemas/analyze-api.schema.d.ts +42 -0
- package/dist/schemas/analyze-api.schema.d.ts.map +1 -0
- package/dist/schemas/analyze-api.schema.js +23 -0
- package/dist/schemas/analyze-api.schema.js.map +1 -0
- package/dist/schemas/apple-docs.schema.d.ts +18 -0
- package/dist/schemas/apple-docs.schema.d.ts.map +1 -0
- package/dist/schemas/apple-docs.schema.js +10 -0
- package/dist/schemas/apple-docs.schema.js.map +1 -0
- package/dist/schemas/doc-content.schema.d.ts +24 -0
- package/dist/schemas/doc-content.schema.d.ts.map +1 -0
- package/dist/schemas/doc-content.schema.js +10 -0
- package/dist/schemas/doc-content.schema.js.map +1 -0
- package/dist/schemas/documentation-updates.schema.d.ts +27 -0
- package/dist/schemas/documentation-updates.schema.d.ts.map +1 -0
- package/dist/schemas/documentation-updates.schema.js +12 -0
- package/dist/schemas/documentation-updates.schema.js.map +1 -0
- package/dist/schemas/framework-symbols.schema.d.ts +24 -0
- package/dist/schemas/framework-symbols.schema.d.ts.map +1 -0
- package/dist/schemas/framework-symbols.schema.js +11 -0
- package/dist/schemas/framework-symbols.schema.js.map +1 -0
- package/dist/schemas/index.d.ts +15 -0
- package/dist/schemas/index.d.ts.map +1 -0
- package/dist/schemas/index.js +15 -0
- package/dist/schemas/index.js.map +1 -0
- package/dist/schemas/platform-compatibility.schema.d.ts +18 -0
- package/dist/schemas/platform-compatibility.schema.d.ts.map +1 -0
- package/dist/schemas/platform-compatibility.schema.js +8 -0
- package/dist/schemas/platform-compatibility.schema.js.map +1 -0
- package/dist/schemas/references.schema.d.ts +18 -0
- package/dist/schemas/references.schema.d.ts.map +1 -0
- package/dist/schemas/references.schema.js +9 -0
- package/dist/schemas/references.schema.js.map +1 -0
- package/dist/schemas/related-apis.schema.d.ts +21 -0
- package/dist/schemas/related-apis.schema.d.ts.map +1 -0
- package/dist/schemas/related-apis.schema.js +9 -0
- package/dist/schemas/related-apis.schema.js.map +1 -0
- package/dist/schemas/sample-code.schema.d.ts +21 -0
- package/dist/schemas/sample-code.schema.d.ts.map +1 -0
- package/dist/schemas/sample-code.schema.js +10 -0
- package/dist/schemas/sample-code.schema.js.map +1 -0
- package/dist/schemas/search.schema.d.ts +15 -0
- package/dist/schemas/search.schema.d.ts.map +1 -0
- package/dist/schemas/search.schema.js +8 -0
- package/dist/schemas/search.schema.js.map +1 -0
- package/dist/schemas/similar-apis.schema.d.ts +21 -0
- package/dist/schemas/similar-apis.schema.d.ts.map +1 -0
- package/dist/schemas/similar-apis.schema.js +9 -0
- package/dist/schemas/similar-apis.schema.js.map +1 -0
- package/dist/schemas/technologies.schema.d.ts +21 -0
- package/dist/schemas/technologies.schema.d.ts.map +1 -0
- package/dist/schemas/technologies.schema.js +10 -0
- package/dist/schemas/technologies.schema.js.map +1 -0
- package/dist/schemas/technology-overviews.schema.d.ts +24 -0
- package/dist/schemas/technology-overviews.schema.d.ts.map +1 -0
- package/dist/schemas/technology-overviews.schema.js +11 -0
- package/dist/schemas/technology-overviews.schema.js.map +1 -0
- package/dist/schemas/wwdc.schemas.d.ts +208 -0
- package/dist/schemas/wwdc.schemas.d.ts.map +1 -0
- package/dist/schemas/wwdc.schemas.js +97 -0
- package/dist/schemas/wwdc.schemas.js.map +1 -0
- package/dist/tools/definitions.d.ts +10 -0
- package/dist/tools/definitions.d.ts.map +1 -0
- package/dist/tools/definitions.js +690 -0
- package/dist/tools/definitions.js.map +1 -0
- package/dist/tools/doc-fetcher.d.ts +19 -0
- package/dist/tools/doc-fetcher.d.ts.map +1 -0
- package/dist/tools/doc-fetcher.js +487 -0
- package/dist/tools/doc-fetcher.js.map +1 -0
- package/dist/tools/doc-formatter.d.ts +69 -0
- package/dist/tools/doc-formatter.d.ts.map +1 -0
- package/dist/tools/doc-formatter.js +208 -0
- package/dist/tools/doc-formatter.js.map +1 -0
- package/dist/tools/find-similar-apis.d.ts +5 -0
- package/dist/tools/find-similar-apis.d.ts.map +1 -0
- package/dist/tools/find-similar-apis.js +275 -0
- package/dist/tools/find-similar-apis.js.map +1 -0
- package/dist/tools/get-documentation-updates.d.ts +5 -0
- package/dist/tools/get-documentation-updates.d.ts.map +1 -0
- package/dist/tools/get-documentation-updates.js +244 -0
- package/dist/tools/get-documentation-updates.js.map +1 -0
- package/dist/tools/get-platform-compatibility.d.ts +5 -0
- package/dist/tools/get-platform-compatibility.d.ts.map +1 -0
- package/dist/tools/get-platform-compatibility.js +205 -0
- package/dist/tools/get-platform-compatibility.js.map +1 -0
- package/dist/tools/get-related-apis.d.ts +5 -0
- package/dist/tools/get-related-apis.d.ts.map +1 -0
- package/dist/tools/get-related-apis.js +155 -0
- package/dist/tools/get-related-apis.js.map +1 -0
- package/dist/tools/get-sample-code.d.ts +5 -0
- package/dist/tools/get-sample-code.d.ts.map +1 -0
- package/dist/tools/get-sample-code.js +375 -0
- package/dist/tools/get-sample-code.js.map +1 -0
- package/dist/tools/get-technology-overviews.d.ts +5 -0
- package/dist/tools/get-technology-overviews.d.ts.map +1 -0
- package/dist/tools/get-technology-overviews.js +306 -0
- package/dist/tools/get-technology-overviews.js.map +1 -0
- package/dist/tools/handlers.d.ts +29 -0
- package/dist/tools/handlers.d.ts.map +1 -0
- package/dist/tools/handlers.js +350 -0
- package/dist/tools/handlers.js.map +1 -0
- package/dist/tools/list-technologies.d.ts +5 -0
- package/dist/tools/list-technologies.d.ts.map +1 -0
- package/dist/tools/list-technologies.js +165 -0
- package/dist/tools/list-technologies.js.map +1 -0
- package/dist/tools/resolve-references-batch.d.ts +5 -0
- package/dist/tools/resolve-references-batch.d.ts.map +1 -0
- package/dist/tools/resolve-references-batch.js +199 -0
- package/dist/tools/resolve-references-batch.js.map +1 -0
- package/dist/tools/search-framework-symbols.d.ts +7 -0
- package/dist/tools/search-framework-symbols.d.ts.map +1 -0
- package/dist/tools/search-framework-symbols.js +235 -0
- package/dist/tools/search-framework-symbols.js.map +1 -0
- package/dist/tools/search-parser.d.ts +15 -0
- package/dist/tools/search-parser.d.ts.map +1 -0
- package/dist/tools/search-parser.js +188 -0
- package/dist/tools/search-parser.js.map +1 -0
- package/dist/tools/search-result-parser.d.ts +52 -0
- package/dist/tools/search-result-parser.d.ts.map +1 -0
- package/dist/tools/search-result-parser.js +137 -0
- package/dist/tools/search-result-parser.js.map +1 -0
- package/dist/tools/tools-guide.d.ts +124 -0
- package/dist/tools/tools-guide.d.ts.map +1 -0
- package/dist/tools/tools-guide.js +389 -0
- package/dist/tools/tools-guide.js.map +1 -0
- package/dist/tools/wwdc/content-extractor.d.ts +9 -0
- package/dist/tools/wwdc/content-extractor.d.ts.map +1 -0
- package/dist/tools/wwdc/content-extractor.js +520 -0
- package/dist/tools/wwdc/content-extractor.js.map +1 -0
- package/dist/tools/wwdc/topics-extractor.d.ts +32 -0
- package/dist/tools/wwdc/topics-extractor.d.ts.map +1 -0
- package/dist/tools/wwdc/topics-extractor.js +146 -0
- package/dist/tools/wwdc/topics-extractor.js.map +1 -0
- package/dist/tools/wwdc/video-list-extractor.d.ts +13 -0
- package/dist/tools/wwdc/video-list-extractor.d.ts.map +1 -0
- package/dist/tools/wwdc/video-list-extractor.js +238 -0
- package/dist/tools/wwdc/video-list-extractor.js.map +1 -0
- package/dist/tools/wwdc/wwdc-handlers.d.ts +32 -0
- package/dist/tools/wwdc/wwdc-handlers.d.ts.map +1 -0
- package/dist/tools/wwdc/wwdc-handlers.js +791 -0
- package/dist/tools/wwdc/wwdc-handlers.js.map +1 -0
- package/dist/types/apple-docs.d.ts +112 -0
- package/dist/types/apple-docs.d.ts.map +1 -0
- package/dist/types/apple-docs.js +5 -0
- package/dist/types/apple-docs.js.map +1 -0
- package/dist/types/cache.d.ts +28 -0
- package/dist/types/cache.d.ts.map +1 -0
- package/dist/types/cache.js +5 -0
- package/dist/types/cache.js.map +1 -0
- package/dist/types/content-sections.d.ts +37 -0
- package/dist/types/content-sections.d.ts.map +1 -0
- package/dist/types/content-sections.js +5 -0
- package/dist/types/content-sections.js.map +1 -0
- package/dist/types/error.d.ts +39 -0
- package/dist/types/error.d.ts.map +1 -0
- package/dist/types/error.js +21 -0
- package/dist/types/error.js.map +1 -0
- package/dist/types/headers.d.ts +95 -0
- package/dist/types/headers.d.ts.map +1 -0
- package/dist/types/headers.js +5 -0
- package/dist/types/headers.js.map +1 -0
- package/dist/types/http.d.ts +31 -0
- package/dist/types/http.d.ts.map +1 -0
- package/dist/types/http.js +5 -0
- package/dist/types/http.js.map +1 -0
- package/dist/types/index.d.ts +11 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +12 -0
- package/dist/types/index.js.map +1 -0
- package/dist/types/search.d.ts +62 -0
- package/dist/types/search.d.ts.map +1 -0
- package/dist/types/search.js +5 -0
- package/dist/types/search.js.map +1 -0
- package/dist/types/sections.d.ts +64 -0
- package/dist/types/sections.d.ts.map +1 -0
- package/dist/types/sections.js +5 -0
- package/dist/types/sections.js.map +1 -0
- package/dist/types/tools/platform.d.ts +33 -0
- package/dist/types/tools/platform.d.ts.map +1 -0
- package/dist/types/tools/platform.js +5 -0
- package/dist/types/tools/platform.js.map +1 -0
- package/dist/types/tools/sample-code.d.ts +23 -0
- package/dist/types/tools/sample-code.d.ts.map +1 -0
- package/dist/types/tools/sample-code.js +5 -0
- package/dist/types/tools/sample-code.js.map +1 -0
- package/dist/types/tools/technology.d.ts +18 -0
- package/dist/types/tools/technology.d.ts.map +1 -0
- package/dist/types/tools/technology.js +5 -0
- package/dist/types/tools/technology.js.map +1 -0
- package/dist/types/tools/updates.d.ts +23 -0
- package/dist/types/tools/updates.d.ts.map +1 -0
- package/dist/types/tools/updates.js +5 -0
- package/dist/types/tools/updates.js.map +1 -0
- package/dist/types/wwdc.d.ts +200 -0
- package/dist/types/wwdc.d.ts.map +1 -0
- package/dist/types/wwdc.js +5 -0
- package/dist/types/wwdc.js.map +1 -0
- package/dist/utils/cache-warmer.d.ts +22 -0
- package/dist/utils/cache-warmer.d.ts.map +1 -0
- package/dist/utils/cache-warmer.js +115 -0
- package/dist/utils/cache-warmer.js.map +1 -0
- package/dist/utils/cache.d.ts +109 -0
- package/dist/utils/cache.d.ts.map +1 -0
- package/dist/utils/cache.js +302 -0
- package/dist/utils/cache.js.map +1 -0
- package/dist/utils/constants.d.ts +178 -0
- package/dist/utils/constants.d.ts.map +1 -0
- package/dist/utils/constants.js +266 -0
- package/dist/utils/constants.js.map +1 -0
- package/dist/utils/error-handler.d.ts +80 -0
- package/dist/utils/error-handler.d.ts.map +1 -0
- package/dist/utils/error-handler.js +437 -0
- package/dist/utils/error-handler.js.map +1 -0
- package/dist/utils/framework-mapper.d.ts +84 -0
- package/dist/utils/framework-mapper.d.ts.map +1 -0
- package/dist/utils/framework-mapper.js +534 -0
- package/dist/utils/framework-mapper.js.map +1 -0
- package/dist/utils/http-client.d.ts +130 -0
- package/dist/utils/http-client.d.ts.map +1 -0
- package/dist/utils/http-client.js +464 -0
- package/dist/utils/http-client.js.map +1 -0
- package/dist/utils/http-headers-generator.d.ts +151 -0
- package/dist/utils/http-headers-generator.d.ts.map +1 -0
- package/dist/utils/http-headers-generator.js +407 -0
- package/dist/utils/http-headers-generator.js.map +1 -0
- package/dist/utils/logger.d.ts +44 -0
- package/dist/utils/logger.d.ts.map +1 -0
- package/dist/utils/logger.js +73 -0
- package/dist/utils/logger.js.map +1 -0
- package/dist/utils/preloader.d.ts +20 -0
- package/dist/utils/preloader.d.ts.map +1 -0
- package/dist/utils/preloader.js +82 -0
- package/dist/utils/preloader.js.map +1 -0
- package/dist/utils/rate-limiter.d.ts +28 -0
- package/dist/utils/rate-limiter.d.ts.map +1 -0
- package/dist/utils/rate-limiter.js +48 -0
- package/dist/utils/rate-limiter.js.map +1 -0
- package/dist/utils/topic-mapper.d.ts +18 -0
- package/dist/utils/topic-mapper.d.ts.map +1 -0
- package/dist/utils/topic-mapper.js +182 -0
- package/dist/utils/topic-mapper.js.map +1 -0
- package/dist/utils/url-converter.d.ts +22 -0
- package/dist/utils/url-converter.d.ts.map +1 -0
- package/dist/utils/url-converter.js +70 -0
- package/dist/utils/url-converter.js.map +1 -0
- package/dist/utils/user-agent-pool.d.ts +241 -0
- package/dist/utils/user-agent-pool.d.ts.map +1 -0
- package/dist/utils/user-agent-pool.js +557 -0
- package/dist/utils/user-agent-pool.js.map +1 -0
- package/dist/utils/wwdc-data-source-path.d.ts +9 -0
- package/dist/utils/wwdc-data-source-path.d.ts.map +1 -0
- package/dist/utils/wwdc-data-source-path.js +22 -0
- package/dist/utils/wwdc-data-source-path.js.map +1 -0
- package/dist/utils/wwdc-data-source.d.ts +36 -0
- package/dist/utils/wwdc-data-source.d.ts.map +1 -0
- package/dist/utils/wwdc-data-source.js +133 -0
- package/dist/utils/wwdc-data-source.js.map +1 -0
- package/package.json +83 -0
|
@@ -0,0 +1,350 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Tool handlers for Apple Developer Documentation MCP Server
|
|
3
|
+
* Optimized for agent context windows with compact output support
|
|
4
|
+
*/
|
|
5
|
+
import { z } from 'zod';
|
|
6
|
+
import { searchAppleDocsSchema, getAppleDocContentSchema, listTechnologiesSchema, searchFrameworkSymbolsSchema, getRelatedApisSchema, resolveReferencesBatchSchema, getPlatformCompatibilitySchema, findSimilarApisSchema, getDocumentationUpdatesSchema, getTechnologyOverviewsSchema, getSampleCodeSchema, wwdcSchema, analyzeApiSchema, appleDocsSchema, } from '../schemas/index.js';
|
|
7
|
+
import { listWWDCVideosSchema, searchWWDCContentSchema, getWWDCVideoSchema, getWWDCCodeExamplesSchema, browseWWDCTopicsSchema, findRelatedWWDCVideosSchema, } from '../schemas/wwdc.schemas.js';
|
|
8
|
+
import { handleListWWDCVideos, handleSearchWWDCContent, handleGetWWDCVideo, handleGetWWDCCodeExamples, handleBrowseWWDCTopics, handleFindRelatedWWDCVideos, handleListWWDCYears, } from './wwdc/wwdc-handlers.js';
|
|
9
|
+
import { handleGetToolGuide } from './tools-guide.js';
|
|
10
|
+
import { WWDC_CONFIG, API_LIMITS } from '../utils/constants.js';
|
|
11
|
+
/**
|
|
12
|
+
* Map of tool names to their handlers
|
|
13
|
+
*/
|
|
14
|
+
export const toolHandlers = {
|
|
15
|
+
get_performance_report: async () => {
|
|
16
|
+
const { httpClient } = await import('../utils/http-client.js');
|
|
17
|
+
const { getCacheWarmUpStatus } = await import('../utils/cache-warmer.js');
|
|
18
|
+
const { getPreloadStats } = await import('../utils/preloader.js');
|
|
19
|
+
const { globalRateLimiter } = await import('../utils/rate-limiter.js');
|
|
20
|
+
let report = '# Performance Report\n\n';
|
|
21
|
+
// HTTP Client Performance
|
|
22
|
+
report += httpClient.getPerformanceReport();
|
|
23
|
+
report += '\n\n';
|
|
24
|
+
// Cache Warm-up Status
|
|
25
|
+
const warmUpStatus = getCacheWarmUpStatus();
|
|
26
|
+
report += '## Cache Warm-up Status\n\n';
|
|
27
|
+
report += `- **Total Cache Entries:** ${warmUpStatus.totalCacheEntries}\n`;
|
|
28
|
+
report += `- **API Cache:** ${warmUpStatus.apiCacheSize} entries\n`;
|
|
29
|
+
report += `- **Technologies Cache:** ${warmUpStatus.technologiesCacheSize} entries\n`;
|
|
30
|
+
report += `- **Updates Cache:** ${warmUpStatus.updatesCacheSize} entries\n`;
|
|
31
|
+
report += `- **Overviews Cache:** ${warmUpStatus.overviewsCacheSize} entries\n\n`;
|
|
32
|
+
// Framework Preload Status
|
|
33
|
+
const preloadStats = getPreloadStats();
|
|
34
|
+
report += '## Framework Preload Status\n\n';
|
|
35
|
+
report += `- **Preloaded Frameworks:** ${preloadStats.preloadedFrameworks.join(', ')}\n`;
|
|
36
|
+
report += `- **Index Cache Hit Rate:** ${preloadStats.cacheHitRate}\n\n`;
|
|
37
|
+
// Rate Limiter Status
|
|
38
|
+
const rateLimiterStats = globalRateLimiter.getStats();
|
|
39
|
+
report += '## Rate Limiter Status\n\n';
|
|
40
|
+
report += `- **Current Requests:** ${rateLimiterStats.currentRequests}/${rateLimiterStats.maxRequests}\n`;
|
|
41
|
+
report += `- **Utilization:** ${rateLimiterStats.utilizationRate}\n`;
|
|
42
|
+
report += `- **Window:** ${rateLimiterStats.windowMs / 1000}s\n`;
|
|
43
|
+
return {
|
|
44
|
+
content: [
|
|
45
|
+
{
|
|
46
|
+
type: 'text',
|
|
47
|
+
text: report,
|
|
48
|
+
},
|
|
49
|
+
],
|
|
50
|
+
};
|
|
51
|
+
},
|
|
52
|
+
get_cache_stats: async () => {
|
|
53
|
+
const { apiCache, searchCache, indexCache, technologiesCache, updatesCache, sampleCodeCache, technologyOverviewsCache } = await import('../utils/cache.js');
|
|
54
|
+
const stats = {
|
|
55
|
+
apiCache: apiCache.getStats(),
|
|
56
|
+
searchCache: searchCache.getStats(),
|
|
57
|
+
indexCache: indexCache.getStats(),
|
|
58
|
+
technologiesCache: technologiesCache.getStats(),
|
|
59
|
+
updatesCache: updatesCache.getStats(),
|
|
60
|
+
sampleCodeCache: sampleCodeCache.getStats(),
|
|
61
|
+
technologyOverviewsCache: technologyOverviewsCache.getStats(),
|
|
62
|
+
};
|
|
63
|
+
let report = '# Cache Statistics Report\n\n';
|
|
64
|
+
Object.entries(stats).forEach(([name, stat]) => {
|
|
65
|
+
report += `## ${name}\n`;
|
|
66
|
+
report += `- Size: ${stat.size}/${stat.maxSize}\n`;
|
|
67
|
+
report += `- Hit Rate: ${stat.hitRate}\n`;
|
|
68
|
+
report += `- Hits: ${stat.hits}\n`;
|
|
69
|
+
report += `- Misses: ${stat.misses}\n\n`;
|
|
70
|
+
});
|
|
71
|
+
return {
|
|
72
|
+
content: [
|
|
73
|
+
{
|
|
74
|
+
type: 'text',
|
|
75
|
+
text: report,
|
|
76
|
+
},
|
|
77
|
+
],
|
|
78
|
+
};
|
|
79
|
+
},
|
|
80
|
+
search_apple_docs: async (args, server) => {
|
|
81
|
+
const validatedArgs = searchAppleDocsSchema.parse(args);
|
|
82
|
+
return await server.searchAppleDocs(validatedArgs.query, validatedArgs.type);
|
|
83
|
+
},
|
|
84
|
+
get_apple_doc_content: async (args, server) => {
|
|
85
|
+
const validatedArgs = getAppleDocContentSchema.parse(args);
|
|
86
|
+
return await server.getAppleDocContent(validatedArgs.url, validatedArgs.includeRelatedApis, validatedArgs.includeReferences, validatedArgs.includeSimilarApis, validatedArgs.includePlatformAnalysis);
|
|
87
|
+
},
|
|
88
|
+
list_technologies: async (args, server) => {
|
|
89
|
+
const validatedArgs = listTechnologiesSchema.parse(args);
|
|
90
|
+
return await server.listTechnologies(validatedArgs.category, validatedArgs.language, validatedArgs.includeBeta, validatedArgs.limit);
|
|
91
|
+
},
|
|
92
|
+
search_framework_symbols: async (args, server) => {
|
|
93
|
+
const validatedArgs = searchFrameworkSymbolsSchema.parse(args);
|
|
94
|
+
return await server.searchFrameworkSymbols(validatedArgs.framework, validatedArgs.symbolType, validatedArgs.namePattern, validatedArgs.language, validatedArgs.limit);
|
|
95
|
+
},
|
|
96
|
+
get_related_apis: async (args, server) => {
|
|
97
|
+
const validatedArgs = getRelatedApisSchema.parse(args);
|
|
98
|
+
return await server.getRelatedApis(validatedArgs.apiUrl, validatedArgs.includeInherited, validatedArgs.includeConformance, validatedArgs.includeSeeAlso);
|
|
99
|
+
},
|
|
100
|
+
resolve_references_batch: async (args, server) => {
|
|
101
|
+
const validatedArgs = resolveReferencesBatchSchema.parse(args);
|
|
102
|
+
return await server.resolveReferencesBatch(validatedArgs.sourceUrl, validatedArgs.maxReferences, validatedArgs.filterByType);
|
|
103
|
+
},
|
|
104
|
+
get_platform_compatibility: async (args, server) => {
|
|
105
|
+
const validatedArgs = getPlatformCompatibilitySchema.parse(args);
|
|
106
|
+
return await server.getPlatformCompatibility(validatedArgs.apiUrl, validatedArgs.compareMode, validatedArgs.includeRelated);
|
|
107
|
+
},
|
|
108
|
+
find_similar_apis: async (args, server) => {
|
|
109
|
+
const validatedArgs = findSimilarApisSchema.parse(args);
|
|
110
|
+
return await server.findSimilarApis(validatedArgs.apiUrl, validatedArgs.searchDepth, validatedArgs.filterByCategory, validatedArgs.includeAlternatives);
|
|
111
|
+
},
|
|
112
|
+
get_documentation_updates: async (args, server) => {
|
|
113
|
+
const validatedArgs = getDocumentationUpdatesSchema.parse(args);
|
|
114
|
+
return await server.getDocumentationUpdates(validatedArgs.category, validatedArgs.technology, validatedArgs.year, validatedArgs.searchQuery, validatedArgs.includeBeta, validatedArgs.limit);
|
|
115
|
+
},
|
|
116
|
+
get_technology_overviews: async (args, server) => {
|
|
117
|
+
const validatedArgs = getTechnologyOverviewsSchema.parse(args);
|
|
118
|
+
return await server.getTechnologyOverviews(validatedArgs.category, validatedArgs.platform, validatedArgs.searchQuery, validatedArgs.includeSubcategories, validatedArgs.limit);
|
|
119
|
+
},
|
|
120
|
+
get_sample_code: async (args, server) => {
|
|
121
|
+
const validatedArgs = getSampleCodeSchema.parse(args);
|
|
122
|
+
return await server.getSampleCode(validatedArgs.framework, validatedArgs.beta, validatedArgs.searchQuery, validatedArgs.limit);
|
|
123
|
+
},
|
|
124
|
+
// WWDC tools
|
|
125
|
+
list_wwdc_videos: async (args, _server) => {
|
|
126
|
+
const validatedArgs = listWWDCVideosSchema.parse(args);
|
|
127
|
+
const result = await handleListWWDCVideos(validatedArgs.year, validatedArgs.topic, validatedArgs.hasCode, validatedArgs.limit);
|
|
128
|
+
return { content: [{ type: 'text', text: result }] };
|
|
129
|
+
},
|
|
130
|
+
search_wwdc_content: async (args, _server) => {
|
|
131
|
+
const validatedArgs = searchWWDCContentSchema.parse(args);
|
|
132
|
+
const result = await handleSearchWWDCContent(validatedArgs.query, validatedArgs.searchIn, validatedArgs.year, validatedArgs.language, validatedArgs.limit);
|
|
133
|
+
return { content: [{ type: 'text', text: result }] };
|
|
134
|
+
},
|
|
135
|
+
get_wwdc_video: async (args, _server) => {
|
|
136
|
+
const validatedArgs = getWWDCVideoSchema.parse(args);
|
|
137
|
+
const result = await handleGetWWDCVideo(validatedArgs.year, validatedArgs.videoId, validatedArgs.includeTranscript, validatedArgs.includeCode);
|
|
138
|
+
return { content: [{ type: 'text', text: result }] };
|
|
139
|
+
},
|
|
140
|
+
get_wwdc_code_examples: async (args, _server) => {
|
|
141
|
+
const validatedArgs = getWWDCCodeExamplesSchema.parse(args);
|
|
142
|
+
const result = await handleGetWWDCCodeExamples(validatedArgs.framework, validatedArgs.topic, validatedArgs.year, validatedArgs.language, validatedArgs.limit);
|
|
143
|
+
return { content: [{ type: 'text', text: result }] };
|
|
144
|
+
},
|
|
145
|
+
browse_wwdc_topics: async (args, _server) => {
|
|
146
|
+
const validatedArgs = browseWWDCTopicsSchema.parse(args);
|
|
147
|
+
const result = await handleBrowseWWDCTopics(validatedArgs.topicId, validatedArgs.includeVideos, validatedArgs.year, validatedArgs.limit);
|
|
148
|
+
return { content: [{ type: 'text', text: result }] };
|
|
149
|
+
},
|
|
150
|
+
find_related_wwdc_videos: async (args, _server) => {
|
|
151
|
+
const validatedArgs = findRelatedWWDCVideosSchema.parse(args);
|
|
152
|
+
const result = await handleFindRelatedWWDCVideos(validatedArgs.videoId, validatedArgs.year, validatedArgs.includeExplicitRelated, validatedArgs.includeTopicRelated, validatedArgs.includeYearRelated, validatedArgs.limit);
|
|
153
|
+
return { content: [{ type: 'text', text: result }] };
|
|
154
|
+
},
|
|
155
|
+
list_wwdc_years: async (_args, _server) => {
|
|
156
|
+
const result = await handleListWWDCYears();
|
|
157
|
+
return { content: [{ type: 'text', text: result }] };
|
|
158
|
+
},
|
|
159
|
+
// ============================================================================
|
|
160
|
+
// UNIFIED TOOLS - New consolidated tools for agent optimization
|
|
161
|
+
// ============================================================================
|
|
162
|
+
/**
|
|
163
|
+
* Unified WWDC tool - consolidates 7 WWDC tools into 1
|
|
164
|
+
*/
|
|
165
|
+
wwdc: async (args, _server) => {
|
|
166
|
+
const validatedArgs = wwdcSchema.parse(args);
|
|
167
|
+
const { action, compact } = validatedArgs;
|
|
168
|
+
let result;
|
|
169
|
+
switch (action) {
|
|
170
|
+
case 'list':
|
|
171
|
+
result = await handleListWWDCVideos(validatedArgs.year, validatedArgs.topic, validatedArgs.hasCode, validatedArgs.limit ?? WWDC_CONFIG.DEFAULT_VIDEO_LIMIT);
|
|
172
|
+
break;
|
|
173
|
+
case 'search':
|
|
174
|
+
if (!validatedArgs.query) {
|
|
175
|
+
return { content: [{ type: 'text', text: 'Error: query is required for search action' }], isError: true };
|
|
176
|
+
}
|
|
177
|
+
result = await handleSearchWWDCContent(validatedArgs.query, validatedArgs.searchIn ?? 'both', validatedArgs.year, validatedArgs.language, validatedArgs.limit ?? WWDC_CONFIG.DEFAULT_SEARCH_LIMIT);
|
|
178
|
+
break;
|
|
179
|
+
case 'get':
|
|
180
|
+
if (!validatedArgs.year || !validatedArgs.videoId) {
|
|
181
|
+
return { content: [{ type: 'text', text: 'Error: year and videoId are required for get action' }], isError: true };
|
|
182
|
+
}
|
|
183
|
+
result = await handleGetWWDCVideo(validatedArgs.year, validatedArgs.videoId, validatedArgs.includeTranscript ?? true, validatedArgs.includeCode ?? true);
|
|
184
|
+
break;
|
|
185
|
+
case 'code':
|
|
186
|
+
result = await handleGetWWDCCodeExamples(validatedArgs.framework, validatedArgs.topic, validatedArgs.year, validatedArgs.language, validatedArgs.limit ?? WWDC_CONFIG.DEFAULT_CODE_EXAMPLES_LIMIT);
|
|
187
|
+
break;
|
|
188
|
+
case 'topics':
|
|
189
|
+
result = await handleBrowseWWDCTopics(validatedArgs.topic, validatedArgs.includeVideos ?? true, validatedArgs.year, validatedArgs.limit ?? WWDC_CONFIG.DEFAULT_TOPIC_VIDEOS_LIMIT);
|
|
190
|
+
break;
|
|
191
|
+
case 'related':
|
|
192
|
+
if (!validatedArgs.videoId || !validatedArgs.year) {
|
|
193
|
+
return { content: [{ type: 'text', text: 'Error: videoId and year are required for related action' }], isError: true };
|
|
194
|
+
}
|
|
195
|
+
result = await handleFindRelatedWWDCVideos(validatedArgs.videoId, validatedArgs.year, validatedArgs.includeExplicitRelated ?? true, validatedArgs.includeTopicRelated ?? true, validatedArgs.includeYearRelated ?? false, validatedArgs.limit ?? WWDC_CONFIG.DEFAULT_RELATED_VIDEOS_LIMIT);
|
|
196
|
+
break;
|
|
197
|
+
case 'years':
|
|
198
|
+
result = await handleListWWDCYears();
|
|
199
|
+
break;
|
|
200
|
+
default:
|
|
201
|
+
return { content: [{ type: 'text', text: `Error: Unknown action: ${action}` }], isError: true };
|
|
202
|
+
}
|
|
203
|
+
// Apply compact formatting if requested (simple version - full implementation would parse and reformat)
|
|
204
|
+
if (compact && result && !result.startsWith('Error')) {
|
|
205
|
+
// Extract URLs and titles from the result for compact output
|
|
206
|
+
const lines = result.split('\n');
|
|
207
|
+
const compactLines = ['# Results (Compact Mode)\n'];
|
|
208
|
+
let count = 0;
|
|
209
|
+
for (const line of lines) {
|
|
210
|
+
// Match markdown links: [title](url)
|
|
211
|
+
const linkMatch = line.match(/\[([^\]]+)\]\(([^)]+)\)/);
|
|
212
|
+
if (linkMatch) {
|
|
213
|
+
count++;
|
|
214
|
+
compactLines.push(`${count}. [${linkMatch[1]}](${linkMatch[2]})`);
|
|
215
|
+
}
|
|
216
|
+
}
|
|
217
|
+
if (count > 0) {
|
|
218
|
+
compactLines.unshift(`Found ${count} results:\n`);
|
|
219
|
+
result = compactLines.join('\n');
|
|
220
|
+
}
|
|
221
|
+
}
|
|
222
|
+
return { content: [{ type: 'text', text: result }] };
|
|
223
|
+
},
|
|
224
|
+
/**
|
|
225
|
+
* Unified API analysis tool - consolidates get_related_apis, find_similar_apis, resolve_references_batch
|
|
226
|
+
*/
|
|
227
|
+
analyze_api: async (args, server) => {
|
|
228
|
+
const validatedArgs = analyzeApiSchema.parse(args);
|
|
229
|
+
const { apiUrl, analysis, compact } = validatedArgs;
|
|
230
|
+
const results = [];
|
|
231
|
+
if (analysis === 'related' || analysis === 'all') {
|
|
232
|
+
const relatedResult = await server.getRelatedApis(apiUrl, validatedArgs.includeInherited ?? true, validatedArgs.includeConformance ?? true, validatedArgs.includeSeeAlso ?? true);
|
|
233
|
+
if (relatedResult.content?.[0]?.text) {
|
|
234
|
+
results.push('## Related APIs\n\n' + relatedResult.content[0].text);
|
|
235
|
+
}
|
|
236
|
+
}
|
|
237
|
+
if (analysis === 'similar' || analysis === 'all') {
|
|
238
|
+
const similarResult = await server.findSimilarApis(apiUrl, validatedArgs.searchDepth ?? 'medium', validatedArgs.filterByCategory, true);
|
|
239
|
+
if (similarResult.content?.[0]?.text) {
|
|
240
|
+
results.push('## Similar APIs\n\n' + similarResult.content[0].text);
|
|
241
|
+
}
|
|
242
|
+
}
|
|
243
|
+
if (analysis === 'references' || analysis === 'all') {
|
|
244
|
+
const referencesResult = await server.resolveReferencesBatch(apiUrl, validatedArgs.maxReferences ?? API_LIMITS.DEFAULT_REFERENCES_LIMIT, validatedArgs.filterByType ?? 'all');
|
|
245
|
+
if (referencesResult.content?.[0]?.text) {
|
|
246
|
+
results.push('## Type References\n\n' + referencesResult.content[0].text);
|
|
247
|
+
}
|
|
248
|
+
}
|
|
249
|
+
let resultText = results.join('\n\n---\n\n');
|
|
250
|
+
// Apply compact formatting if requested
|
|
251
|
+
if (compact && resultText) {
|
|
252
|
+
const lines = resultText.split('\n');
|
|
253
|
+
const compactLines = ['# API Analysis (Compact Mode)\n'];
|
|
254
|
+
let count = 0;
|
|
255
|
+
for (const line of lines) {
|
|
256
|
+
const linkMatch = line.match(/\[([^\]]+)\]\(([^)]+)\)/);
|
|
257
|
+
if (linkMatch) {
|
|
258
|
+
count++;
|
|
259
|
+
compactLines.push(`${count}. [${linkMatch[1]}](${linkMatch[2]})`);
|
|
260
|
+
}
|
|
261
|
+
}
|
|
262
|
+
if (count > 0) {
|
|
263
|
+
compactLines.unshift(`Found ${count} related items:\n`);
|
|
264
|
+
resultText = compactLines.join('\n');
|
|
265
|
+
}
|
|
266
|
+
}
|
|
267
|
+
return { content: [{ type: 'text', text: resultText || 'No analysis results found.' }] };
|
|
268
|
+
},
|
|
269
|
+
/**
|
|
270
|
+
* Universal Apple docs router - auto-routes to appropriate tool
|
|
271
|
+
*/
|
|
272
|
+
apple_docs: async (args, server) => {
|
|
273
|
+
const validatedArgs = appleDocsSchema.parse(args);
|
|
274
|
+
const { query, intent, compact } = validatedArgs;
|
|
275
|
+
const queryLower = query.toLowerCase();
|
|
276
|
+
// Determine routing
|
|
277
|
+
let effectiveIntent = intent;
|
|
278
|
+
if (intent === 'auto') {
|
|
279
|
+
// Auto-detect from query
|
|
280
|
+
if (query.startsWith('https://developer.apple.com/documentation/')) {
|
|
281
|
+
effectiveIntent = 'docs';
|
|
282
|
+
}
|
|
283
|
+
else if (/wwdc|video|session|transcript/.test(queryLower)) {
|
|
284
|
+
effectiveIntent = 'wwdc';
|
|
285
|
+
}
|
|
286
|
+
else if (/sample|example project/.test(queryLower)) {
|
|
287
|
+
effectiveIntent = 'samples';
|
|
288
|
+
}
|
|
289
|
+
else if (/framework|technolog|list/.test(queryLower)) {
|
|
290
|
+
effectiveIntent = 'technologies';
|
|
291
|
+
}
|
|
292
|
+
else {
|
|
293
|
+
effectiveIntent = 'search';
|
|
294
|
+
}
|
|
295
|
+
}
|
|
296
|
+
// Route to appropriate handler
|
|
297
|
+
switch (effectiveIntent) {
|
|
298
|
+
case 'docs':
|
|
299
|
+
// If it's a URL, get the content directly
|
|
300
|
+
if (query.startsWith('https://developer.apple.com/')) {
|
|
301
|
+
return await server.getAppleDocContent(query, false, false, false, false);
|
|
302
|
+
}
|
|
303
|
+
// Otherwise search
|
|
304
|
+
return await server.searchAppleDocs(query, 'documentation');
|
|
305
|
+
case 'wwdc':
|
|
306
|
+
// Extract search terms and route to wwdc search
|
|
307
|
+
const wwdcResult = await handleSearchWWDCContent(query.replace(/wwdc|video|session/gi, '').trim() || query, 'both', undefined, undefined, compact ? 10 : WWDC_CONFIG.DEFAULT_SEARCH_LIMIT);
|
|
308
|
+
return { content: [{ type: 'text', text: wwdcResult }] };
|
|
309
|
+
case 'samples':
|
|
310
|
+
return await server.getSampleCode(undefined, 'include', query.replace(/sample|example/gi, '').trim() || query, compact ? 10 : API_LIMITS.DEFAULT_SAMPLE_CODE_LIMIT);
|
|
311
|
+
case 'technologies':
|
|
312
|
+
return await server.listTechnologies(undefined, undefined, true, compact ? 15 : API_LIMITS.DEFAULT_TECHNOLOGIES_LIMIT);
|
|
313
|
+
case 'search':
|
|
314
|
+
default:
|
|
315
|
+
return await server.searchAppleDocs(query, 'all');
|
|
316
|
+
}
|
|
317
|
+
},
|
|
318
|
+
/**
|
|
319
|
+
* Tool guide - helps users understand which tools to use
|
|
320
|
+
*/
|
|
321
|
+
get_tool_guide: async (args, _server) => {
|
|
322
|
+
const taskSchema = z.object({ task: z.string() });
|
|
323
|
+
const validatedArgs = taskSchema.parse(args);
|
|
324
|
+
const result = handleGetToolGuide(validatedArgs.task);
|
|
325
|
+
return { content: [{ type: 'text', text: result }] };
|
|
326
|
+
},
|
|
327
|
+
};
|
|
328
|
+
/**
|
|
329
|
+
* Handle tool call with the appropriate handler
|
|
330
|
+
*/
|
|
331
|
+
export async function handleToolCall(toolName, args, server) {
|
|
332
|
+
try {
|
|
333
|
+
const handler = toolHandlers[toolName];
|
|
334
|
+
if (!handler) {
|
|
335
|
+
throw new Error(`Unknown tool: ${toolName}`);
|
|
336
|
+
}
|
|
337
|
+
return await handler(args, server);
|
|
338
|
+
}
|
|
339
|
+
catch (error) {
|
|
340
|
+
// Return error response for validation errors and unknown tools
|
|
341
|
+
return {
|
|
342
|
+
content: [{
|
|
343
|
+
type: 'text',
|
|
344
|
+
text: `Error: ${error instanceof Error ? error.message : String(error)}`,
|
|
345
|
+
}],
|
|
346
|
+
isError: true,
|
|
347
|
+
};
|
|
348
|
+
}
|
|
349
|
+
}
|
|
350
|
+
//# sourceMappingURL=handlers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"handlers.js","sourceRoot":"","sources":["../../src/tools/handlers.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"list-technologies.d.ts","sourceRoot":"","sources":["../../src/tools/list-technologies.ts"],"names":[],"mappings":"AA+BA;;GAEG;AACH,wBAAsB,sBAAsB,CAC1C,QAAQ,CAAC,EAAE,MAAM,EACjB,QAAQ,CAAC,EAAE,MAAM,EACjB,WAAW,GAAE,OAAc,EAC3B,KAAK,GAAE,MAA8C,GACpD,OAAO,CAAC,MAAM,CAAC,CAwCjB"}
|
|
@@ -0,0 +1,165 @@
|
|
|
1
|
+
import { technologiesCache, generateUrlCacheKey } from '../utils/cache.js';
|
|
2
|
+
import { APPLE_URLS, API_LIMITS } from '../utils/constants.js';
|
|
3
|
+
import { httpClient } from '../utils/http-client.js';
|
|
4
|
+
import { logger } from '../utils/logger.js';
|
|
5
|
+
/**
|
|
6
|
+
* 获取技术列表
|
|
7
|
+
*/
|
|
8
|
+
export async function handleListTechnologies(category, language, includeBeta = true, limit = API_LIMITS.DEFAULT_TECHNOLOGIES_LIMIT) {
|
|
9
|
+
try {
|
|
10
|
+
logger.info('Fetching technologies list...');
|
|
11
|
+
// Generate cache key
|
|
12
|
+
const cacheKey = generateUrlCacheKey('technologies', { category, language, includeBeta, limit });
|
|
13
|
+
// Try to get from cache first
|
|
14
|
+
const cachedResult = technologiesCache.get(cacheKey);
|
|
15
|
+
if (cachedResult) {
|
|
16
|
+
logger.debug('Technologies cache hit');
|
|
17
|
+
return cachedResult;
|
|
18
|
+
}
|
|
19
|
+
// 获取技术列表
|
|
20
|
+
const data = await httpClient.getJson(APPLE_URLS.TECHNOLOGIES_JSON);
|
|
21
|
+
// 解析技术列表
|
|
22
|
+
const technologies = parseTechnologies(data);
|
|
23
|
+
// 应用过滤器
|
|
24
|
+
const filteredTechnologies = applyTechnologyFilters(technologies, {
|
|
25
|
+
category,
|
|
26
|
+
language,
|
|
27
|
+
includeBeta,
|
|
28
|
+
limit,
|
|
29
|
+
});
|
|
30
|
+
// 格式化输出
|
|
31
|
+
const result = formatTechnologiesList(filteredTechnologies);
|
|
32
|
+
// Cache the result
|
|
33
|
+
technologiesCache.set(cacheKey, result);
|
|
34
|
+
return result;
|
|
35
|
+
}
|
|
36
|
+
catch (error) {
|
|
37
|
+
const errorMessage = error instanceof Error ? error.message : String(error);
|
|
38
|
+
return `Error: Failed to list technologies: ${errorMessage}`;
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* 解析技术数据
|
|
43
|
+
*/
|
|
44
|
+
function parseTechnologies(data) {
|
|
45
|
+
const groups = [];
|
|
46
|
+
if (data.sections) {
|
|
47
|
+
data.sections.forEach(section => {
|
|
48
|
+
if (section.kind === 'technologies' && section.groups) {
|
|
49
|
+
section.groups.forEach(group => {
|
|
50
|
+
if (group.technologies && Array.isArray(group.technologies)) {
|
|
51
|
+
const technologies = group.technologies.map(tech => ({
|
|
52
|
+
title: tech.title || '',
|
|
53
|
+
identifier: tech.destination?.identifier || tech.identifier || '',
|
|
54
|
+
tags: tech.tags || [],
|
|
55
|
+
languages: tech.languages || [],
|
|
56
|
+
url: tech.destination?.identifier
|
|
57
|
+
? tech.destination.identifier.replace('doc://com.apple.documentation/documentation/', 'https://developer.apple.com/documentation/')
|
|
58
|
+
: undefined,
|
|
59
|
+
}));
|
|
60
|
+
groups.push({
|
|
61
|
+
name: group.name,
|
|
62
|
+
technologies,
|
|
63
|
+
});
|
|
64
|
+
}
|
|
65
|
+
});
|
|
66
|
+
}
|
|
67
|
+
});
|
|
68
|
+
}
|
|
69
|
+
return groups;
|
|
70
|
+
}
|
|
71
|
+
/**
|
|
72
|
+
* 应用过滤器
|
|
73
|
+
*/
|
|
74
|
+
function applyTechnologyFilters(groups, filters) {
|
|
75
|
+
let filteredGroups = groups
|
|
76
|
+
.map(group => {
|
|
77
|
+
// 分类过滤
|
|
78
|
+
if (filters.category && !group.name.toLowerCase().includes(filters.category.toLowerCase())) {
|
|
79
|
+
return null;
|
|
80
|
+
}
|
|
81
|
+
// 技术过滤
|
|
82
|
+
const filteredTechnologies = group.technologies.filter(tech => {
|
|
83
|
+
// Beta 过滤
|
|
84
|
+
if (!filters.includeBeta && tech.tags.includes('Beta')) {
|
|
85
|
+
return false;
|
|
86
|
+
}
|
|
87
|
+
// 语言过滤
|
|
88
|
+
if (filters.language && !tech.languages.includes(filters.language)) {
|
|
89
|
+
return false;
|
|
90
|
+
}
|
|
91
|
+
return true;
|
|
92
|
+
});
|
|
93
|
+
return filteredTechnologies.length > 0
|
|
94
|
+
? { ...group, technologies: filteredTechnologies }
|
|
95
|
+
: null;
|
|
96
|
+
})
|
|
97
|
+
.filter((group) => group !== null);
|
|
98
|
+
// 应用 limit 限制
|
|
99
|
+
if (filters.limit !== undefined && filters.limit >= 0) {
|
|
100
|
+
if (filters.limit === 0) {
|
|
101
|
+
// 如果 limit 为 0,返回空数组
|
|
102
|
+
return [];
|
|
103
|
+
}
|
|
104
|
+
let totalCount = 0;
|
|
105
|
+
filteredGroups = filteredGroups.map(group => {
|
|
106
|
+
const availableSlots = filters.limit - totalCount;
|
|
107
|
+
if (availableSlots <= 0) {
|
|
108
|
+
return null;
|
|
109
|
+
}
|
|
110
|
+
const limitedTechnologies = group.technologies.slice(0, availableSlots);
|
|
111
|
+
totalCount += limitedTechnologies.length;
|
|
112
|
+
return {
|
|
113
|
+
...group,
|
|
114
|
+
technologies: limitedTechnologies,
|
|
115
|
+
};
|
|
116
|
+
}).filter((group) => group !== null && group.technologies.length > 0);
|
|
117
|
+
}
|
|
118
|
+
return filteredGroups;
|
|
119
|
+
}
|
|
120
|
+
/**
|
|
121
|
+
* 格式化技术列表
|
|
122
|
+
*/
|
|
123
|
+
function formatTechnologiesList(groups) {
|
|
124
|
+
if (groups.length === 0) {
|
|
125
|
+
return 'No technologies found matching the specified criteria.';
|
|
126
|
+
}
|
|
127
|
+
let content = '# Apple Developer Technologies\n\n';
|
|
128
|
+
// 统计信息
|
|
129
|
+
const totalTechs = groups.reduce((sum, group) => sum + group.technologies.length, 0);
|
|
130
|
+
const betaTechs = groups.reduce((sum, group) => sum + group.technologies.filter(tech => tech.tags.includes('Beta')).length, 0);
|
|
131
|
+
content += `*Found ${totalTechs} technologies`;
|
|
132
|
+
if (betaTechs > 0) {
|
|
133
|
+
content += ` (${betaTechs} in beta)`;
|
|
134
|
+
}
|
|
135
|
+
content += '*\n\n';
|
|
136
|
+
// 按分类显示
|
|
137
|
+
groups.forEach(group => {
|
|
138
|
+
content += `## ${group.name}\n\n`;
|
|
139
|
+
group.technologies.forEach(tech => {
|
|
140
|
+
// Create title with status information
|
|
141
|
+
const isBeta = tech.tags.includes('Beta');
|
|
142
|
+
const titleWithStatus = isBeta ? `${tech.title} (Beta)` : tech.title;
|
|
143
|
+
content += `### [${titleWithStatus}](${tech.url || '#'})\n`;
|
|
144
|
+
// Build metadata array
|
|
145
|
+
const metadata = [];
|
|
146
|
+
// Add languages
|
|
147
|
+
if (tech.languages.length > 0) {
|
|
148
|
+
metadata.push(`Languages: ${tech.languages.join(', ')}`);
|
|
149
|
+
}
|
|
150
|
+
// Add categories (excluding Beta since it's in title)
|
|
151
|
+
const nonBetaTags = tech.tags.filter(tag => tag !== 'Beta');
|
|
152
|
+
if (nonBetaTags.length > 0) {
|
|
153
|
+
metadata.push(`Categories: ${nonBetaTags.join(', ')}`);
|
|
154
|
+
}
|
|
155
|
+
// Add metadata line if any
|
|
156
|
+
if (metadata.length > 0) {
|
|
157
|
+
content += `*${metadata.join(' | ')}*\n`;
|
|
158
|
+
}
|
|
159
|
+
content += '\n';
|
|
160
|
+
});
|
|
161
|
+
});
|
|
162
|
+
content += '\n---\n\n[View all technologies on Apple Developer](https://developer.apple.com/documentation/technologies)';
|
|
163
|
+
return content;
|
|
164
|
+
}
|
|
165
|
+
//# sourceMappingURL=list-technologies.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"list-technologies.js","sourceRoot":"","sources":["../../src/tools/list-technologies.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resolve-references-batch.d.ts","sourceRoot":"","sources":["../../src/tools/resolve-references-batch.ts"],"names":[],"mappings":"AAgDA;;GAEG;AACH,wBAAsB,4BAA4B,CAChD,SAAS,EAAE,MAAM,EACjB,aAAa,GAAE,MAAW,EAC1B,YAAY,GAAE,MAAc,GAC3B,OAAO,CAAC,MAAM,CAAC,CAsCjB"}
|