@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.
Files changed (267) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +560 -0
  3. package/dist/constants/browser-headers.d.ts +48 -0
  4. package/dist/constants/browser-headers.d.ts.map +1 -0
  5. package/dist/constants/browser-headers.js +166 -0
  6. package/dist/constants/browser-headers.js.map +1 -0
  7. package/dist/index.d.ts +83 -0
  8. package/dist/index.d.ts.map +1 -0
  9. package/dist/index.js +215 -0
  10. package/dist/index.js.map +1 -0
  11. package/dist/schemas/analyze-api.schema.d.ts +42 -0
  12. package/dist/schemas/analyze-api.schema.d.ts.map +1 -0
  13. package/dist/schemas/analyze-api.schema.js +23 -0
  14. package/dist/schemas/analyze-api.schema.js.map +1 -0
  15. package/dist/schemas/apple-docs.schema.d.ts +18 -0
  16. package/dist/schemas/apple-docs.schema.d.ts.map +1 -0
  17. package/dist/schemas/apple-docs.schema.js +10 -0
  18. package/dist/schemas/apple-docs.schema.js.map +1 -0
  19. package/dist/schemas/doc-content.schema.d.ts +24 -0
  20. package/dist/schemas/doc-content.schema.d.ts.map +1 -0
  21. package/dist/schemas/doc-content.schema.js +10 -0
  22. package/dist/schemas/doc-content.schema.js.map +1 -0
  23. package/dist/schemas/documentation-updates.schema.d.ts +27 -0
  24. package/dist/schemas/documentation-updates.schema.d.ts.map +1 -0
  25. package/dist/schemas/documentation-updates.schema.js +12 -0
  26. package/dist/schemas/documentation-updates.schema.js.map +1 -0
  27. package/dist/schemas/framework-symbols.schema.d.ts +24 -0
  28. package/dist/schemas/framework-symbols.schema.d.ts.map +1 -0
  29. package/dist/schemas/framework-symbols.schema.js +11 -0
  30. package/dist/schemas/framework-symbols.schema.js.map +1 -0
  31. package/dist/schemas/index.d.ts +15 -0
  32. package/dist/schemas/index.d.ts.map +1 -0
  33. package/dist/schemas/index.js +15 -0
  34. package/dist/schemas/index.js.map +1 -0
  35. package/dist/schemas/platform-compatibility.schema.d.ts +18 -0
  36. package/dist/schemas/platform-compatibility.schema.d.ts.map +1 -0
  37. package/dist/schemas/platform-compatibility.schema.js +8 -0
  38. package/dist/schemas/platform-compatibility.schema.js.map +1 -0
  39. package/dist/schemas/references.schema.d.ts +18 -0
  40. package/dist/schemas/references.schema.d.ts.map +1 -0
  41. package/dist/schemas/references.schema.js +9 -0
  42. package/dist/schemas/references.schema.js.map +1 -0
  43. package/dist/schemas/related-apis.schema.d.ts +21 -0
  44. package/dist/schemas/related-apis.schema.d.ts.map +1 -0
  45. package/dist/schemas/related-apis.schema.js +9 -0
  46. package/dist/schemas/related-apis.schema.js.map +1 -0
  47. package/dist/schemas/sample-code.schema.d.ts +21 -0
  48. package/dist/schemas/sample-code.schema.d.ts.map +1 -0
  49. package/dist/schemas/sample-code.schema.js +10 -0
  50. package/dist/schemas/sample-code.schema.js.map +1 -0
  51. package/dist/schemas/search.schema.d.ts +15 -0
  52. package/dist/schemas/search.schema.d.ts.map +1 -0
  53. package/dist/schemas/search.schema.js +8 -0
  54. package/dist/schemas/search.schema.js.map +1 -0
  55. package/dist/schemas/similar-apis.schema.d.ts +21 -0
  56. package/dist/schemas/similar-apis.schema.d.ts.map +1 -0
  57. package/dist/schemas/similar-apis.schema.js +9 -0
  58. package/dist/schemas/similar-apis.schema.js.map +1 -0
  59. package/dist/schemas/technologies.schema.d.ts +21 -0
  60. package/dist/schemas/technologies.schema.d.ts.map +1 -0
  61. package/dist/schemas/technologies.schema.js +10 -0
  62. package/dist/schemas/technologies.schema.js.map +1 -0
  63. package/dist/schemas/technology-overviews.schema.d.ts +24 -0
  64. package/dist/schemas/technology-overviews.schema.d.ts.map +1 -0
  65. package/dist/schemas/technology-overviews.schema.js +11 -0
  66. package/dist/schemas/technology-overviews.schema.js.map +1 -0
  67. package/dist/schemas/wwdc.schemas.d.ts +208 -0
  68. package/dist/schemas/wwdc.schemas.d.ts.map +1 -0
  69. package/dist/schemas/wwdc.schemas.js +97 -0
  70. package/dist/schemas/wwdc.schemas.js.map +1 -0
  71. package/dist/tools/definitions.d.ts +10 -0
  72. package/dist/tools/definitions.d.ts.map +1 -0
  73. package/dist/tools/definitions.js +690 -0
  74. package/dist/tools/definitions.js.map +1 -0
  75. package/dist/tools/doc-fetcher.d.ts +19 -0
  76. package/dist/tools/doc-fetcher.d.ts.map +1 -0
  77. package/dist/tools/doc-fetcher.js +487 -0
  78. package/dist/tools/doc-fetcher.js.map +1 -0
  79. package/dist/tools/doc-formatter.d.ts +69 -0
  80. package/dist/tools/doc-formatter.d.ts.map +1 -0
  81. package/dist/tools/doc-formatter.js +208 -0
  82. package/dist/tools/doc-formatter.js.map +1 -0
  83. package/dist/tools/find-similar-apis.d.ts +5 -0
  84. package/dist/tools/find-similar-apis.d.ts.map +1 -0
  85. package/dist/tools/find-similar-apis.js +275 -0
  86. package/dist/tools/find-similar-apis.js.map +1 -0
  87. package/dist/tools/get-documentation-updates.d.ts +5 -0
  88. package/dist/tools/get-documentation-updates.d.ts.map +1 -0
  89. package/dist/tools/get-documentation-updates.js +244 -0
  90. package/dist/tools/get-documentation-updates.js.map +1 -0
  91. package/dist/tools/get-platform-compatibility.d.ts +5 -0
  92. package/dist/tools/get-platform-compatibility.d.ts.map +1 -0
  93. package/dist/tools/get-platform-compatibility.js +205 -0
  94. package/dist/tools/get-platform-compatibility.js.map +1 -0
  95. package/dist/tools/get-related-apis.d.ts +5 -0
  96. package/dist/tools/get-related-apis.d.ts.map +1 -0
  97. package/dist/tools/get-related-apis.js +155 -0
  98. package/dist/tools/get-related-apis.js.map +1 -0
  99. package/dist/tools/get-sample-code.d.ts +5 -0
  100. package/dist/tools/get-sample-code.d.ts.map +1 -0
  101. package/dist/tools/get-sample-code.js +375 -0
  102. package/dist/tools/get-sample-code.js.map +1 -0
  103. package/dist/tools/get-technology-overviews.d.ts +5 -0
  104. package/dist/tools/get-technology-overviews.d.ts.map +1 -0
  105. package/dist/tools/get-technology-overviews.js +306 -0
  106. package/dist/tools/get-technology-overviews.js.map +1 -0
  107. package/dist/tools/handlers.d.ts +29 -0
  108. package/dist/tools/handlers.d.ts.map +1 -0
  109. package/dist/tools/handlers.js +350 -0
  110. package/dist/tools/handlers.js.map +1 -0
  111. package/dist/tools/list-technologies.d.ts +5 -0
  112. package/dist/tools/list-technologies.d.ts.map +1 -0
  113. package/dist/tools/list-technologies.js +165 -0
  114. package/dist/tools/list-technologies.js.map +1 -0
  115. package/dist/tools/resolve-references-batch.d.ts +5 -0
  116. package/dist/tools/resolve-references-batch.d.ts.map +1 -0
  117. package/dist/tools/resolve-references-batch.js +199 -0
  118. package/dist/tools/resolve-references-batch.js.map +1 -0
  119. package/dist/tools/search-framework-symbols.d.ts +7 -0
  120. package/dist/tools/search-framework-symbols.d.ts.map +1 -0
  121. package/dist/tools/search-framework-symbols.js +235 -0
  122. package/dist/tools/search-framework-symbols.js.map +1 -0
  123. package/dist/tools/search-parser.d.ts +15 -0
  124. package/dist/tools/search-parser.d.ts.map +1 -0
  125. package/dist/tools/search-parser.js +188 -0
  126. package/dist/tools/search-parser.js.map +1 -0
  127. package/dist/tools/search-result-parser.d.ts +52 -0
  128. package/dist/tools/search-result-parser.d.ts.map +1 -0
  129. package/dist/tools/search-result-parser.js +137 -0
  130. package/dist/tools/search-result-parser.js.map +1 -0
  131. package/dist/tools/tools-guide.d.ts +124 -0
  132. package/dist/tools/tools-guide.d.ts.map +1 -0
  133. package/dist/tools/tools-guide.js +389 -0
  134. package/dist/tools/tools-guide.js.map +1 -0
  135. package/dist/tools/wwdc/content-extractor.d.ts +9 -0
  136. package/dist/tools/wwdc/content-extractor.d.ts.map +1 -0
  137. package/dist/tools/wwdc/content-extractor.js +520 -0
  138. package/dist/tools/wwdc/content-extractor.js.map +1 -0
  139. package/dist/tools/wwdc/topics-extractor.d.ts +32 -0
  140. package/dist/tools/wwdc/topics-extractor.d.ts.map +1 -0
  141. package/dist/tools/wwdc/topics-extractor.js +146 -0
  142. package/dist/tools/wwdc/topics-extractor.js.map +1 -0
  143. package/dist/tools/wwdc/video-list-extractor.d.ts +13 -0
  144. package/dist/tools/wwdc/video-list-extractor.d.ts.map +1 -0
  145. package/dist/tools/wwdc/video-list-extractor.js +238 -0
  146. package/dist/tools/wwdc/video-list-extractor.js.map +1 -0
  147. package/dist/tools/wwdc/wwdc-handlers.d.ts +32 -0
  148. package/dist/tools/wwdc/wwdc-handlers.d.ts.map +1 -0
  149. package/dist/tools/wwdc/wwdc-handlers.js +791 -0
  150. package/dist/tools/wwdc/wwdc-handlers.js.map +1 -0
  151. package/dist/types/apple-docs.d.ts +112 -0
  152. package/dist/types/apple-docs.d.ts.map +1 -0
  153. package/dist/types/apple-docs.js +5 -0
  154. package/dist/types/apple-docs.js.map +1 -0
  155. package/dist/types/cache.d.ts +28 -0
  156. package/dist/types/cache.d.ts.map +1 -0
  157. package/dist/types/cache.js +5 -0
  158. package/dist/types/cache.js.map +1 -0
  159. package/dist/types/content-sections.d.ts +37 -0
  160. package/dist/types/content-sections.d.ts.map +1 -0
  161. package/dist/types/content-sections.js +5 -0
  162. package/dist/types/content-sections.js.map +1 -0
  163. package/dist/types/error.d.ts +39 -0
  164. package/dist/types/error.d.ts.map +1 -0
  165. package/dist/types/error.js +21 -0
  166. package/dist/types/error.js.map +1 -0
  167. package/dist/types/headers.d.ts +95 -0
  168. package/dist/types/headers.d.ts.map +1 -0
  169. package/dist/types/headers.js +5 -0
  170. package/dist/types/headers.js.map +1 -0
  171. package/dist/types/http.d.ts +31 -0
  172. package/dist/types/http.d.ts.map +1 -0
  173. package/dist/types/http.js +5 -0
  174. package/dist/types/http.js.map +1 -0
  175. package/dist/types/index.d.ts +11 -0
  176. package/dist/types/index.d.ts.map +1 -0
  177. package/dist/types/index.js +12 -0
  178. package/dist/types/index.js.map +1 -0
  179. package/dist/types/search.d.ts +62 -0
  180. package/dist/types/search.d.ts.map +1 -0
  181. package/dist/types/search.js +5 -0
  182. package/dist/types/search.js.map +1 -0
  183. package/dist/types/sections.d.ts +64 -0
  184. package/dist/types/sections.d.ts.map +1 -0
  185. package/dist/types/sections.js +5 -0
  186. package/dist/types/sections.js.map +1 -0
  187. package/dist/types/tools/platform.d.ts +33 -0
  188. package/dist/types/tools/platform.d.ts.map +1 -0
  189. package/dist/types/tools/platform.js +5 -0
  190. package/dist/types/tools/platform.js.map +1 -0
  191. package/dist/types/tools/sample-code.d.ts +23 -0
  192. package/dist/types/tools/sample-code.d.ts.map +1 -0
  193. package/dist/types/tools/sample-code.js +5 -0
  194. package/dist/types/tools/sample-code.js.map +1 -0
  195. package/dist/types/tools/technology.d.ts +18 -0
  196. package/dist/types/tools/technology.d.ts.map +1 -0
  197. package/dist/types/tools/technology.js +5 -0
  198. package/dist/types/tools/technology.js.map +1 -0
  199. package/dist/types/tools/updates.d.ts +23 -0
  200. package/dist/types/tools/updates.d.ts.map +1 -0
  201. package/dist/types/tools/updates.js +5 -0
  202. package/dist/types/tools/updates.js.map +1 -0
  203. package/dist/types/wwdc.d.ts +200 -0
  204. package/dist/types/wwdc.d.ts.map +1 -0
  205. package/dist/types/wwdc.js +5 -0
  206. package/dist/types/wwdc.js.map +1 -0
  207. package/dist/utils/cache-warmer.d.ts +22 -0
  208. package/dist/utils/cache-warmer.d.ts.map +1 -0
  209. package/dist/utils/cache-warmer.js +115 -0
  210. package/dist/utils/cache-warmer.js.map +1 -0
  211. package/dist/utils/cache.d.ts +109 -0
  212. package/dist/utils/cache.d.ts.map +1 -0
  213. package/dist/utils/cache.js +302 -0
  214. package/dist/utils/cache.js.map +1 -0
  215. package/dist/utils/constants.d.ts +178 -0
  216. package/dist/utils/constants.d.ts.map +1 -0
  217. package/dist/utils/constants.js +266 -0
  218. package/dist/utils/constants.js.map +1 -0
  219. package/dist/utils/error-handler.d.ts +80 -0
  220. package/dist/utils/error-handler.d.ts.map +1 -0
  221. package/dist/utils/error-handler.js +437 -0
  222. package/dist/utils/error-handler.js.map +1 -0
  223. package/dist/utils/framework-mapper.d.ts +84 -0
  224. package/dist/utils/framework-mapper.d.ts.map +1 -0
  225. package/dist/utils/framework-mapper.js +534 -0
  226. package/dist/utils/framework-mapper.js.map +1 -0
  227. package/dist/utils/http-client.d.ts +130 -0
  228. package/dist/utils/http-client.d.ts.map +1 -0
  229. package/dist/utils/http-client.js +464 -0
  230. package/dist/utils/http-client.js.map +1 -0
  231. package/dist/utils/http-headers-generator.d.ts +151 -0
  232. package/dist/utils/http-headers-generator.d.ts.map +1 -0
  233. package/dist/utils/http-headers-generator.js +407 -0
  234. package/dist/utils/http-headers-generator.js.map +1 -0
  235. package/dist/utils/logger.d.ts +44 -0
  236. package/dist/utils/logger.d.ts.map +1 -0
  237. package/dist/utils/logger.js +73 -0
  238. package/dist/utils/logger.js.map +1 -0
  239. package/dist/utils/preloader.d.ts +20 -0
  240. package/dist/utils/preloader.d.ts.map +1 -0
  241. package/dist/utils/preloader.js +82 -0
  242. package/dist/utils/preloader.js.map +1 -0
  243. package/dist/utils/rate-limiter.d.ts +28 -0
  244. package/dist/utils/rate-limiter.d.ts.map +1 -0
  245. package/dist/utils/rate-limiter.js +48 -0
  246. package/dist/utils/rate-limiter.js.map +1 -0
  247. package/dist/utils/topic-mapper.d.ts +18 -0
  248. package/dist/utils/topic-mapper.d.ts.map +1 -0
  249. package/dist/utils/topic-mapper.js +182 -0
  250. package/dist/utils/topic-mapper.js.map +1 -0
  251. package/dist/utils/url-converter.d.ts +22 -0
  252. package/dist/utils/url-converter.d.ts.map +1 -0
  253. package/dist/utils/url-converter.js +70 -0
  254. package/dist/utils/url-converter.js.map +1 -0
  255. package/dist/utils/user-agent-pool.d.ts +241 -0
  256. package/dist/utils/user-agent-pool.d.ts.map +1 -0
  257. package/dist/utils/user-agent-pool.js +557 -0
  258. package/dist/utils/user-agent-pool.js.map +1 -0
  259. package/dist/utils/wwdc-data-source-path.d.ts +9 -0
  260. package/dist/utils/wwdc-data-source-path.d.ts.map +1 -0
  261. package/dist/utils/wwdc-data-source-path.js +22 -0
  262. package/dist/utils/wwdc-data-source-path.js.map +1 -0
  263. package/dist/utils/wwdc-data-source.d.ts +36 -0
  264. package/dist/utils/wwdc-data-source.d.ts.map +1 -0
  265. package/dist/utils/wwdc-data-source.js +133 -0
  266. package/dist/utils/wwdc-data-source.js.map +1 -0
  267. package/package.json +83 -0
@@ -0,0 +1,306 @@
1
+ import { technologyOverviewsCache, generateUrlCacheKey } from '../utils/cache.js';
2
+ import { APPLE_URLS } from '../utils/constants.js';
3
+ import { httpClient } from '../utils/http-client.js';
4
+ import { logger } from '../utils/logger.js';
5
+ /**
6
+ * Handle get technology overviews
7
+ */
8
+ export async function handleGetTechnologyOverviews(category, platform = 'all', searchQuery, includeSubcategories = true, limit = 50) {
9
+ try {
10
+ logger.info('Fetching technology overviews...');
11
+ // Generate cache key
12
+ const cacheKey = generateUrlCacheKey('technology-overviews', {
13
+ category,
14
+ platform,
15
+ searchQuery,
16
+ includeSubcategories,
17
+ limit,
18
+ });
19
+ // Try to get from cache first
20
+ const cachedResult = technologyOverviewsCache.get(cacheKey);
21
+ if (cachedResult) {
22
+ logger.debug('Technology overviews cache hit');
23
+ return cachedResult;
24
+ }
25
+ // Fetch both data files
26
+ const [overviewsData, overviewsIndex] = await Promise.all([
27
+ httpClient.getJson(APPLE_URLS.TECHNOLOGY_OVERVIEWS_JSON),
28
+ httpClient.getJson(APPLE_URLS.TECHNOLOGY_OVERVIEWS_INDEX_JSON),
29
+ ]);
30
+ // Parse and filter overviews
31
+ const overviews = parseOverviews(overviewsData, overviewsIndex);
32
+ const filteredOverviews = applyOverviewsFilters(overviews, {
33
+ category,
34
+ platform,
35
+ searchQuery,
36
+ includeSubcategories,
37
+ limit,
38
+ });
39
+ // Format output
40
+ const result = formatOverviewsList(filteredOverviews);
41
+ // Cache the result
42
+ technologyOverviewsCache.set(cacheKey, result);
43
+ return result;
44
+ }
45
+ catch (error) {
46
+ const errorMessage = error instanceof Error ? error.message : JSON.stringify(error);
47
+ logger.error('Error fetching technology overviews:', error);
48
+ return `Error: Failed to fetch technology overviews: ${errorMessage}`;
49
+ }
50
+ }
51
+ /**
52
+ * Parse overviews data
53
+ */
54
+ function parseOverviews(overviewsData, overviewsIndex) {
55
+ const overviews = [];
56
+ // Process main overview sections
57
+ if (overviewsData.topicSections) {
58
+ overviewsData.topicSections.forEach(section => {
59
+ section.identifiers.forEach(identifier => {
60
+ const reference = overviewsData.references[identifier];
61
+ if (reference) {
62
+ // Construct description from abstract array
63
+ let description = '';
64
+ if (reference.abstract && Array.isArray(reference.abstract)) {
65
+ description = reference.abstract
66
+ .map(part => part.text || '')
67
+ .join('')
68
+ .trim();
69
+ }
70
+ const overviewItem = {
71
+ title: reference.title,
72
+ url: reference.url ? `https://developer.apple.com${reference.url}` : '',
73
+ description,
74
+ category: extractCategoryFromUrl(reference.url),
75
+ type: reference.kind ?? 'overview',
76
+ identifier,
77
+ sectionTitle: section.title,
78
+ depth: 0,
79
+ };
80
+ overviews.push(overviewItem);
81
+ }
82
+ });
83
+ });
84
+ }
85
+ // Process index data for hierarchical structure
86
+ if (overviewsIndex.interfaceLanguages?.swift) {
87
+ processIndexSection(overviewsIndex.interfaceLanguages.swift, overviews, 0, null);
88
+ }
89
+ return overviews;
90
+ }
91
+ /**
92
+ * Process index section recursively
93
+ */
94
+ function processIndexSection(sections, overviews, depth, parentSection) {
95
+ let currentSection = parentSection;
96
+ sections.forEach(section => {
97
+ // Track current section from group markers
98
+ if (section.type === 'groupMarker') {
99
+ currentSection = section.title;
100
+ // Process children with same depth but updated section
101
+ if (section.children) {
102
+ processIndexSection(section.children, overviews, depth, currentSection);
103
+ }
104
+ return;
105
+ }
106
+ // Check if this section already exists in overviews
107
+ const existingOverview = overviews.find(o => o.url.includes(section.path) || o.title === section.title);
108
+ if (existingOverview) {
109
+ // Update with additional info
110
+ existingOverview.path = section.path;
111
+ existingOverview.depth = depth;
112
+ existingOverview.type = section.type;
113
+ if (currentSection && !existingOverview.sectionTitle) {
114
+ existingOverview.sectionTitle = currentSection;
115
+ }
116
+ }
117
+ else {
118
+ // Add new overview item
119
+ const newOverview = {
120
+ title: section.title,
121
+ url: `https://developer.apple.com${section.path}`,
122
+ description: '',
123
+ category: extractCategoryFromUrl(section.path),
124
+ type: section.type,
125
+ identifier: section.path,
126
+ path: section.path,
127
+ depth,
128
+ sectionTitle: currentSection || '',
129
+ };
130
+ overviews.push(newOverview);
131
+ }
132
+ // Process children
133
+ if (section.children) {
134
+ processIndexSection(section.children, overviews, depth + 1, currentSection);
135
+ }
136
+ });
137
+ }
138
+ /**
139
+ * Extract category from URL
140
+ */
141
+ function extractCategoryFromUrl(url) {
142
+ const match = url.match(/\/documentation\/technologyoverviews\/([^/]+)/i);
143
+ return match?.[1] ?? 'general';
144
+ }
145
+ /**
146
+ * Apply filters to overviews
147
+ */
148
+ function applyOverviewsFilters(overviews, filters) {
149
+ let filtered = [...overviews];
150
+ // Category filter
151
+ if (filters.category) {
152
+ const categoryLower = filters.category.toLowerCase();
153
+ // First, find all items that match the category
154
+ const categoryItems = overviews.filter(overview => {
155
+ return overview.category.toLowerCase() === categoryLower ||
156
+ overview.title.toLowerCase() === categoryLower.replace(/-/g, ' ') ||
157
+ overview.path?.toLowerCase().includes(`/${categoryLower}`);
158
+ });
159
+ // If we found category items, also include their children
160
+ if (categoryItems.length > 0) {
161
+ const categoryPaths = categoryItems.map(item => item.path || item.url);
162
+ filtered = overviews.filter(overview => {
163
+ // Include the category items themselves
164
+ if (categoryItems.includes(overview)) {
165
+ return true;
166
+ }
167
+ // Include children of category items
168
+ if (overview.path || overview.url) {
169
+ const overviewPath = (overview.path || overview.url).replace('https://developer.apple.com', '');
170
+ return categoryPaths.some(categoryPath => {
171
+ const cleanCategoryPath = categoryPath.replace('https://developer.apple.com', '');
172
+ return overviewPath.startsWith(cleanCategoryPath) && overviewPath !== cleanCategoryPath;
173
+ });
174
+ }
175
+ return false;
176
+ });
177
+ }
178
+ else {
179
+ // No matching category found
180
+ filtered = [];
181
+ }
182
+ }
183
+ // Platform filter
184
+ if (filters.platform && filters.platform !== 'all') {
185
+ const platformLower = filters.platform.toLowerCase();
186
+ filtered = filtered.filter(overview => overview.title.toLowerCase().includes(platformLower) ||
187
+ overview.description.toLowerCase().includes(platformLower) ||
188
+ overview.path?.toLowerCase().includes(platformLower));
189
+ }
190
+ // Search query filter
191
+ if (filters.searchQuery) {
192
+ const queryLower = filters.searchQuery.toLowerCase();
193
+ filtered = filtered.filter(overview => overview.title.toLowerCase().includes(queryLower) ||
194
+ overview.description.toLowerCase().includes(queryLower));
195
+ }
196
+ // If not including subcategories, filter out deep items
197
+ if (!filters.includeSubcategories) {
198
+ // Keep only top-level items (depth 0 or 1)
199
+ filtered = filtered.filter(overview => overview.depth <= 1);
200
+ }
201
+ // Apply limit (limit top-level items, but include their children)
202
+ if (filters.limit && filters.limit > 0) {
203
+ // Count top-level items
204
+ let topLevelCount = 0;
205
+ const limitedResults = [];
206
+ for (const item of filtered) {
207
+ if (item.depth === 0) {
208
+ if (topLevelCount >= filters.limit) {
209
+ break;
210
+ }
211
+ topLevelCount++;
212
+ }
213
+ limitedResults.push(item);
214
+ }
215
+ filtered = limitedResults;
216
+ }
217
+ return filtered;
218
+ }
219
+ /**
220
+ * Format overviews list
221
+ */
222
+ function formatOverviewsList(overviews) {
223
+ if (overviews.length === 0) {
224
+ return 'No technology overviews found matching the specified criteria.';
225
+ }
226
+ let content = '# Apple Developer Technology Overviews\n\n';
227
+ content += '*Comprehensive guides for Apple platforms and technologies*\n\n';
228
+ // Group by category and depth for better organization
229
+ const grouped = groupOverviewsByCategory(overviews);
230
+ // Format each category
231
+ Object.entries(grouped).forEach(([category, items]) => {
232
+ const categoryTitle = formatCategoryTitle(category);
233
+ content += `## ${categoryTitle}\n\n`;
234
+ // Sort items by depth and title
235
+ items.sort((a, b) => {
236
+ if (a.depth !== b.depth) {
237
+ return a.depth - b.depth;
238
+ }
239
+ return a.title.localeCompare(b.title);
240
+ });
241
+ // Format items with proper indentation
242
+ items.forEach(item => {
243
+ const indent = ' '.repeat(item.depth);
244
+ // Title with link
245
+ content += `${indent}### [${item.title}](${item.url})\n`;
246
+ // Type badge
247
+ if (item.type && item.type !== 'overview') {
248
+ content += `${indent}*Type: ${formatType(item.type)}*\n`;
249
+ }
250
+ // Description
251
+ if (item.description) {
252
+ content += `${indent}${item.description}\n`;
253
+ }
254
+ content += '\n';
255
+ });
256
+ });
257
+ content += '\n---\n\n[Explore all Technology Overviews](https://developer.apple.com/documentation/technologyoverviews)';
258
+ return content;
259
+ }
260
+ /**
261
+ * Group overviews by category
262
+ */
263
+ function groupOverviewsByCategory(overviews) {
264
+ return overviews.reduce((acc, overview) => {
265
+ // Use sectionTitle for top-level items, otherwise use the parent category
266
+ let groupKey = overview.sectionTitle;
267
+ // If no section title or it's a nested item, try to group by top-level category
268
+ if (!groupKey && overview.depth > 0) {
269
+ // Extract top-level category from the path
270
+ const pathParts = overview.category.split('-');
271
+ groupKey = formatCategoryTitle(pathParts[0]);
272
+ }
273
+ // Default to formatted category
274
+ if (!groupKey) {
275
+ groupKey = formatCategoryTitle(overview.category);
276
+ }
277
+ if (!acc[groupKey]) {
278
+ acc[groupKey] = [];
279
+ }
280
+ acc[groupKey].push(overview);
281
+ return acc;
282
+ }, {});
283
+ }
284
+ /**
285
+ * Format category title
286
+ */
287
+ function formatCategoryTitle(category) {
288
+ return category
289
+ .replace(/-/g, ' ')
290
+ .split(' ')
291
+ .map(word => word.charAt(0).toUpperCase() + word.slice(1))
292
+ .join(' ');
293
+ }
294
+ /**
295
+ * Format type
296
+ */
297
+ function formatType(type) {
298
+ const typeMap = {
299
+ 'collection': 'Collection',
300
+ 'article': 'Article',
301
+ 'module': 'Module',
302
+ 'groupMarker': 'Group',
303
+ };
304
+ return typeMap[type] ?? type;
305
+ }
306
+ //# sourceMappingURL=get-technology-overviews.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-technology-overviews.js","sourceRoot":"","sources":["../../src/tools/get-technology-overviews.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,29 @@
1
+ /**
2
+ * Tool handlers for Apple Developer Documentation MCP Server
3
+ * Optimized for agent context windows with compact output support
4
+ */
5
+ /**
6
+ * Tool handler function type
7
+ */
8
+ export type ToolHandler = (args: unknown, server: any) => Promise<{
9
+ content: Array<{
10
+ type: string;
11
+ text: string;
12
+ }>;
13
+ isError?: boolean;
14
+ }>;
15
+ /**
16
+ * Map of tool names to their handlers
17
+ */
18
+ export declare const toolHandlers: Record<string, ToolHandler>;
19
+ /**
20
+ * Handle tool call with the appropriate handler
21
+ */
22
+ export declare function handleToolCall(toolName: string, args: unknown, server: any): Promise<{
23
+ content: Array<{
24
+ type: string;
25
+ text: string;
26
+ }>;
27
+ isError?: boolean;
28
+ }>;
29
+ //# sourceMappingURL=handlers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"handlers.d.ts","sourceRoot":"","sources":["../../src/tools/handlers.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAuCH;;GAEG;AACH,MAAM,MAAM,WAAW,GAAG,CACxB,IAAI,EAAE,OAAO,EACb,MAAM,EAAE,GAAG,KACR,OAAO,CAAC;IAAE,OAAO,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAAC,OAAO,CAAC,EAAE,OAAO,CAAA;CAAE,CAAC,CAAC;AAEpF;;GAEG;AACH,eAAO,MAAM,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,WAAW,CA+fpD,CAAC;AAEF;;GAEG;AACH,wBAAsB,cAAc,CAClC,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,OAAO,EACb,MAAM,EAAE,GAAG,GACV,OAAO,CAAC;IAAE,OAAO,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAAC,OAAO,CAAC,EAAE,OAAO,CAAA;CAAE,CAAC,CAkBhF"}