@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,690 @@
1
+ /**
2
+ * Tool definitions for Apple Developer Documentation MCP Server
3
+ * Optimized for agent context windows with compact output support
4
+ */
5
+ import { searchFrameworkSymbolsTool } from './search-framework-symbols.js';
6
+ import { API_LIMITS, WWDC_CONFIG } from '../utils/constants.js';
7
+ /**
8
+ * All available tools
9
+ */
10
+ export const toolDefinitions = [
11
+ // ============================================================================
12
+ // UNIFIED TOOLS - Recommended for most use cases
13
+ // ============================================================================
14
+ {
15
+ name: 'apple_docs',
16
+ description: 'Universal Apple documentation access. Automatically routes your query to the appropriate tool. BEST STARTING POINT for any Apple development question. Supports: search, docs, wwdc, samples, technologies. WORKFLOW: Use for discovery, then get_apple_doc_content for details.',
17
+ inputSchema: {
18
+ type: 'object',
19
+ properties: {
20
+ query: {
21
+ type: 'string',
22
+ description: 'Natural language query or Apple doc URL. Examples: "SwiftUI List docs", "WWDC async/await videos", "https://developer.apple.com/documentation/swiftui/list"',
23
+ },
24
+ intent: {
25
+ type: 'string',
26
+ enum: ['auto', 'search', 'docs', 'wwdc', 'samples', 'technologies'],
27
+ description: 'Optional routing hint. "auto" detects from query. Default: "auto"',
28
+ },
29
+ compact: {
30
+ type: 'boolean',
31
+ description: 'Return minimal output (titles + URLs). Recommended for discovery. Default: false',
32
+ },
33
+ },
34
+ required: ['query'],
35
+ },
36
+ },
37
+ {
38
+ name: 'wwdc',
39
+ description: 'Unified WWDC video access. Actions: list (browse), search (full-text), get (details), code (examples), topics (browse), related (find similar), years (list all). WORKFLOW: Use with compact:true for discovery, then get action for full content.',
40
+ inputSchema: {
41
+ type: 'object',
42
+ properties: {
43
+ action: {
44
+ type: 'string',
45
+ enum: ['list', 'search', 'get', 'code', 'topics', 'related', 'years'],
46
+ description: 'Action: list=browse videos, search=full-text search, get=video details, code=code examples, topics=browse topics, related=find related, years=list years',
47
+ },
48
+ year: {
49
+ type: 'string',
50
+ description: 'WWDC year (e.g., "2024", "2025")',
51
+ },
52
+ videoId: {
53
+ type: 'string',
54
+ description: 'Video ID (for get/related actions)',
55
+ },
56
+ query: {
57
+ type: 'string',
58
+ description: 'Search query (for search action)',
59
+ },
60
+ topic: {
61
+ type: 'string',
62
+ description: 'Topic filter (topic ID or keyword)',
63
+ },
64
+ framework: {
65
+ type: 'string',
66
+ description: 'Framework filter (for code action)',
67
+ },
68
+ limit: {
69
+ type: 'number',
70
+ description: `Max results (default: ${WWDC_CONFIG.DEFAULT_VIDEO_LIMIT})`,
71
+ },
72
+ compact: {
73
+ type: 'boolean',
74
+ description: 'Return minimal output. Recommended for discovery. Default: false',
75
+ },
76
+ searchIn: {
77
+ type: 'string',
78
+ enum: ['transcript', 'code', 'both'],
79
+ description: 'Search scope (for search action). Default: "both"',
80
+ },
81
+ hasCode: {
82
+ type: 'boolean',
83
+ description: 'Filter by code availability (for list action)',
84
+ },
85
+ includeTranscript: {
86
+ type: 'boolean',
87
+ description: 'Include transcript (for get action). Default: true',
88
+ },
89
+ includeCode: {
90
+ type: 'boolean',
91
+ description: 'Include code examples (for get action). Default: true',
92
+ },
93
+ includeVideos: {
94
+ type: 'boolean',
95
+ description: 'Include videos in topic (for topics action). Default: true',
96
+ },
97
+ language: {
98
+ type: 'string',
99
+ description: 'Filter code by language (swift, objc, etc.)',
100
+ },
101
+ },
102
+ required: ['action'],
103
+ },
104
+ },
105
+ {
106
+ name: 'analyze_api',
107
+ description: 'Unified API analysis. Combines related APIs, similar APIs, and reference resolution. Actions: related (inheritance/protocols), similar (alternatives), references (type resolution), all (comprehensive). WORKFLOW: Use after get_apple_doc_content for deeper analysis.',
108
+ inputSchema: {
109
+ type: 'object',
110
+ properties: {
111
+ apiUrl: {
112
+ type: 'string',
113
+ description: 'Apple documentation URL to analyze',
114
+ },
115
+ analysis: {
116
+ type: 'string',
117
+ enum: ['related', 'similar', 'references', 'all'],
118
+ description: 'Analysis type: related=inheritance/protocols, similar=alternatives, references=type resolution, all=comprehensive',
119
+ },
120
+ includeInherited: {
121
+ type: 'boolean',
122
+ description: 'Include inherited APIs (for related). Default: true',
123
+ },
124
+ includeConformance: {
125
+ type: 'boolean',
126
+ description: 'Include protocol conformances (for related). Default: true',
127
+ },
128
+ includeSeeAlso: {
129
+ type: 'boolean',
130
+ description: 'Include "See Also" section (for related). Default: true',
131
+ },
132
+ searchDepth: {
133
+ type: 'string',
134
+ enum: ['shallow', 'medium', 'deep'],
135
+ description: 'Search depth (for similar). Default: "medium"',
136
+ },
137
+ filterByCategory: {
138
+ type: 'string',
139
+ description: 'Filter by category (for similar)',
140
+ },
141
+ maxReferences: {
142
+ type: 'number',
143
+ description: `Max references to resolve (default: ${API_LIMITS.DEFAULT_REFERENCES_LIMIT}, max: ${API_LIMITS.MAX_REFERENCES_LIMIT})`,
144
+ },
145
+ filterByType: {
146
+ type: 'string',
147
+ enum: ['all', 'symbol', 'collection', 'article', 'protocol', 'class', 'struct', 'enum'],
148
+ description: 'Filter references by type. Default: "all"',
149
+ },
150
+ compact: {
151
+ type: 'boolean',
152
+ description: 'Return minimal output. Recommended for discovery. Default: false',
153
+ },
154
+ },
155
+ required: ['apiUrl', 'analysis'],
156
+ },
157
+ },
158
+ {
159
+ name: 'get_tool_guide',
160
+ description: 'Get guidance on which tools to use for a specific task. Call when unsure which tool is best. Returns recommended tools and suggested workflows.',
161
+ inputSchema: {
162
+ type: 'object',
163
+ properties: {
164
+ task: {
165
+ type: 'string',
166
+ description: 'Description of what you want to accomplish. Examples: "learn SwiftUI", "find WWDC videos about concurrency", "check iOS 17 API availability"',
167
+ },
168
+ },
169
+ required: ['task'],
170
+ },
171
+ },
172
+ // ============================================================================
173
+ // CORE DOCUMENTATION TOOLS
174
+ // ============================================================================
175
+ {
176
+ name: 'search_apple_docs',
177
+ description: 'Search Apple Developer Documentation. NEXT STEPS: Use returned URLs with get_apple_doc_content for full docs. For WWDC videos, use wwdc tool instead. For samples, use get_sample_code.',
178
+ inputSchema: {
179
+ type: 'object',
180
+ properties: {
181
+ query: {
182
+ type: 'string',
183
+ description: 'Search query. Tips: Use specific API names (e.g., "UIViewController"), framework names (e.g., "SwiftUI"). Avoid generic terms.',
184
+ },
185
+ type: {
186
+ type: 'string',
187
+ enum: ['all', 'documentation', 'sample'],
188
+ description: 'Content type filter. Default: "all"',
189
+ },
190
+ compact: {
191
+ type: 'boolean',
192
+ description: 'Return minimal output (titles + URLs). Recommended for discovery. Default: false',
193
+ },
194
+ },
195
+ required: ['query'],
196
+ },
197
+ },
198
+ {
199
+ name: 'get_apple_doc_content',
200
+ description: 'Get detailed content from a specific Apple documentation page. Use after search_apple_docs. NEXT STEPS: Use analyze_api for deeper analysis, or get_platform_compatibility for availability info.',
201
+ inputSchema: {
202
+ type: 'object',
203
+ properties: {
204
+ url: {
205
+ type: 'string',
206
+ description: 'Apple documentation URL. Must start with https://developer.apple.com/documentation/',
207
+ },
208
+ includeRelatedApis: {
209
+ type: 'boolean',
210
+ description: 'Include inheritance/protocols. Default: false',
211
+ },
212
+ includeReferences: {
213
+ type: 'boolean',
214
+ description: 'Resolve referenced types. Default: false',
215
+ },
216
+ includeSimilarApis: {
217
+ type: 'boolean',
218
+ description: 'Find similar APIs. Default: false',
219
+ },
220
+ includePlatformAnalysis: {
221
+ type: 'boolean',
222
+ description: 'Analyze platform availability. Default: false',
223
+ },
224
+ compact: {
225
+ type: 'boolean',
226
+ description: 'Return minimal output. Default: false',
227
+ },
228
+ },
229
+ required: ['url'],
230
+ },
231
+ },
232
+ {
233
+ name: 'list_technologies',
234
+ description: 'Browse Apple frameworks by category. NEXT STEPS: Use framework identifiers with search_framework_symbols to explore APIs. Use compact:true for quick overview.',
235
+ inputSchema: {
236
+ type: 'object',
237
+ properties: {
238
+ category: {
239
+ type: 'string',
240
+ description: 'Filter by category. Popular: "App frameworks", "Graphics and games", "App services"',
241
+ },
242
+ language: {
243
+ type: 'string',
244
+ enum: ['swift', 'occ'],
245
+ description: 'Filter by language. Leave empty for all.',
246
+ },
247
+ includeBeta: {
248
+ type: 'boolean',
249
+ description: 'Include beta technologies. Default: true',
250
+ },
251
+ limit: {
252
+ type: 'number',
253
+ description: `Max results (default: ${API_LIMITS.DEFAULT_TECHNOLOGIES_LIMIT})`,
254
+ },
255
+ compact: {
256
+ type: 'boolean',
257
+ description: 'Return minimal output. Recommended for discovery. Default: false',
258
+ },
259
+ },
260
+ required: [],
261
+ },
262
+ },
263
+ searchFrameworkSymbolsTool,
264
+ {
265
+ name: 'get_sample_code',
266
+ description: 'Browse complete sample projects from Apple. Full working examples with best practices. NEXT STEPS: Download and explore projects for implementation patterns.',
267
+ inputSchema: {
268
+ type: 'object',
269
+ properties: {
270
+ framework: {
271
+ type: 'string',
272
+ description: 'Framework filter (case-insensitive). Examples: "SwiftUI", "ARKit", "CoreML"',
273
+ },
274
+ beta: {
275
+ type: 'string',
276
+ enum: ['include', 'exclude', 'only'],
277
+ description: 'Beta samples: "include", "exclude", or "only". Default: "include"',
278
+ },
279
+ searchQuery: {
280
+ type: 'string',
281
+ description: 'Search keywords. Most effective approach.',
282
+ },
283
+ limit: {
284
+ type: 'number',
285
+ description: `Max results (default: ${API_LIMITS.DEFAULT_SAMPLE_CODE_LIMIT})`,
286
+ },
287
+ compact: {
288
+ type: 'boolean',
289
+ description: 'Return minimal output. Default: false',
290
+ },
291
+ },
292
+ required: [],
293
+ },
294
+ },
295
+ {
296
+ name: 'get_documentation_updates',
297
+ description: 'Track latest Apple platform updates and new APIs. Shows WWDC announcements, framework updates, release notes. For detailed WWDC videos, use wwdc tool.',
298
+ inputSchema: {
299
+ type: 'object',
300
+ properties: {
301
+ category: {
302
+ type: 'string',
303
+ enum: ['all', 'wwdc', 'technology', 'release-notes'],
304
+ description: 'Update type filter. Default: "all"',
305
+ },
306
+ technology: {
307
+ type: 'string',
308
+ description: 'Filter by framework name (case-sensitive)',
309
+ },
310
+ year: {
311
+ type: 'string',
312
+ description: 'WWDC year filter. Only for wwdc category.',
313
+ },
314
+ searchQuery: {
315
+ type: 'string',
316
+ description: 'Search keywords',
317
+ },
318
+ includeBeta: {
319
+ type: 'boolean',
320
+ description: 'Include beta features. Default: true',
321
+ },
322
+ limit: {
323
+ type: 'number',
324
+ description: `Max results (default: ${API_LIMITS.DEFAULT_DOCUMENTATION_UPDATES_LIMIT})`,
325
+ },
326
+ compact: {
327
+ type: 'boolean',
328
+ description: 'Return minimal output. Default: false',
329
+ },
330
+ },
331
+ required: [],
332
+ },
333
+ },
334
+ {
335
+ name: 'get_technology_overviews',
336
+ description: 'Access comprehensive guides and tutorials. Includes getting started guides, architectural overviews, best practices. NEXT STEPS: Use get_apple_doc_content for specific API details.',
337
+ inputSchema: {
338
+ type: 'object',
339
+ properties: {
340
+ category: {
341
+ type: 'string',
342
+ description: 'Topic category. Popular: "app-design-and-ui", "games", "ai-machine-learning"',
343
+ },
344
+ platform: {
345
+ type: 'string',
346
+ enum: ['all', 'ios', 'macos', 'watchos', 'tvos', 'visionos'],
347
+ description: 'Target platform. Default: "all"',
348
+ },
349
+ searchQuery: {
350
+ type: 'string',
351
+ description: 'Search terms',
352
+ },
353
+ includeSubcategories: {
354
+ type: 'boolean',
355
+ description: 'Include nested topics. Default: true',
356
+ },
357
+ limit: {
358
+ type: 'number',
359
+ description: `Max results (default: ${API_LIMITS.DEFAULT_TECHNOLOGY_OVERVIEWS_LIMIT})`,
360
+ },
361
+ compact: {
362
+ type: 'boolean',
363
+ description: 'Return minimal output. Default: false',
364
+ },
365
+ },
366
+ required: [],
367
+ },
368
+ },
369
+ {
370
+ name: 'get_platform_compatibility',
371
+ description: 'Check API availability across Apple platforms and OS versions. Critical for cross-platform development. Shows minimum deployment targets and deprecations.',
372
+ inputSchema: {
373
+ type: 'object',
374
+ properties: {
375
+ apiUrl: {
376
+ type: 'string',
377
+ description: 'API URL to check compatibility',
378
+ },
379
+ compareMode: {
380
+ type: 'string',
381
+ enum: ['single', 'framework'],
382
+ description: 'Check single API or entire framework. Default: "single"',
383
+ },
384
+ includeRelated: {
385
+ type: 'boolean',
386
+ description: 'Also check related APIs. Default: false',
387
+ },
388
+ compact: {
389
+ type: 'boolean',
390
+ description: 'Return minimal output. Default: false',
391
+ },
392
+ },
393
+ required: ['apiUrl'],
394
+ },
395
+ },
396
+ // ============================================================================
397
+ // LEGACY TOOLS - Kept for compatibility, prefer unified tools
398
+ // ============================================================================
399
+ {
400
+ name: 'get_related_apis',
401
+ description: '[Use analyze_api instead] Analyze API relationships. Shows inheritance, protocols, and See Also. NEXT STEPS: Use get_apple_doc_content on returned URLs.',
402
+ inputSchema: {
403
+ type: 'object',
404
+ properties: {
405
+ apiUrl: {
406
+ type: 'string',
407
+ description: 'Apple documentation URL to analyze',
408
+ },
409
+ includeInherited: {
410
+ type: 'boolean',
411
+ description: 'Show inherited APIs. Default: true',
412
+ },
413
+ includeConformance: {
414
+ type: 'boolean',
415
+ description: 'Show protocol conformances. Default: true',
416
+ },
417
+ includeSeeAlso: {
418
+ type: 'boolean',
419
+ description: 'Show See Also section. Default: true',
420
+ },
421
+ compact: {
422
+ type: 'boolean',
423
+ description: 'Return minimal output. Default: false',
424
+ },
425
+ },
426
+ required: ['apiUrl'],
427
+ },
428
+ },
429
+ {
430
+ name: 'resolve_references_batch',
431
+ description: '[Use analyze_api instead] Resolve all types referenced in a documentation page. Helps understand dependencies.',
432
+ inputSchema: {
433
+ type: 'object',
434
+ properties: {
435
+ sourceUrl: {
436
+ type: 'string',
437
+ description: 'Documentation URL to analyze',
438
+ },
439
+ maxReferences: {
440
+ type: 'number',
441
+ description: `Max references (default: ${API_LIMITS.DEFAULT_REFERENCES_LIMIT}, max: ${API_LIMITS.MAX_REFERENCES_LIMIT})`,
442
+ },
443
+ filterByType: {
444
+ type: 'string',
445
+ enum: ['all', 'symbol', 'collection', 'article', 'protocol', 'class', 'struct', 'enum'],
446
+ description: 'Filter by reference type. Default: "all"',
447
+ },
448
+ compact: {
449
+ type: 'boolean',
450
+ description: 'Return minimal output. Default: false',
451
+ },
452
+ },
453
+ required: ['sourceUrl'],
454
+ },
455
+ },
456
+ {
457
+ name: 'find_similar_apis',
458
+ description: '[Use analyze_api instead] Discover alternative APIs. Finds modern replacements for deprecated APIs.',
459
+ inputSchema: {
460
+ type: 'object',
461
+ properties: {
462
+ apiUrl: {
463
+ type: 'string',
464
+ description: 'Starting API URL',
465
+ },
466
+ searchDepth: {
467
+ type: 'string',
468
+ enum: ['shallow', 'medium', 'deep'],
469
+ description: 'Search depth. Default: "medium"',
470
+ },
471
+ filterByCategory: {
472
+ type: 'string',
473
+ description: 'Focus on specific functionality',
474
+ },
475
+ includeAlternatives: {
476
+ type: 'boolean',
477
+ description: 'Include similar APIs. Default: true',
478
+ },
479
+ compact: {
480
+ type: 'boolean',
481
+ description: 'Return minimal output. Default: false',
482
+ },
483
+ },
484
+ required: ['apiUrl'],
485
+ },
486
+ },
487
+ {
488
+ name: 'list_wwdc_videos',
489
+ description: '[Use wwdc tool instead] Browse WWDC videos. NEXT STEPS: Use get_wwdc_video for full content.',
490
+ inputSchema: {
491
+ type: 'object',
492
+ properties: {
493
+ year: {
494
+ type: 'string',
495
+ description: 'WWDC year or "all"',
496
+ },
497
+ topic: {
498
+ type: 'string',
499
+ description: 'Topic ID or keyword',
500
+ },
501
+ hasCode: {
502
+ type: 'boolean',
503
+ description: 'Filter by code availability',
504
+ },
505
+ limit: {
506
+ type: 'number',
507
+ description: `Max videos (default: ${WWDC_CONFIG.DEFAULT_VIDEO_LIMIT})`,
508
+ },
509
+ compact: {
510
+ type: 'boolean',
511
+ description: 'Return minimal output. Default: false',
512
+ },
513
+ },
514
+ required: [],
515
+ },
516
+ },
517
+ {
518
+ name: 'search_wwdc_content',
519
+ description: '[Use wwdc tool instead] Full-text search across WWDC transcripts and code.',
520
+ inputSchema: {
521
+ type: 'object',
522
+ properties: {
523
+ query: {
524
+ type: 'string',
525
+ description: 'Search terms',
526
+ },
527
+ searchIn: {
528
+ type: 'string',
529
+ enum: ['transcript', 'code', 'both'],
530
+ description: 'Search scope. Default: "both"',
531
+ },
532
+ year: {
533
+ type: 'string',
534
+ description: 'Limit to specific year',
535
+ },
536
+ language: {
537
+ type: 'string',
538
+ description: 'Code language filter',
539
+ },
540
+ limit: {
541
+ type: 'number',
542
+ description: `Max results (default: ${WWDC_CONFIG.DEFAULT_SEARCH_LIMIT})`,
543
+ },
544
+ compact: {
545
+ type: 'boolean',
546
+ description: 'Return minimal output. Default: false',
547
+ },
548
+ },
549
+ required: ['query'],
550
+ },
551
+ },
552
+ {
553
+ name: 'get_wwdc_video',
554
+ description: '[Use wwdc tool instead] Get complete WWDC session content with transcript and code.',
555
+ inputSchema: {
556
+ type: 'object',
557
+ properties: {
558
+ year: {
559
+ type: 'string',
560
+ description: 'WWDC year',
561
+ },
562
+ videoId: {
563
+ type: 'string',
564
+ description: 'Session ID',
565
+ },
566
+ includeTranscript: {
567
+ type: 'boolean',
568
+ description: 'Include transcript. Default: true',
569
+ },
570
+ includeCode: {
571
+ type: 'boolean',
572
+ description: 'Include code examples. Default: true',
573
+ },
574
+ },
575
+ required: ['year', 'videoId'],
576
+ },
577
+ },
578
+ {
579
+ name: 'get_wwdc_code_examples',
580
+ description: '[Use wwdc tool instead] Browse code examples from WWDC sessions.',
581
+ inputSchema: {
582
+ type: 'object',
583
+ properties: {
584
+ framework: {
585
+ type: 'string',
586
+ description: 'Framework filter',
587
+ },
588
+ topic: {
589
+ type: 'string',
590
+ description: 'Topic filter',
591
+ },
592
+ year: {
593
+ type: 'string',
594
+ description: 'WWDC year filter',
595
+ },
596
+ language: {
597
+ type: 'string',
598
+ description: 'Programming language filter',
599
+ },
600
+ limit: {
601
+ type: 'number',
602
+ description: `Max examples (default: ${WWDC_CONFIG.DEFAULT_CODE_EXAMPLES_LIMIT})`,
603
+ },
604
+ compact: {
605
+ type: 'boolean',
606
+ description: 'Return minimal output. Default: false',
607
+ },
608
+ },
609
+ required: [],
610
+ },
611
+ },
612
+ {
613
+ name: 'browse_wwdc_topics',
614
+ description: '[Use wwdc tool instead] List WWDC topic categories.',
615
+ inputSchema: {
616
+ type: 'object',
617
+ properties: {
618
+ topicId: {
619
+ type: 'string',
620
+ description: 'Topic ID to explore',
621
+ },
622
+ includeVideos: {
623
+ type: 'boolean',
624
+ description: 'Include video list. Default: true',
625
+ },
626
+ year: {
627
+ type: 'string',
628
+ description: 'Filter by year',
629
+ },
630
+ limit: {
631
+ type: 'number',
632
+ description: `Max videos (default: ${WWDC_CONFIG.DEFAULT_TOPIC_VIDEOS_LIMIT})`,
633
+ },
634
+ compact: {
635
+ type: 'boolean',
636
+ description: 'Return minimal output. Default: false',
637
+ },
638
+ },
639
+ required: [],
640
+ },
641
+ },
642
+ {
643
+ name: 'find_related_wwdc_videos',
644
+ description: '[Use wwdc tool instead] Find related WWDC sessions.',
645
+ inputSchema: {
646
+ type: 'object',
647
+ properties: {
648
+ videoId: {
649
+ type: 'string',
650
+ description: 'Source video ID',
651
+ },
652
+ year: {
653
+ type: 'string',
654
+ description: 'Source video year',
655
+ },
656
+ includeExplicitRelated: {
657
+ type: 'boolean',
658
+ description: 'Include explicit related. Default: true',
659
+ },
660
+ includeTopicRelated: {
661
+ type: 'boolean',
662
+ description: 'Include topic related. Default: true',
663
+ },
664
+ includeYearRelated: {
665
+ type: 'boolean',
666
+ description: 'Include same year. Default: false',
667
+ },
668
+ limit: {
669
+ type: 'number',
670
+ description: `Max related (default: ${WWDC_CONFIG.DEFAULT_RELATED_VIDEOS_LIMIT})`,
671
+ },
672
+ compact: {
673
+ type: 'boolean',
674
+ description: 'Return minimal output. Default: false',
675
+ },
676
+ },
677
+ required: ['videoId', 'year'],
678
+ },
679
+ },
680
+ {
681
+ name: 'list_wwdc_years',
682
+ description: '[Use wwdc tool instead] List available WWDC years with video counts.',
683
+ inputSchema: {
684
+ type: 'object',
685
+ properties: {},
686
+ required: [],
687
+ },
688
+ },
689
+ ];
690
+ //# sourceMappingURL=definitions.js.map