capacitor-mobile-claw 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 (172) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +231 -0
  3. package/dist/esm/definitions.d.ts +226 -0
  4. package/dist/esm/definitions.d.ts.map +1 -0
  5. package/dist/esm/definitions.js +16 -0
  6. package/dist/esm/definitions.js.map +1 -0
  7. package/dist/esm/engine.d.ts +93 -0
  8. package/dist/esm/engine.d.ts.map +1 -0
  9. package/dist/esm/engine.js +332 -0
  10. package/dist/esm/engine.js.map +1 -0
  11. package/dist/esm/index.d.ts +24 -0
  12. package/dist/esm/index.d.ts.map +1 -0
  13. package/dist/esm/index.js +25 -0
  14. package/dist/esm/index.js.map +1 -0
  15. package/dist/esm/mcp/mcp-server-manager.d.ts +33 -0
  16. package/dist/esm/mcp/mcp-server-manager.d.ts.map +1 -0
  17. package/dist/esm/mcp/mcp-server-manager.js +99 -0
  18. package/dist/esm/mcp/mcp-server-manager.js.map +1 -0
  19. package/dist/esm/mcp/server/device-mcp-server.d.ts +43 -0
  20. package/dist/esm/mcp/server/device-mcp-server.d.ts.map +1 -0
  21. package/dist/esm/mcp/server/device-mcp-server.js +52 -0
  22. package/dist/esm/mcp/server/device-mcp-server.js.map +1 -0
  23. package/dist/esm/mcp/tools/app-state.tools.d.ts +3 -0
  24. package/dist/esm/mcp/tools/app-state.tools.d.ts.map +1 -0
  25. package/dist/esm/mcp/tools/app-state.tools.js +22 -0
  26. package/dist/esm/mcp/tools/app-state.tools.js.map +1 -0
  27. package/dist/esm/mcp/tools/barcode.tools.d.ts +3 -0
  28. package/dist/esm/mcp/tools/barcode.tools.d.ts.map +1 -0
  29. package/dist/esm/mcp/tools/barcode.tools.js +29 -0
  30. package/dist/esm/mcp/tools/barcode.tools.js.map +1 -0
  31. package/dist/esm/mcp/tools/biometric.tools.d.ts +3 -0
  32. package/dist/esm/mcp/tools/biometric.tools.d.ts.map +1 -0
  33. package/dist/esm/mcp/tools/biometric.tools.js +33 -0
  34. package/dist/esm/mcp/tools/biometric.tools.js.map +1 -0
  35. package/dist/esm/mcp/tools/bluetooth.tools.d.ts +3 -0
  36. package/dist/esm/mcp/tools/bluetooth.tools.d.ts.map +1 -0
  37. package/dist/esm/mcp/tools/bluetooth.tools.js +95 -0
  38. package/dist/esm/mcp/tools/bluetooth.tools.js.map +1 -0
  39. package/dist/esm/mcp/tools/camera.tools.d.ts +3 -0
  40. package/dist/esm/mcp/tools/camera.tools.d.ts.map +1 -0
  41. package/dist/esm/mcp/tools/camera.tools.js +36 -0
  42. package/dist/esm/mcp/tools/camera.tools.js.map +1 -0
  43. package/dist/esm/mcp/tools/categories.d.ts +22 -0
  44. package/dist/esm/mcp/tools/categories.d.ts.map +1 -0
  45. package/dist/esm/mcp/tools/categories.js +242 -0
  46. package/dist/esm/mcp/tools/categories.js.map +1 -0
  47. package/dist/esm/mcp/tools/clipboard.tools.d.ts +3 -0
  48. package/dist/esm/mcp/tools/clipboard.tools.d.ts.map +1 -0
  49. package/dist/esm/mcp/tools/clipboard.tools.js +22 -0
  50. package/dist/esm/mcp/tools/clipboard.tools.js.map +1 -0
  51. package/dist/esm/mcp/tools/contacts.tools.d.ts +3 -0
  52. package/dist/esm/mcp/tools/contacts.tools.d.ts.map +1 -0
  53. package/dist/esm/mcp/tools/contacts.tools.js +58 -0
  54. package/dist/esm/mcp/tools/contacts.tools.js.map +1 -0
  55. package/dist/esm/mcp/tools/device-info.tools.d.ts +3 -0
  56. package/dist/esm/mcp/tools/device-info.tools.d.ts.map +1 -0
  57. package/dist/esm/mcp/tools/device-info.tools.js +39 -0
  58. package/dist/esm/mcp/tools/device-info.tools.js.map +1 -0
  59. package/dist/esm/mcp/tools/discovery.tools.d.ts +3 -0
  60. package/dist/esm/mcp/tools/discovery.tools.d.ts.map +1 -0
  61. package/dist/esm/mcp/tools/discovery.tools.js +41 -0
  62. package/dist/esm/mcp/tools/discovery.tools.js.map +1 -0
  63. package/dist/esm/mcp/tools/geolocation.tools.d.ts +3 -0
  64. package/dist/esm/mcp/tools/geolocation.tools.d.ts.map +1 -0
  65. package/dist/esm/mcp/tools/geolocation.tools.js +25 -0
  66. package/dist/esm/mcp/tools/geolocation.tools.js.map +1 -0
  67. package/dist/esm/mcp/tools/haptics.tools.d.ts +3 -0
  68. package/dist/esm/mcp/tools/haptics.tools.d.ts.map +1 -0
  69. package/dist/esm/mcp/tools/haptics.tools.js +41 -0
  70. package/dist/esm/mcp/tools/haptics.tools.js.map +1 -0
  71. package/dist/esm/mcp/tools/health.tools.d.ts +3 -0
  72. package/dist/esm/mcp/tools/health.tools.d.ts.map +1 -0
  73. package/dist/esm/mcp/tools/health.tools.js +38 -0
  74. package/dist/esm/mcp/tools/health.tools.js.map +1 -0
  75. package/dist/esm/mcp/tools/http.tools.d.ts +3 -0
  76. package/dist/esm/mcp/tools/http.tools.d.ts.map +1 -0
  77. package/dist/esm/mcp/tools/http.tools.js +24 -0
  78. package/dist/esm/mcp/tools/http.tools.js.map +1 -0
  79. package/dist/esm/mcp/tools/index.d.ts +10 -0
  80. package/dist/esm/mcp/tools/index.d.ts.map +1 -0
  81. package/dist/esm/mcp/tools/index.js +70 -0
  82. package/dist/esm/mcp/tools/index.js.map +1 -0
  83. package/dist/esm/mcp/tools/keep-awake.tools.d.ts +3 -0
  84. package/dist/esm/mcp/tools/keep-awake.tools.d.ts.map +1 -0
  85. package/dist/esm/mcp/tools/keep-awake.tools.js +23 -0
  86. package/dist/esm/mcp/tools/keep-awake.tools.js.map +1 -0
  87. package/dist/esm/mcp/tools/motion-sensors.tools.d.ts +3 -0
  88. package/dist/esm/mcp/tools/motion-sensors.tools.d.ts.map +1 -0
  89. package/dist/esm/mcp/tools/motion-sensors.tools.js +60 -0
  90. package/dist/esm/mcp/tools/motion-sensors.tools.js.map +1 -0
  91. package/dist/esm/mcp/tools/network-status.tools.d.ts +3 -0
  92. package/dist/esm/mcp/tools/network-status.tools.d.ts.map +1 -0
  93. package/dist/esm/mcp/tools/network-status.tools.js +16 -0
  94. package/dist/esm/mcp/tools/network-status.tools.js.map +1 -0
  95. package/dist/esm/mcp/tools/nfc.tools.d.ts +3 -0
  96. package/dist/esm/mcp/tools/nfc.tools.d.ts.map +1 -0
  97. package/dist/esm/mcp/tools/nfc.tools.js +52 -0
  98. package/dist/esm/mcp/tools/nfc.tools.js.map +1 -0
  99. package/dist/esm/mcp/tools/notifications.tools.d.ts +3 -0
  100. package/dist/esm/mcp/tools/notifications.tools.d.ts.map +1 -0
  101. package/dist/esm/mcp/tools/notifications.tools.js +30 -0
  102. package/dist/esm/mcp/tools/notifications.tools.js.map +1 -0
  103. package/dist/esm/mcp/tools/push-notifications.tools.d.ts +3 -0
  104. package/dist/esm/mcp/tools/push-notifications.tools.d.ts.map +1 -0
  105. package/dist/esm/mcp/tools/push-notifications.tools.js +43 -0
  106. package/dist/esm/mcp/tools/push-notifications.tools.js.map +1 -0
  107. package/dist/esm/mcp/tools/secure-storage.tools.d.ts +3 -0
  108. package/dist/esm/mcp/tools/secure-storage.tools.d.ts.map +1 -0
  109. package/dist/esm/mcp/tools/secure-storage.tools.js +31 -0
  110. package/dist/esm/mcp/tools/secure-storage.tools.js.map +1 -0
  111. package/dist/esm/mcp/tools/sftp.tools.d.ts +3 -0
  112. package/dist/esm/mcp/tools/sftp.tools.d.ts.map +1 -0
  113. package/dist/esm/mcp/tools/sftp.tools.js +41 -0
  114. package/dist/esm/mcp/tools/sftp.tools.js.map +1 -0
  115. package/dist/esm/mcp/tools/share.tools.d.ts +3 -0
  116. package/dist/esm/mcp/tools/share.tools.d.ts.map +1 -0
  117. package/dist/esm/mcp/tools/share.tools.js +18 -0
  118. package/dist/esm/mcp/tools/share.tools.js.map +1 -0
  119. package/dist/esm/mcp/tools/speech.tools.d.ts +3 -0
  120. package/dist/esm/mcp/tools/speech.tools.d.ts.map +1 -0
  121. package/dist/esm/mcp/tools/speech.tools.js +38 -0
  122. package/dist/esm/mcp/tools/speech.tools.js.map +1 -0
  123. package/dist/esm/mcp/tools/ssh.tools.d.ts +3 -0
  124. package/dist/esm/mcp/tools/ssh.tools.d.ts.map +1 -0
  125. package/dist/esm/mcp/tools/ssh.tools.js +41 -0
  126. package/dist/esm/mcp/tools/ssh.tools.js.map +1 -0
  127. package/dist/esm/mcp/tools/tcp.tools.d.ts +3 -0
  128. package/dist/esm/mcp/tools/tcp.tools.d.ts.map +1 -0
  129. package/dist/esm/mcp/tools/tcp.tools.js +47 -0
  130. package/dist/esm/mcp/tools/tcp.tools.js.map +1 -0
  131. package/dist/esm/mcp/tools/tts.tools.d.ts +3 -0
  132. package/dist/esm/mcp/tools/tts.tools.d.ts.map +1 -0
  133. package/dist/esm/mcp/tools/tts.tools.js +29 -0
  134. package/dist/esm/mcp/tools/tts.tools.js.map +1 -0
  135. package/dist/esm/mcp/tools/types.d.ts +18 -0
  136. package/dist/esm/mcp/tools/types.d.ts.map +1 -0
  137. package/dist/esm/mcp/tools/types.js +2 -0
  138. package/dist/esm/mcp/tools/types.js.map +1 -0
  139. package/dist/esm/mcp/tools/udp.tools.d.ts +3 -0
  140. package/dist/esm/mcp/tools/udp.tools.d.ts.map +1 -0
  141. package/dist/esm/mcp/tools/udp.tools.js +22 -0
  142. package/dist/esm/mcp/tools/udp.tools.js.map +1 -0
  143. package/dist/esm/mcp/tools/wol.tools.d.ts +3 -0
  144. package/dist/esm/mcp/tools/wol.tools.d.ts.map +1 -0
  145. package/dist/esm/mcp/tools/wol.tools.js +16 -0
  146. package/dist/esm/mcp/tools/wol.tools.js.map +1 -0
  147. package/dist/esm/mcp/transport/bridge-server-transport.d.ts +27 -0
  148. package/dist/esm/mcp/transport/bridge-server-transport.d.ts.map +1 -0
  149. package/dist/esm/mcp/transport/bridge-server-transport.js +72 -0
  150. package/dist/esm/mcp/transport/bridge-server-transport.js.map +1 -0
  151. package/dist/esm/mcp/transport/stomp-server-transport.d.ts +43 -0
  152. package/dist/esm/mcp/transport/stomp-server-transport.d.ts.map +1 -0
  153. package/dist/esm/mcp/transport/stomp-server-transport.js +128 -0
  154. package/dist/esm/mcp/transport/stomp-server-transport.js.map +1 -0
  155. package/dist/esm/mcp/transport/transport-manager.d.ts +38 -0
  156. package/dist/esm/mcp/transport/transport-manager.d.ts.map +1 -0
  157. package/dist/esm/mcp/transport/transport-manager.js +70 -0
  158. package/dist/esm/mcp/transport/transport-manager.js.map +1 -0
  159. package/dist/esm/plugin.d.ts +79 -0
  160. package/dist/esm/plugin.d.ts.map +1 -0
  161. package/dist/esm/plugin.js +81 -0
  162. package/dist/esm/plugin.js.map +1 -0
  163. package/dist/esm/services/bridge-protocol.d.ts +107 -0
  164. package/dist/esm/services/bridge-protocol.d.ts.map +1 -0
  165. package/dist/esm/services/bridge-protocol.js +6 -0
  166. package/dist/esm/services/bridge-protocol.js.map +1 -0
  167. package/nodejs-assets/nodejs-project/main.js +1971 -0
  168. package/nodejs-assets/nodejs-project/mcp-agent-tools.js +57 -0
  169. package/nodejs-assets/nodejs-project/mcp-bridge-client.js +98 -0
  170. package/nodejs-assets/nodejs-project/package-lock.json +3639 -0
  171. package/nodejs-assets/nodejs-project/package.json +18 -0
  172. package/package.json +80 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"device-mcp-server.js","sourceRoot":"","sources":["../../../../src/mcp/server/device-mcp-server.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,2CAA2C,CAAA;AAClE,OAAO,EAAE,qBAAqB,EAAE,sBAAsB,EAAE,MAAM,oCAAoC,CAAA;AAGlG,MAAM,UAAU,qBAAqB,CAAC,KAAmB;IACvD,MAAM,MAAM,GAAG,IAAI,MAAM,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,YAAY,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,EAAE,CAAC,CAAA;IAEjH,2EAA2E;IAC3E,MAAM,CAAC,iBAAiB,CAAC,sBAAsB,EAAE,KAAK,IAAI,EAAE;QAC1D,OAAO,CAAC,GAAG,CAAC,uCAAuC,KAAK,CAAC,MAAM,QAAQ,CAAC,CAAA;QACxE,OAAO;YACL,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;gBACvB,IAAI,EAAE,CAAC,CAAC,IAAI;gBACZ,WAAW,EAAE,CAAC,CAAC,WAAW;gBAC1B,WAAW,EAAE,CAAC,CAAC,WAAW;aAC3B,CAAC,CAAC;SACJ,CAAA;IACH,CAAC,CAAC,CAAA;IAEF,uEAAuE;IACvE,MAAM,CAAC,iBAAiB,CAAC,qBAAqB,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE;QAChE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC,MAAM,CAAA;QAChD,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,CAAA;QAE/C,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,OAAO,CAAC,KAAK,CAAC,gCAAgC,IAAI,EAAE,CAAC,CAAA;YACrD,OAAO;gBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,SAAS,IAAI,aAAa,EAAE,CAAC;gBACtE,OAAO,EAAE,IAAI;aACd,CAAA;QACH,CAAC;QAED,OAAO,CAAC,GAAG,CAAC,gCAAgC,IAAI,EAAE,CAAC,CAAA;QAEnD,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,IAAI,IAAI,EAAE,CAAC,CAAA;YAC7C,MAAM,IAAI,GAAG,OAAO,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAA;YAElF,OAAO;gBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,CAAC;aAC3C,CAAA;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;YACtE,OAAO,CAAC,KAAK,CAAC,gCAAgC,IAAI,GAAG,EAAE,OAAO,CAAC,CAAA;YAE/D,OAAO;gBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,mBAAmB,IAAI,KAAK,OAAO,EAAE,EAAE,CAAC;gBACjF,OAAO,EAAE,IAAI;aACd,CAAA;QACH,CAAC;IACH,CAAC,CAAC,CAAA;IAEF,OAAO,MAAM,CAAA;AACf,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { DeviceTool } from './types';
2
+ export declare const appStateTools: DeviceTool[];
3
+ //# sourceMappingURL=app-state.tools.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"app-state.tools.d.ts","sourceRoot":"","sources":["../../../../src/mcp/tools/app-state.tools.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,SAAS,CAAA;AAEzC,eAAO,MAAM,aAAa,EAAE,UAAU,EAmBrC,CAAA"}
@@ -0,0 +1,22 @@
1
+ import { App } from '@capacitor/app';
2
+ export const appStateTools = [
3
+ {
4
+ name: 'app_get_info',
5
+ description: 'Get the application name, version, and build number.',
6
+ inputSchema: { "type": "object", "properties": {}, "additionalProperties": false },
7
+ execute: async () => {
8
+ const info = await App.getInfo();
9
+ return { name: info.name, id: info.id, version: info.version, build: info.build };
10
+ },
11
+ },
12
+ {
13
+ name: 'app_get_state',
14
+ description: 'Check whether the app is currently active (foreground) or in the background.',
15
+ inputSchema: { "type": "object", "properties": {}, "additionalProperties": false },
16
+ execute: async () => {
17
+ const state = await App.getState();
18
+ return { isActive: state.isActive };
19
+ },
20
+ },
21
+ ];
22
+ //# sourceMappingURL=app-state.tools.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"app-state.tools.js","sourceRoot":"","sources":["../../../../src/mcp/tools/app-state.tools.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,gBAAgB,CAAA;AAGpC,MAAM,CAAC,MAAM,aAAa,GAAiB;IACzC;QACE,IAAI,EAAE,cAAc;QACpB,WAAW,EAAE,sDAAsD;QACnE,WAAW,EAAE,EAAC,MAAM,EAAC,QAAQ,EAAC,YAAY,EAAC,EAAE,EAAC,sBAAsB,EAAC,KAAK,EAAC;QAC3E,OAAO,EAAE,KAAK,IAAI,EAAE;YAClB,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,OAAO,EAAE,CAAA;YAChC,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,CAAA;QACnF,CAAC;KACF;IACD;QACE,IAAI,EAAE,eAAe;QACrB,WAAW,EAAE,8EAA8E;QAC3F,WAAW,EAAE,EAAC,MAAM,EAAC,QAAQ,EAAC,YAAY,EAAC,EAAE,EAAC,sBAAsB,EAAC,KAAK,EAAC;QAC3E,OAAO,EAAE,KAAK,IAAI,EAAE;YAClB,MAAM,KAAK,GAAG,MAAM,GAAG,CAAC,QAAQ,EAAE,CAAA;YAClC,OAAO,EAAE,QAAQ,EAAE,KAAK,CAAC,QAAQ,EAAE,CAAA;QACrC,CAAC;KACF;CACF,CAAA"}
@@ -0,0 +1,3 @@
1
+ import type { DeviceTool } from './types';
2
+ export declare const barcodeTools: DeviceTool[];
3
+ //# sourceMappingURL=barcode.tools.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"barcode.tools.d.ts","sourceRoot":"","sources":["../../../../src/mcp/tools/barcode.tools.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,SAAS,CAAA;AAEzC,eAAO,MAAM,YAAY,EAAE,UAAU,EA2BpC,CAAA"}
@@ -0,0 +1,29 @@
1
+ export const barcodeTools = [
2
+ {
3
+ name: 'barcode_scan',
4
+ description: 'Scan a barcode or QR code using the device camera. Returns the decoded barcode value and format.',
5
+ inputSchema: { "type": "object", "properties": {}, "additionalProperties": false },
6
+ execute: async () => {
7
+ const { BarcodeScanner } = await import('@capacitor-mlkit/barcode-scanning');
8
+ const result = await BarcodeScanner.scan();
9
+ return {
10
+ barcodes: result.barcodes.map(b => ({
11
+ rawValue: b.rawValue,
12
+ format: b.format,
13
+ displayValue: b.displayValue,
14
+ })),
15
+ };
16
+ },
17
+ },
18
+ {
19
+ name: 'barcode_is_supported',
20
+ description: 'Check if barcode scanning is supported on this device.',
21
+ inputSchema: { "type": "object", "properties": {}, "additionalProperties": false },
22
+ execute: async () => {
23
+ const { BarcodeScanner } = await import('@capacitor-mlkit/barcode-scanning');
24
+ const result = await BarcodeScanner.isSupported();
25
+ return { supported: result.supported };
26
+ },
27
+ },
28
+ ];
29
+ //# sourceMappingURL=barcode.tools.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"barcode.tools.js","sourceRoot":"","sources":["../../../../src/mcp/tools/barcode.tools.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,YAAY,GAAiB;IACxC;QACE,IAAI,EAAE,cAAc;QACpB,WAAW,EAAE,kGAAkG;QAC/G,WAAW,EAAE,EAAC,MAAM,EAAC,QAAQ,EAAC,YAAY,EAAC,EAAE,EAAC,sBAAsB,EAAC,KAAK,EAAC;QAC3E,OAAO,EAAE,KAAK,IAAI,EAAE;YAClB,MAAM,EAAE,cAAc,EAAE,GAAG,MAAM,MAAM,CAAC,mCAAmC,CAAC,CAAA;YAC5E,MAAM,MAAM,GAAG,MAAM,cAAc,CAAC,IAAI,EAAE,CAAA;YAC1C,OAAO;gBACL,QAAQ,EAAE,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;oBAClC,QAAQ,EAAE,CAAC,CAAC,QAAQ;oBACpB,MAAM,EAAE,CAAC,CAAC,MAAM;oBAChB,YAAY,EAAE,CAAC,CAAC,YAAY;iBAC7B,CAAC,CAAC;aACJ,CAAA;QACH,CAAC;KACF;IACD;QACE,IAAI,EAAE,sBAAsB;QAC5B,WAAW,EAAE,wDAAwD;QACrE,WAAW,EAAE,EAAC,MAAM,EAAC,QAAQ,EAAC,YAAY,EAAC,EAAE,EAAC,sBAAsB,EAAC,KAAK,EAAC;QAC3E,OAAO,EAAE,KAAK,IAAI,EAAE;YAClB,MAAM,EAAE,cAAc,EAAE,GAAG,MAAM,MAAM,CAAC,mCAAmC,CAAC,CAAA;YAC5E,MAAM,MAAM,GAAG,MAAM,cAAc,CAAC,WAAW,EAAE,CAAA;YACjD,OAAO,EAAE,SAAS,EAAE,MAAM,CAAC,SAAS,EAAE,CAAA;QACxC,CAAC;KACF;CACF,CAAA"}
@@ -0,0 +1,3 @@
1
+ import type { DeviceTool } from './types';
2
+ export declare const biometricTools: DeviceTool[];
3
+ //# sourceMappingURL=biometric.tools.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"biometric.tools.d.ts","sourceRoot":"","sources":["../../../../src/mcp/tools/biometric.tools.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,SAAS,CAAA;AAEzC,eAAO,MAAM,cAAc,EAAE,UAAU,EA+BtC,CAAA"}
@@ -0,0 +1,33 @@
1
+ export const biometricTools = [
2
+ {
3
+ name: 'biometric_authenticate',
4
+ description: 'Prompt the user for biometric authentication (fingerprint, face ID, etc.). Returns success or throws on failure/cancel.',
5
+ inputSchema: { "type": "object", "properties": { "reason": { "description": "Reason shown to the user (e.g. \"Confirm your identity\")", "type": "string" }, "allowDeviceCredential": { "description": "Allow PIN/password fallback (default true)", "type": "boolean" } }, "additionalProperties": false },
6
+ execute: async (args) => {
7
+ const { BiometricAuth } = await import('@aparajita/capacitor-biometric-auth');
8
+ await BiometricAuth.authenticate({
9
+ reason: args.reason ?? 'Please authenticate',
10
+ allowDeviceCredential: args.allowDeviceCredential ?? true,
11
+ });
12
+ return { authenticated: true };
13
+ },
14
+ },
15
+ {
16
+ name: 'biometric_is_available',
17
+ description: 'Check if biometric authentication is available on this device and what type (fingerprint, face ID, etc.).',
18
+ inputSchema: { "type": "object", "properties": {}, "additionalProperties": false },
19
+ execute: async () => {
20
+ const { BiometricAuth } = await import('@aparajita/capacitor-biometric-auth');
21
+ const result = await BiometricAuth.checkBiometry();
22
+ return {
23
+ isAvailable: result.isAvailable,
24
+ biometryType: result.biometryType,
25
+ biometryTypes: result.biometryTypes,
26
+ deviceIsSecure: result.deviceIsSecure,
27
+ reason: result.reason,
28
+ strongBiometryIsAvailable: result.strongBiometryIsAvailable,
29
+ };
30
+ },
31
+ },
32
+ ];
33
+ //# sourceMappingURL=biometric.tools.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"biometric.tools.js","sourceRoot":"","sources":["../../../../src/mcp/tools/biometric.tools.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,cAAc,GAAiB;IAC1C;QACE,IAAI,EAAE,wBAAwB;QAC9B,WAAW,EAAE,yHAAyH;QACtI,WAAW,EAAE,EAAC,MAAM,EAAC,QAAQ,EAAC,YAAY,EAAC,EAAC,QAAQ,EAAC,EAAC,aAAa,EAAC,2DAA2D,EAAC,MAAM,EAAC,QAAQ,EAAC,EAAC,uBAAuB,EAAC,EAAC,aAAa,EAAC,4CAA4C,EAAC,MAAM,EAAC,SAAS,EAAC,EAAC,EAAC,sBAAsB,EAAC,KAAK,EAAC;QACrR,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE;YACtB,MAAM,EAAE,aAAa,EAAE,GAAG,MAAM,MAAM,CAAC,qCAAqC,CAAC,CAAA;YAC7E,MAAM,aAAa,CAAC,YAAY,CAAC;gBAC/B,MAAM,EAAE,IAAI,CAAC,MAAM,IAAI,qBAAqB;gBAC5C,qBAAqB,EAAE,IAAI,CAAC,qBAAqB,IAAI,IAAI;aAC1D,CAAC,CAAA;YACF,OAAO,EAAE,aAAa,EAAE,IAAI,EAAE,CAAA;QAChC,CAAC;KACF;IACD;QACE,IAAI,EAAE,wBAAwB;QAC9B,WAAW,EAAE,2GAA2G;QACxH,WAAW,EAAE,EAAC,MAAM,EAAC,QAAQ,EAAC,YAAY,EAAC,EAAE,EAAC,sBAAsB,EAAC,KAAK,EAAC;QAC3E,OAAO,EAAE,KAAK,IAAI,EAAE;YAClB,MAAM,EAAE,aAAa,EAAE,GAAG,MAAM,MAAM,CAAC,qCAAqC,CAAC,CAAA;YAC7E,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,aAAa,EAAE,CAAA;YAClD,OAAO;gBACL,WAAW,EAAE,MAAM,CAAC,WAAW;gBAC/B,YAAY,EAAE,MAAM,CAAC,YAAY;gBACjC,aAAa,EAAE,MAAM,CAAC,aAAa;gBACnC,cAAc,EAAE,MAAM,CAAC,cAAc;gBACrC,MAAM,EAAE,MAAM,CAAC,MAAM;gBACrB,yBAAyB,EAAE,MAAM,CAAC,yBAAyB;aAC5D,CAAA;QACH,CAAC;KACF;CACF,CAAA"}
@@ -0,0 +1,3 @@
1
+ import type { DeviceTool } from './types';
2
+ export declare const bluetoothTools: DeviceTool[];
3
+ //# sourceMappingURL=bluetooth.tools.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bluetooth.tools.d.ts","sourceRoot":"","sources":["../../../../src/mcp/tools/bluetooth.tools.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,SAAS,CAAA;AAYzC,eAAO,MAAM,cAAc,EAAE,UAAU,EA2FtC,CAAA"}
@@ -0,0 +1,95 @@
1
+ let bleInitialized = false;
2
+ async function ensureBleInit() {
3
+ if (!bleInitialized) {
4
+ const { BleClient } = await import('@capacitor-community/bluetooth-le');
5
+ await BleClient.initialize();
6
+ bleInitialized = true;
7
+ }
8
+ }
9
+ export const bluetoothTools = [
10
+ {
11
+ name: 'ble_scan',
12
+ description: 'Scan for nearby Bluetooth Low Energy (BLE) devices. Returns a list of discovered devices with names and signal strength.',
13
+ inputSchema: { "type": "object", "properties": { "services": { "description": "Filter by service UUIDs (e.g. [\"180d\"] for heart rate)", "type": "array", "items": { "type": "string" } }, "timeout": { "description": "Scan duration in milliseconds (default 5000)", "type": "number" } }, "additionalProperties": false },
14
+ execute: async (args) => {
15
+ const { BleClient } = await import('@capacitor-community/bluetooth-le');
16
+ await ensureBleInit();
17
+ const devices = [];
18
+ const scanDuration = args.timeout ?? 5000;
19
+ await BleClient.requestLEScan({ services: args.services }, (result) => {
20
+ devices.push({
21
+ deviceId: result.device.deviceId,
22
+ name: result.device.name,
23
+ rssi: result.rssi,
24
+ localName: result.localName,
25
+ });
26
+ });
27
+ await new Promise(resolve => setTimeout(resolve, scanDuration));
28
+ await BleClient.stopLEScan();
29
+ // Deduplicate by deviceId, keeping strongest signal
30
+ const seen = new Map();
31
+ for (const d of devices) {
32
+ const existing = seen.get(d.deviceId);
33
+ if (!existing || (d.rssi && d.rssi > existing.rssi)) {
34
+ seen.set(d.deviceId, d);
35
+ }
36
+ }
37
+ return { devices: [...seen.values()] };
38
+ },
39
+ },
40
+ {
41
+ name: 'ble_connect',
42
+ description: 'Connect to a BLE device by its device ID.',
43
+ inputSchema: { "type": "object", "properties": { "deviceId": { "type": "string", "description": "Device ID from ble_scan results" } }, "required": ["deviceId"], "additionalProperties": false },
44
+ execute: async (args) => {
45
+ const { BleClient } = await import('@capacitor-community/bluetooth-le');
46
+ await ensureBleInit();
47
+ await BleClient.connect(args.deviceId);
48
+ const services = await BleClient.getServices(args.deviceId);
49
+ return {
50
+ connected: true,
51
+ services: services.map(s => ({
52
+ uuid: s.uuid,
53
+ characteristics: s.characteristics?.map(c => ({
54
+ uuid: c.uuid,
55
+ properties: c.properties,
56
+ })),
57
+ })),
58
+ };
59
+ },
60
+ },
61
+ {
62
+ name: 'ble_read',
63
+ description: 'Read a value from a BLE characteristic.',
64
+ inputSchema: { "type": "object", "properties": { "deviceId": { "type": "string", "description": "Device ID" }, "service": { "type": "string", "description": "Service UUID" }, "characteristic": { "type": "string", "description": "Characteristic UUID" } }, "required": ["deviceId", "service", "characteristic"], "additionalProperties": false },
65
+ execute: async (args) => {
66
+ const { BleClient } = await import('@capacitor-community/bluetooth-le');
67
+ const result = await BleClient.read(args.deviceId, args.service, args.characteristic);
68
+ // Convert DataView to hex string
69
+ const bytes = new Uint8Array(result.buffer);
70
+ const hex = Array.from(bytes).map(b => b.toString(16).padStart(2, '0')).join('');
71
+ return { hex, bytes: Array.from(bytes) };
72
+ },
73
+ },
74
+ {
75
+ name: 'ble_write',
76
+ description: 'Write a value to a BLE characteristic.',
77
+ inputSchema: { "type": "object", "properties": { "deviceId": { "type": "string", "description": "Device ID" }, "service": { "type": "string", "description": "Service UUID" }, "characteristic": { "type": "string", "description": "Characteristic UUID" }, "value": { "type": "string", "description": "Hex string to write (e.g. \"01ff\")" } }, "required": ["deviceId", "service", "characteristic", "value"], "additionalProperties": false },
78
+ execute: async (args) => {
79
+ const { BleClient, hexStringToDataView } = await import('@capacitor-community/bluetooth-le');
80
+ await BleClient.write(args.deviceId, args.service, args.characteristic, hexStringToDataView(args.value));
81
+ return { success: true };
82
+ },
83
+ },
84
+ {
85
+ name: 'ble_disconnect',
86
+ description: 'Disconnect from a BLE device.',
87
+ inputSchema: { "type": "object", "properties": { "deviceId": { "type": "string", "description": "Device ID" } }, "required": ["deviceId"], "additionalProperties": false },
88
+ execute: async (args) => {
89
+ const { BleClient } = await import('@capacitor-community/bluetooth-le');
90
+ await BleClient.disconnect(args.deviceId);
91
+ return { disconnected: true };
92
+ },
93
+ },
94
+ ];
95
+ //# sourceMappingURL=bluetooth.tools.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bluetooth.tools.js","sourceRoot":"","sources":["../../../../src/mcp/tools/bluetooth.tools.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import type { DeviceTool } from './types';
2
+ export declare const cameraTools: DeviceTool[];
3
+ //# sourceMappingURL=camera.tools.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"camera.tools.d.ts","sourceRoot":"","sources":["../../../../src/mcp/tools/camera.tools.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,SAAS,CAAA;AAEzC,eAAO,MAAM,WAAW,EAAE,UAAU,EAkCnC,CAAA"}
@@ -0,0 +1,36 @@
1
+ export const cameraTools = [
2
+ {
3
+ name: 'camera_take_photo',
4
+ description: 'Take a photo using the device camera. Returns base64-encoded image data.',
5
+ inputSchema: { "type": "object", "properties": { "quality": { "description": "Image quality 1-100 (default 90)", "type": "number", "minimum": 1, "maximum": 100 }, "direction": { "description": "Camera direction (default rear)", "type": "string", "enum": ["front", "rear"] }, "width": { "description": "Maximum width in pixels", "type": "number" }, "height": { "description": "Maximum height in pixels", "type": "number" } }, "additionalProperties": false },
6
+ execute: async (args) => {
7
+ const { Camera, CameraResultType, CameraSource, CameraDirection } = await import('@capacitor/camera');
8
+ const result = await Camera.getPhoto({
9
+ quality: args.quality ?? 90,
10
+ resultType: CameraResultType.Base64,
11
+ source: CameraSource.Camera,
12
+ direction: args.direction === 'front' ? CameraDirection.Front : CameraDirection.Rear,
13
+ width: args.width,
14
+ height: args.height,
15
+ });
16
+ return { format: result.format, base64: result.base64String };
17
+ },
18
+ },
19
+ {
20
+ name: 'camera_pick_image',
21
+ description: 'Pick an image from the device photo gallery. Returns base64-encoded image data.',
22
+ inputSchema: { "type": "object", "properties": { "quality": { "description": "Image quality 1-100 (default 90)", "type": "number", "minimum": 1, "maximum": 100 }, "width": { "description": "Maximum width in pixels", "type": "number" }, "height": { "description": "Maximum height in pixels", "type": "number" } }, "additionalProperties": false },
23
+ execute: async (args) => {
24
+ const { Camera, CameraResultType, CameraSource } = await import('@capacitor/camera');
25
+ const result = await Camera.getPhoto({
26
+ quality: args.quality ?? 90,
27
+ resultType: CameraResultType.Base64,
28
+ source: CameraSource.Photos,
29
+ width: args.width,
30
+ height: args.height,
31
+ });
32
+ return { format: result.format, base64: result.base64String };
33
+ },
34
+ },
35
+ ];
36
+ //# sourceMappingURL=camera.tools.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"camera.tools.js","sourceRoot":"","sources":["../../../../src/mcp/tools/camera.tools.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,WAAW,GAAiB;IACvC;QACE,IAAI,EAAE,mBAAmB;QACzB,WAAW,EAAE,0EAA0E;QACvF,WAAW,EAAE,EAAC,MAAM,EAAC,QAAQ,EAAC,YAAY,EAAC,EAAC,SAAS,EAAC,EAAC,aAAa,EAAC,kCAAkC,EAAC,MAAM,EAAC,QAAQ,EAAC,SAAS,EAAC,CAAC,EAAC,SAAS,EAAC,GAAG,EAAC,EAAC,WAAW,EAAC,EAAC,aAAa,EAAC,iCAAiC,EAAC,MAAM,EAAC,QAAQ,EAAC,MAAM,EAAC,CAAC,OAAO,EAAC,MAAM,CAAC,EAAC,EAAC,OAAO,EAAC,EAAC,aAAa,EAAC,yBAAyB,EAAC,MAAM,EAAC,QAAQ,EAAC,EAAC,QAAQ,EAAC,EAAC,aAAa,EAAC,0BAA0B,EAAC,MAAM,EAAC,QAAQ,EAAC,EAAC,EAAC,sBAAsB,EAAC,KAAK,EAAC;QAC7Z,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE;YACtB,MAAM,EAAE,MAAM,EAAE,gBAAgB,EAAE,YAAY,EAAE,eAAe,EAAE,GAAG,MAAM,MAAM,CAAC,mBAAmB,CAAC,CAAA;YACrG,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,QAAQ,CAAC;gBACnC,OAAO,EAAE,IAAI,CAAC,OAAO,IAAI,EAAE;gBAC3B,UAAU,EAAE,gBAAgB,CAAC,MAAM;gBACnC,MAAM,EAAE,YAAY,CAAC,MAAM;gBAC3B,SAAS,EAAE,IAAI,CAAC,SAAS,KAAK,OAAO,CAAC,CAAC,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC,CAAC,eAAe,CAAC,IAAI;gBACpF,KAAK,EAAE,IAAI,CAAC,KAAK;gBACjB,MAAM,EAAE,IAAI,CAAC,MAAM;aACpB,CAAC,CAAA;YACF,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,YAAY,EAAE,CAAA;QAC/D,CAAC;KACF;IACD;QACE,IAAI,EAAE,mBAAmB;QACzB,WAAW,EAAE,iFAAiF;QAC9F,WAAW,EAAE,EAAC,MAAM,EAAC,QAAQ,EAAC,YAAY,EAAC,EAAC,SAAS,EAAC,EAAC,aAAa,EAAC,kCAAkC,EAAC,MAAM,EAAC,QAAQ,EAAC,SAAS,EAAC,CAAC,EAAC,SAAS,EAAC,GAAG,EAAC,EAAC,OAAO,EAAC,EAAC,aAAa,EAAC,yBAAyB,EAAC,MAAM,EAAC,QAAQ,EAAC,EAAC,QAAQ,EAAC,EAAC,aAAa,EAAC,0BAA0B,EAAC,MAAM,EAAC,QAAQ,EAAC,EAAC,EAAC,sBAAsB,EAAC,KAAK,EAAC;QACvT,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE;YACtB,MAAM,EAAE,MAAM,EAAE,gBAAgB,EAAE,YAAY,EAAE,GAAG,MAAM,MAAM,CAAC,mBAAmB,CAAC,CAAA;YACpF,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,QAAQ,CAAC;gBACnC,OAAO,EAAE,IAAI,CAAC,OAAO,IAAI,EAAE;gBAC3B,UAAU,EAAE,gBAAgB,CAAC,MAAM;gBACnC,MAAM,EAAE,YAAY,CAAC,MAAM;gBAC3B,KAAK,EAAE,IAAI,CAAC,KAAK;gBACjB,MAAM,EAAE,IAAI,CAAC,MAAM;aACpB,CAAC,CAAA;YACF,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,YAAY,EAAE,CAAA;QAC/D,CAAC;KACF;CACF,CAAA"}
@@ -0,0 +1,22 @@
1
+ /**
2
+ * Static registry of MCP tool categories for the Settings UI.
3
+ *
4
+ * Maps tool names to human-readable categories with descriptions
5
+ * and privacy implications for each capability group.
6
+ */
7
+ export interface McpToolCategory {
8
+ id: string;
9
+ labelKey: string;
10
+ descriptionKey: string;
11
+ privacyKey: string;
12
+ toolNames: string[];
13
+ }
14
+ export interface McpCategorySection {
15
+ id: string;
16
+ labelKey: string;
17
+ iconColor: string;
18
+ categoryIds: string[];
19
+ }
20
+ export declare const mcpToolCategories: McpToolCategory[];
21
+ export declare const mcpCategorySections: McpCategorySection[];
22
+ //# sourceMappingURL=categories.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"categories.d.ts","sourceRoot":"","sources":["../../../../src/mcp/tools/categories.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,MAAM,WAAW,eAAe;IAC9B,EAAE,EAAE,MAAM,CAAA;IACV,QAAQ,EAAE,MAAM,CAAA;IAChB,cAAc,EAAE,MAAM,CAAA;IACtB,UAAU,EAAE,MAAM,CAAA;IAClB,SAAS,EAAE,MAAM,EAAE,CAAA;CACpB;AAED,MAAM,WAAW,kBAAkB;IACjC,EAAE,EAAE,MAAM,CAAA;IACV,QAAQ,EAAE,MAAM,CAAA;IAChB,SAAS,EAAE,MAAM,CAAA;IACjB,WAAW,EAAE,MAAM,EAAE,CAAA;CACtB;AAED,eAAO,MAAM,iBAAiB,EAAE,eAAe,EA0M9C,CAAA;AAED,eAAO,MAAM,mBAAmB,EAAE,kBAAkB,EA+BnD,CAAA"}
@@ -0,0 +1,242 @@
1
+ /**
2
+ * Static registry of MCP tool categories for the Settings UI.
3
+ *
4
+ * Maps tool names to human-readable categories with descriptions
5
+ * and privacy implications for each capability group.
6
+ */
7
+ export const mcpToolCategories = [
8
+ // --- Network & Remote Access ---
9
+ {
10
+ id: 'ssh',
11
+ labelKey: 'settings.mcp.categories.ssh.label',
12
+ descriptionKey: 'settings.mcp.categories.ssh.description',
13
+ privacyKey: 'settings.mcp.categories.ssh.privacy',
14
+ toolNames: ['ssh_connect', 'ssh_exec', 'ssh_disconnect'],
15
+ },
16
+ {
17
+ id: 'sftp',
18
+ labelKey: 'settings.mcp.categories.sftp.label',
19
+ descriptionKey: 'settings.mcp.categories.sftp.description',
20
+ privacyKey: 'settings.mcp.categories.sftp.privacy',
21
+ toolNames: ['sftp_list', 'sftp_download', 'sftp_upload'],
22
+ },
23
+ {
24
+ id: 'http',
25
+ labelKey: 'settings.mcp.categories.http.label',
26
+ descriptionKey: 'settings.mcp.categories.http.description',
27
+ privacyKey: 'settings.mcp.categories.http.privacy',
28
+ toolNames: ['http_request'],
29
+ },
30
+ {
31
+ id: 'tcp',
32
+ labelKey: 'settings.mcp.categories.tcp.label',
33
+ descriptionKey: 'settings.mcp.categories.tcp.description',
34
+ privacyKey: 'settings.mcp.categories.tcp.privacy',
35
+ toolNames: ['tcp_connect', 'tcp_send', 'tcp_read', 'tcp_disconnect'],
36
+ },
37
+ {
38
+ id: 'udp',
39
+ labelKey: 'settings.mcp.categories.udp.label',
40
+ descriptionKey: 'settings.mcp.categories.udp.description',
41
+ privacyKey: 'settings.mcp.categories.udp.privacy',
42
+ toolNames: ['udp_send', 'udp_broadcast'],
43
+ },
44
+ {
45
+ id: 'discovery',
46
+ labelKey: 'settings.mcp.categories.discovery.label',
47
+ descriptionKey: 'settings.mcp.categories.discovery.description',
48
+ privacyKey: 'settings.mcp.categories.discovery.privacy',
49
+ toolNames: ['ping', 'network_scan', 'mdns_discover'],
50
+ },
51
+ {
52
+ id: 'wol',
53
+ labelKey: 'settings.mcp.categories.wol.label',
54
+ descriptionKey: 'settings.mcp.categories.wol.description',
55
+ privacyKey: 'settings.mcp.categories.wol.privacy',
56
+ toolNames: ['wol_send'],
57
+ },
58
+ // --- Sensors & Camera ---
59
+ {
60
+ id: 'camera',
61
+ labelKey: 'settings.mcp.categories.camera.label',
62
+ descriptionKey: 'settings.mcp.categories.camera.description',
63
+ privacyKey: 'settings.mcp.categories.camera.privacy',
64
+ toolNames: ['camera_take_photo', 'camera_pick_image'],
65
+ },
66
+ {
67
+ id: 'barcode',
68
+ labelKey: 'settings.mcp.categories.barcode.label',
69
+ descriptionKey: 'settings.mcp.categories.barcode.description',
70
+ privacyKey: 'settings.mcp.categories.barcode.privacy',
71
+ toolNames: ['barcode_scan', 'barcode_is_supported'],
72
+ },
73
+ {
74
+ id: 'motion-sensors',
75
+ labelKey: 'settings.mcp.categories.motionSensors.label',
76
+ descriptionKey: 'settings.mcp.categories.motionSensors.description',
77
+ privacyKey: 'settings.mcp.categories.motionSensors.privacy',
78
+ toolNames: ['motion_get_acceleration', 'motion_get_orientation'],
79
+ },
80
+ {
81
+ id: 'geolocation',
82
+ labelKey: 'settings.mcp.categories.geolocation.label',
83
+ descriptionKey: 'settings.mcp.categories.geolocation.description',
84
+ privacyKey: 'settings.mcp.categories.geolocation.privacy',
85
+ toolNames: ['geolocation_get_current'],
86
+ },
87
+ // --- Communication ---
88
+ {
89
+ id: 'speech',
90
+ labelKey: 'settings.mcp.categories.speech.label',
91
+ descriptionKey: 'settings.mcp.categories.speech.description',
92
+ privacyKey: 'settings.mcp.categories.speech.privacy',
93
+ toolNames: ['speech_listen', 'speech_is_available', 'speech_get_languages'],
94
+ },
95
+ {
96
+ id: 'tts',
97
+ labelKey: 'settings.mcp.categories.tts.label',
98
+ descriptionKey: 'settings.mcp.categories.tts.description',
99
+ privacyKey: 'settings.mcp.categories.tts.privacy',
100
+ toolNames: ['tts_speak', 'tts_get_languages'],
101
+ },
102
+ {
103
+ id: 'bluetooth',
104
+ labelKey: 'settings.mcp.categories.bluetooth.label',
105
+ descriptionKey: 'settings.mcp.categories.bluetooth.description',
106
+ privacyKey: 'settings.mcp.categories.bluetooth.privacy',
107
+ toolNames: ['ble_scan', 'ble_connect', 'ble_read', 'ble_write', 'ble_disconnect'],
108
+ },
109
+ {
110
+ id: 'nfc',
111
+ labelKey: 'settings.mcp.categories.nfc.label',
112
+ descriptionKey: 'settings.mcp.categories.nfc.description',
113
+ privacyKey: 'settings.mcp.categories.nfc.privacy',
114
+ toolNames: ['nfc_read', 'nfc_write', 'nfc_is_supported'],
115
+ },
116
+ // --- Personal Data ---
117
+ {
118
+ id: 'contacts',
119
+ labelKey: 'settings.mcp.categories.contacts.label',
120
+ descriptionKey: 'settings.mcp.categories.contacts.description',
121
+ privacyKey: 'settings.mcp.categories.contacts.privacy',
122
+ toolNames: ['contacts_list', 'contacts_search'],
123
+ },
124
+ {
125
+ id: 'health',
126
+ labelKey: 'settings.mcp.categories.health.label',
127
+ descriptionKey: 'settings.mcp.categories.health.description',
128
+ privacyKey: 'settings.mcp.categories.health.privacy',
129
+ toolNames: ['health_is_available', 'health_request_auth', 'health_query'],
130
+ },
131
+ {
132
+ id: 'biometric',
133
+ labelKey: 'settings.mcp.categories.biometric.label',
134
+ descriptionKey: 'settings.mcp.categories.biometric.description',
135
+ privacyKey: 'settings.mcp.categories.biometric.privacy',
136
+ toolNames: ['biometric_authenticate', 'biometric_is_available'],
137
+ },
138
+ // --- Device Controls ---
139
+ {
140
+ id: 'device-info',
141
+ labelKey: 'settings.mcp.categories.deviceInfo.label',
142
+ descriptionKey: 'settings.mcp.categories.deviceInfo.description',
143
+ privacyKey: 'settings.mcp.categories.deviceInfo.privacy',
144
+ toolNames: ['device_get_info', 'device_get_battery'],
145
+ },
146
+ {
147
+ id: 'clipboard',
148
+ labelKey: 'settings.mcp.categories.clipboard.label',
149
+ descriptionKey: 'settings.mcp.categories.clipboard.description',
150
+ privacyKey: 'settings.mcp.categories.clipboard.privacy',
151
+ toolNames: ['clipboard_read', 'clipboard_write'],
152
+ },
153
+ {
154
+ id: 'haptics',
155
+ labelKey: 'settings.mcp.categories.haptics.label',
156
+ descriptionKey: 'settings.mcp.categories.haptics.description',
157
+ privacyKey: 'settings.mcp.categories.haptics.privacy',
158
+ toolNames: ['haptics_impact', 'haptics_notification', 'haptics_vibrate'],
159
+ },
160
+ {
161
+ id: 'notifications',
162
+ labelKey: 'settings.mcp.categories.notifications.label',
163
+ descriptionKey: 'settings.mcp.categories.notifications.description',
164
+ privacyKey: 'settings.mcp.categories.notifications.privacy',
165
+ toolNames: ['notification_schedule', 'notification_cancel'],
166
+ },
167
+ {
168
+ id: 'push-notifications',
169
+ labelKey: 'settings.mcp.categories.pushNotifications.label',
170
+ descriptionKey: 'settings.mcp.categories.pushNotifications.description',
171
+ privacyKey: 'settings.mcp.categories.pushNotifications.privacy',
172
+ toolNames: ['push_get_token', 'push_get_delivered'],
173
+ },
174
+ {
175
+ id: 'network-status',
176
+ labelKey: 'settings.mcp.categories.networkStatus.label',
177
+ descriptionKey: 'settings.mcp.categories.networkStatus.description',
178
+ privacyKey: 'settings.mcp.categories.networkStatus.privacy',
179
+ toolNames: ['network_status'],
180
+ },
181
+ {
182
+ id: 'share',
183
+ labelKey: 'settings.mcp.categories.share.label',
184
+ descriptionKey: 'settings.mcp.categories.share.description',
185
+ privacyKey: 'settings.mcp.categories.share.privacy',
186
+ toolNames: ['share_content'],
187
+ },
188
+ {
189
+ id: 'secure-storage',
190
+ labelKey: 'settings.mcp.categories.secureStorage.label',
191
+ descriptionKey: 'settings.mcp.categories.secureStorage.description',
192
+ privacyKey: 'settings.mcp.categories.secureStorage.privacy',
193
+ toolNames: ['secure_storage_get', 'secure_storage_set', 'secure_storage_remove'],
194
+ },
195
+ {
196
+ id: 'keep-awake',
197
+ labelKey: 'settings.mcp.categories.keepAwake.label',
198
+ descriptionKey: 'settings.mcp.categories.keepAwake.description',
199
+ privacyKey: 'settings.mcp.categories.keepAwake.privacy',
200
+ toolNames: ['screen_keep_awake', 'screen_allow_sleep'],
201
+ },
202
+ {
203
+ id: 'app-state',
204
+ labelKey: 'settings.mcp.categories.appState.label',
205
+ descriptionKey: 'settings.mcp.categories.appState.description',
206
+ privacyKey: 'settings.mcp.categories.appState.privacy',
207
+ toolNames: ['app_get_info', 'app_get_state'],
208
+ },
209
+ ];
210
+ export const mcpCategorySections = [
211
+ {
212
+ id: 'network',
213
+ labelKey: 'settings.mcp.sections.network',
214
+ iconColor: 'bg-blue-500/15 text-blue-400',
215
+ categoryIds: ['ssh', 'sftp', 'http', 'tcp', 'udp', 'discovery', 'wol'],
216
+ },
217
+ {
218
+ id: 'sensors',
219
+ labelKey: 'settings.mcp.sections.sensors',
220
+ iconColor: 'bg-emerald-500/15 text-emerald-400',
221
+ categoryIds: ['camera', 'barcode', 'motion-sensors', 'geolocation'],
222
+ },
223
+ {
224
+ id: 'communication',
225
+ labelKey: 'settings.mcp.sections.communication',
226
+ iconColor: 'bg-amber-500/15 text-amber-400',
227
+ categoryIds: ['speech', 'tts', 'bluetooth', 'nfc'],
228
+ },
229
+ {
230
+ id: 'personal-data',
231
+ labelKey: 'settings.mcp.sections.personalData',
232
+ iconColor: 'bg-red-500/15 text-red-400',
233
+ categoryIds: ['contacts', 'health', 'biometric'],
234
+ },
235
+ {
236
+ id: 'device',
237
+ labelKey: 'settings.mcp.sections.device',
238
+ iconColor: 'bg-purple-500/15 text-purple-400',
239
+ categoryIds: ['device-info', 'clipboard', 'haptics', 'notifications', 'push-notifications', 'network-status', 'share', 'secure-storage', 'keep-awake', 'app-state'],
240
+ },
241
+ ];
242
+ //# sourceMappingURL=categories.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"categories.js","sourceRoot":"","sources":["../../../../src/mcp/tools/categories.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import type { DeviceTool } from './types';
2
+ export declare const clipboardTools: DeviceTool[];
3
+ //# sourceMappingURL=clipboard.tools.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"clipboard.tools.d.ts","sourceRoot":"","sources":["../../../../src/mcp/tools/clipboard.tools.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,SAAS,CAAA;AAEzC,eAAO,MAAM,cAAc,EAAE,UAAU,EAmBtC,CAAA"}
@@ -0,0 +1,22 @@
1
+ import { Clipboard } from '@capacitor/clipboard';
2
+ export const clipboardTools = [
3
+ {
4
+ name: 'clipboard_read',
5
+ description: 'Read the current text content from the device clipboard.',
6
+ inputSchema: { "type": "object", "properties": {}, "additionalProperties": false },
7
+ execute: async () => {
8
+ const result = await Clipboard.read();
9
+ return { type: result.type, value: result.value };
10
+ },
11
+ },
12
+ {
13
+ name: 'clipboard_write',
14
+ description: 'Write text to the device clipboard.',
15
+ inputSchema: { "type": "object", "properties": { "text": { "type": "string", "description": "Text to write to the clipboard" } }, "required": ["text"], "additionalProperties": false },
16
+ execute: async (args) => {
17
+ await Clipboard.write({ string: args.text });
18
+ return { success: true };
19
+ },
20
+ },
21
+ ];
22
+ //# sourceMappingURL=clipboard.tools.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"clipboard.tools.js","sourceRoot":"","sources":["../../../../src/mcp/tools/clipboard.tools.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAA;AAGhD,MAAM,CAAC,MAAM,cAAc,GAAiB;IAC1C;QACE,IAAI,EAAE,gBAAgB;QACtB,WAAW,EAAE,0DAA0D;QACvE,WAAW,EAAE,EAAC,MAAM,EAAC,QAAQ,EAAC,YAAY,EAAC,EAAE,EAAC,sBAAsB,EAAC,KAAK,EAAC;QAC3E,OAAO,EAAE,KAAK,IAAI,EAAE;YAClB,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,IAAI,EAAE,CAAA;YACrC,OAAO,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,CAAA;QACnD,CAAC;KACF;IACD;QACE,IAAI,EAAE,iBAAiB;QACvB,WAAW,EAAE,qCAAqC;QAClD,WAAW,EAAE,EAAC,MAAM,EAAC,QAAQ,EAAC,YAAY,EAAC,EAAC,MAAM,EAAC,EAAC,MAAM,EAAC,QAAQ,EAAC,aAAa,EAAC,gCAAgC,EAAC,EAAC,EAAC,UAAU,EAAC,CAAC,MAAM,CAAC,EAAC,sBAAsB,EAAC,KAAK,EAAC;QACtK,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE;YACtB,MAAM,SAAS,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,CAAA;YAC5C,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAA;QAC1B,CAAC;KACF;CACF,CAAA"}
@@ -0,0 +1,3 @@
1
+ import type { DeviceTool } from './types';
2
+ export declare const contactsTools: DeviceTool[];
3
+ //# sourceMappingURL=contacts.tools.d.ts.map