@creatoria/miniapp-mcp 0.2.0 → 0.2.2

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 (228) hide show
  1. package/README.md +127 -73
  2. package/dist/capabilities/assert/handlers/assert-handlers.d.ts +98 -0
  3. package/dist/capabilities/assert/handlers/assert-handlers.d.ts.map +1 -0
  4. package/dist/capabilities/assert/handlers/assert-handlers.js +179 -0
  5. package/dist/capabilities/assert/handlers/assert-handlers.js.map +1 -0
  6. package/dist/capabilities/assert/handlers/index.d.ts +7 -0
  7. package/dist/capabilities/assert/handlers/index.d.ts.map +1 -0
  8. package/dist/capabilities/assert/handlers/index.js +7 -0
  9. package/dist/capabilities/assert/handlers/index.js.map +1 -0
  10. package/dist/capabilities/assert/index.d.ts +12 -2
  11. package/dist/capabilities/assert/index.d.ts.map +1 -1
  12. package/dist/capabilities/assert/index.js +87 -2
  13. package/dist/capabilities/assert/index.js.map +1 -1
  14. package/dist/capabilities/assert/schemas/index.d.ts +101 -0
  15. package/dist/capabilities/assert/schemas/index.d.ts.map +1 -0
  16. package/dist/capabilities/assert/schemas/index.js +62 -0
  17. package/dist/capabilities/assert/schemas/index.js.map +1 -0
  18. package/dist/capabilities/automator/handlers/close.d.ts +18 -0
  19. package/dist/capabilities/automator/handlers/close.d.ts.map +1 -0
  20. package/dist/capabilities/automator/handlers/close.js +45 -0
  21. package/dist/capabilities/automator/handlers/close.js.map +1 -0
  22. package/dist/capabilities/automator/handlers/connect.d.ts +24 -0
  23. package/dist/capabilities/automator/handlers/connect.d.ts.map +1 -0
  24. package/dist/capabilities/automator/handlers/connect.js +51 -0
  25. package/dist/capabilities/automator/handlers/connect.js.map +1 -0
  26. package/dist/capabilities/automator/handlers/disconnect.d.ts +16 -0
  27. package/dist/capabilities/automator/handlers/disconnect.d.ts.map +1 -0
  28. package/dist/capabilities/automator/handlers/disconnect.js +44 -0
  29. package/dist/capabilities/automator/handlers/disconnect.js.map +1 -0
  30. package/dist/capabilities/automator/handlers/index.d.ts +8 -0
  31. package/dist/capabilities/automator/handlers/index.d.ts.map +1 -0
  32. package/dist/capabilities/automator/handlers/index.js +8 -0
  33. package/dist/capabilities/automator/handlers/index.js.map +1 -0
  34. package/dist/capabilities/automator/handlers/launch.d.ts +25 -0
  35. package/dist/capabilities/automator/handlers/launch.d.ts.map +1 -0
  36. package/dist/capabilities/automator/handlers/launch.js +61 -0
  37. package/dist/capabilities/automator/handlers/launch.js.map +1 -0
  38. package/dist/capabilities/automator/index.d.ts +11 -2
  39. package/dist/capabilities/automator/index.d.ts.map +1 -1
  40. package/dist/capabilities/automator/index.js +51 -2
  41. package/dist/capabilities/automator/index.js.map +1 -1
  42. package/dist/capabilities/automator/schemas/index.d.ts +5 -0
  43. package/dist/capabilities/automator/schemas/index.d.ts.map +1 -1
  44. package/dist/capabilities/automator/schemas/index.js +6 -4
  45. package/dist/capabilities/automator/schemas/index.js.map +1 -1
  46. package/dist/capabilities/element/handlers/element-handlers.d.ts +212 -0
  47. package/dist/capabilities/element/handlers/element-handlers.d.ts.map +1 -0
  48. package/dist/capabilities/element/handlers/element-handlers.js +383 -0
  49. package/dist/capabilities/element/handlers/element-handlers.js.map +1 -0
  50. package/dist/capabilities/element/handlers/index.d.ts +7 -0
  51. package/dist/capabilities/element/handlers/index.d.ts.map +1 -0
  52. package/dist/capabilities/element/handlers/index.js +27 -0
  53. package/dist/capabilities/element/handlers/index.js.map +1 -0
  54. package/dist/capabilities/element/index.d.ts +17 -2
  55. package/dist/capabilities/element/index.d.ts.map +1 -1
  56. package/dist/capabilities/element/index.js +196 -2
  57. package/dist/capabilities/element/index.js.map +1 -1
  58. package/dist/capabilities/element/schemas/index.d.ts +325 -0
  59. package/dist/capabilities/element/schemas/index.d.ts.map +1 -0
  60. package/dist/capabilities/element/schemas/index.js +168 -0
  61. package/dist/capabilities/element/schemas/index.js.map +1 -0
  62. package/dist/capabilities/index.d.ts +23 -4
  63. package/dist/capabilities/index.d.ts.map +1 -1
  64. package/dist/capabilities/index.js +29 -3
  65. package/dist/capabilities/index.js.map +1 -1
  66. package/dist/capabilities/loader.d.ts +61 -0
  67. package/dist/capabilities/loader.d.ts.map +1 -0
  68. package/dist/capabilities/loader.js +164 -0
  69. package/dist/capabilities/loader.js.map +1 -0
  70. package/dist/capabilities/miniprogram/handlers/call-wx.d.ts +24 -0
  71. package/dist/capabilities/miniprogram/handlers/call-wx.d.ts.map +1 -0
  72. package/dist/capabilities/miniprogram/handlers/call-wx.js +37 -0
  73. package/dist/capabilities/miniprogram/handlers/call-wx.js.map +1 -0
  74. package/dist/capabilities/miniprogram/handlers/evaluate.d.ts +32 -0
  75. package/dist/capabilities/miniprogram/handlers/evaluate.d.ts.map +1 -0
  76. package/dist/capabilities/miniprogram/handlers/evaluate.js +51 -0
  77. package/dist/capabilities/miniprogram/handlers/evaluate.js.map +1 -0
  78. package/dist/capabilities/miniprogram/handlers/index.d.ts +12 -0
  79. package/dist/capabilities/miniprogram/handlers/index.d.ts.map +1 -0
  80. package/dist/capabilities/miniprogram/handlers/index.js +12 -0
  81. package/dist/capabilities/miniprogram/handlers/index.js.map +1 -0
  82. package/dist/capabilities/miniprogram/handlers/navigate.d.ts +26 -0
  83. package/dist/capabilities/miniprogram/handlers/navigate.d.ts.map +1 -0
  84. package/dist/capabilities/miniprogram/handlers/navigate.js +56 -0
  85. package/dist/capabilities/miniprogram/handlers/navigate.js.map +1 -0
  86. package/dist/capabilities/miniprogram/handlers/page-stack.d.ts +20 -0
  87. package/dist/capabilities/miniprogram/handlers/page-stack.d.ts.map +1 -0
  88. package/dist/capabilities/miniprogram/handlers/page-stack.js +37 -0
  89. package/dist/capabilities/miniprogram/handlers/page-stack.js.map +1 -0
  90. package/dist/capabilities/miniprogram/handlers/screenshot.d.ts +33 -0
  91. package/dist/capabilities/miniprogram/handlers/screenshot.d.ts.map +1 -0
  92. package/dist/capabilities/miniprogram/handlers/screenshot.js +132 -0
  93. package/dist/capabilities/miniprogram/handlers/screenshot.js.map +1 -0
  94. package/dist/capabilities/miniprogram/handlers/system-info.d.ts +17 -0
  95. package/dist/capabilities/miniprogram/handlers/system-info.d.ts.map +1 -0
  96. package/dist/capabilities/miniprogram/handlers/system-info.js +31 -0
  97. package/dist/capabilities/miniprogram/handlers/system-info.js.map +1 -0
  98. package/dist/capabilities/miniprogram/index.d.ts +12 -2
  99. package/dist/capabilities/miniprogram/index.d.ts.map +1 -1
  100. package/dist/capabilities/miniprogram/index.js +66 -2
  101. package/dist/capabilities/miniprogram/index.js.map +1 -1
  102. package/dist/capabilities/miniprogram/schemas/call-wx.d.ts +15 -0
  103. package/dist/capabilities/miniprogram/schemas/call-wx.d.ts.map +1 -0
  104. package/dist/capabilities/miniprogram/schemas/call-wx.js +11 -0
  105. package/dist/capabilities/miniprogram/schemas/call-wx.js.map +1 -0
  106. package/dist/capabilities/miniprogram/schemas/evaluate.d.ts +15 -0
  107. package/dist/capabilities/miniprogram/schemas/evaluate.d.ts.map +1 -0
  108. package/dist/capabilities/miniprogram/schemas/evaluate.js +11 -0
  109. package/dist/capabilities/miniprogram/schemas/evaluate.js.map +1 -0
  110. package/dist/capabilities/miniprogram/schemas/index.d.ts +10 -0
  111. package/dist/capabilities/miniprogram/schemas/index.d.ts.map +1 -0
  112. package/dist/capabilities/miniprogram/schemas/index.js +10 -0
  113. package/dist/capabilities/miniprogram/schemas/index.js.map +1 -0
  114. package/dist/capabilities/miniprogram/schemas/navigate.d.ts +18 -0
  115. package/dist/capabilities/miniprogram/schemas/navigate.d.ts.map +1 -0
  116. package/dist/capabilities/miniprogram/schemas/navigate.js +22 -0
  117. package/dist/capabilities/miniprogram/schemas/navigate.js.map +1 -0
  118. package/dist/capabilities/miniprogram/schemas/page-stack.d.ts +6 -0
  119. package/dist/capabilities/miniprogram/schemas/page-stack.d.ts.map +1 -0
  120. package/dist/capabilities/miniprogram/schemas/page-stack.js +6 -0
  121. package/dist/capabilities/miniprogram/schemas/page-stack.js.map +1 -0
  122. package/dist/capabilities/miniprogram/schemas/screenshot.d.ts +18 -0
  123. package/dist/capabilities/miniprogram/schemas/screenshot.d.ts.map +1 -0
  124. package/dist/capabilities/miniprogram/schemas/screenshot.js +21 -0
  125. package/dist/capabilities/miniprogram/schemas/screenshot.js.map +1 -0
  126. package/dist/capabilities/miniprogram/schemas/system-info.d.ts +6 -0
  127. package/dist/capabilities/miniprogram/schemas/system-info.d.ts.map +1 -0
  128. package/dist/capabilities/miniprogram/schemas/system-info.js +6 -0
  129. package/dist/capabilities/miniprogram/schemas/system-info.js.map +1 -0
  130. package/dist/capabilities/network/handlers/index.d.ts +7 -0
  131. package/dist/capabilities/network/handlers/index.d.ts.map +1 -0
  132. package/dist/capabilities/network/handlers/index.js +7 -0
  133. package/dist/capabilities/network/handlers/index.js.map +1 -0
  134. package/dist/capabilities/network/handlers/network-handlers.d.ts +53 -0
  135. package/dist/capabilities/network/handlers/network-handlers.d.ts.map +1 -0
  136. package/dist/capabilities/network/handlers/network-handlers.js +127 -0
  137. package/dist/capabilities/network/handlers/network-handlers.js.map +1 -0
  138. package/dist/capabilities/network/index.d.ts +12 -2
  139. package/dist/capabilities/network/index.d.ts.map +1 -1
  140. package/dist/capabilities/network/index.js +66 -2
  141. package/dist/capabilities/network/index.js.map +1 -1
  142. package/dist/capabilities/network/schemas/index.d.ts +53 -0
  143. package/dist/capabilities/network/schemas/index.d.ts.map +1 -0
  144. package/dist/capabilities/network/schemas/index.js +33 -0
  145. package/dist/capabilities/network/schemas/index.js.map +1 -0
  146. package/dist/capabilities/page/handlers/index.d.ts +7 -0
  147. package/dist/capabilities/page/handlers/index.d.ts.map +1 -0
  148. package/dist/capabilities/page/handlers/index.js +7 -0
  149. package/dist/capabilities/page/handlers/index.js.map +1 -0
  150. package/dist/capabilities/page/handlers/page-handlers.d.ts +165 -0
  151. package/dist/capabilities/page/handlers/page-handlers.d.ts.map +1 -0
  152. package/dist/capabilities/page/handlers/page-handlers.js +258 -0
  153. package/dist/capabilities/page/handlers/page-handlers.js.map +1 -0
  154. package/dist/capabilities/page/index.d.ts +12 -2
  155. package/dist/capabilities/page/index.d.ts.map +1 -1
  156. package/dist/capabilities/page/index.js +80 -2
  157. package/dist/capabilities/page/index.js.map +1 -1
  158. package/dist/capabilities/page/schemas/index.d.ts +91 -0
  159. package/dist/capabilities/page/schemas/index.d.ts.map +1 -0
  160. package/dist/capabilities/page/schemas/index.js +55 -0
  161. package/dist/capabilities/page/schemas/index.js.map +1 -0
  162. package/dist/capabilities/record/handlers/index.d.ts +7 -0
  163. package/dist/capabilities/record/handlers/index.d.ts.map +1 -0
  164. package/dist/capabilities/record/handlers/index.js +7 -0
  165. package/dist/capabilities/record/handlers/index.js.map +1 -0
  166. package/dist/capabilities/record/handlers/record-handlers.d.ts +76 -0
  167. package/dist/capabilities/record/handlers/record-handlers.d.ts.map +1 -0
  168. package/dist/capabilities/record/handlers/record-handlers.js +255 -0
  169. package/dist/capabilities/record/handlers/record-handlers.js.map +1 -0
  170. package/dist/capabilities/record/index.d.ts +12 -2
  171. package/dist/capabilities/record/index.d.ts.map +1 -1
  172. package/dist/capabilities/record/index.js +66 -2
  173. package/dist/capabilities/record/index.js.map +1 -1
  174. package/dist/capabilities/record/schemas/index.d.ts +47 -0
  175. package/dist/capabilities/record/schemas/index.d.ts.map +1 -0
  176. package/dist/capabilities/record/schemas/index.js +33 -0
  177. package/dist/capabilities/record/schemas/index.js.map +1 -0
  178. package/dist/capabilities/registry.d.ts +138 -0
  179. package/dist/capabilities/registry.d.ts.map +1 -0
  180. package/dist/capabilities/registry.js +261 -0
  181. package/dist/capabilities/registry.js.map +1 -0
  182. package/dist/capabilities/snapshot/handlers/index.d.ts +7 -0
  183. package/dist/capabilities/snapshot/handlers/index.d.ts.map +1 -0
  184. package/dist/capabilities/snapshot/handlers/index.js +7 -0
  185. package/dist/capabilities/snapshot/handlers/index.js.map +1 -0
  186. package/dist/capabilities/snapshot/handlers/snapshot-handlers.d.ts +75 -0
  187. package/dist/capabilities/snapshot/handlers/snapshot-handlers.d.ts.map +1 -0
  188. package/dist/capabilities/snapshot/handlers/snapshot-handlers.js +201 -0
  189. package/dist/capabilities/snapshot/handlers/snapshot-handlers.js.map +1 -0
  190. package/dist/capabilities/snapshot/index.d.ts +12 -2
  191. package/dist/capabilities/snapshot/index.d.ts.map +1 -1
  192. package/dist/capabilities/snapshot/index.js +45 -2
  193. package/dist/capabilities/snapshot/index.js.map +1 -1
  194. package/dist/capabilities/snapshot/schemas/index.d.ts +47 -0
  195. package/dist/capabilities/snapshot/schemas/index.d.ts.map +1 -0
  196. package/dist/capabilities/snapshot/schemas/index.js +28 -0
  197. package/dist/capabilities/snapshot/schemas/index.js.map +1 -0
  198. package/dist/runtime/index.d.ts +2 -1
  199. package/dist/runtime/index.d.ts.map +1 -1
  200. package/dist/runtime/index.js +2 -1
  201. package/dist/runtime/index.js.map +1 -1
  202. package/dist/runtime/logging/tool-logger.js +2 -2
  203. package/dist/runtime/logging/tool-logger.js.map +1 -1
  204. package/dist/runtime/retry/index.d.ts +5 -0
  205. package/dist/runtime/retry/index.d.ts.map +1 -0
  206. package/dist/runtime/retry/index.js +5 -0
  207. package/dist/runtime/retry/index.js.map +1 -0
  208. package/dist/runtime/retry/retry.d.ts +61 -0
  209. package/dist/runtime/retry/retry.d.ts.map +1 -0
  210. package/dist/runtime/retry/retry.js +90 -0
  211. package/dist/runtime/retry/retry.js.map +1 -0
  212. package/dist/runtime/timeout/timeout.d.ts +10 -0
  213. package/dist/runtime/timeout/timeout.d.ts.map +1 -1
  214. package/dist/runtime/timeout/timeout.js +10 -0
  215. package/dist/runtime/timeout/timeout.js.map +1 -1
  216. package/dist/server.js +4 -4
  217. package/dist/server.js.map +1 -1
  218. package/dist/tools/index.d.ts.map +1 -1
  219. package/dist/tools/index.js +7 -3
  220. package/dist/tools/index.js.map +1 -1
  221. package/dist/tools/miniprogram.d.ts +11 -1
  222. package/dist/tools/miniprogram.d.ts.map +1 -1
  223. package/dist/tools/miniprogram.js +102 -20
  224. package/dist/tools/miniprogram.js.map +1 -1
  225. package/docs/current/01-architecture-migration.md +337 -0
  226. package/docs/current/02-screenshot-timeout-fix.md +589 -0
  227. package/docs/current/README.md +226 -0
  228. package/package.json +1 -1
@@ -0,0 +1,138 @@
1
+ /**
2
+ * Centralized Tool Registry for MCP Server
3
+ *
4
+ * Provides unified tool registration, lookup, and validation.
5
+ * All capabilities register their tools through this registry.
6
+ */
7
+ import type { ZodTypeAny } from 'zod';
8
+ import type { Tool } from '@modelcontextprotocol/sdk/types.js';
9
+ import type { SessionState } from '../types.js';
10
+ /**
11
+ * Tool handler function signature
12
+ * Uses 'any' for args to allow typed handlers to be assigned
13
+ */
14
+ export type ToolHandler = (session: SessionState, args: any) => Promise<any>;
15
+ /**
16
+ * Complete tool definition including schema and handler
17
+ */
18
+ export interface ToolDefinition {
19
+ /** Tool name (must be unique across all capabilities) */
20
+ name: string;
21
+ /** Human-readable description */
22
+ description: string;
23
+ /** Capability category (automator, miniprogram, page, element, etc.) */
24
+ capability: string;
25
+ /** Zod schema for input validation */
26
+ inputSchema: ZodTypeAny;
27
+ /** Optional Zod schema for output validation */
28
+ outputSchema?: ZodTypeAny;
29
+ /** Handler function that executes the tool */
30
+ handler: ToolHandler;
31
+ }
32
+ /**
33
+ * Capability module that groups related tools
34
+ */
35
+ export interface CapabilityModule {
36
+ /** Capability name */
37
+ name: string;
38
+ /** Human-readable description */
39
+ description: string;
40
+ /** List of tool definitions in this capability */
41
+ tools: ToolDefinition[];
42
+ }
43
+ /**
44
+ * Centralized Tool Registry
45
+ *
46
+ * Features:
47
+ * - Unique tool name enforcement
48
+ * - Capability-based organization
49
+ * - Schema and handler management
50
+ * - MCP Tool type conversion
51
+ */
52
+ export declare class ToolRegistry {
53
+ private tools;
54
+ private capabilities;
55
+ /**
56
+ * Register a single tool definition
57
+ */
58
+ register(definition: ToolDefinition): void;
59
+ /**
60
+ * Register a complete capability module
61
+ */
62
+ registerCapability(module: CapabilityModule): void;
63
+ /**
64
+ * Get a tool definition by name
65
+ */
66
+ get(name: string): ToolDefinition | undefined;
67
+ /**
68
+ * Get handler for a tool
69
+ */
70
+ getHandler(name: string): ToolHandler | undefined;
71
+ /**
72
+ * Get all registered tool definitions
73
+ */
74
+ getAll(): ToolDefinition[];
75
+ /**
76
+ * Get tools by capability name
77
+ */
78
+ getByCapability(capabilityName: string): ToolDefinition[];
79
+ /**
80
+ * Get all registered capabilities
81
+ */
82
+ getCapabilities(): CapabilityModule[];
83
+ /**
84
+ * Check if a tool exists
85
+ */
86
+ has(name: string): boolean;
87
+ /**
88
+ * Get total number of registered tools
89
+ */
90
+ get size(): number;
91
+ /**
92
+ * JSON Schema type for MCP Tool inputSchema
93
+ */
94
+ private createJsonSchema;
95
+ /**
96
+ * Convert Zod schema to JSON Schema for MCP Tool format
97
+ */
98
+ private zodToJsonSchema;
99
+ /**
100
+ * Convert a single Zod field to JSON Schema
101
+ */
102
+ private zodFieldToJsonSchema;
103
+ /**
104
+ * Convert registered tools to MCP Tool format
105
+ */
106
+ toMCPTools(): Tool[];
107
+ /**
108
+ * Convert tools for specific capabilities to MCP Tool format
109
+ */
110
+ toMCPToolsForCapabilities(capabilityNames: string[]): Tool[];
111
+ /**
112
+ * Get handlers map for specific capabilities
113
+ */
114
+ getHandlersForCapabilities(capabilityNames: string[]): Map<string, ToolHandler>;
115
+ /**
116
+ * Get statistics about registered tools
117
+ */
118
+ getStats(): {
119
+ total: number;
120
+ byCapability: Record<string, number>;
121
+ };
122
+ /**
123
+ * Validate all registrations
124
+ */
125
+ validate(): {
126
+ valid: boolean;
127
+ errors: string[];
128
+ };
129
+ /**
130
+ * Clear all registrations (useful for testing)
131
+ */
132
+ clear(): void;
133
+ }
134
+ /**
135
+ * Global tool registry instance
136
+ */
137
+ export declare const globalRegistry: ToolRegistry;
138
+ //# sourceMappingURL=registry.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../src/capabilities/registry.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,KAAK,CAAA;AACrC,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,oCAAoC,CAAA;AAC9D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAE/C;;;GAGG;AAEH,MAAM,MAAM,WAAW,GAAG,CAAC,OAAO,EAAE,YAAY,EAAE,IAAI,EAAE,GAAG,KAAK,OAAO,CAAC,GAAG,CAAC,CAAA;AAE5E;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,yDAAyD;IACzD,IAAI,EAAE,MAAM,CAAA;IACZ,iCAAiC;IACjC,WAAW,EAAE,MAAM,CAAA;IACnB,wEAAwE;IACxE,UAAU,EAAE,MAAM,CAAA;IAClB,sCAAsC;IACtC,WAAW,EAAE,UAAU,CAAA;IACvB,gDAAgD;IAChD,YAAY,CAAC,EAAE,UAAU,CAAA;IACzB,8CAA8C;IAC9C,OAAO,EAAE,WAAW,CAAA;CACrB;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,sBAAsB;IACtB,IAAI,EAAE,MAAM,CAAA;IACZ,iCAAiC;IACjC,WAAW,EAAE,MAAM,CAAA;IACnB,kDAAkD;IAClD,KAAK,EAAE,cAAc,EAAE,CAAA;CACxB;AAED;;;;;;;;GAQG;AACH,qBAAa,YAAY;IACvB,OAAO,CAAC,KAAK,CAAoC;IACjD,OAAO,CAAC,YAAY,CAAsC;IAE1D;;OAEG;IACH,QAAQ,CAAC,UAAU,EAAE,cAAc,GAAG,IAAI;IAO1C;;OAEG;IACH,kBAAkB,CAAC,MAAM,EAAE,gBAAgB,GAAG,IAAI;IAalD;;OAEG;IACH,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,cAAc,GAAG,SAAS;IAI7C;;OAEG;IACH,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,WAAW,GAAG,SAAS;IAIjD;;OAEG;IACH,MAAM,IAAI,cAAc,EAAE;IAI1B;;OAEG;IACH,eAAe,CAAC,cAAc,EAAE,MAAM,GAAG,cAAc,EAAE;IAIzD;;OAEG;IACH,eAAe,IAAI,gBAAgB,EAAE;IAIrC;;OAEG;IACH,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAI1B;;OAEG;IACH,IAAI,IAAI,IAAI,MAAM,CAEjB;IAED;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAWxB;;OAEG;IACH,OAAO,CAAC,eAAe;IA+BvB;;OAEG;IACH,OAAO,CAAC,oBAAoB;IA6C5B;;OAEG;IACH,UAAU,IAAI,IAAI,EAAE;IAQpB;;OAEG;IACH,yBAAyB,CAAC,eAAe,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE;IAgB5D;;OAEG;IACH,0BAA0B,CAAC,eAAe,EAAE,MAAM,EAAE,GAAG,GAAG,CAAC,MAAM,EAAE,WAAW,CAAC;IAqB/E;;OAEG;IACH,QAAQ,IAAI;QACV,KAAK,EAAE,MAAM,CAAA;QACb,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;KACrC;IAaD;;OAEG;IACH,QAAQ,IAAI;QAAE,KAAK,EAAE,OAAO,CAAC;QAAC,MAAM,EAAE,MAAM,EAAE,CAAA;KAAE;IAyBhD;;OAEG;IACH,KAAK,IAAI,IAAI;CAId;AAED;;GAEG;AACH,eAAO,MAAM,cAAc,cAAqB,CAAA"}
@@ -0,0 +1,261 @@
1
+ /**
2
+ * Centralized Tool Registry for MCP Server
3
+ *
4
+ * Provides unified tool registration, lookup, and validation.
5
+ * All capabilities register their tools through this registry.
6
+ */
7
+ /**
8
+ * Centralized Tool Registry
9
+ *
10
+ * Features:
11
+ * - Unique tool name enforcement
12
+ * - Capability-based organization
13
+ * - Schema and handler management
14
+ * - MCP Tool type conversion
15
+ */
16
+ export class ToolRegistry {
17
+ tools = new Map();
18
+ capabilities = new Map();
19
+ /**
20
+ * Register a single tool definition
21
+ */
22
+ register(definition) {
23
+ if (this.tools.has(definition.name)) {
24
+ throw new Error(`Duplicate tool registration: ${definition.name}`);
25
+ }
26
+ this.tools.set(definition.name, definition);
27
+ }
28
+ /**
29
+ * Register a complete capability module
30
+ */
31
+ registerCapability(module) {
32
+ if (this.capabilities.has(module.name)) {
33
+ throw new Error(`Duplicate capability registration: ${module.name}`);
34
+ }
35
+ this.capabilities.set(module.name, module);
36
+ // Register all tools from this capability
37
+ for (const tool of module.tools) {
38
+ this.register({ ...tool, capability: module.name });
39
+ }
40
+ }
41
+ /**
42
+ * Get a tool definition by name
43
+ */
44
+ get(name) {
45
+ return this.tools.get(name);
46
+ }
47
+ /**
48
+ * Get handler for a tool
49
+ */
50
+ getHandler(name) {
51
+ return this.tools.get(name)?.handler;
52
+ }
53
+ /**
54
+ * Get all registered tool definitions
55
+ */
56
+ getAll() {
57
+ return Array.from(this.tools.values());
58
+ }
59
+ /**
60
+ * Get tools by capability name
61
+ */
62
+ getByCapability(capabilityName) {
63
+ return Array.from(this.tools.values()).filter((t) => t.capability === capabilityName);
64
+ }
65
+ /**
66
+ * Get all registered capabilities
67
+ */
68
+ getCapabilities() {
69
+ return Array.from(this.capabilities.values());
70
+ }
71
+ /**
72
+ * Check if a tool exists
73
+ */
74
+ has(name) {
75
+ return this.tools.has(name);
76
+ }
77
+ /**
78
+ * Get total number of registered tools
79
+ */
80
+ get size() {
81
+ return this.tools.size;
82
+ }
83
+ /**
84
+ * JSON Schema type for MCP Tool inputSchema
85
+ */
86
+ createJsonSchema(properties = {}, required) {
87
+ return {
88
+ type: 'object',
89
+ properties,
90
+ ...(required && required.length > 0 ? { required } : {}),
91
+ };
92
+ }
93
+ /**
94
+ * Convert Zod schema to JSON Schema for MCP Tool format
95
+ */
96
+ zodToJsonSchema(schema) {
97
+ // Use zod-to-json-schema or manual conversion
98
+ // For now, use the shape if available
99
+ const zodSchema = schema;
100
+ if (zodSchema._def?.typeName === 'ZodObject') {
101
+ const shape = zodSchema._def.shape?.();
102
+ if (shape) {
103
+ const properties = {};
104
+ const required = [];
105
+ for (const [key, value] of Object.entries(shape)) {
106
+ const fieldSchema = value;
107
+ properties[key] = this.zodFieldToJsonSchema(fieldSchema);
108
+ // Check if field is required (not optional)
109
+ if (!fieldSchema.isOptional?.()) {
110
+ required.push(key);
111
+ }
112
+ }
113
+ return this.createJsonSchema(properties, required);
114
+ }
115
+ }
116
+ // Fallback for non-object schemas
117
+ return this.createJsonSchema({});
118
+ }
119
+ /**
120
+ * Convert a single Zod field to JSON Schema
121
+ */
122
+ zodFieldToJsonSchema(field) {
123
+ const typeName = field._def?.typeName;
124
+ // Handle optional wrapper
125
+ if (typeName === 'ZodOptional') {
126
+ return this.zodFieldToJsonSchema(field._def.innerType);
127
+ }
128
+ // Handle basic types
129
+ switch (typeName) {
130
+ case 'ZodString':
131
+ return {
132
+ type: 'string',
133
+ ...(field._def.description ? { description: field._def.description } : {}),
134
+ };
135
+ case 'ZodNumber':
136
+ return {
137
+ type: 'number',
138
+ ...(field._def.description ? { description: field._def.description } : {}),
139
+ };
140
+ case 'ZodBoolean':
141
+ return {
142
+ type: 'boolean',
143
+ ...(field._def.description ? { description: field._def.description } : {}),
144
+ };
145
+ case 'ZodArray':
146
+ return {
147
+ type: 'array',
148
+ items: this.zodFieldToJsonSchema(field._def.type),
149
+ ...(field._def.description ? { description: field._def.description } : {}),
150
+ };
151
+ case 'ZodEnum':
152
+ return {
153
+ type: 'string',
154
+ enum: field._def.values,
155
+ ...(field._def.description ? { description: field._def.description } : {}),
156
+ };
157
+ case 'ZodObject':
158
+ return this.zodToJsonSchema(field);
159
+ default:
160
+ // Default to any type
161
+ return { description: field._def?.description };
162
+ }
163
+ }
164
+ /**
165
+ * Convert registered tools to MCP Tool format
166
+ */
167
+ toMCPTools() {
168
+ return Array.from(this.tools.values()).map((def) => ({
169
+ name: def.name,
170
+ description: def.description,
171
+ inputSchema: this.zodToJsonSchema(def.inputSchema),
172
+ }));
173
+ }
174
+ /**
175
+ * Convert tools for specific capabilities to MCP Tool format
176
+ */
177
+ toMCPToolsForCapabilities(capabilityNames) {
178
+ // If 'core' is specified, return all tools
179
+ if (capabilityNames.includes('core')) {
180
+ return this.toMCPTools();
181
+ }
182
+ // Otherwise, filter by capability names
183
+ return Array.from(this.tools.values())
184
+ .filter((def) => capabilityNames.includes(def.capability))
185
+ .map((def) => ({
186
+ name: def.name,
187
+ description: def.description,
188
+ inputSchema: this.zodToJsonSchema(def.inputSchema),
189
+ }));
190
+ }
191
+ /**
192
+ * Get handlers map for specific capabilities
193
+ */
194
+ getHandlersForCapabilities(capabilityNames) {
195
+ const handlers = new Map();
196
+ // If 'core' is specified, return all handlers
197
+ if (capabilityNames.includes('core')) {
198
+ for (const [name, def] of this.tools) {
199
+ handlers.set(name, def.handler);
200
+ }
201
+ return handlers;
202
+ }
203
+ // Otherwise, filter by capability names
204
+ for (const [name, def] of this.tools) {
205
+ if (capabilityNames.includes(def.capability)) {
206
+ handlers.set(name, def.handler);
207
+ }
208
+ }
209
+ return handlers;
210
+ }
211
+ /**
212
+ * Get statistics about registered tools
213
+ */
214
+ getStats() {
215
+ const byCapability = {};
216
+ for (const def of this.tools.values()) {
217
+ byCapability[def.capability] = (byCapability[def.capability] || 0) + 1;
218
+ }
219
+ return {
220
+ total: this.tools.size,
221
+ byCapability,
222
+ };
223
+ }
224
+ /**
225
+ * Validate all registrations
226
+ */
227
+ validate() {
228
+ const errors = [];
229
+ for (const def of this.tools.values()) {
230
+ // Check required fields
231
+ if (!def.name) {
232
+ errors.push('Tool missing name');
233
+ }
234
+ if (!def.description) {
235
+ errors.push(`Tool ${def.name} missing description`);
236
+ }
237
+ if (!def.handler) {
238
+ errors.push(`Tool ${def.name} missing handler`);
239
+ }
240
+ if (!def.inputSchema) {
241
+ errors.push(`Tool ${def.name} missing inputSchema`);
242
+ }
243
+ }
244
+ return {
245
+ valid: errors.length === 0,
246
+ errors,
247
+ };
248
+ }
249
+ /**
250
+ * Clear all registrations (useful for testing)
251
+ */
252
+ clear() {
253
+ this.tools.clear();
254
+ this.capabilities.clear();
255
+ }
256
+ }
257
+ /**
258
+ * Global tool registry instance
259
+ */
260
+ export const globalRegistry = new ToolRegistry();
261
+ //# sourceMappingURL=registry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"registry.js","sourceRoot":"","sources":["../../src/capabilities/registry.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Snapshot handlers exports
3
+ *
4
+ * All 3 handlers are now independently implemented in this directory.
5
+ */
6
+ export { snapshotPage, snapshotFull, snapshotElement, type SnapshotPageArgs, type SnapshotPageResult, type SnapshotFullArgs, type SnapshotFullResult, type SnapshotElementArgs, type SnapshotElementResult, } from './snapshot-handlers.js';
7
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/capabilities/snapshot/handlers/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EACL,YAAY,EACZ,YAAY,EACZ,eAAe,EACf,KAAK,gBAAgB,EACrB,KAAK,kBAAkB,EACvB,KAAK,gBAAgB,EACrB,KAAK,kBAAkB,EACvB,KAAK,mBAAmB,EACxB,KAAK,qBAAqB,GAC3B,MAAM,wBAAwB,CAAA"}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Snapshot handlers exports
3
+ *
4
+ * All 3 handlers are now independently implemented in this directory.
5
+ */
6
+ export { snapshotPage, snapshotFull, snapshotElement, } from './snapshot-handlers.js';
7
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/capabilities/snapshot/handlers/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EACL,YAAY,EACZ,YAAY,EACZ,eAAe,GAOhB,MAAM,wBAAwB,CAAA"}
@@ -0,0 +1,75 @@
1
+ /**
2
+ * Snapshot handlers - State capture and diagnostic utilities
3
+ */
4
+ import type { SessionState } from '../../../types.js';
5
+ export interface SnapshotPageArgs {
6
+ pagePath?: string;
7
+ filename?: string;
8
+ includeScreenshot?: boolean;
9
+ fullPage?: boolean;
10
+ }
11
+ export interface SnapshotPageResult {
12
+ success: boolean;
13
+ message: string;
14
+ snapshotPath: string;
15
+ screenshotPath?: string;
16
+ data: {
17
+ timestamp: string;
18
+ pagePath: string;
19
+ pageData: any;
20
+ pageQuery: Record<string, any>;
21
+ };
22
+ }
23
+ export declare function snapshotPage(session: SessionState, args: SnapshotPageArgs): Promise<SnapshotPageResult>;
24
+ export interface SnapshotFullArgs {
25
+ filename?: string;
26
+ includeScreenshot?: boolean;
27
+ fullPage?: boolean;
28
+ }
29
+ export interface SnapshotFullResult {
30
+ success: boolean;
31
+ message: string;
32
+ snapshotPath: string;
33
+ screenshotPath?: string;
34
+ data: {
35
+ timestamp: string;
36
+ systemInfo: any;
37
+ pageStack: Array<{
38
+ path: string;
39
+ query: Record<string, any>;
40
+ }>;
41
+ currentPage: {
42
+ path: string;
43
+ query: Record<string, any>;
44
+ data: any;
45
+ };
46
+ };
47
+ }
48
+ export declare function snapshotFull(session: SessionState, args: SnapshotFullArgs): Promise<SnapshotFullResult>;
49
+ export interface SnapshotElementArgs {
50
+ refId: string;
51
+ filename?: string;
52
+ includeScreenshot?: boolean;
53
+ }
54
+ export interface SnapshotElementResult {
55
+ success: boolean;
56
+ message: string;
57
+ snapshotPath: string;
58
+ screenshotPath?: string;
59
+ data: {
60
+ timestamp: string;
61
+ refId: string;
62
+ text?: string;
63
+ attributes: Record<string, any>;
64
+ size: {
65
+ width: number;
66
+ height: number;
67
+ } | null;
68
+ offset: {
69
+ left: number;
70
+ top: number;
71
+ } | null;
72
+ };
73
+ }
74
+ export declare function snapshotElement(session: SessionState, args: SnapshotElementArgs): Promise<SnapshotElementResult>;
75
+ //# sourceMappingURL=snapshot-handlers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"snapshot-handlers.d.ts","sourceRoot":"","sources":["../../../../src/capabilities/snapshot/handlers/snapshot-handlers.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AASrD,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,iBAAiB,CAAC,EAAE,OAAO,CAAA;IAC3B,QAAQ,CAAC,EAAE,OAAO,CAAA;CACnB;AAED,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,OAAO,CAAA;IAChB,OAAO,EAAE,MAAM,CAAA;IACf,YAAY,EAAE,MAAM,CAAA;IACpB,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,IAAI,EAAE;QACJ,SAAS,EAAE,MAAM,CAAA;QACjB,QAAQ,EAAE,MAAM,CAAA;QAChB,QAAQ,EAAE,GAAG,CAAA;QACb,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;KAC/B,CAAA;CACF;AAED,wBAAsB,YAAY,CAAC,OAAO,EAAE,YAAY,EAAE,IAAI,EAAE,gBAAgB,GAAG,OAAO,CAAC,kBAAkB,CAAC,CA2E7G;AAMD,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,iBAAiB,CAAC,EAAE,OAAO,CAAA;IAC3B,QAAQ,CAAC,EAAE,OAAO,CAAA;CACnB;AAED,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,OAAO,CAAA;IAChB,OAAO,EAAE,MAAM,CAAA;IACf,YAAY,EAAE,MAAM,CAAA;IACpB,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,IAAI,EAAE;QACJ,SAAS,EAAE,MAAM,CAAA;QACjB,UAAU,EAAE,GAAG,CAAA;QACf,SAAS,EAAE,KAAK,CAAC;YAAE,IAAI,EAAE,MAAM,CAAC;YAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;SAAE,CAAC,CAAA;QAC9D,WAAW,EAAE;YACX,IAAI,EAAE,MAAM,CAAA;YACZ,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;YAC1B,IAAI,EAAE,GAAG,CAAA;SACV,CAAA;KACF,CAAA;CACF;AAED,wBAAsB,YAAY,CAAC,OAAO,EAAE,YAAY,EAAE,IAAI,EAAE,gBAAgB,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAgF7G;AAMD,MAAM,WAAW,mBAAmB;IAClC,KAAK,EAAE,MAAM,CAAA;IACb,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,iBAAiB,CAAC,EAAE,OAAO,CAAA;CAC5B;AAED,MAAM,WAAW,qBAAqB;IACpC,OAAO,EAAE,OAAO,CAAA;IAChB,OAAO,EAAE,MAAM,CAAA;IACf,YAAY,EAAE,MAAM,CAAA;IACpB,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,IAAI,EAAE;QACJ,SAAS,EAAE,MAAM,CAAA;QACjB,KAAK,EAAE,MAAM,CAAA;QACb,IAAI,CAAC,EAAE,MAAM,CAAA;QACb,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;QAC/B,IAAI,EAAE;YAAE,KAAK,EAAE,MAAM,CAAC;YAAC,MAAM,EAAE,MAAM,CAAA;SAAE,GAAG,IAAI,CAAA;QAC9C,MAAM,EAAE;YAAE,IAAI,EAAE,MAAM,CAAC;YAAC,GAAG,EAAE,MAAM,CAAA;SAAE,GAAG,IAAI,CAAA;KAC7C,CAAA;CACF;AAED,wBAAsB,eAAe,CAAC,OAAO,EAAE,YAAY,EAAE,IAAI,EAAE,mBAAmB,GAAG,OAAO,CAAC,qBAAqB,CAAC,CA+EtH"}