@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,5 @@
1
+ /**
2
+ * Handles the get_sample_code tool request
3
+ */
4
+ export declare function handleGetSampleCode(framework?: string, beta?: 'include' | 'exclude' | 'only', searchQuery?: string, limit?: number): Promise<string>;
5
+ //# sourceMappingURL=get-sample-code.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-sample-code.d.ts","sourceRoot":"","sources":["../../src/tools/get-sample-code.ts"],"names":[],"mappings":"AAqFA;;GAEG;AACH,wBAAsB,mBAAmB,CACvC,SAAS,CAAC,EAAE,MAAM,EAClB,IAAI,GAAE,SAAS,GAAG,SAAS,GAAG,MAAkB,EAChD,WAAW,CAAC,EAAE,MAAM,EACpB,KAAK,GAAE,MAAW,GACjB,OAAO,CAAC,MAAM,CAAC,CAqEjB"}
@@ -0,0 +1,375 @@
1
+ import { APPLE_URLS } from '../utils/constants.js';
2
+ import { httpClient } from '../utils/http-client.js';
3
+ import { sampleCodeCache, generateUrlCacheKey } from '../utils/cache.js';
4
+ import { normalizeFrameworkName } from '../utils/framework-mapper.js';
5
+ /**
6
+ * Handles the get_sample_code tool request
7
+ */
8
+ export async function handleGetSampleCode(framework, beta = 'include', searchQuery, limit = 50) {
9
+ // Generate cache key
10
+ const cacheKey = generateUrlCacheKey('sample-code', {
11
+ framework,
12
+ beta,
13
+ searchQuery,
14
+ limit,
15
+ });
16
+ // Try to get from cache first
17
+ const cachedResult = sampleCodeCache.get(cacheKey);
18
+ if (cachedResult) {
19
+ return cachedResult;
20
+ }
21
+ // Fetch both JSON files
22
+ const [contentResponse, indexResponse] = await Promise.all([
23
+ httpClient.get(APPLE_URLS.SAMPLE_CODE_JSON),
24
+ httpClient.get(APPLE_URLS.SAMPLE_CODE_INDEX_JSON),
25
+ ]);
26
+ if (!contentResponse.ok) {
27
+ throw new Error(`Failed to fetch sample code content: ${contentResponse.statusText}`);
28
+ }
29
+ if (!indexResponse.ok) {
30
+ throw new Error(`Failed to fetch sample code index: ${indexResponse.statusText}`);
31
+ }
32
+ const contentData = await contentResponse.json();
33
+ const indexData = await indexResponse.json();
34
+ // Parse the sample codes
35
+ const sampleCodes = parseSampleCodes(contentData, indexData);
36
+ // Apply filters
37
+ const filters = {
38
+ framework,
39
+ beta,
40
+ searchQuery,
41
+ };
42
+ const filteredSampleCodes = applySampleCodeFilters(sampleCodes, filters);
43
+ // Sort by relevance (featured first, then alphabetically)
44
+ const sortedSampleCodes = filteredSampleCodes.sort((a, b) => {
45
+ if (a.featured && !b.featured) {
46
+ return -1;
47
+ }
48
+ if (!a.featured && b.featured) {
49
+ return 1;
50
+ }
51
+ return a.title.localeCompare(b.title);
52
+ });
53
+ // Apply limit
54
+ const limitedSampleCodes = sortedSampleCodes.slice(0, limit);
55
+ // Format the result
56
+ const result = formatSampleCodeResult(limitedSampleCodes, {
57
+ framework,
58
+ beta,
59
+ searchQuery,
60
+ totalFound: filteredSampleCodes.length,
61
+ showing: limitedSampleCodes.length,
62
+ });
63
+ // Cache the result
64
+ sampleCodeCache.set(cacheKey, result);
65
+ return result;
66
+ }
67
+ /**
68
+ * Parses sample codes from the content and index data
69
+ */
70
+ function parseSampleCodes(content, index) {
71
+ const sampleCodes = [];
72
+ const featuredIds = new Set();
73
+ // Extract featured sample codes from primary content sections
74
+ if (content.primaryContentSections) {
75
+ for (const section of content.primaryContentSections) {
76
+ if (section.kind === 'content' && section.content) {
77
+ for (const contentItem of section.content) {
78
+ if (contentItem.type === 'links' && contentItem.items) {
79
+ for (const item of contentItem.items) {
80
+ featuredIds.add(item);
81
+ }
82
+ }
83
+ }
84
+ }
85
+ }
86
+ }
87
+ // Extract framework mapping from topic sections
88
+ const frameworkMap = new Map();
89
+ if (content.topicSections) {
90
+ for (const section of content.topicSections) {
91
+ for (const identifier of section.identifiers) {
92
+ frameworkMap.set(identifier, section.title);
93
+ }
94
+ }
95
+ }
96
+ // Process index data
97
+ for (const [, nodes] of Object.entries(index.interfaceLanguages)) {
98
+ processSampleCodeNodes(nodes, sampleCodes, frameworkMap, featuredIds, '', 0);
99
+ }
100
+ // Deduplicate sample codes based on path
101
+ return deduplicateSampleCodes(sampleCodes);
102
+ }
103
+ /**
104
+ * Deduplicates sample codes based on path
105
+ */
106
+ function deduplicateSampleCodes(sampleCodes) {
107
+ const uniqueCodes = new Map();
108
+ for (const code of sampleCodes) {
109
+ const existing = uniqueCodes.get(code.path);
110
+ if (!existing) {
111
+ uniqueCodes.set(code.path, code);
112
+ }
113
+ else {
114
+ // Merge properties, preferring non-empty values
115
+ uniqueCodes.set(code.path, {
116
+ ...existing,
117
+ framework: code.framework || existing.framework,
118
+ featured: code.featured || existing.featured,
119
+ beta: code.beta || existing.beta,
120
+ depth: Math.min(code.depth, existing.depth),
121
+ });
122
+ }
123
+ }
124
+ return Array.from(uniqueCodes.values());
125
+ }
126
+ /**
127
+ * Recursively processes sample code nodes
128
+ */
129
+ function processSampleCodeNodes(nodes, sampleCodes, frameworkMap, featuredIds, currentFramework, depth) {
130
+ for (const node of nodes) {
131
+ if (node.type === 'groupMarker') {
132
+ // This is a framework/category marker
133
+ const framework = normalizeFrameworkName(node.title);
134
+ if (node.children) {
135
+ processSampleCodeNodes(node.children, sampleCodes, frameworkMap, featuredIds, framework, depth + 1);
136
+ }
137
+ }
138
+ else if (node.type === 'sampleCode' && node.path) {
139
+ // Try to extract framework from path first
140
+ const frameworkFromPath = extractFrameworkFromPath(node.path);
141
+ // Convert path to doc URL format for matching with framework map
142
+ const docUrl = pathToDocUrl(node.path);
143
+ const frameworkFromMap = frameworkMap.get(docUrl);
144
+ // Priority: path > map > groupMarker
145
+ const framework = normalizeFrameworkName(frameworkFromPath || frameworkFromMap || currentFramework);
146
+ sampleCodes.push({
147
+ id: node.path,
148
+ title: node.title,
149
+ framework: framework || undefined,
150
+ description: undefined, // Could be extracted from the content if needed
151
+ beta: node.beta || false,
152
+ featured: featuredIds.has(docUrl),
153
+ url: `https://developer.apple.com${node.path}`,
154
+ path: node.path,
155
+ depth,
156
+ });
157
+ }
158
+ else if (node.children) {
159
+ // Process children with the same framework
160
+ processSampleCodeNodes(node.children, sampleCodes, frameworkMap, featuredIds, currentFramework, depth + 1);
161
+ }
162
+ }
163
+ }
164
+ /**
165
+ * Extract framework name from URL path
166
+ */
167
+ function extractFrameworkFromPath(path) {
168
+ // Match pattern like /documentation/framework/...
169
+ const match = path.match(/^\/documentation\/([^\/]+)\//);
170
+ if (match) {
171
+ const framework = match[1];
172
+ // Don't return generic paths like 'samplecode'
173
+ if (framework === 'samplecode' || framework === 'documentation') {
174
+ return null;
175
+ }
176
+ return normalizeFrameworkName(framework);
177
+ }
178
+ return null;
179
+ }
180
+ /**
181
+ * Converts a path to doc URL format
182
+ */
183
+ function pathToDocUrl(path) {
184
+ // Convert /documentation/framework/sample-name to doc://com.apple.documentation/documentation/framework/sample-name
185
+ return `doc://com.apple.documentation${path}`;
186
+ }
187
+ /**
188
+ * Applies filters to sample codes
189
+ */
190
+ function applySampleCodeFilters(sampleCodes, filters) {
191
+ return sampleCodes.filter((code) => {
192
+ // Framework filter - normalize both for comparison
193
+ if (filters.framework) {
194
+ const normalizedFilterFramework = normalizeFrameworkName(filters.framework);
195
+ const normalizedCodeFramework = normalizeFrameworkName(code.framework || '');
196
+ // Check for exact match or inclusion
197
+ const frameworkLower = normalizedFilterFramework.toLowerCase();
198
+ const codeFrameworkLower = normalizedCodeFramework.toLowerCase();
199
+ // Also check if the filter term appears in the title or path
200
+ const titleLower = code.title.toLowerCase();
201
+ const pathLower = code.path.toLowerCase();
202
+ const frameworkMatch = frameworkLower === codeFrameworkLower ||
203
+ codeFrameworkLower.includes(frameworkLower) ||
204
+ titleLower.includes(frameworkLower) ||
205
+ pathLower.includes(frameworkLower);
206
+ if (!frameworkMatch) {
207
+ return false;
208
+ }
209
+ }
210
+ // Beta filter
211
+ if (filters.beta === 'exclude' && code.beta) {
212
+ return false;
213
+ }
214
+ else if (filters.beta === 'only' && !code.beta) {
215
+ return false;
216
+ }
217
+ // Search query filter - enhanced matching
218
+ if (filters.searchQuery) {
219
+ const query = filters.searchQuery.toLowerCase();
220
+ // Score-based matching for better relevance
221
+ let matchScore = 0;
222
+ // Title match (highest weight)
223
+ const titleLower = code.title.toLowerCase();
224
+ if (titleLower === query) {
225
+ matchScore += 10; // Exact match
226
+ }
227
+ else if (titleLower.startsWith(query)) {
228
+ matchScore += 5; // Starts with query
229
+ }
230
+ else if (titleLower.includes(query)) {
231
+ matchScore += 3; // Contains query
232
+ }
233
+ // Framework match
234
+ const frameworkLower = (code.framework || '').toLowerCase();
235
+ if (frameworkLower.includes(query)) {
236
+ matchScore += 2;
237
+ }
238
+ // Path match (check if query is in the path)
239
+ const pathLower = code.path.toLowerCase();
240
+ if (pathLower.includes(query)) {
241
+ matchScore += 1;
242
+ }
243
+ // Description match (if available)
244
+ const descriptionLower = (code.description || '').toLowerCase();
245
+ if (descriptionLower.includes(query)) {
246
+ matchScore += 1;
247
+ }
248
+ // Only include if there's at least one match
249
+ if (matchScore === 0) {
250
+ return false;
251
+ }
252
+ }
253
+ return true;
254
+ });
255
+ }
256
+ /**
257
+ * Formats the sample code result
258
+ */
259
+ function formatSampleCodeResult(sampleCodes, options) {
260
+ const lines = [];
261
+ // Header
262
+ lines.push('# Apple Sample Code Library');
263
+ lines.push('');
264
+ // Filter summary
265
+ const filterParts = [];
266
+ if (options.framework) {
267
+ filterParts.push(`Framework: ${normalizeFrameworkName(options.framework)}`);
268
+ }
269
+ if (options.beta && options.beta !== 'include') {
270
+ filterParts.push(`Beta: ${options.beta}`);
271
+ }
272
+ if (options.searchQuery) {
273
+ filterParts.push(`Search: "${options.searchQuery}"`);
274
+ }
275
+ if (filterParts.length > 0) {
276
+ lines.push('## Filters Applied');
277
+ lines.push(filterParts.join(', '));
278
+ lines.push('');
279
+ }
280
+ // Results summary
281
+ lines.push(`Found ${options.totalFound} sample code projects${options.showing < options.totalFound ? `, showing ${options.showing}` : ''}`);
282
+ lines.push('');
283
+ if (sampleCodes.length === 0) {
284
+ lines.push('No sample code projects found matching your criteria.');
285
+ return lines.join('\n');
286
+ }
287
+ // Group by framework/category with normalization
288
+ const byCategory = new Map();
289
+ const noCategory = [];
290
+ for (const code of sampleCodes) {
291
+ const category = code.framework || '';
292
+ if (category) {
293
+ // Group WWDC samples together
294
+ const normalizedCategory = category.match(/^WWDC\d+$/i) ? category.toUpperCase() : category;
295
+ if (!byCategory.has(normalizedCategory)) {
296
+ byCategory.set(normalizedCategory, []);
297
+ }
298
+ byCategory.get(normalizedCategory).push(code);
299
+ }
300
+ else {
301
+ noCategory.push(code);
302
+ }
303
+ }
304
+ // Sort categories with WWDC years first (newest to oldest), then alphabetically
305
+ const sortedCategories = Array.from(byCategory.keys()).sort((a, b) => {
306
+ const aIsWWDC = a.match(/^WWDC(\d+)$/);
307
+ const bIsWWDC = b.match(/^WWDC(\d+)$/);
308
+ if (aIsWWDC && bIsWWDC) {
309
+ // Sort WWDC by year descending
310
+ return parseInt(bIsWWDC[1]) - parseInt(aIsWWDC[1]);
311
+ }
312
+ else if (aIsWWDC) {
313
+ return -1; // WWDC comes first
314
+ }
315
+ else if (bIsWWDC) {
316
+ return 1;
317
+ }
318
+ return a.localeCompare(b); // Alphabetical for non-WWDC
319
+ });
320
+ // Display featured samples first if any
321
+ const featuredSamples = sampleCodes.filter((c) => c.featured);
322
+ if (featuredSamples.length > 0) {
323
+ lines.push('## ⭐ Featured Samples');
324
+ lines.push('');
325
+ for (const code of featuredSamples) {
326
+ lines.push(formatSampleCodeItem(code, false)); // Don't show framework in featured section
327
+ }
328
+ lines.push('');
329
+ }
330
+ // Display by category
331
+ for (const category of sortedCategories) {
332
+ const codes = byCategory.get(category);
333
+ const nonFeaturedCodes = codes.filter(c => !c.featured);
334
+ if (nonFeaturedCodes.length > 0) {
335
+ lines.push(`## ${category}`);
336
+ lines.push('');
337
+ for (const code of nonFeaturedCodes) {
338
+ lines.push(formatSampleCodeItem(code, false)); // Framework already shown in section header
339
+ }
340
+ lines.push('');
341
+ }
342
+ }
343
+ // Display samples without category
344
+ if (noCategory.length > 0) {
345
+ const nonFeaturedOther = noCategory.filter(c => !c.featured);
346
+ if (nonFeaturedOther.length > 0) {
347
+ lines.push('## Other');
348
+ lines.push('');
349
+ for (const code of nonFeaturedOther) {
350
+ lines.push(formatSampleCodeItem(code, false));
351
+ }
352
+ lines.push('');
353
+ }
354
+ }
355
+ return lines.join('\n').trim();
356
+ }
357
+ /**
358
+ * Formats a single sample code item
359
+ */
360
+ function formatSampleCodeItem(code, showFramework = true) {
361
+ const badges = [];
362
+ if (code.beta) {
363
+ badges.push('🧪 Beta');
364
+ }
365
+ // Don't duplicate the featured badge as it's already in the section header
366
+ const badgeStr = badges.length > 0 ? ` ${badges.join(' ')}` : '';
367
+ // Framework info (only if requested and not in a framework-specific section)
368
+ const frameworkStr = showFramework && code.framework ? ` (${code.framework})` : '';
369
+ let line = `### [${code.title}](${code.url})${badgeStr}${frameworkStr}`;
370
+ if (code.description) {
371
+ line += `\n${code.description}`;
372
+ }
373
+ return line;
374
+ }
375
+ //# sourceMappingURL=get-sample-code.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-sample-code.js","sourceRoot":"","sources":["../../src/tools/get-sample-code.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Handle get technology overviews
3
+ */
4
+ export declare function handleGetTechnologyOverviews(category?: string, platform?: string, searchQuery?: string, includeSubcategories?: boolean, limit?: number): Promise<string>;
5
+ //# sourceMappingURL=get-technology-overviews.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-technology-overviews.d.ts","sourceRoot":"","sources":["../../src/tools/get-technology-overviews.ts"],"names":[],"mappings":"AAwCA;;GAEG;AACH,wBAAsB,4BAA4B,CAChD,QAAQ,CAAC,EAAE,MAAM,EACjB,QAAQ,GAAE,MAAc,EACxB,WAAW,CAAC,EAAE,MAAM,EACpB,oBAAoB,GAAE,OAAc,EACpC,KAAK,GAAE,MAAW,GACjB,OAAO,CAAC,MAAM,CAAC,CAiDjB"}