connectiq-mcp-server 1.1.8 → 1.2.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 (221) hide show
  1. package/build/handlers/handlerUtils.d.ts +15 -1
  2. package/build/handlers/handlerUtils.d.ts.map +1 -1
  3. package/build/handlers/handlerUtils.js +24 -1
  4. package/build/handlers/handlerUtils.js.map +1 -1
  5. package/build/handlers/resourceHandlers.d.ts.map +1 -1
  6. package/build/handlers/resourceHandlers.js +69 -22
  7. package/build/handlers/resourceHandlers.js.map +1 -1
  8. package/build/handlers/toolHandlers.d.ts.map +1 -1
  9. package/build/handlers/toolHandlers.js +249 -3
  10. package/build/handlers/toolHandlers.js.map +1 -1
  11. package/build/index.js +10 -4
  12. package/build/index.js.map +1 -1
  13. package/build/parsers/HtmlParser.d.ts +31 -3
  14. package/build/parsers/HtmlParser.d.ts.map +1 -1
  15. package/build/parsers/HtmlParser.js +238 -13
  16. package/build/parsers/HtmlParser.js.map +1 -1
  17. package/build/parsers/HtmlParserSchemas.d.ts +140 -54
  18. package/build/parsers/HtmlParserSchemas.d.ts.map +1 -1
  19. package/build/parsers/HtmlParserSchemas.js +6 -0
  20. package/build/parsers/HtmlParserSchemas.js.map +1 -1
  21. package/build/schemas/SchemaFactory.d.ts +2 -2
  22. package/build/schemas/SchemaFactory.d.ts.map +1 -1
  23. package/build/schemas/SchemaFactory.js +1 -0
  24. package/build/schemas/SchemaFactory.js.map +1 -1
  25. package/build/services/ApiDocService.d.ts +4 -0
  26. package/build/services/ApiDocService.d.ts.map +1 -1
  27. package/build/services/ApiDocService.js +69 -19
  28. package/build/services/ApiDocService.js.map +1 -1
  29. package/build/services/DevGuideService.d.ts +75 -0
  30. package/build/services/DevGuideService.d.ts.map +1 -0
  31. package/build/services/DevGuideService.js +274 -0
  32. package/build/services/DevGuideService.js.map +1 -0
  33. package/build/services/SampleCodeSearchService.d.ts +2 -0
  34. package/build/services/SampleCodeSearchService.d.ts.map +1 -1
  35. package/build/services/SampleCodeSearchService.js +63 -25
  36. package/build/services/SampleCodeSearchService.js.map +1 -1
  37. package/build/types/index.d.ts +48 -1
  38. package/build/types/index.d.ts.map +1 -1
  39. package/build/utils/IndexCache.d.ts +3 -1
  40. package/build/utils/IndexCache.d.ts.map +1 -1
  41. package/build/utils/IndexCache.js +3 -2
  42. package/build/utils/IndexCache.js.map +1 -1
  43. package/build/utils/logging.d.ts +3 -2
  44. package/build/utils/logging.d.ts.map +1 -1
  45. package/build/utils/logging.js +4 -1
  46. package/build/utils/logging.js.map +1 -1
  47. package/data/guides/app-review-guidelines/app-review-guidelines.md +235 -0
  48. package/data/guides/connect-iq-basics/app-types.md +606 -0
  49. package/data/guides/connect-iq-basics/getting-started.md +85 -0
  50. package/data/guides/connect-iq-basics/your-first-app.md +104 -0
  51. package/data/guides/connect-iq-faq/how-do-i-create-a-connect-iq-background-service.md +101 -0
  52. package/data/guides/connect-iq-faq/how-do-i-create-an-audio-content-provider.md +85 -0
  53. package/data/guides/connect-iq-faq/how-do-i-get-my-watch-face-to-update-every-second.md +33 -0
  54. package/data/guides/connect-iq-faq/how-do-i-make-a-watch-face-for-amoled-products.md +74 -0
  55. package/data/guides/connect-iq-faq/how-do-i-optimize-bitmaps.md +313 -0
  56. package/data/guides/connect-iq-faq/how-do-i-override-the-goal-animations.md +13 -0
  57. package/data/guides/connect-iq-faq/how-do-i-use-a-mapview.md +130 -0
  58. package/data/guides/connect-iq-faq/how-do-i-use-custom-fonts.md +203 -0
  59. package/data/guides/connect-iq-faq/how-do-i-use-rest-services.md +127 -0
  60. package/data/guides/connect-iq-faq/how-do-i-use-the-connect-iq-mobile-sdk.md +29 -0
  61. package/data/guides/core-topics/activity-control.md +25 -0
  62. package/data/guides/core-topics/activity-prompts.md +39 -0
  63. package/data/guides/core-topics/activity-recording.md +245 -0
  64. package/data/guides/core-topics/ant-and-ant-plus.md +177 -0
  65. package/data/guides/core-topics/application-and-system-modules.md +239 -0
  66. package/data/guides/core-topics/authenticated-web-services.md +69 -0
  67. package/data/guides/core-topics/backgrounding.md +138 -0
  68. package/data/guides/core-topics/beta-apps.md +7 -0
  69. package/data/guides/core-topics/bluetooth-low-energy.md +142 -0
  70. package/data/guides/core-topics/build-configuration.md +149 -0
  71. package/data/guides/core-topics/communicating-with-mobile-apps.md +45 -0
  72. package/data/guides/core-topics/complications.md +387 -0
  73. package/data/guides/core-topics/debugging.md +193 -0
  74. package/data/guides/core-topics/downloading-content.md +116 -0
  75. package/data/guides/core-topics/editing-watch-faces-on-device.md +178 -0
  76. package/data/guides/core-topics/exception-reporting-tool.md +88 -0
  77. package/data/guides/core-topics/getting-the-users-attention.md +248 -0
  78. package/data/guides/core-topics/glances.md +70 -0
  79. package/data/guides/core-topics/graphics.md +343 -0
  80. package/data/guides/core-topics/https.md +134 -0
  81. package/data/guides/core-topics/input-handling.md +321 -0
  82. package/data/guides/core-topics/intents.md +41 -0
  83. package/data/guides/core-topics/layouts.md +686 -0
  84. package/data/guides/core-topics/manifest-and-permissions.md +406 -0
  85. package/data/guides/core-topics/mobile-sdk-for-android.md +321 -0
  86. package/data/guides/core-topics/mobile-sdk-for-ios.md +237 -0
  87. package/data/guides/core-topics/monkey-style.md +98 -0
  88. package/data/guides/core-topics/native-controls.md +786 -0
  89. package/data/guides/core-topics/notifications.md +73 -0
  90. package/data/guides/core-topics/pairing-wireless-devices.md +91 -0
  91. package/data/guides/core-topics/persisting-data.md +155 -0
  92. package/data/guides/core-topics/positioning.md +105 -0
  93. package/data/guides/core-topics/profiling.md +65 -0
  94. package/data/guides/core-topics/properties-and-app-settings.md +385 -0
  95. package/data/guides/core-topics/publishing-to-the-store.md +70 -0
  96. package/data/guides/core-topics/quantifying-the-user.md +355 -0
  97. package/data/guides/core-topics/requesting-reviews.md +54 -0
  98. package/data/guides/core-topics/resources.md +1028 -0
  99. package/data/guides/core-topics/security.md +41 -0
  100. package/data/guides/core-topics/sensors.md +467 -0
  101. package/data/guides/core-topics/shareable-libraries.md +220 -0
  102. package/data/guides/core-topics/trial-apps.md +136 -0
  103. package/data/guides/core-topics/unit-testing.md +118 -0
  104. package/data/guides/core-topics/user-interface.md +80 -0
  105. package/data/guides/index.json +723 -0
  106. package/data/guides/monetization/account-management.md +13 -0
  107. package/data/guides/monetization/app-sales.md +86 -0
  108. package/data/guides/monetization/merchant-onboarding.md +65 -0
  109. package/data/guides/monetization/monetization.md +11 -0
  110. package/data/guides/monetization/price-points.md +6386 -0
  111. package/data/guides/monkey-c/annotations.md +48 -0
  112. package/data/guides/monkey-c/coding-conventions.md +68 -0
  113. package/data/guides/monkey-c/compiler-options.md +219 -0
  114. package/data/guides/monkey-c/containers.md +86 -0
  115. package/data/guides/monkey-c/exceptions-and-errors.md +126 -0
  116. package/data/guides/monkey-c/functions.md +572 -0
  117. package/data/guides/monkey-c/monkey-c.md +115 -0
  118. package/data/guides/monkey-c/monkey-types.md +1070 -0
  119. package/data/guides/monkey-c/objects-and-memory.md +422 -0
  120. package/data/guides/personality-library/action-views.md +139 -0
  121. package/data/guides/personality-library/colors.md +228 -0
  122. package/data/guides/personality-library/confirmations.md +143 -0
  123. package/data/guides/personality-library/iconography.md +92 -0
  124. package/data/guides/personality-library/input-hints.md +66 -0
  125. package/data/guides/personality-library/page-loops.md +23 -0
  126. package/data/guides/personality-library/personality-library.md +83 -0
  127. package/data/guides/personality-library/progress-bars.md +47 -0
  128. package/data/guides/personality-library/prompts.md +94 -0
  129. package/data/guides/personality-library/toasts.md +25 -0
  130. package/data/guides/personality-library/typography.md +47 -0
  131. package/data/guides/reference-guides/jungle-reference.md +390 -0
  132. package/data/guides/reference-guides/monkey-c-command-line-setup.md +151 -0
  133. package/data/guides/reference-guides/monkey-c-reference.md +1697 -0
  134. package/data/guides/reference-guides/monkey-graph-reference.md +53 -0
  135. package/data/guides/reference-guides/monkey-motion-reference.md +414 -0
  136. package/data/guides/reference-guides/visual-studio-code-extension.md +260 -0
  137. package/data/guides/ux-guide/confirmations.md +13 -0
  138. package/data/guides/ux-guide/data-fields.md +59 -0
  139. package/data/guides/ux-guide/design-principles.md +11 -0
  140. package/data/guides/ux-guide/designing-workflows-and-interactions.md +200 -0
  141. package/data/guides/ux-guide/developing-the-concepts.md +62 -0
  142. package/data/guides/ux-guide/entry-points.md +46 -0
  143. package/data/guides/ux-guide/incorporating-the-visual-design-and-product-personalities.md +211 -0
  144. package/data/guides/ux-guide/localization.md +90 -0
  145. package/data/guides/ux-guide/map-views.md +11 -0
  146. package/data/guides/ux-guide/menus.md +35 -0
  147. package/data/guides/ux-guide/progress-bars.md +19 -0
  148. package/data/guides/ux-guide/understanding-what-you-are-building.md +39 -0
  149. package/data/guides/ux-guide/views.md +42 -0
  150. package/data/guides/ux-guide/watch-faces.md +59 -0
  151. package/package.json +10 -3
  152. package/.claude/settings.json +0 -11
  153. package/.claude/skills/commit/SKILL.md +0 -37
  154. package/.claude/skills/prd-generate/SKILL.md +0 -228
  155. package/.claude/skills/prd-generate/references/agent-prompts.md +0 -114
  156. package/.claude/skills/prd-generate/references/principles.md +0 -60
  157. package/.claude/skills/prd-generate/references/templates.md +0 -289
  158. package/.claude/skills/prd-implement-phase/SKILL.md +0 -79
  159. package/.github/workflows/publish.yml +0 -52
  160. package/.mcp.json +0 -36
  161. package/.prettierignore +0 -5
  162. package/.prettierrc +0 -8
  163. package/.serena/memories/code_style.md +0 -64
  164. package/.serena/memories/project_overview.md +0 -71
  165. package/.serena/memories/suggested_commands.md +0 -59
  166. package/.serena/memories/task_completion.md +0 -56
  167. package/.serena/project.yml +0 -113
  168. package/CHANGELOG.md +0 -105
  169. package/CLAUDE.md +0 -100
  170. package/eslint.config.js +0 -44
  171. package/mcp/github/.env.example +0 -1
  172. package/mcp/github/command.sh +0 -20
  173. package/server.json +0 -34
  174. package/src/config/ConfigManager.ts +0 -425
  175. package/src/handlers/handlerUtils.ts +0 -217
  176. package/src/handlers/promptHandlers.ts +0 -453
  177. package/src/handlers/resourceHandlers.ts +0 -390
  178. package/src/handlers/toolHandlers.ts +0 -1460
  179. package/src/index.ts +0 -158
  180. package/src/parsers/HtmlParser.ts +0 -1223
  181. package/src/parsers/HtmlParserSchemas.ts +0 -138
  182. package/src/parsers/XmlParser.ts +0 -445
  183. package/src/schemas/DataSampler.ts +0 -276
  184. package/src/schemas/SchemaFactory.ts +0 -423
  185. package/src/schemas/SchemaInferenceEngine.ts +0 -365
  186. package/src/schemas/index.ts +0 -36
  187. package/src/services/ApiDocService.ts +0 -739
  188. package/src/services/DeviceInfoService.ts +0 -564
  189. package/src/services/ProjectInfoService.ts +0 -62
  190. package/src/services/SampleCodeSearchService.ts +0 -534
  191. package/src/services/SampleService.ts +0 -659
  192. package/src/types/index.ts +0 -672
  193. package/src/utils/AsyncFileCache.ts +0 -118
  194. package/src/utils/DeviceFilter.ts +0 -345
  195. package/src/utils/IndexCache.ts +0 -305
  196. package/src/utils/MarkdownConverter.ts +0 -318
  197. package/src/utils/ParsingQualityMetrics.ts +0 -475
  198. package/src/utils/index.ts +0 -21
  199. package/src/utils/logging.ts +0 -92
  200. package/src/utils/versionUtils.ts +0 -34
  201. package/test/fixtures/mockConfig.ts +0 -780
  202. package/test/unit/config/ConfigManager.test.ts +0 -709
  203. package/test/unit/handlers/resourceHandlers.test.ts +0 -333
  204. package/test/unit/handlers/toolHandlers.test.ts +0 -706
  205. package/test/unit/parsers/HtmlParser.test.ts +0 -1196
  206. package/test/unit/parsers/XmlParser.test.ts +0 -368
  207. package/test/unit/schemas/SchemaFactory.test.ts +0 -331
  208. package/test/unit/schemas/SchemaInferenceEngine.test.ts +0 -315
  209. package/test/unit/services/ApiDocService.test.ts +0 -410
  210. package/test/unit/services/DeviceInfoService.test.ts +0 -839
  211. package/test/unit/services/ProjectInfoService.test.ts +0 -68
  212. package/test/unit/services/SampleCodeSearchService.test.ts +0 -505
  213. package/test/unit/services/SampleService.test.ts +0 -369
  214. package/test/unit/utils/DeviceFilter.test.ts +0 -599
  215. package/test/unit/utils/IndexCache.test.ts +0 -425
  216. package/test/unit/utils/MarkdownConverter.test.ts +0 -327
  217. package/test/unit/utils/ParsingQualityMetrics.test.ts +0 -858
  218. package/test/unit/utils/versionUtils.test.ts +0 -57
  219. package/tsconfig.json +0 -20
  220. package/tsconfig.test.json +0 -8
  221. package/vitest.config.ts +0 -20
@@ -7,7 +7,7 @@
7
7
  * - Generic prefix-based filtering for completions
8
8
  *
9
9
  * Key design decisions:
10
- * - All completables use pre-loaded SchemaFactory enums (no runtime service calls)
10
+ * - Device/appType/screenShape completables use pre-loaded SchemaFactory enums; module/project/file completables use async service calls
11
11
  * - Error handling follows MCP 2025-11-25 spec (isError flag enables LLM self-correction)
12
12
  * - Zod validation errors formatted with field paths for easier debugging
13
13
  */
@@ -45,6 +45,20 @@ export declare function validateToolOutput<T>(data: T, schema: ZodTypeAny, toolN
45
45
  * @returns Filtered options (max 100)
46
46
  */
47
47
  export declare function filterByPrefix(options: readonly string[], value: string | undefined): string[];
48
+ /**
49
+ * Validate a path component to prevent path traversal attacks.
50
+ * Rejects '.', '..', absolute paths, Windows drive letters, and null bytes.
51
+ */
52
+ export declare function isValidPathComponent(component: string): boolean;
53
+ /**
54
+ * Format guide content with a standard header including title, category, and source URL
55
+ */
56
+ export declare function formatGuideContent(guide: {
57
+ title: string;
58
+ category: string;
59
+ url: string;
60
+ content: string;
61
+ }): string;
48
62
  /**
49
63
  * Creates a completable schema for device ID arguments with dynamic autocompletion.
50
64
  * Uses pre-loaded SchemaFactory enum for validation + prefix filtering for completion.
@@ -1 +1 @@
1
- {"version":3,"file":"handlerUtils.d.ts","sourceRoot":"","sources":["../../src/handlers/handlerUtils.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,iDAAiD,CAAC;AAC9E,OAAO,EAAE,CAAC,EAAE,KAAK,UAAU,EAAE,MAAM,KAAK,CAAC;AACzC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAElD;;;;;;;GAOG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAUzD;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,kBAAkB,CAAC,CAAC,EAClC,IAAI,EAAE,CAAC,EACP,MAAM,EAAE,UAAU,EAClB,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,GACb,CAAC,CAaH;AAED;;;;;;;GAOG;AACH,wBAAgB,cAAc,CAC5B,OAAO,EAAE,SAAS,MAAM,EAAE,EAC1B,KAAK,EAAE,MAAM,GAAG,SAAS,GACxB,MAAM,EAAE,CAKV;AAoCD;;;;;;;;GAQG;AACH,wBAAgB,yBAAyB,CACvC,aAAa,EAAE,aAAa,EAC5B,WAAW,EAAE,MAAM,GAClB,UAAU,CAAC,OAAO,WAAW,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,GAAG,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;AACpE,wBAAgB,yBAAyB,CACvC,aAAa,EAAE,aAAa,EAC5B,WAAW,EAAE,MAAM,EACnB,QAAQ,EAAE,IAAI,GACb,UAAU,CACX,OAAO,WAAW,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,GAAG,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC,CACpE,CAAC;AAaF;;;;;;;;GAQG;AACH,wBAAgB,4BAA4B,CAC1C,aAAa,EAAE,aAAa,EAC5B,WAAW,EAAE,MAAM,GAClB,UAAU,CAAC,OAAO,WAAW,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,GAAG,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;AACpE,wBAAgB,4BAA4B,CAC1C,aAAa,EAAE,aAAa,EAC5B,WAAW,EAAE,MAAM,EACnB,QAAQ,EAAE,IAAI,GACb,UAAU,CACX,OAAO,WAAW,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,GAAG,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC,CACpE,CAAC;AAaF;;;;;;;;GAQG;AACH,wBAAgB,wBAAwB,CACtC,aAAa,EAAE,aAAa,EAC5B,WAAW,EAAE,MAAM,GAClB,UAAU,CAAC,OAAO,WAAW,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,GAAG,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;AACpE,wBAAgB,wBAAwB,CACtC,aAAa,EAAE,aAAa,EAC5B,WAAW,EAAE,MAAM,EACnB,QAAQ,EAAE,IAAI,GACb,UAAU,CACX,OAAO,WAAW,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,GAAG,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC,CACpE,CAAC"}
1
+ {"version":3,"file":"handlerUtils.d.ts","sourceRoot":"","sources":["../../src/handlers/handlerUtils.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,iDAAiD,CAAC;AAC9E,OAAO,EAAE,CAAC,EAAE,KAAK,UAAU,EAAE,MAAM,KAAK,CAAC;AACzC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAElD;;;;;;;GAOG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAUzD;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,kBAAkB,CAAC,CAAC,EAClC,IAAI,EAAE,CAAC,EACP,MAAM,EAAE,UAAU,EAClB,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,GACb,CAAC,CAaH;AAED;;;;;;;GAOG;AACH,wBAAgB,cAAc,CAC5B,OAAO,EAAE,SAAS,MAAM,EAAE,EAC1B,KAAK,EAAE,MAAM,GAAG,SAAS,GACxB,MAAM,EAAE,CAKV;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAO/D;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE;IACxC,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,EAAE,MAAM,CAAC;CACjB,GAAG,MAAM,CAET;AAoCD;;;;;;;;GAQG;AACH,wBAAgB,yBAAyB,CACvC,aAAa,EAAE,aAAa,EAC5B,WAAW,EAAE,MAAM,GAClB,UAAU,CAAC,OAAO,WAAW,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,GAAG,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;AACpE,wBAAgB,yBAAyB,CACvC,aAAa,EAAE,aAAa,EAC5B,WAAW,EAAE,MAAM,EACnB,QAAQ,EAAE,IAAI,GACb,UAAU,CACX,OAAO,WAAW,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,GAAG,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC,CACpE,CAAC;AAaF;;;;;;;;GAQG;AACH,wBAAgB,4BAA4B,CAC1C,aAAa,EAAE,aAAa,EAC5B,WAAW,EAAE,MAAM,GAClB,UAAU,CAAC,OAAO,WAAW,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,GAAG,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;AACpE,wBAAgB,4BAA4B,CAC1C,aAAa,EAAE,aAAa,EAC5B,WAAW,EAAE,MAAM,EACnB,QAAQ,EAAE,IAAI,GACb,UAAU,CACX,OAAO,WAAW,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,GAAG,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC,CACpE,CAAC;AAaF;;;;;;;;GAQG;AACH,wBAAgB,wBAAwB,CACtC,aAAa,EAAE,aAAa,EAC5B,WAAW,EAAE,MAAM,GAClB,UAAU,CAAC,OAAO,WAAW,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,GAAG,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;AACpE,wBAAgB,wBAAwB,CACtC,aAAa,EAAE,aAAa,EAC5B,WAAW,EAAE,MAAM,EACnB,QAAQ,EAAE,IAAI,GACb,UAAU,CACX,OAAO,WAAW,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,GAAG,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC,CACpE,CAAC"}
@@ -7,7 +7,7 @@
7
7
  * - Generic prefix-based filtering for completions
8
8
  *
9
9
  * Key design decisions:
10
- * - All completables use pre-loaded SchemaFactory enums (no runtime service calls)
10
+ * - Device/appType/screenShape completables use pre-loaded SchemaFactory enums; module/project/file completables use async service calls
11
11
  * - Error handling follows MCP 2025-11-25 spec (isError flag enables LLM self-correction)
12
12
  * - Zod validation errors formatted with field paths for easier debugging
13
13
  */
@@ -71,6 +71,29 @@ export function filterByPrefix(options, value) {
71
71
  .filter((opt) => opt.toLowerCase().startsWith(lowerValue))
72
72
  .slice(0, 100);
73
73
  }
74
+ /**
75
+ * Validate a path component to prevent path traversal attacks.
76
+ * Rejects '.', '..', absolute paths, Windows drive letters, and null bytes.
77
+ */
78
+ export function isValidPathComponent(component) {
79
+ if (!component)
80
+ return false;
81
+ if (component === "." || component === "..")
82
+ return false;
83
+ if (component.startsWith("/") || component.startsWith("\\"))
84
+ return false;
85
+ if (/^[a-zA-Z]:/.test(component))
86
+ return false;
87
+ if (component.includes("\0"))
88
+ return false;
89
+ return true;
90
+ }
91
+ /**
92
+ * Format guide content with a standard header including title, category, and source URL
93
+ */
94
+ export function formatGuideContent(guide) {
95
+ return `# ${guide.title}\n\n**Category:** ${guide.category}\n**Source:** ${guide.url}\n\n---\n\n${guide.content}`;
96
+ }
74
97
  // ============================================================================
75
98
  // Completable Factory Functions
76
99
  //
@@ -1 +1 @@
1
- {"version":3,"file":"handlerUtils.js","sourceRoot":"","sources":["../../src/handlers/handlerUtils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"handlerUtils.js","sourceRoot":"","sources":["../../src/handlers/handlerUtils.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"resourceHandlers.d.ts","sourceRoot":"","sources":["../../src/handlers/resourceHandlers.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAEzE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AA6BlD;;GAEG;AACH,wBAAgB,iBAAiB,CAC/B,MAAM,EAAE,SAAS,EACjB,QAAQ,EAAE,cAAc,EACxB,MAAM,EAAE,MAAM,GACb,IAAI,CAkVN"}
1
+ {"version":3,"file":"resourceHandlers.d.ts","sourceRoot":"","sources":["../../src/handlers/resourceHandlers.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAGzE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAQlD;;GAEG;AACH,wBAAgB,iBAAiB,CAC/B,MAAM,EAAE,SAAS,EACjB,QAAQ,EAAE,cAAc,EACxB,MAAM,EAAE,MAAM,GACb,IAAI,CAsaN"}
@@ -10,32 +10,12 @@
10
10
  * - ResourceTemplate for dynamic URI patterns with completion support
11
11
  */
12
12
  import { ResourceTemplate } from "@modelcontextprotocol/sdk/server/mcp.js";
13
- import { formatErrorMessage } from "./handlerUtils.js";
14
- /**
15
- * Validate a path component to prevent path traversal attacks
16
- */
17
- function isValidPathComponent(component) {
18
- if (!component)
19
- return false;
20
- // Reject path traversal patterns
21
- if (component === "." || component === "..")
22
- return false;
23
- // Reject absolute paths on Unix/Windows
24
- if (component.startsWith("/") || component.startsWith("\\"))
25
- return false;
26
- // Reject Windows drive letters
27
- if (/^[a-zA-Z]:/.test(component))
28
- return false;
29
- // Reject null bytes
30
- if (component.includes("\0"))
31
- return false;
32
- return true;
33
- }
13
+ import { formatErrorMessage, isValidPathComponent, filterByPrefix, formatGuideContent, } from "./handlerUtils.js";
34
14
  /**
35
15
  * Register all resource handlers with the MCP server
36
16
  */
37
17
  export function registerResources(server, services, logger) {
38
- const { apiDocService, deviceInfoService, sampleService } = services;
18
+ const { apiDocService, deviceInfoService, sampleService, devGuideService } = services;
39
19
  // Register API module documentation resources using a template
40
20
  // API docs are primarily for the assistant to understand the SDK
41
21
  const apiAnnotations = {
@@ -324,5 +304,72 @@ export function registerResources(server, services, logger) {
324
304
  throw new Error(errorMessage);
325
305
  }
326
306
  });
307
+ // Register developer guide resources using a template
308
+ // Guides provide learning content for both users and assistants
309
+ const guideAnnotations = {
310
+ audience: ["user", "assistant"],
311
+ priority: 0.7, // Important reference for development guidance
312
+ };
313
+ server.registerResource("dev-guide", new ResourceTemplate("connectiq://guides/{slug}", {
314
+ list: async () => {
315
+ const guides = await devGuideService.listGuides();
316
+ return {
317
+ resources: guides.map((guide) => ({
318
+ uri: `connectiq://guides/${guide.slug}`,
319
+ name: `Guide: ${guide.title}`,
320
+ description: `${guide.category} - ${guide.title}`,
321
+ mimeType: "text/markdown",
322
+ annotations: guideAnnotations,
323
+ })),
324
+ };
325
+ },
326
+ complete: {
327
+ slug: async (value) => {
328
+ const guides = await devGuideService.listGuides();
329
+ return filterByPrefix(guides.map((g) => g.slug), value);
330
+ },
331
+ },
332
+ }), {
333
+ title: "ConnectIQ Developer Guide",
334
+ description: "Developer guide content from developer.garmin.com/connect-iq/",
335
+ mimeType: "text/markdown",
336
+ annotations: guideAnnotations,
337
+ }, async (uri, params) => {
338
+ const slug = Array.isArray(params.slug)
339
+ ? params.slug.join("/")
340
+ : params.slug;
341
+ logger.debug(`Resource read: ${uri.href}`, { resource: uri.href });
342
+ try {
343
+ // Validate slug to prevent path traversal
344
+ const slugParts = slug.split("/");
345
+ for (const part of slugParts) {
346
+ if (!isValidPathComponent(part)) {
347
+ throw new Error(`Invalid guide slug: ${slug}`);
348
+ }
349
+ }
350
+ const guide = await devGuideService.getGuide(slug);
351
+ if (!guide) {
352
+ throw new Error(`Developer guide not found: ${slug}`);
353
+ }
354
+ const content = formatGuideContent(guide);
355
+ return {
356
+ contents: [
357
+ {
358
+ uri: uri.href,
359
+ mimeType: "text/markdown",
360
+ text: content,
361
+ },
362
+ ],
363
+ };
364
+ }
365
+ catch (error) {
366
+ const errorMessage = formatErrorMessage(error);
367
+ logger.error(`Resource read error: ${errorMessage}`, {
368
+ resource: uri.href,
369
+ slug,
370
+ });
371
+ throw new Error(errorMessage);
372
+ }
373
+ });
327
374
  }
328
375
  //# sourceMappingURL=resourceHandlers.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"resourceHandlers.js","sourceRoot":"","sources":["../../src/handlers/resourceHandlers.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"resourceHandlers.js","sourceRoot":"","sources":["../../src/handlers/resourceHandlers.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"toolHandlers.d.ts","sourceRoot":"","sources":["../../src/handlers/toolHandlers.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAGzE,OAAO,KAAK,EACV,cAAc,EAGf,MAAM,mBAAmB,CAAC;AAC3B,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAGlD,OAAO,EAAE,KAAK,aAAa,EAAqB,MAAM,qBAAqB,CAAC;AAiW5E;;;;;;GAMG;AACH,wBAAgB,aAAa,CAC3B,MAAM,EAAE,SAAS,EACjB,QAAQ,EAAE,cAAc,EACxB,aAAa,EAAE,aAAa,EAC5B,MAAM,EAAE,MAAM,GACb,IAAI,CA+iCN"}
1
+ {"version":3,"file":"toolHandlers.d.ts","sourceRoot":"","sources":["../../src/handlers/toolHandlers.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAGzE,OAAO,KAAK,EACV,cAAc,EAIf,MAAM,mBAAmB,CAAC;AAC3B,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAGlD,OAAO,EAAE,KAAK,aAAa,EAAqB,MAAM,qBAAqB,CAAC;AAsa5E;;;;;;GAMG;AACH,wBAAgB,aAAa,CAC3B,MAAM,EAAE,SAAS,EACjB,QAAQ,EAAE,cAAc,EACxB,aAAa,EAAE,aAAa,EAC5B,MAAM,EAAE,MAAM,GACb,IAAI,CA+xCN"}
@@ -13,7 +13,7 @@ import { completable } from "@modelcontextprotocol/sdk/server/completable.js";
13
13
  import { z } from "zod";
14
14
  import { DeviceFilter, parseNumericFilter } from "../utils/index.js";
15
15
  import { API_ELEMENT_TYPES } from "../schemas/index.js";
16
- import { formatErrorMessage, validateToolOutput, createDeviceIdCompletable, createScreenShapeCompletable, createAppTypeCompletable, } from "./handlerUtils.js";
16
+ import { formatErrorMessage, validateToolOutput, isValidPathComponent, filterByPrefix, formatGuideContent, createDeviceIdCompletable, createScreenShapeCompletable, createAppTypeCompletable, } from "./handlerUtils.js";
17
17
  // ============================================================================
18
18
  // Output Schemas for structured tool responses (as Zod schemas)
19
19
  //
@@ -53,6 +53,10 @@ const SearchApiDocsOutputSchema = z.object({
53
53
  returnType: z.string().optional().describe("Return type"),
54
54
  since: z.string().optional().describe("API level introduced"),
55
55
  deprecated: z.boolean().optional().describe("Whether deprecated"),
56
+ deprecationMessage: z
57
+ .string()
58
+ .optional()
59
+ .describe("Deprecation reason/message"),
56
60
  supportedDevices: z
57
61
  .array(z.string())
58
62
  .optional()
@@ -61,6 +65,10 @@ const SearchApiDocsOutputSchema = z.object({
61
65
  .array(z.string())
62
66
  .optional()
63
67
  .describe("App types that support this API element"),
68
+ requiredPermissions: z
69
+ .array(z.string())
70
+ .optional()
71
+ .describe("Required permissions for this API"),
64
72
  // Extended API documentation fields
65
73
  notes: z
66
74
  .array(z.string())
@@ -162,6 +170,9 @@ function projectApiElement(element, detailLevel) {
162
170
  signature: element.signature,
163
171
  since: element.since,
164
172
  deprecated: element.deprecated,
173
+ deprecationMessage: element.deprecationMessage,
174
+ returnType: element.returnType,
175
+ propertyType: element.propertyType,
165
176
  };
166
177
  // For enums, include member count instead of full array
167
178
  if (element.type === "enum" && element.enumMembers) {
@@ -188,6 +199,17 @@ const ListDevicesOutputSchema = z.object({
188
199
  .optional()
189
200
  .describe("Display type (e.g., amoled, mip)"),
190
201
  deviceFamily: z.string().optional().describe("Device family identifier"),
202
+ hasTouch: z.boolean().optional().describe("Touch screen support"),
203
+ appTypes: z
204
+ .array(z.object({
205
+ type: z.string().describe("App type identifier"),
206
+ memoryLimit: z
207
+ .number()
208
+ .optional()
209
+ .describe("Memory limit in bytes"),
210
+ }))
211
+ .optional()
212
+ .describe("Supported app types with memory limits"),
191
213
  })),
192
214
  totalDevices: z.number().describe("Total number of devices"),
193
215
  query: z.string().optional().describe("Search query applied"),
@@ -299,7 +321,40 @@ const SearchSampleCodeOutputSchema = z.object({
299
321
  const TOOL_ANNOTATIONS = {
300
322
  readOnlyHint: true,
301
323
  idempotentHint: true,
324
+ destructiveHint: false,
325
+ openWorldHint: false,
302
326
  };
327
+ /**
328
+ * Output schema for searchDevGuides tool
329
+ */
330
+ const SearchDevGuidesOutputSchema = z.object({
331
+ results: z.array(z.object({
332
+ slug: z.string().describe("Guide slug identifier"),
333
+ title: z.string().describe("Guide page title"),
334
+ category: z.string().describe("Guide category"),
335
+ url: z.string().describe("Source URL on developer.garmin.com"),
336
+ snippet: z.string().describe("Relevant text snippet"),
337
+ score: z.number().describe("Relevance score"),
338
+ })),
339
+ totalResults: z.number().describe("Total number of results found"),
340
+ query: z.string().describe("Original search query"),
341
+ filters: z
342
+ .object({
343
+ category: z.string().optional().describe("Category filter applied"),
344
+ })
345
+ .optional()
346
+ .describe("Filters applied to the search"),
347
+ });
348
+ /**
349
+ * Output schema for getDevGuide tool
350
+ */
351
+ const GetDevGuideOutputSchema = z.object({
352
+ slug: z.string().describe("Guide slug identifier"),
353
+ title: z.string().describe("Guide page title"),
354
+ category: z.string().describe("Guide category"),
355
+ url: z.string().describe("Source URL on developer.garmin.com"),
356
+ content: z.string().describe("Full markdown content of the guide"),
357
+ });
303
358
  /**
304
359
  * Register all tool handlers with the MCP server
305
360
  * @param server - MCP server instance
@@ -308,7 +363,7 @@ const TOOL_ANNOTATIONS = {
308
363
  * @param logger - Logger for structured logging
309
364
  */
310
365
  export function registerTools(server, services, schemaFactory, logger) {
311
- const { apiDocService, deviceInfoService, sampleService, projectInfoService, sampleCodeSearchService, } = services;
366
+ const { apiDocService, deviceInfoService, sampleService, projectInfoService, sampleCodeSearchService, devGuideService, } = services;
312
367
  // Register searchApiDocs tool
313
368
  server.registerTool("searchApiDocs", {
314
369
  title: "Search ConnectIQ API Documentation",
@@ -660,8 +715,24 @@ export function registerTools(server, services, schemaFactory, logger) {
660
715
  devices = filter.filterDevices(devices);
661
716
  }
662
717
  const formatted = devices
663
- .map((d) => `- ${d.id}: ${d.name}${d.screenWidth ? ` (${d.screenWidth}x${d.screenHeight})` : ""}`)
718
+ .map((d) => {
719
+ let line = `- ${d.id}: ${d.name}`;
720
+ if (d.screenWidth)
721
+ line += ` (${d.screenWidth}x${d.screenHeight})`;
722
+ const hasTouch = d.hasTouch ?? d.display?.isTouch;
723
+ if (hasTouch)
724
+ line += " [touch]";
725
+ return line;
726
+ })
664
727
  .join("\n");
728
+ // Normalize appTypes to consistent {type, memoryLimit?}[] format
729
+ const normalizeAppTypes = (appTypes) => {
730
+ if (!appTypes || appTypes.length === 0)
731
+ return undefined;
732
+ return appTypes.map((at) => typeof at === "string"
733
+ ? { type: at }
734
+ : { type: at.type, memoryLimit: at.memoryLimit });
735
+ };
665
736
  const structuredOutput = {
666
737
  devices: devices.map((d) => ({
667
738
  id: d.id,
@@ -671,6 +742,8 @@ export function registerTools(server, services, schemaFactory, logger) {
671
742
  screenShape: d.screenShape,
672
743
  displayType: d.displayType,
673
744
  deviceFamily: d.deviceFamily,
745
+ hasTouch: d.hasTouch ?? d.display?.isTouch,
746
+ appTypes: normalizeAppTypes(d.appTypes),
674
747
  })),
675
748
  totalDevices: devices.length,
676
749
  query,
@@ -1105,6 +1178,179 @@ export function registerTools(server, services, schemaFactory, logger) {
1105
1178
  };
1106
1179
  }
1107
1180
  });
1181
+ // Register searchDevGuides tool for searching developer guide content
1182
+ server.registerTool("searchDevGuides", {
1183
+ title: "Search Developer Guides",
1184
+ description: "Search ConnectIQ developer guides from developer.garmin.com. Covers Monkey C language, " +
1185
+ "core topics (UI, sensors, BLE, backgrounding, debugging), UX guidelines, FAQ, and more. " +
1186
+ "Use this to find development guides, tutorials, and best practices.",
1187
+ annotations: TOOL_ANNOTATIONS,
1188
+ inputSchema: {
1189
+ query: z
1190
+ .string()
1191
+ .min(1, "Search query cannot be empty")
1192
+ .describe("Search term to find in developer guides"),
1193
+ category: completable(z
1194
+ .string()
1195
+ .optional()
1196
+ .describe("Filter by guide category (e.g., 'Core Topics', 'Monkey C', 'UX Guide')"), async (value) => {
1197
+ const categories = await devGuideService.listCategories();
1198
+ return filterByPrefix(categories, value);
1199
+ }),
1200
+ limit: z.coerce
1201
+ .number()
1202
+ .optional()
1203
+ .default(10)
1204
+ .describe("Maximum number of results to return"),
1205
+ },
1206
+ outputSchema: SearchDevGuidesOutputSchema,
1207
+ }, async ({ query, category, limit }) => {
1208
+ logger.debug(`Tool called: searchDevGuides`, {
1209
+ tool: "searchDevGuides",
1210
+ query,
1211
+ });
1212
+ try {
1213
+ const results = await devGuideService.search(query, {
1214
+ category,
1215
+ limit,
1216
+ });
1217
+ const structuredOutput = {
1218
+ results: results.map((r) => ({
1219
+ slug: r.slug,
1220
+ title: r.title,
1221
+ category: r.category,
1222
+ url: r.url,
1223
+ snippet: r.snippet,
1224
+ score: r.score,
1225
+ })),
1226
+ totalResults: results.length,
1227
+ query,
1228
+ filters: category ? { category } : undefined,
1229
+ };
1230
+ validateToolOutput(structuredOutput, SearchDevGuidesOutputSchema, "searchDevGuides", logger);
1231
+ if (results.length === 0) {
1232
+ let message = `No developer guides found matching "${query}"`;
1233
+ if (category)
1234
+ message += ` in category "${category}"`;
1235
+ message += ".";
1236
+ return {
1237
+ content: [{ type: "text", text: message }],
1238
+ structuredContent: structuredOutput,
1239
+ };
1240
+ }
1241
+ const formatted = results
1242
+ .map((r, i) => `${i + 1}. **${r.title}** (${r.category})\n ${r.url}\n ${r.snippet}`)
1243
+ .join("\n\n");
1244
+ let header = `Found ${results.length} guide(s) matching "${query}"`;
1245
+ if (category)
1246
+ header += ` in ${category}`;
1247
+ header += ":\n\n";
1248
+ return {
1249
+ content: [{ type: "text", text: `${header}${formatted}` }],
1250
+ structuredContent: structuredOutput,
1251
+ };
1252
+ }
1253
+ catch (error) {
1254
+ const errorMessage = formatErrorMessage(error);
1255
+ logger.error(`searchDevGuides error: ${errorMessage}`, {
1256
+ tool: "searchDevGuides",
1257
+ query,
1258
+ });
1259
+ return {
1260
+ content: [
1261
+ {
1262
+ type: "text",
1263
+ text: `Error searching developer guides: ${errorMessage}`,
1264
+ },
1265
+ ],
1266
+ isError: true,
1267
+ };
1268
+ }
1269
+ });
1270
+ // Register getDevGuide tool for reading full guide content
1271
+ server.registerTool("getDevGuide", {
1272
+ title: "Get Developer Guide",
1273
+ description: "Get the full content of a ConnectIQ developer guide page. Use searchDevGuides first to find " +
1274
+ "relevant guides, then use this tool with the slug to read the full content.",
1275
+ annotations: TOOL_ANNOTATIONS,
1276
+ inputSchema: {
1277
+ slug: completable(z
1278
+ .string()
1279
+ .min(1, "Guide slug cannot be empty")
1280
+ .describe("Guide slug (e.g., 'core-topics/backgrounding', 'monkey-c/functions')"), async (value) => {
1281
+ const guides = await devGuideService.listGuides();
1282
+ return filterByPrefix(guides.map((g) => g.slug), value);
1283
+ }),
1284
+ },
1285
+ outputSchema: GetDevGuideOutputSchema,
1286
+ }, async ({ slug }) => {
1287
+ logger.debug(`Tool called: getDevGuide`, {
1288
+ tool: "getDevGuide",
1289
+ slug,
1290
+ });
1291
+ try {
1292
+ // Validate slug to prevent path traversal
1293
+ const slugParts = slug.split("/");
1294
+ for (const part of slugParts) {
1295
+ if (!isValidPathComponent(part)) {
1296
+ return {
1297
+ content: [
1298
+ {
1299
+ type: "text",
1300
+ text: `Invalid guide slug: "${slug}". Use searchDevGuides to find available guides.`,
1301
+ },
1302
+ ],
1303
+ isError: true,
1304
+ };
1305
+ }
1306
+ }
1307
+ const guide = await devGuideService.getGuide(slug);
1308
+ if (!guide) {
1309
+ return {
1310
+ content: [
1311
+ {
1312
+ type: "text",
1313
+ text: `Developer guide not found: "${slug}". Use searchDevGuides to find available guides.`,
1314
+ },
1315
+ ],
1316
+ isError: true,
1317
+ };
1318
+ }
1319
+ const structuredOutput = {
1320
+ slug,
1321
+ title: guide.title,
1322
+ category: guide.category,
1323
+ url: guide.url,
1324
+ content: guide.content,
1325
+ };
1326
+ validateToolOutput(structuredOutput, GetDevGuideOutputSchema, "getDevGuide", logger);
1327
+ return {
1328
+ content: [
1329
+ {
1330
+ type: "text",
1331
+ text: formatGuideContent(guide),
1332
+ },
1333
+ ],
1334
+ structuredContent: structuredOutput,
1335
+ };
1336
+ }
1337
+ catch (error) {
1338
+ const errorMessage = formatErrorMessage(error);
1339
+ logger.error(`getDevGuide error: ${errorMessage}`, {
1340
+ tool: "getDevGuide",
1341
+ slug,
1342
+ });
1343
+ return {
1344
+ content: [
1345
+ {
1346
+ type: "text",
1347
+ text: `Error reading developer guide: ${errorMessage}`,
1348
+ },
1349
+ ],
1350
+ isError: true,
1351
+ };
1352
+ }
1353
+ });
1108
1354
  // Register getProjectConfig tool with output schema for structured responses
1109
1355
  server.registerTool("getProjectConfig", {
1110
1356
  title: "Get Project Configuration",