@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,266 @@
1
+ /**
2
+ * Configuration constants for Apple Docs MCP
3
+ */
4
+ // API Limits - Optimized for agent context windows
5
+ export const API_LIMITS = {
6
+ MAX_SEARCH_RESULTS: 15,
7
+ MAX_RELATED_APIS: 10,
8
+ MAX_REFERENCES: 50,
9
+ MAX_SIMILAR_APIS: 15,
10
+ MAX_FRAMEWORK_DEPTH: 10,
11
+ DEFAULT_FRAMEWORK_DEPTH: 3,
12
+ // Default values for various operations - reduced for agent optimization
13
+ DEFAULT_FRAMEWORK_SYMBOLS_LIMIT: 15,
14
+ DEFAULT_DOCUMENTATION_UPDATES_LIMIT: 15,
15
+ DEFAULT_TECHNOLOGY_OVERVIEWS_LIMIT: 15,
16
+ DEFAULT_SAMPLE_CODE_LIMIT: 15,
17
+ DEFAULT_TECHNOLOGIES_LIMIT: 25,
18
+ DEFAULT_REFERENCES_LIMIT: 10,
19
+ // Maximum values for schema validation - unchanged for power users
20
+ MAX_FRAMEWORK_SYMBOLS_LIMIT: 200,
21
+ MAX_DOCUMENTATION_UPDATES_LIMIT: 200,
22
+ MAX_TECHNOLOGY_OVERVIEWS_LIMIT: 200,
23
+ MAX_SAMPLE_CODE_LIMIT: 200,
24
+ MAX_TECHNOLOGIES_LIMIT: 500,
25
+ MAX_REFERENCES_LIMIT: 50,
26
+ };
27
+ // Search Depth Configuration
28
+ export const SEARCH_DEPTH_LIMITS = {
29
+ shallow: 5,
30
+ medium: 10,
31
+ deep: 15,
32
+ };
33
+ // Cache TTL Configuration (in milliseconds)
34
+ export const CACHE_TTL = {
35
+ API_DOCS: 30 * 60 * 1000, // 30 minutes
36
+ SEARCH_RESULTS: 10 * 60 * 1000, // 10 minutes
37
+ FRAMEWORK_INDEX: 60 * 60 * 1000, // 1 hour
38
+ TECHNOLOGIES: 2 * 60 * 60 * 1000, // 2 hours
39
+ UPDATES: 30 * 60 * 1000, // 30 minutes
40
+ SAMPLE_CODE: 2 * 60 * 60 * 1000, // 2 hours
41
+ TECHNOLOGY_OVERVIEWS: 2 * 60 * 60 * 1000, // 2 hours
42
+ };
43
+ // Cache Size Configuration
44
+ export const CACHE_SIZE = {
45
+ API_DOCS: 500,
46
+ SEARCH_RESULTS: 200,
47
+ FRAMEWORK_INDEX: 100,
48
+ TECHNOLOGIES: 50,
49
+ UPDATES: 100,
50
+ SAMPLE_CODE: 100,
51
+ TECHNOLOGY_OVERVIEWS: 100,
52
+ // Default cache configuration
53
+ DEFAULT_CACHE_SIZE: 1000,
54
+ DEFAULT_CACHE_TTL: 30 * 60 * 1000, // 30 minutes
55
+ };
56
+ // Safari User-Agent Constants
57
+ // Comprehensive collection of real Safari User-Agent strings covering different macOS versions and architectures
58
+ export const SAFARI_USER_AGENTS = [
59
+ // macOS Monterey (12.x) + Safari 15.x - 3 versions
60
+ 'Mozilla/5.0 (Macintosh; Intel Mac OS X 12_7_6) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.6.1 Safari/605.1.15', // Intel Mac, macOS 12.7.6, Safari 15.6.1
61
+ 'Mozilla/5.0 (Macintosh; arm64 Mac OS X 12_7_5) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.6.1 Safari/605.1.15', // Apple Silicon Mac, macOS 12.7.5, Safari 15.6.1
62
+ 'Mozilla/5.0 (Macintosh; Intel Mac OS X 12_7_4) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.6.1 Safari/605.1.15', // Intel Mac, macOS 12.7.4, Safari 15.6.1
63
+ // macOS Ventura (13.x) + Safari 16.x - 5 versions
64
+ 'Mozilla/5.0 (Macintosh; Intel Mac OS X 13_7_1) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/16.6.1 Safari/605.1.15', // Intel Mac, macOS 13.7.1, Safari 16.6.1
65
+ 'Mozilla/5.0 (Macintosh; arm64 Mac OS X 13_7_0) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/16.6.1 Safari/605.1.15', // Apple Silicon Mac, macOS 13.7.0, Safari 16.6.1
66
+ 'Mozilla/5.0 (Macintosh; Intel Mac OS X 13_6_9) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/16.6.1 Safari/605.1.15', // Intel Mac, macOS 13.6.9, Safari 16.6.1
67
+ 'Mozilla/5.0 (Macintosh; arm64 Mac OS X 13_6_8) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/16.6.1 Safari/605.1.15', // Apple Silicon Mac, macOS 13.6.8, Safari 16.6.1
68
+ 'Mozilla/5.0 (Macintosh; Intel Mac OS X 13_6_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/16.6.1 Safari/605.1.15', // Intel Mac, macOS 13.6.7, Safari 16.6.1
69
+ // macOS Sonoma (14.x) + Safari 17.x - 8 versions
70
+ 'Mozilla/5.0 (Macintosh; Intel Mac OS X 14_7_1) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/17.6.1 Safari/605.1.15', // Intel Mac, macOS 14.7.1, Safari 17.6.1
71
+ 'Mozilla/5.0 (Macintosh; arm64 Mac OS X 14_7_1) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/17.6.1 Safari/605.1.15', // Apple Silicon Mac, macOS 14.7.1, Safari 17.6.1
72
+ 'Mozilla/5.0 (Macintosh; Intel Mac OS X 14_6_1) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/17.6.1 Safari/605.1.15', // Intel Mac, macOS 14.6.1, Safari 17.6.1
73
+ 'Mozilla/5.0 (Macintosh; arm64 Mac OS X 14_6_1) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/17.6.1 Safari/605.1.15', // Apple Silicon Mac, macOS 14.6.1, Safari 17.6.1
74
+ 'Mozilla/5.0 (Macintosh; Intel Mac OS X 14_5) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/17.5 Safari/605.1.15', // Intel Mac, macOS 14.5, Safari 17.5
75
+ 'Mozilla/5.0 (Macintosh; arm64 Mac OS X 14_5) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/17.5 Safari/605.1.15', // Apple Silicon Mac, macOS 14.5, Safari 17.5
76
+ 'Mozilla/5.0 (Macintosh; Intel Mac OS X 14_4_1) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/17.4.1 Safari/605.1.15', // Intel Mac, macOS 14.4.1, Safari 17.4.1
77
+ 'Mozilla/5.0 (Macintosh; arm64 Mac OS X 14_4_1) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/17.4.1 Safari/605.1.15', // Apple Silicon Mac, macOS 14.4.1, Safari 17.4.1
78
+ // macOS Sequoia (15.x) + Safari 18.x - 6 versions
79
+ 'Mozilla/5.0 (Macintosh; Intel Mac OS X 15_1) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.1 Safari/605.1.15', // Intel Mac, macOS 15.1, Safari 18.1
80
+ 'Mozilla/5.0 (Macintosh; arm64 Mac OS X 15_1) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.1 Safari/605.1.15', // Apple Silicon Mac, macOS 15.1, Safari 18.1
81
+ 'Mozilla/5.0 (Macintosh; Intel Mac OS X 15_0_1) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.0.1 Safari/605.1.15', // Intel Mac, macOS 15.0.1, Safari 18.0.1
82
+ 'Mozilla/5.0 (Macintosh; arm64 Mac OS X 15_0_1) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.0.1 Safari/605.1.15', // Apple Silicon Mac, macOS 15.0.1, Safari 18.0.1
83
+ 'Mozilla/5.0 (Macintosh; Intel Mac OS X 15_0) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.0 Safari/605.1.15', // Intel Mac, macOS 15.0, Safari 18.0
84
+ 'Mozilla/5.0 (Macintosh; arm64 Mac OS X 15_0) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.0 Safari/605.1.15', // Apple Silicon Mac, macOS 15.0, Safari 18.0
85
+ // macOS 26 Beta + Safari 19.x Beta - 3 versions
86
+ 'Mozilla/5.0 (Macintosh; arm64 Mac OS X 26_0) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/19.0 Safari/605.1.15', // Apple Silicon Mac, macOS 26.0 Beta, Safari 19.0 Beta
87
+ 'Mozilla/5.0 (Macintosh; Intel Mac OS X 26_0) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/19.0 Safari/605.1.15', // Intel Mac, macOS 26.0 Beta, Safari 19.0 Beta
88
+ 'Mozilla/5.0 (Macintosh; arm64 Mac OS X 26_1) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/19.1 Safari/605.1.15', // Apple Silicon Mac, macOS 26.1 Beta, Safari 19.1 Beta
89
+ ];
90
+ // Categorized Safari User-Agent groups for easy selection
91
+ export const SAFARI_USER_AGENT_CATEGORIES = {
92
+ monterey: SAFARI_USER_AGENTS.slice(0, 3), // macOS 12.x + Safari 15.x
93
+ ventura: SAFARI_USER_AGENTS.slice(3, 8), // macOS 13.x + Safari 16.x
94
+ sonoma: SAFARI_USER_AGENTS.slice(8, 16), // macOS 14.x + Safari 17.x
95
+ sequoia: SAFARI_USER_AGENTS.slice(16, 22), // macOS 15.x + Safari 18.x
96
+ beta: SAFARI_USER_AGENTS.slice(22, 25), // macOS 26.x + Safari 19.x Beta
97
+ };
98
+ // User-Agent validation and utility functions
99
+ export const SAFARI_USER_AGENT_UTILS = {
100
+ // Regular expression to validate Safari User-Agent format
101
+ SAFARI_UA_REGEX: /^Mozilla\/5\.0 \(Macintosh; (Intel|arm64) Mac OS X (\d+)_(\d+)(?:_(\d+))?\) AppleWebKit\/([\d.]+) \(KHTML, like Gecko\) Version\/([\d.]+) Safari\/([\d.]+)$/,
102
+ /**
103
+ * Validates if a User-Agent string is a valid Safari format
104
+ * @param userAgent - The User-Agent string to validate
105
+ * @returns boolean indicating if the format is valid
106
+ */
107
+ isValidSafariUserAgent: (userAgent) => {
108
+ return SAFARI_USER_AGENT_UTILS.SAFARI_UA_REGEX.test(userAgent);
109
+ },
110
+ /**
111
+ * Extracts architecture from User-Agent string
112
+ * @param userAgent - The User-Agent string
113
+ * @returns 'Intel' | 'Apple Silicon' | null
114
+ */
115
+ getArchitecture: (userAgent) => {
116
+ const match = userAgent.match(SAFARI_USER_AGENT_UTILS.SAFARI_UA_REGEX);
117
+ if (!match) {
118
+ return null;
119
+ }
120
+ return match[1] === 'Intel' ? 'Intel' : 'Apple Silicon';
121
+ },
122
+ /**
123
+ * Extracts macOS version from User-Agent string
124
+ * @param userAgent - The User-Agent string
125
+ * @returns string representation of macOS version (e.g., "14.7.1")
126
+ */
127
+ getMacOSVersion: (userAgent) => {
128
+ const match = userAgent.match(SAFARI_USER_AGENT_UTILS.SAFARI_UA_REGEX);
129
+ if (!match) {
130
+ return null;
131
+ }
132
+ const [, , major, minor, patch] = match;
133
+ return patch ? `${major}.${minor}.${patch}` : `${major}.${minor}`;
134
+ },
135
+ /**
136
+ * Extracts Safari version from User-Agent string
137
+ * @param userAgent - The User-Agent string
138
+ * @returns string representation of Safari version (e.g., "17.6.1")
139
+ */
140
+ getSafariVersion: (userAgent) => {
141
+ const match = userAgent.match(SAFARI_USER_AGENT_UTILS.SAFARI_UA_REGEX);
142
+ if (!match) {
143
+ return null;
144
+ }
145
+ return match[6];
146
+ },
147
+ /**
148
+ * Gets a random Safari User-Agent from all available options
149
+ * @returns A random Safari User-Agent string
150
+ */
151
+ getRandomUserAgent: () => {
152
+ const randomIndex = Math.floor(Math.random() * SAFARI_USER_AGENTS.length);
153
+ return SAFARI_USER_AGENTS[randomIndex];
154
+ },
155
+ /**
156
+ * Gets a random Safari User-Agent from a specific category
157
+ * @param category - The category to select from
158
+ * @returns A random Safari User-Agent string from the specified category
159
+ */
160
+ getRandomUserAgentFromCategory: (category) => {
161
+ const userAgents = SAFARI_USER_AGENT_CATEGORIES[category];
162
+ const randomIndex = Math.floor(Math.random() * userAgents.length);
163
+ return userAgents[randomIndex];
164
+ },
165
+ };
166
+ // Request Configuration
167
+ export const REQUEST_CONFIG = {
168
+ TIMEOUT: 30000, // 30 seconds
169
+ MAX_RETRIES: 3,
170
+ RETRY_DELAY: 1000, // 1 second
171
+ MAX_CONCURRENT_REQUESTS: 5,
172
+ USER_AGENT: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36',
173
+ // Default Safari User-Agent (latest stable)
174
+ DEFAULT_SAFARI_USER_AGENT: SAFARI_USER_AGENTS[19], // macOS 15.1, Safari 18.1, Apple Silicon
175
+ };
176
+ // Rate Limiting Configuration
177
+ export const RATE_LIMIT = {
178
+ MAX_REQUESTS_PER_MINUTE: 100,
179
+ WINDOW_MS: 60000, // 1 minute
180
+ };
181
+ // Processing Limits Configuration
182
+ export const PROCESSING_LIMITS = {
183
+ // Limits for slice operations in various tools
184
+ MAX_COLLECTIONS_TO_SHOW: 5,
185
+ MAX_RELATED_APIS_PER_SECTION: 3,
186
+ MAX_PLATFORM_COMPATIBILITY_ITEMS: 2,
187
+ MAX_SIMILAR_APIS_FOR_DEEP_SEARCH: 3,
188
+ MAX_TOPIC_IDENTIFIERS: 4,
189
+ MAX_DOC_FETCHER_RELATED_APIS: 10,
190
+ MAX_DOC_FETCHER_REFERENCES: 15,
191
+ MAX_DOC_FETCHER_SIMILAR_APIS: 8,
192
+ MAX_DOC_FETCHER_REFS_PER_TYPE: 5,
193
+ // Response time thresholds (milliseconds)
194
+ RESPONSE_TIME_GOOD_THRESHOLD: 1000,
195
+ RESPONSE_TIME_MODERATE_THRESHOLD: 3000,
196
+ };
197
+ // Apple Developer URLs
198
+ export const APPLE_URLS = {
199
+ BASE: 'https://developer.apple.com',
200
+ SEARCH: 'https://developer.apple.com/search/',
201
+ DOCUMENTATION: 'https://developer.apple.com/documentation/',
202
+ TUTORIALS_DATA: 'https://developer.apple.com/tutorials/data/',
203
+ TECHNOLOGIES_JSON: 'https://developer.apple.com/tutorials/data/documentation/technologies.json',
204
+ UPDATES_JSON: 'https://developer.apple.com/tutorials/data/documentation/Updates.json',
205
+ UPDATES_INDEX_JSON: 'https://developer.apple.com/tutorials/data/index/updates',
206
+ TECHNOLOGY_OVERVIEWS_JSON: 'https://developer.apple.com/tutorials/data/documentation/TechnologyOverviews.json',
207
+ TECHNOLOGY_OVERVIEWS_INDEX_JSON: 'https://developer.apple.com/tutorials/data/index/technologyoverviews',
208
+ SAMPLE_CODE_JSON: 'https://developer.apple.com/tutorials/data/documentation/SampleCode.json',
209
+ SAMPLE_CODE_INDEX_JSON: 'https://developer.apple.com/tutorials/data/index/samplecode',
210
+ };
211
+ // WWDC URLs
212
+ export const WWDC_URLS = {
213
+ BASE: 'https://developer.apple.com/videos',
214
+ TOPICS: 'https://developer.apple.com/videos/topics/',
215
+ YEAR_BASE: 'https://developer.apple.com/videos/wwdc',
216
+ PLAY_BASE: 'https://developer.apple.com/videos/play/wwdc',
217
+ // URL builders
218
+ getYearUrl: (year) => `https://developer.apple.com/videos/wwdc${year}/`,
219
+ getVideoUrl: (year, videoId) => `https://developer.apple.com/videos/play/wwdc${year}/${videoId}/`,
220
+ getCodeUrl: (year, videoId) => `https://developer.apple.com/videos/play/wwdc${year}/${videoId}/code`,
221
+ getTranscriptUrl: (year, videoId) => `https://developer.apple.com/videos/play/wwdc${year}/${videoId}/transcript`,
222
+ getResourcesUrl: (year, videoId) => `https://developer.apple.com/videos/play/wwdc${year}/${videoId}/resources`,
223
+ getTopicUrl: (topicId) => `https://developer.apple.com/videos/${topicId}/`,
224
+ };
225
+ // WWDC Configuration
226
+ export const WWDC_CONFIG = {
227
+ // Year ranges
228
+ EARLIEST_YEAR: 2014,
229
+ LATEST_YEAR: 2025,
230
+ CODE_TAB_INTRODUCED_YEAR: 2022, // WWDC22 introduced separate code tabs
231
+ // Available years array
232
+ AVAILABLE_YEARS: ['2014', '2015', '2016', '2017', '2018', '2019', '2020', '2021', '2022', '2023', '2024', '2025'],
233
+ // Default limits - reduced for agent optimization
234
+ DEFAULT_VIDEO_LIMIT: 15,
235
+ DEFAULT_CODE_EXAMPLES_LIMIT: 10,
236
+ DEFAULT_SEARCH_LIMIT: 10,
237
+ DEFAULT_RELATED_VIDEOS_LIMIT: 10,
238
+ DEFAULT_TOPIC_VIDEOS_LIMIT: 10,
239
+ // Maximum limits - unchanged for power users
240
+ MAX_VIDEO_LIMIT: 200,
241
+ MAX_CODE_EXAMPLES_LIMIT: 100,
242
+ MAX_SEARCH_LIMIT: 100,
243
+ MAX_RELATED_VIDEOS_LIMIT: 50,
244
+ MAX_TOPIC_VIDEOS_LIMIT: 100,
245
+ // Processing limits
246
+ MIN_CODE_LENGTH: 10, // Minimum code length to consider valid
247
+ MAX_CONTEXT_MATCHES: 3, // Maximum matches per video in search results
248
+ MAX_TOPIC_VIDEOS_FOR_SCORING: 10, // Maximum videos to load for similarity scoring
249
+ // Cache TTL for WWDC data (in milliseconds)
250
+ CACHE_TTL: 60 * 60 * 1000, // 1 hour - increased since data is now bundled
251
+ };
252
+ // Error Messages
253
+ export const ERROR_MESSAGES = {
254
+ INVALID_URL: 'URL must be from developer.apple.com',
255
+ FETCH_FAILED: 'Failed to fetch data from Apple Developer Documentation',
256
+ PARSE_FAILED: 'Failed to parse response data',
257
+ NOT_FOUND: 'Documentation not found (404). This URL may have been moved or removed.',
258
+ TIMEOUT: 'Request timed out. Please try again later.',
259
+ NETWORK_ERROR: 'Network error occurred. Please check your connection.',
260
+ RATE_LIMITED: 'Request rate limit exceeded. Please wait before trying again.',
261
+ API_ERROR: 'API error occurred while processing the request.',
262
+ CACHE_ERROR: 'Cache operation failed, but the request will continue.',
263
+ VALIDATION_ERROR: 'Input validation failed. Please check your parameters.',
264
+ SERVICE_UNAVAILABLE: 'Apple Developer Documentation service is temporarily unavailable.',
265
+ };
266
+ //# sourceMappingURL=constants.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/utils/constants.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,mDAAmD;AACnD,MAAM,CAAC,MAAM,UAAU,GAAG;IACxB,kBAAkB,EAAE,EAAE;IACtB,gBAAgB,EAAE,EAAE;IACpB,cAAc,EAAE,EAAE;IAClB,gBAAgB,EAAE,EAAE;IACpB,mBAAmB,EAAE,EAAE;IACvB,uBAAuB,EAAE,CAAC;IAE1B,yEAAyE;IACzE,+BAA+B,EAAE,EAAE;IACnC,mCAAmC,EAAE,EAAE;IACvC,kCAAkC,EAAE,EAAE;IACtC,yBAAyB,EAAE,EAAE;IAC7B,0BAA0B,EAAE,EAAE;IAC9B,wBAAwB,EAAE,EAAE;IAE5B,mEAAmE;IACnE,2BAA2B,EAAE,GAAG;IAChC,+BAA+B,EAAE,GAAG;IACpC,8BAA8B,EAAE,GAAG;IACnC,qBAAqB,EAAE,GAAG;IAC1B,sBAAsB,EAAE,GAAG;IAC3B,oBAAoB,EAAE,EAAE;CAChB,CAAC;AAEX,6BAA6B;AAC7B,MAAM,CAAC,MAAM,mBAAmB,GAAG;IACjC,OAAO,EAAE,CAAC;IACV,MAAM,EAAE,EAAE;IACV,IAAI,EAAE,EAAE;CACA,CAAC;AAEX,4CAA4C;AAC5C,MAAM,CAAC,MAAM,SAAS,GAAG;IACvB,QAAQ,EAAE,EAAE,GAAG,EAAE,GAAG,IAAI,EAAO,aAAa;IAC5C,cAAc,EAAE,EAAE,GAAG,EAAE,GAAG,IAAI,EAAE,aAAa;IAC7C,eAAe,EAAE,EAAE,GAAG,EAAE,GAAG,IAAI,EAAE,SAAS;IAC1C,YAAY,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,EAAE,UAAU;IAC5C,OAAO,EAAE,EAAE,GAAG,EAAE,GAAG,IAAI,EAAE,aAAa;IACtC,WAAW,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,EAAE,UAAU;IAC3C,oBAAoB,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,EAAE,UAAU;CAC5C,CAAC;AAEX,2BAA2B;AAC3B,MAAM,CAAC,MAAM,UAAU,GAAG;IACxB,QAAQ,EAAE,GAAG;IACb,cAAc,EAAE,GAAG;IACnB,eAAe,EAAE,GAAG;IACpB,YAAY,EAAE,EAAE;IAChB,OAAO,EAAE,GAAG;IACZ,WAAW,EAAE,GAAG;IAChB,oBAAoB,EAAE,GAAG;IAEzB,8BAA8B;IAC9B,kBAAkB,EAAE,IAAI;IACxB,iBAAiB,EAAE,EAAE,GAAG,EAAE,GAAG,IAAI,EAAE,aAAa;CACxC,CAAC;AAEX,8BAA8B;AAC9B,iHAAiH;AACjH,MAAM,CAAC,MAAM,kBAAkB,GAAG;IAChC,mDAAmD;IACnD,wHAAwH,EAAE,yCAAyC;IACnK,wHAAwH,EAAE,iDAAiD;IAC3K,wHAAwH,EAAE,yCAAyC;IAEnK,kDAAkD;IAClD,wHAAwH,EAAE,yCAAyC;IACnK,wHAAwH,EAAE,iDAAiD;IAC3K,wHAAwH,EAAE,yCAAyC;IACnK,wHAAwH,EAAE,iDAAiD;IAC3K,wHAAwH,EAAE,yCAAyC;IAEnK,iDAAiD;IACjD,wHAAwH,EAAE,yCAAyC;IACnK,wHAAwH,EAAE,iDAAiD;IAC3K,wHAAwH,EAAE,yCAAyC;IACnK,wHAAwH,EAAE,iDAAiD;IAC3K,oHAAoH,EAAE,qCAAqC;IAC3J,oHAAoH,EAAE,6CAA6C;IACnK,wHAAwH,EAAE,yCAAyC;IACnK,wHAAwH,EAAE,iDAAiD;IAE3K,kDAAkD;IAClD,oHAAoH,EAAE,qCAAqC;IAC3J,oHAAoH,EAAE,6CAA6C;IACnK,wHAAwH,EAAE,yCAAyC;IACnK,wHAAwH,EAAE,iDAAiD;IAC3K,oHAAoH,EAAE,qCAAqC;IAC3J,oHAAoH,EAAE,6CAA6C;IAEnK,gDAAgD;IAChD,oHAAoH,EAAE,uDAAuD;IAC7K,oHAAoH,EAAE,+CAA+C;IACrK,oHAAoH,EAAE,uDAAuD;CACrK,CAAC;AAEX,0DAA0D;AAC1D,MAAM,CAAC,MAAM,4BAA4B,GAAG;IAC1C,QAAQ,EAAE,kBAAkB,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAK,2BAA2B;IACxE,OAAO,EAAE,kBAAkB,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAM,2BAA2B;IACxE,MAAM,EAAE,kBAAkB,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,EAAM,2BAA2B;IACxE,OAAO,EAAE,kBAAkB,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,CAAC,EAAI,2BAA2B;IACxE,IAAI,EAAE,kBAAkB,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,CAAC,EAAO,gCAAgC;CACrE,CAAC;AAEX,8CAA8C;AAC9C,MAAM,CAAC,MAAM,uBAAuB,GAAG;IACrC,0DAA0D;IAC1D,eAAe,EAAE,6JAA6J;IAE9K;;;;OAIG;IACH,sBAAsB,EAAE,CAAC,SAAiB,EAAW,EAAE;QACrD,OAAO,uBAAuB,CAAC,eAAe,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IACjE,CAAC;IAED;;;;OAIG;IACH,eAAe,EAAE,CAAC,SAAiB,EAAoC,EAAE;QACvE,MAAM,KAAK,GAAG,SAAS,CAAC,KAAK,CAAC,uBAAuB,CAAC,eAAe,CAAC,CAAC;QACvE,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,OAAO,IAAI,CAAC;QACd,CAAC;QACD,OAAO,KAAK,CAAC,CAAC,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,CAAC;IAC1D,CAAC;IAED;;;;OAIG;IACH,eAAe,EAAE,CAAC,SAAiB,EAAiB,EAAE;QACpD,MAAM,KAAK,GAAG,SAAS,CAAC,KAAK,CAAC,uBAAuB,CAAC,eAAe,CAAC,CAAC;QACvE,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,OAAO,IAAI,CAAC;QACd,CAAC;QACD,MAAM,CAAC,EAAE,AAAD,EAAG,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,GAAG,KAAK,CAAC;QACxC,OAAO,KAAK,CAAC,CAAC,CAAC,GAAG,KAAK,IAAI,KAAK,IAAI,KAAK,EAAE,CAAC,CAAC,CAAC,GAAG,KAAK,IAAI,KAAK,EAAE,CAAC;IACpE,CAAC;IAED;;;;OAIG;IACH,gBAAgB,EAAE,CAAC,SAAiB,EAAiB,EAAE;QACrD,MAAM,KAAK,GAAG,SAAS,CAAC,KAAK,CAAC,uBAAuB,CAAC,eAAe,CAAC,CAAC;QACvE,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,OAAO,IAAI,CAAC;QACd,CAAC;QACD,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED;;;OAGG;IACH,kBAAkB,EAAE,GAAW,EAAE;QAC/B,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,kBAAkB,CAAC,MAAM,CAAC,CAAC;QAC1E,OAAO,kBAAkB,CAAC,WAAW,CAAC,CAAC;IACzC,CAAC;IAED;;;;OAIG;IACH,8BAA8B,EAAE,CAAC,QAAmD,EAAU,EAAE;QAC9F,MAAM,UAAU,GAAG,4BAA4B,CAAC,QAAQ,CAAC,CAAC;QAC1D,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC;QAClE,OAAO,UAAU,CAAC,WAAW,CAAC,CAAC;IACjC,CAAC;CACO,CAAC;AAEX,wBAAwB;AACxB,MAAM,CAAC,MAAM,cAAc,GAAG;IAC5B,OAAO,EAAE,KAAK,EAAE,aAAa;IAC7B,WAAW,EAAE,CAAC;IACd,WAAW,EAAE,IAAI,EAAE,WAAW;IAC9B,uBAAuB,EAAE,CAAC;IAC1B,UAAU,EAAE,2HAA2H;IAEvI,4CAA4C;IAC5C,yBAAyB,EAAE,kBAAkB,CAAC,EAAE,CAAC,EAAE,yCAAyC;CACpF,CAAC;AAEX,8BAA8B;AAC9B,MAAM,CAAC,MAAM,UAAU,GAAG;IACxB,uBAAuB,EAAE,GAAG;IAC5B,SAAS,EAAE,KAAK,EAAE,WAAW;CACrB,CAAC;AAEX,kCAAkC;AAClC,MAAM,CAAC,MAAM,iBAAiB,GAAG;IAC/B,+CAA+C;IAC/C,uBAAuB,EAAE,CAAC;IAC1B,4BAA4B,EAAE,CAAC;IAC/B,gCAAgC,EAAE,CAAC;IACnC,gCAAgC,EAAE,CAAC;IACnC,qBAAqB,EAAE,CAAC;IACxB,4BAA4B,EAAE,EAAE;IAChC,0BAA0B,EAAE,EAAE;IAC9B,4BAA4B,EAAE,CAAC;IAC/B,6BAA6B,EAAE,CAAC;IAEhC,0CAA0C;IAC1C,4BAA4B,EAAE,IAAI;IAClC,gCAAgC,EAAE,IAAI;CAC9B,CAAC;AAEX,uBAAuB;AACvB,MAAM,CAAC,MAAM,UAAU,GAAG;IACxB,IAAI,EAAE,6BAA6B;IACnC,MAAM,EAAE,qCAAqC;IAC7C,aAAa,EAAE,4CAA4C;IAC3D,cAAc,EAAE,6CAA6C;IAC7D,iBAAiB,EAAE,4EAA4E;IAC/F,YAAY,EAAE,uEAAuE;IACrF,kBAAkB,EAAE,0DAA0D;IAC9E,yBAAyB,EAAE,mFAAmF;IAC9G,+BAA+B,EAAE,sEAAsE;IACvG,gBAAgB,EAAE,0EAA0E;IAC5F,sBAAsB,EAAE,6DAA6D;CAC7E,CAAC;AAEX,YAAY;AACZ,MAAM,CAAC,MAAM,SAAS,GAAG;IACvB,IAAI,EAAE,oCAAoC;IAC1C,MAAM,EAAE,4CAA4C;IACpD,SAAS,EAAE,yCAAyC;IACpD,SAAS,EAAE,8CAA8C;IAEzD,eAAe;IACf,UAAU,EAAE,CAAC,IAAY,EAAE,EAAE,CAAC,0CAA0C,IAAI,GAAG;IAC/E,WAAW,EAAE,CAAC,IAAY,EAAE,OAAe,EAAE,EAAE,CAAC,+CAA+C,IAAI,IAAI,OAAO,GAAG;IACjH,UAAU,EAAE,CAAC,IAAY,EAAE,OAAe,EAAE,EAAE,CAAC,+CAA+C,IAAI,IAAI,OAAO,OAAO;IACpH,gBAAgB,EAAE,CAAC,IAAY,EAAE,OAAe,EAAE,EAAE,CAAC,+CAA+C,IAAI,IAAI,OAAO,aAAa;IAChI,eAAe,EAAE,CAAC,IAAY,EAAE,OAAe,EAAE,EAAE,CAAC,+CAA+C,IAAI,IAAI,OAAO,YAAY;IAC9H,WAAW,EAAE,CAAC,OAAe,EAAE,EAAE,CAAC,sCAAsC,OAAO,GAAG;CAC1E,CAAC;AAEX,qBAAqB;AACrB,MAAM,CAAC,MAAM,WAAW,GAAG;IACzB,cAAc;IACd,aAAa,EAAE,IAAI;IACnB,WAAW,EAAE,IAAI;IACjB,wBAAwB,EAAE,IAAI,EAAE,uCAAuC;IAEvE,wBAAwB;IACxB,eAAe,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;IAEjH,kDAAkD;IAClD,mBAAmB,EAAE,EAAE;IACvB,2BAA2B,EAAE,EAAE;IAC/B,oBAAoB,EAAE,EAAE;IACxB,4BAA4B,EAAE,EAAE;IAChC,0BAA0B,EAAE,EAAE;IAE9B,6CAA6C;IAC7C,eAAe,EAAE,GAAG;IACpB,uBAAuB,EAAE,GAAG;IAC5B,gBAAgB,EAAE,GAAG;IACrB,wBAAwB,EAAE,EAAE;IAC5B,sBAAsB,EAAE,GAAG;IAE3B,oBAAoB;IACpB,eAAe,EAAE,EAAE,EAAE,wCAAwC;IAC7D,mBAAmB,EAAE,CAAC,EAAE,8CAA8C;IACtE,4BAA4B,EAAE,EAAE,EAAE,gDAAgD;IAElF,4CAA4C;IAC5C,SAAS,EAAE,EAAE,GAAG,EAAE,GAAG,IAAI,EAAE,+CAA+C;CAClE,CAAC;AAEX,iBAAiB;AACjB,MAAM,CAAC,MAAM,cAAc,GAAG;IAC5B,WAAW,EAAE,sCAAsC;IACnD,YAAY,EAAE,yDAAyD;IACvE,YAAY,EAAE,+BAA+B;IAC7C,SAAS,EAAE,yEAAyE;IACpF,OAAO,EAAE,4CAA4C;IACrD,aAAa,EAAE,uDAAuD;IACtE,YAAY,EAAE,+DAA+D;IAC7E,SAAS,EAAE,kDAAkD;IAC7D,WAAW,EAAE,wDAAwD;IACrE,gBAAgB,EAAE,wDAAwD;IAC1E,mBAAmB,EAAE,mEAAmE;CAChF,CAAC"}
@@ -0,0 +1,80 @@
1
+ /**
2
+ * Unified error handling utilities
3
+ */
4
+ import type { AppError, ErrorResponse } from '../types/error.js';
5
+ import { ErrorType } from '../types/error.js';
6
+ export type { AppError };
7
+ export { ErrorType };
8
+ /**
9
+ * Create a standardized error response
10
+ */
11
+ export declare function createErrorResponse(error: AppError): ErrorResponse;
12
+ /**
13
+ * Handle fetch errors with specific error types
14
+ */
15
+ export declare function handleFetchError(error: unknown, url: string): AppError;
16
+ /**
17
+ * Handle JSON parsing errors
18
+ */
19
+ export declare function handleParseError(error: unknown): AppError;
20
+ /**
21
+ * Validate input parameters
22
+ */
23
+ export declare function validateInput(value: string, fieldName: string, minLength?: number): AppError | null;
24
+ /**
25
+ * Log error for debugging (only in development)
26
+ */
27
+ export declare function logError(error: AppError, context?: string): void;
28
+ /**
29
+ * Handle generic errors and convert them to AppError
30
+ */
31
+ export declare function handleGenericError(error: unknown, context: string, fallbackMessage?: string): AppError;
32
+ /**
33
+ * Create a standardized error response with consistent formatting
34
+ */
35
+ export declare function createStandardErrorResponse(error: unknown, operation: string): ErrorResponse;
36
+ /**
37
+ * Wrap async functions with error handling
38
+ */
39
+ export declare function withErrorHandling<T>(operation: () => Promise<T>, context: string, fallbackMessage?: string): Promise<T>;
40
+ /**
41
+ * Validate multiple input parameters
42
+ */
43
+ export declare function validateInputs(validations: Array<{
44
+ value: string;
45
+ fieldName: string;
46
+ minLength?: number;
47
+ }>): AppError | null;
48
+ /**
49
+ * Handle cache-related errors
50
+ */
51
+ export declare function handleCacheError(error: unknown, operation: string): AppError;
52
+ /**
53
+ * Recovery action for error responses
54
+ */
55
+ export interface RecoveryAction {
56
+ tool: string;
57
+ args: Record<string, unknown>;
58
+ reason: string;
59
+ }
60
+ /**
61
+ * Tool-specific recovery actions - ready-to-use tool calls for error recovery
62
+ */
63
+ export declare const TOOL_RECOVERY_ACTIONS: Record<string, Record<string, RecoveryAction>>;
64
+ /**
65
+ * Tool-specific error suggestions
66
+ */
67
+ export declare const TOOL_ERROR_SUGGESTIONS: Record<string, Record<string, string[]>>;
68
+ /**
69
+ * Get tool-specific error suggestions
70
+ */
71
+ export declare function getToolErrorSuggestions(toolName: string, errorType: ErrorType): string[];
72
+ /**
73
+ * Get recovery action for a tool error
74
+ */
75
+ export declare function getRecoveryAction(toolName: string, errorType: ErrorType): RecoveryAction | null;
76
+ /**
77
+ * Create error response with tool-specific suggestions and recovery actions
78
+ */
79
+ export declare function createToolErrorResponse(error: AppError, toolName: string): ErrorResponse;
80
+ //# sourceMappingURL=error-handler.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"error-handler.d.ts","sourceRoot":"","sources":["../../src/utils/error-handler.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,KAAK,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AACjE,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAI9C,YAAY,EAAE,QAAQ,EAAE,CAAC;AACzB,OAAO,EAAE,SAAS,EAAE,CAAC;AAErB;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,QAAQ,GAAG,aAAa,CAgBlE;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,GAAG,QAAQ,CAmDtE;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,OAAO,GAAG,QAAQ,CAWzD;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,GAAE,MAAU,GAAG,QAAQ,GAAG,IAAI,CAYtG;AAED;;GAEG;AACH,wBAAgB,QAAQ,CAAC,KAAK,EAAE,QAAQ,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAIhE;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,eAAe,CAAC,EAAE,MAAM,GAAG,QAAQ,CAoEtG;AAED;;GAEG;AACH,wBAAgB,2BAA2B,CAAC,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,GAAG,aAAa,CAG5F;AAED;;GAEG;AACH,wBAAsB,iBAAiB,CAAC,CAAC,EACvC,SAAS,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,EAC3B,OAAO,EAAE,MAAM,EACf,eAAe,CAAC,EAAE,MAAM,GACvB,OAAO,CAAC,CAAC,CAAC,CAQZ;AAED;;GAEG;AACH,wBAAgB,cAAc,CAC5B,WAAW,EAAE,KAAK,CAAC;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,GAC3E,QAAQ,GAAG,IAAI,CAQjB;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,GAAG,QAAQ,CAU5E;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC9B,MAAM,EAAE,MAAM,CAAC;CAChB;AAED;;GAEG;AACH,eAAO,MAAM,qBAAqB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,CA4DhF,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,sBAAsB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CA+E3E,CAAC;AAEF;;GAEG;AACH,wBAAgB,uBAAuB,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS,GAAG,MAAM,EAAE,CA6BxF;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS,GAAG,cAAc,GAAG,IAAI,CAE/F;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CACrC,KAAK,EAAE,QAAQ,EACf,QAAQ,EAAE,MAAM,GACf,aAAa,CA+Bf"}