@jshookmcp/jshook 0.2.3 → 0.2.5

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 (385) hide show
  1. package/README.md +14 -5
  2. package/README.zh.md +18 -3
  3. package/dist/packages/extension-sdk/src/bridges/shared.js +2 -2
  4. package/dist/packages/extension-sdk/src/plugin.d.ts +5 -0
  5. package/dist/packages/extension-sdk/src/plugin.js +119 -33
  6. package/dist/packages/extension-sdk/src/workflow.d.ts +156 -0
  7. package/dist/packages/extension-sdk/src/workflow.js +236 -0
  8. package/dist/src/config/search-defaults.js +161 -0
  9. package/dist/src/constants.d.ts +3 -0
  10. package/dist/src/constants.js +4 -1
  11. package/dist/src/index.d.ts +1 -1
  12. package/dist/src/index.js +13 -17
  13. package/dist/src/modules/analyzer/CodeAnalyzer.d.ts +1 -3
  14. package/dist/src/modules/analyzer/CodeAnalyzer.js +16 -28
  15. package/dist/src/modules/analyzer/CodeAnalyzerDataFlow.d.ts +1 -2
  16. package/dist/src/modules/analyzer/CodeAnalyzerDataFlow.js +1 -45
  17. package/dist/src/modules/analyzer/IntelligentAnalyzer.d.ts +1 -37
  18. package/dist/src/modules/analyzer/IntelligentAnalyzer.js +9 -142
  19. package/dist/src/modules/analyzer/PatternDetector.js +3 -3
  20. package/dist/src/modules/analyzer/PatternDetectorAuthPatterns.js +1 -1
  21. package/dist/src/modules/browser/BrowserDiscovery.js +2 -2
  22. package/dist/src/modules/browser/BrowserModeManager.js +11 -10
  23. package/dist/src/modules/browser/TabRegistry.js +2 -2
  24. package/dist/src/modules/browser/UnifiedBrowserManager.d.ts +1 -0
  25. package/dist/src/modules/browser/UnifiedBrowserManager.js +18 -3
  26. package/dist/src/modules/captcha/AICaptchaDetector.d.ts +1 -10
  27. package/dist/src/modules/captcha/AICaptchaDetector.js +7 -201
  28. package/dist/src/modules/collector/CodeCollector.js +4 -5
  29. package/dist/src/modules/collector/DOMInspector.js +48 -58
  30. package/dist/src/modules/collector/PageController.d.ts +17 -4
  31. package/dist/src/modules/collector/PageController.js +2 -5
  32. package/dist/src/modules/collector/PageScriptCollectors.js +3 -3
  33. package/dist/src/modules/crypto/CryptoDetector.d.ts +1 -4
  34. package/dist/src/modules/crypto/CryptoDetector.js +2 -42
  35. package/dist/src/modules/crypto/CryptoRules.js +1 -1
  36. package/dist/src/modules/debugger/BlackboxManager.js +1 -1
  37. package/dist/src/modules/debugger/DebuggerManager.impl.core.scope.js +1 -1
  38. package/dist/src/modules/debugger/ScriptManager.impl.extract-function-tree.js +4 -2
  39. package/dist/src/modules/debugger/WatchExpressionManager.js +1 -1
  40. package/dist/src/modules/deobfuscator/Deobfuscator.d.ts +1 -4
  41. package/dist/src/modules/deobfuscator/Deobfuscator.js +4 -39
  42. package/dist/src/modules/deobfuscator/JSVMPDeobfuscator.d.ts +0 -3
  43. package/dist/src/modules/deobfuscator/JSVMPDeobfuscator.js +2 -8
  44. package/dist/src/modules/deobfuscator/JSVMPDeobfuscator.restore.d.ts +1 -2
  45. package/dist/src/modules/deobfuscator/JSVMPDeobfuscator.restore.js +3 -55
  46. package/dist/src/modules/deobfuscator/JScramblerDeobfuscator.js +3 -4
  47. package/dist/src/modules/deobfuscator/VMDeobfuscator.d.ts +2 -10
  48. package/dist/src/modules/deobfuscator/VMDeobfuscator.js +3 -128
  49. package/dist/src/modules/deobfuscator/webcrack.js +15 -2
  50. package/dist/src/modules/emulator/AIEnvironmentAnalyzer.d.ts +5 -8
  51. package/dist/src/modules/emulator/AIEnvironmentAnalyzer.js +10 -102
  52. package/dist/src/modules/emulator/EnvironmentEmulator.d.ts +1 -5
  53. package/dist/src/modules/emulator/EnvironmentEmulator.js +7 -91
  54. package/dist/src/modules/emulator/EnvironmentEmulatorFetch.js +58 -61
  55. package/dist/src/modules/emulator/templates/chrome-env.d.ts +17 -7
  56. package/dist/src/modules/emulator/templates/chrome-env.js +14 -7
  57. package/dist/src/modules/external/ExternalToolRunner.js +25 -22
  58. package/dist/src/modules/hook/HookGeneratorBuilders.core.generators.compose.js +5 -5
  59. package/dist/src/modules/hook/HookGeneratorBuilders.core.generators.network.js +311 -311
  60. package/dist/src/modules/hook/HookGeneratorBuilders.core.generators.runtime.js +410 -410
  61. package/dist/src/modules/hook/HookGeneratorBuilders.core.generators.storage.js +122 -122
  62. package/dist/src/modules/monitor/ConsoleMonitor.impl.core.class.d.ts +13 -0
  63. package/dist/src/modules/monitor/ConsoleMonitor.impl.core.class.js +42 -0
  64. package/dist/src/modules/monitor/ConsoleMonitor.impl.core.dynamic.js +194 -194
  65. package/dist/src/modules/monitor/FetchInterceptor.d.ts +46 -0
  66. package/dist/src/modules/monitor/FetchInterceptor.js +191 -0
  67. package/dist/src/modules/monitor/PerformanceMonitor.js +8 -7
  68. package/dist/src/modules/monitor/PlaywrightNetworkMonitor.js +62 -62
  69. package/dist/src/modules/process/BaseMemoryManager.d.ts +1 -1
  70. package/dist/src/modules/process/LinuxProcessManager.js +2 -0
  71. package/dist/src/modules/process/MacProcessManager.js +25 -25
  72. package/dist/src/modules/process/MemoryManager.d.ts +1 -1
  73. package/dist/src/modules/process/MemoryManager.js +2 -2
  74. package/dist/src/modules/process/memory/AuditTrail.js +1 -1
  75. package/dist/src/modules/process/memory/availability.js +49 -49
  76. package/dist/src/modules/process/memory/injector.js +185 -185
  77. package/dist/src/modules/process/memory/reader.js +85 -53
  78. package/dist/src/modules/process/memory/regions.dump.js +51 -51
  79. package/dist/src/modules/process/memory/regions.enumerate.js +108 -108
  80. package/dist/src/modules/process/memory/regions.modules.js +80 -80
  81. package/dist/src/modules/process/memory/regions.protection.js +148 -115
  82. package/dist/src/modules/process/memory/scanner.d.ts +5 -1
  83. package/dist/src/modules/process/memory/scanner.darwin.js +98 -41
  84. package/dist/src/modules/process/memory/scanner.js +88 -4
  85. package/dist/src/modules/process/memory/scanner.windows.js +124 -124
  86. package/dist/src/modules/process/memory/writer.js +98 -58
  87. package/dist/src/modules/security/ExecutionSandbox.js +51 -52
  88. package/dist/src/modules/stealth/FingerprintManager.js +1 -1
  89. package/dist/src/modules/stealth/StealthScripts.d.ts +1 -0
  90. package/dist/src/modules/stealth/StealthScripts.js +18 -13
  91. package/dist/src/modules/stealth/StealthVerifier.js +1 -3
  92. package/dist/src/modules/symbolic/JSVMPSymbolicExecutor.d.ts +14 -0
  93. package/dist/src/modules/symbolic/JSVMPSymbolicExecutor.js +181 -2
  94. package/dist/src/modules/trace/TraceDB.js +75 -69
  95. package/dist/src/modules/trace/TraceRecorder.js +1 -5
  96. package/dist/src/native/AntiCheatDetector.js +67 -16
  97. package/dist/src/native/CodeInjector.js +3 -3
  98. package/dist/src/native/HardwareBreakpoint.js +24 -15
  99. package/dist/src/native/HeapAnalyzer.js +2 -2
  100. package/dist/src/native/MemoryController.js +1 -1
  101. package/dist/src/native/MemoryScanSession.js +2 -2
  102. package/dist/src/native/MemoryScanner.js +4 -8
  103. package/dist/src/native/NativeMemoryManager.impl.js +2 -2
  104. package/dist/src/native/PEAnalyzer.js +14 -15
  105. package/dist/src/native/PointerChainEngine.js +2 -4
  106. package/dist/src/native/ScriptLoader.js +4 -9
  107. package/dist/src/native/Speedhack.js +1 -1
  108. package/dist/src/native/StructureAnalyzer.js +52 -33
  109. package/dist/src/native/Win32API.d.ts +1 -0
  110. package/dist/src/native/Win32API.js +13 -0
  111. package/dist/src/native/Win32Debug.js +19 -19
  112. package/dist/src/native/platform/darwin/DarwinAPI.d.ts +2 -0
  113. package/dist/src/native/platform/darwin/DarwinAPI.js +8 -0
  114. package/dist/src/native/platform/darwin/DarwinMemoryProvider.js +6 -1
  115. package/dist/src/server/MCPServer.context.d.ts +2 -1
  116. package/dist/src/server/MCPServer.d.ts +2 -1
  117. package/dist/src/server/MCPServer.domain.d.ts +1 -1
  118. package/dist/src/server/MCPServer.domain.js +81 -16
  119. package/dist/src/server/MCPServer.js +41 -14
  120. package/dist/src/server/MCPServer.resources.d.ts +2 -0
  121. package/dist/src/server/MCPServer.resources.js +91 -0
  122. package/dist/src/server/MCPServer.search.handlers.call.js +2 -1
  123. package/dist/src/server/MCPServer.search.helpers.js +1 -1
  124. package/dist/src/server/MCPServer.transport.js +12 -0
  125. package/dist/src/server/ToolCallContextGuard.js +8 -0
  126. package/dist/src/server/ToolRouter.d.ts +25 -9
  127. package/dist/src/server/ToolRouter.intent.d.ts +26 -0
  128. package/dist/src/server/ToolRouter.intent.js +77 -0
  129. package/dist/src/server/ToolRouter.js +103 -284
  130. package/dist/src/server/ToolRouter.policy.d.ts +22 -0
  131. package/dist/src/server/ToolRouter.policy.js +163 -0
  132. package/dist/src/server/ToolRouter.probe.d.ts +17 -0
  133. package/dist/src/server/ToolRouter.probe.js +103 -0
  134. package/dist/src/server/ToolRouter.renderer.d.ts +9 -0
  135. package/dist/src/server/ToolRouter.renderer.js +52 -0
  136. package/dist/src/server/activation/ActivationController.js +15 -12
  137. package/dist/src/server/activation/CompoundConditionEngine.js +1 -1
  138. package/dist/src/server/activation/PredictiveBooster.js +1 -3
  139. package/dist/src/server/domains/analysis/definitions.js +155 -655
  140. package/dist/src/server/domains/analysis/handlers.impl.js +26 -20
  141. package/dist/src/server/domains/analysis/handlers.web-tools.js +2 -1
  142. package/dist/src/server/domains/analysis/manifest.js +6 -4
  143. package/dist/src/server/domains/antidebug/definitions.js +25 -111
  144. package/dist/src/server/domains/browser/definitions.tools.advanced.js +59 -88
  145. package/dist/src/server/domains/browser/definitions.tools.behavior.js +120 -227
  146. package/dist/src/server/domains/browser/definitions.tools.page-core.js +210 -439
  147. package/dist/src/server/domains/browser/definitions.tools.page-system.js +108 -250
  148. package/dist/src/server/domains/browser/definitions.tools.runtime.js +98 -211
  149. package/dist/src/server/domains/browser/definitions.tools.security.js +194 -339
  150. package/dist/src/server/domains/browser/handlers/camoufox-browser.js +3 -2
  151. package/dist/src/server/domains/browser/handlers/captcha-solver.js +3 -3
  152. package/dist/src/server/domains/browser/handlers/dom-query.js +2 -1
  153. package/dist/src/server/domains/browser/handlers/framework-state.js +27 -9
  154. package/dist/src/server/domains/browser/handlers/indexeddb-dump.js +21 -20
  155. package/dist/src/server/domains/browser/handlers/script-management.js +1 -1
  156. package/dist/src/server/domains/browser/handlers.impl.d.ts +1 -2
  157. package/dist/src/server/domains/browser/handlers.impl.js +2 -3
  158. package/dist/src/server/domains/browser/manifest.js +37 -13
  159. package/dist/src/server/domains/coordination/definitions.js +50 -216
  160. package/dist/src/server/domains/coordination/index.d.ts +2 -1
  161. package/dist/src/server/domains/coordination/index.js +1 -0
  162. package/dist/src/server/domains/debugger/definitions.tools.advanced.js +72 -189
  163. package/dist/src/server/domains/debugger/definitions.tools.core.js +114 -288
  164. package/dist/src/server/domains/debugger/manifest.js +9 -2
  165. package/dist/src/server/domains/encoding/definitions.js +43 -153
  166. package/dist/src/server/domains/encoding/handlers.base.js +2 -2
  167. package/dist/src/server/domains/evidence/definitions.d.ts +2 -0
  168. package/dist/src/server/domains/evidence/definitions.js +42 -0
  169. package/dist/src/server/domains/evidence/handlers.d.ts +582 -0
  170. package/dist/src/server/domains/evidence/handlers.js +60 -0
  171. package/dist/src/server/domains/evidence/index.d.ts +2 -0
  172. package/dist/src/server/domains/evidence/index.js +2 -0
  173. package/dist/src/server/domains/evidence/manifest.d.ts +63 -0
  174. package/dist/src/server/domains/evidence/manifest.js +78 -0
  175. package/dist/src/server/domains/graphql/definitions.js +53 -141
  176. package/dist/src/server/domains/graphql/handlers.impl.core.runtime.replay.js +92 -114
  177. package/dist/src/server/domains/graphql/handlers.impl.core.runtime.shared.js +77 -77
  178. package/dist/src/server/domains/hooks/ai-handlers.d.ts +0 -7
  179. package/dist/src/server/domains/hooks/ai-handlers.js +1 -67
  180. package/dist/src/server/domains/hooks/definitions.js +69 -335
  181. package/dist/src/server/domains/hooks/manifest.d.ts +1 -1
  182. package/dist/src/server/domains/hooks/manifest.js +1 -2
  183. package/dist/src/server/domains/instrumentation/definitions.d.ts +2 -0
  184. package/dist/src/server/domains/instrumentation/definitions.js +99 -0
  185. package/dist/src/server/domains/instrumentation/handlers.d.ts +78 -0
  186. package/dist/src/server/domains/instrumentation/handlers.js +206 -0
  187. package/dist/src/server/domains/instrumentation/index.d.ts +2 -0
  188. package/dist/src/server/domains/instrumentation/index.js +2 -0
  189. package/dist/src/server/domains/instrumentation/manifest.d.ts +63 -0
  190. package/dist/src/server/domains/instrumentation/manifest.js +114 -0
  191. package/dist/src/server/domains/macro/definitions.js +16 -43
  192. package/dist/src/server/domains/maintenance/definitions.js +60 -219
  193. package/dist/src/server/domains/maintenance/handlers.extensions.js +78 -20
  194. package/dist/src/server/domains/memory/definitions.js +387 -559
  195. package/dist/src/server/domains/memory/handlers/hooks.d.ts +55 -0
  196. package/dist/src/server/domains/memory/handlers/hooks.js +115 -0
  197. package/dist/src/server/domains/memory/handlers/integrity.d.ts +77 -0
  198. package/dist/src/server/domains/memory/handlers/integrity.js +180 -0
  199. package/dist/src/server/domains/memory/handlers/pointer-chain.d.ts +29 -0
  200. package/dist/src/server/domains/memory/handlers/pointer-chain.js +82 -0
  201. package/dist/src/server/domains/memory/handlers/readwrite.d.ts +41 -0
  202. package/dist/src/server/domains/memory/handlers/readwrite.js +78 -0
  203. package/dist/src/server/domains/memory/handlers/scan.d.ts +35 -0
  204. package/dist/src/server/domains/memory/handlers/scan.js +97 -0
  205. package/dist/src/server/domains/memory/handlers/session.d.ts +23 -0
  206. package/dist/src/server/domains/memory/handlers/session.js +49 -0
  207. package/dist/src/server/domains/memory/handlers/structure.d.ts +29 -0
  208. package/dist/src/server/domains/memory/handlers/structure.js +74 -0
  209. package/dist/src/server/domains/memory/handlers.impl.d.ts +49 -54
  210. package/dist/src/server/domains/memory/handlers.impl.js +63 -494
  211. package/dist/src/server/domains/memory/manifest.js +236 -64
  212. package/dist/src/server/domains/native-bridge/definitions.js +54 -192
  213. package/dist/src/server/domains/native-bridge/index.d.ts +1 -0
  214. package/dist/src/server/domains/native-bridge/index.js +2 -1
  215. package/dist/src/server/domains/network/auth-extractor.js +1 -1
  216. package/dist/src/server/domains/network/definitions.js +175 -578
  217. package/dist/src/server/domains/network/handlers.base.core.d.ts +64 -0
  218. package/dist/src/server/domains/network/handlers.base.core.js +623 -0
  219. package/dist/src/server/domains/network/handlers.base.d.ts +2 -124
  220. package/dist/src/server/domains/network/handlers.base.js +3 -878
  221. package/dist/src/server/domains/network/handlers.base.performance.d.ts +63 -0
  222. package/dist/src/server/domains/network/handlers.base.performance.js +193 -0
  223. package/dist/src/server/domains/network/handlers.base.types.d.ts +42 -0
  224. package/dist/src/server/domains/network/handlers.base.types.js +89 -0
  225. package/dist/src/server/domains/network/handlers.impl.core.runtime.d.ts +1 -1
  226. package/dist/src/server/domains/network/handlers.impl.core.runtime.intercept.d.ts +21 -0
  227. package/dist/src/server/domains/network/handlers.impl.core.runtime.intercept.js +186 -0
  228. package/dist/src/server/domains/network/handlers.impl.core.runtime.js +1 -1
  229. package/dist/src/server/domains/network/manifest.js +15 -0
  230. package/dist/src/server/domains/network/replay.js +1 -4
  231. package/dist/src/server/domains/platform/definitions.js +121 -112
  232. package/dist/src/server/domains/platform/handlers/bridge-handlers.d.ts +4 -0
  233. package/dist/src/server/domains/platform/handlers/bridge-handlers.js +193 -4
  234. package/dist/src/server/domains/platform/handlers/electron-asar-helpers.js +26 -6
  235. package/dist/src/server/domains/platform/handlers/electron-dual-cdp.d.ts +3 -0
  236. package/dist/src/server/domains/platform/handlers/electron-dual-cdp.js +170 -0
  237. package/dist/src/server/domains/platform/handlers/electron-fuse-handler.d.ts +3 -0
  238. package/dist/src/server/domains/platform/handlers/electron-fuse-handler.js +193 -0
  239. package/dist/src/server/domains/platform/handlers/electron-handlers.d.ts +6 -0
  240. package/dist/src/server/domains/platform/handlers/electron-handlers.js +95 -2
  241. package/dist/src/server/domains/platform/handlers/electron-ipc-sniffer.d.ts +2 -0
  242. package/dist/src/server/domains/platform/handlers/electron-ipc-sniffer.js +370 -0
  243. package/dist/src/server/domains/platform/handlers/electron-userdata-handler.d.ts +2 -0
  244. package/dist/src/server/domains/platform/handlers/electron-userdata-handler.js +78 -0
  245. package/dist/src/server/domains/platform/handlers/miniapp-handlers.js +3 -3
  246. package/dist/src/server/domains/platform/handlers/v8-bytecode-handler.d.ts +2 -0
  247. package/dist/src/server/domains/platform/handlers/v8-bytecode-handler.js +207 -0
  248. package/dist/src/server/domains/platform/handlers.d.ts +48 -0
  249. package/dist/src/server/domains/platform/handlers.js +29 -0
  250. package/dist/src/server/domains/platform/manifest.js +38 -0
  251. package/dist/src/server/domains/process/definitions.js +163 -647
  252. package/dist/src/server/domains/process/handlers.base.d.ts +3 -95
  253. package/dist/src/server/domains/process/handlers.base.js +7 -462
  254. package/dist/src/server/domains/process/handlers.base.process.d.ts +61 -0
  255. package/dist/src/server/domains/process/handlers.base.process.js +417 -0
  256. package/dist/src/server/domains/process/handlers.base.types.d.ts +57 -0
  257. package/dist/src/server/domains/process/handlers.base.types.js +50 -0
  258. package/dist/src/server/domains/process/handlers.impl.core.runtime.inject.js +18 -16
  259. package/dist/src/server/domains/process/manifest.js +6 -1
  260. package/dist/src/server/domains/sandbox/definitions.js +11 -33
  261. package/dist/src/server/domains/sandbox/handlers.js +8 -3
  262. package/dist/src/server/domains/shared/ResponseBuilder.d.ts +209 -0
  263. package/dist/src/server/domains/shared/ResponseBuilder.js +48 -0
  264. package/dist/src/server/domains/shared/modules.d.ts +0 -2
  265. package/dist/src/server/domains/shared/modules.js +0 -1
  266. package/dist/src/server/domains/sourcemap/definitions.js +27 -111
  267. package/dist/src/server/domains/sourcemap/handlers.impl.sourcemap-common.js +7 -2
  268. package/dist/src/server/domains/sourcemap/handlers.impl.sourcemap-main.js +1 -1
  269. package/dist/src/server/domains/sourcemap/handlers.impl.sourcemap-parse-base.js +1 -1
  270. package/dist/src/server/domains/sourcemap/manifest.d.ts +1 -1
  271. package/dist/src/server/domains/sourcemap/manifest.js +1 -1
  272. package/dist/src/server/domains/streaming/definitions.js +36 -148
  273. package/dist/src/server/domains/streaming/handlers.impl.streaming-sse.js +163 -164
  274. package/dist/src/server/domains/streaming/handlers.impl.streaming-ws.js +1 -1
  275. package/dist/src/server/domains/trace/TraceSummarizer.js +8 -5
  276. package/dist/src/server/domains/trace/definitions.tools.js +51 -206
  277. package/dist/src/server/domains/trace/handlers.js +10 -12
  278. package/dist/src/server/domains/trace/index.d.ts +2 -1
  279. package/dist/src/server/domains/trace/index.js +2 -1
  280. package/dist/src/server/domains/trace/manifest.js +15 -3
  281. package/dist/src/server/domains/transform/definitions.js +50 -210
  282. package/dist/src/server/domains/transform/handlers.impl.transform-base.js +108 -108
  283. package/dist/src/server/domains/transform/handlers.impl.transform-crypto.js +18 -19
  284. package/dist/src/server/domains/transform/manifest.d.ts +1 -1
  285. package/dist/src/server/domains/transform/manifest.js +1 -1
  286. package/dist/src/server/domains/wasm/definitions.js +55 -232
  287. package/dist/src/server/domains/wasm/handlers.js +1 -1
  288. package/dist/src/server/domains/workflow/definitions.js +144 -414
  289. package/dist/src/server/domains/workflow/handlers.impl.workflow-account-bundle.js +1 -1
  290. package/dist/src/server/domains/workflow/handlers.impl.workflow-api.js +51 -51
  291. package/dist/src/server/domains/workflow/handlers.impl.workflow-base.d.ts +2 -0
  292. package/dist/src/server/domains/workflow/handlers.impl.workflow-base.js +126 -87
  293. package/dist/src/server/domains/workflow/handlers.impl.workflow-batch.js +5 -5
  294. package/dist/src/server/evidence/ReverseEvidenceGraph.d.ts +20 -0
  295. package/dist/src/server/evidence/ReverseEvidenceGraph.js +208 -0
  296. package/dist/src/server/evidence/index.d.ts +2 -0
  297. package/dist/src/server/evidence/index.js +1 -0
  298. package/dist/src/server/evidence/types.d.ts +22 -0
  299. package/dist/src/server/evidence/types.js +1 -0
  300. package/dist/src/server/extensions/ExtensionManager.d.ts +1 -0
  301. package/dist/src/server/extensions/ExtensionManager.discovery.js +72 -9
  302. package/dist/src/server/extensions/ExtensionManager.integrity.js +1 -1
  303. package/dist/src/server/extensions/ExtensionManager.js +193 -40
  304. package/dist/src/server/extensions/ExtensionManager.roots.d.ts +1 -1
  305. package/dist/src/server/extensions/ExtensionManager.roots.js +4 -4
  306. package/dist/src/server/extensions/plugin-config.js +1 -1
  307. package/dist/src/server/extensions/plugin-env.d.ts +1 -1
  308. package/dist/src/server/extensions/plugin-env.js +10 -4
  309. package/dist/src/server/extensions/types.d.ts +17 -0
  310. package/dist/src/server/extensions/types.js +1 -1
  311. package/dist/src/server/instrumentation/EvidenceGraphBridge.d.ts +13 -0
  312. package/dist/src/server/instrumentation/EvidenceGraphBridge.js +150 -0
  313. package/dist/src/server/instrumentation/InstrumentationSession.d.ts +60 -0
  314. package/dist/src/server/instrumentation/InstrumentationSession.js +269 -0
  315. package/dist/src/server/instrumentation/index.d.ts +2 -0
  316. package/dist/src/server/instrumentation/index.js +2 -0
  317. package/dist/src/server/instrumentation/types.d.ts +62 -0
  318. package/dist/src/server/instrumentation/types.js +7 -0
  319. package/dist/src/server/macros/MacroConfigLoader.d.ts +6 -5
  320. package/dist/src/server/macros/MacroConfigLoader.js +61 -59
  321. package/dist/src/server/macros/MacroRunner.js +6 -2
  322. package/dist/src/server/macros/builtins/index.d.ts +2 -3
  323. package/dist/src/server/macros/builtins/index.js +51 -7
  324. package/dist/src/server/plugins/PluginContract.d.ts +1 -1
  325. package/dist/src/server/registry/contracts.d.ts +1 -1
  326. package/dist/src/server/registry/discovery.js +5 -4
  327. package/dist/src/server/registry/ensure-browser-core.js +0 -3
  328. package/dist/src/server/registry/index.js +4 -4
  329. package/dist/src/server/registry/tool-builder.d.ts +46 -0
  330. package/dist/src/server/registry/tool-builder.js +105 -0
  331. package/dist/src/server/sandbox/QuickJSSandbox.js +16 -5
  332. package/dist/src/server/sandbox/SandboxHelpers.js +250 -250
  333. package/dist/src/server/search/EmbeddingWorker.js +5 -3
  334. package/dist/src/server/search/FeedbackTracker.d.ts +9 -0
  335. package/dist/src/server/search/FeedbackTracker.js +26 -0
  336. package/dist/src/server/search/QueryNormalizer.d.ts +6 -0
  337. package/dist/src/server/search/QueryNormalizer.js +94 -0
  338. package/dist/src/server/search/ToolSearchEngineImpl.d.ts +2 -3
  339. package/dist/src/server/search/ToolSearchEngineImpl.js +38 -88
  340. package/dist/src/server/workflows/WorkflowContract.d.ts +24 -0
  341. package/dist/src/server/workflows/WorkflowContract.js +12 -0
  342. package/dist/src/server/workflows/WorkflowEngine.d.ts +1 -0
  343. package/dist/src/server/workflows/WorkflowEngine.js +136 -3
  344. package/dist/src/types/config.d.ts +0 -14
  345. package/dist/src/types/deobfuscator.d.ts +0 -1
  346. package/dist/src/types/index.d.ts +1 -1
  347. package/dist/src/utils/DetailedDataManager.js +2 -0
  348. package/dist/src/utils/RingBuffer.js +5 -5
  349. package/dist/src/utils/TokenBudgetManager.js +1 -1
  350. package/dist/src/utils/UnifiedCacheManager.js +1 -1
  351. package/dist/src/utils/artifactRetention.js +2 -2
  352. package/dist/src/utils/betterSqlite3.d.ts +11 -0
  353. package/dist/src/utils/betterSqlite3.js +88 -0
  354. package/dist/src/utils/browserExecutable.js +2 -2
  355. package/dist/src/utils/cliFastPath.js +5 -8
  356. package/dist/src/utils/config.js +4 -26
  357. package/dist/src/utils/environmentDoctor.js +138 -11
  358. package/dist/src/utils/outputPaths.js +16 -9
  359. package/dist/src/utils/parallel.js +1 -3
  360. package/package.json +74 -72
  361. package/workflows/.gitkeep +0 -0
  362. package/dist/src/modules/analyzer/AISummarizer.d.ts +0 -39
  363. package/dist/src/modules/analyzer/AISummarizer.js +0 -122
  364. package/dist/src/modules/hook/AIHookGenerator.d.ts +0 -52
  365. package/dist/src/modules/hook/AIHookGenerator.js +0 -360
  366. package/dist/src/modules/hook/AIHookGeneratorTemplates.d.ts +0 -9
  367. package/dist/src/modules/hook/AIHookGeneratorTemplates.js +0 -157
  368. package/dist/src/server/macros/builtins/deobfuscate-ast-flow.d.ts +0 -2
  369. package/dist/src/server/macros/builtins/deobfuscate-ast-flow.js +0 -25
  370. package/dist/src/server/macros/builtins/unpacker-flow.d.ts +0 -2
  371. package/dist/src/server/macros/builtins/unpacker-flow.js +0 -25
  372. package/dist/src/services/LLMService.d.ts +0 -37
  373. package/dist/src/services/LLMService.js +0 -233
  374. package/dist/src/services/prompts/analysis.d.ts +0 -9
  375. package/dist/src/services/prompts/analysis.js +0 -158
  376. package/dist/src/services/prompts/crypto.d.ts +0 -2
  377. package/dist/src/services/prompts/crypto.js +0 -108
  378. package/dist/src/services/prompts/deobfuscation.d.ts +0 -6
  379. package/dist/src/services/prompts/deobfuscation.js +0 -300
  380. package/dist/src/services/prompts/environment.d.ts +0 -16
  381. package/dist/src/services/prompts/environment.js +0 -372
  382. package/dist/src/services/prompts/intelligence.d.ts +0 -4
  383. package/dist/src/services/prompts/intelligence.js +0 -250
  384. package/dist/src/services/prompts/taint.d.ts +0 -2
  385. package/dist/src/services/prompts/taint.js +0 -54
@@ -1,207 +1,79 @@
1
+ import { tool } from '../../registry/tool-builder.js';
1
2
  export const DEBUGGER_CORE_TOOLS = [
2
- {
3
- name: 'debugger_enable',
4
- description: 'Enable the debugger (must be called before setting breakpoints)',
5
- inputSchema: {
6
- type: 'object',
7
- properties: {},
8
- },
9
- },
10
- {
11
- name: 'debugger_disable',
12
- description: 'Disable the debugger and clear all breakpoints',
13
- inputSchema: {
14
- type: 'object',
15
- properties: {},
16
- },
17
- },
18
- {
19
- name: 'debugger_pause',
20
- description: 'Pause execution at the next statement',
21
- inputSchema: {
22
- type: 'object',
23
- properties: {},
24
- },
25
- },
26
- {
27
- name: 'debugger_resume',
28
- description: 'Resume execution (continue)',
29
- inputSchema: {
30
- type: 'object',
31
- properties: {},
32
- },
33
- },
34
- {
35
- name: 'debugger_step_into',
36
- description: 'Step into the next function call',
37
- inputSchema: {
38
- type: 'object',
39
- properties: {},
40
- },
41
- },
42
- {
43
- name: 'debugger_step_over',
44
- description: 'Step over the next function call',
45
- inputSchema: {
46
- type: 'object',
47
- properties: {},
48
- },
49
- },
50
- {
51
- name: 'debugger_step_out',
52
- description: 'Step out of the current function',
53
- inputSchema: {
54
- type: 'object',
55
- properties: {},
56
- },
57
- },
58
- {
59
- name: 'breakpoint_set',
60
- description: 'Set a breakpoint at a specific location. Supports URL-based and scriptId-based breakpoints with optional conditions.',
61
- inputSchema: {
62
- type: 'object',
63
- properties: {
64
- url: {
65
- type: 'string',
66
- description: 'URL of the script (e.g., "app.js", "https://cdn.example.com/app.js")',
67
- },
68
- scriptId: {
69
- type: 'string',
70
- description: 'Script ID (alternative to URL, get from get_all_scripts)',
71
- },
72
- lineNumber: {
73
- type: 'number',
74
- description: 'Line number (0-based)',
75
- },
76
- columnNumber: {
77
- type: 'number',
78
- description: 'Column number (0-based, optional)',
79
- },
80
- condition: {
81
- type: 'string',
82
- description: 'Conditional breakpoint expression (e.g., "x > 100")',
83
- },
84
- },
85
- required: ['lineNumber'],
86
- },
87
- },
88
- {
89
- name: 'breakpoint_remove',
90
- description: 'Remove a breakpoint by its ID',
91
- inputSchema: {
92
- type: 'object',
93
- properties: {
94
- breakpointId: {
95
- type: 'string',
96
- description: 'Breakpoint ID (from breakpoint_set or breakpoint_list)',
97
- },
98
- },
99
- required: ['breakpointId'],
100
- },
101
- },
102
- {
103
- name: 'breakpoint_list',
104
- description: 'List all active breakpoints',
105
- inputSchema: {
106
- type: 'object',
107
- properties: {},
108
- },
109
- },
110
- {
111
- name: 'get_call_stack',
112
- description: 'Get the current call stack (only available when paused at a breakpoint)',
113
- inputSchema: {
114
- type: 'object',
115
- properties: {},
116
- },
117
- },
118
- {
119
- name: 'debugger_evaluate',
120
- description: 'Evaluate an expression in the context of the current call frame (only when paused)',
121
- inputSchema: {
122
- type: 'object',
123
- properties: {
124
- expression: {
125
- type: 'string',
126
- description: 'JavaScript expression to evaluate (e.g., "x + y", "user.name")',
127
- },
128
- callFrameId: {
129
- type: 'string',
130
- description: 'Call frame ID (from get_call_stack, defaults to current frame)',
131
- },
132
- },
133
- required: ['expression'],
134
- },
135
- },
136
- {
137
- name: 'debugger_evaluate_global',
138
- description: 'Evaluate an expression in the global context (does not require paused state)',
139
- inputSchema: {
140
- type: 'object',
141
- properties: {
142
- expression: {
143
- type: 'string',
144
- description: 'JavaScript expression to evaluate',
145
- },
146
- },
147
- required: ['expression'],
148
- },
149
- },
150
- {
151
- name: 'debugger_wait_for_paused',
152
- description: 'Wait for the debugger to pause (useful after setting breakpoints and triggering code)',
153
- inputSchema: {
154
- type: 'object',
155
- properties: {
156
- timeout: {
157
- type: 'number',
158
- description: 'Timeout in milliseconds (default: 30000)',
159
- default: 30000,
160
- },
161
- },
162
- },
163
- },
164
- {
165
- name: 'debugger_get_paused_state',
166
- description: 'Get the current paused state (check if debugger is paused and why)',
167
- inputSchema: {
168
- type: 'object',
169
- properties: {},
170
- },
171
- },
172
- {
173
- name: 'breakpoint_set_on_exception',
174
- description: 'Pause on exceptions (all exceptions or only uncaught)',
175
- inputSchema: {
176
- type: 'object',
177
- properties: {
178
- state: {
179
- type: 'string',
180
- description: 'Exception pause state',
181
- enum: ['none', 'uncaught', 'all'],
182
- default: 'none',
183
- },
184
- },
185
- required: ['state'],
186
- },
187
- },
188
- {
189
- name: 'get_object_properties',
190
- description: 'Get all properties of an object (when paused, use objectId from variables)',
191
- inputSchema: {
192
- type: 'object',
193
- properties: {
194
- objectId: {
195
- type: 'string',
196
- description: 'Object ID (from get_scope_variables)',
197
- },
198
- },
199
- required: ['objectId'],
200
- },
201
- },
202
- {
203
- name: 'get_scope_variables_enhanced',
204
- description: `Enhanced scope variable inspection with deep object traversal.
3
+ tool('debugger_enable')
4
+ .desc('Enable the debugger (must be called before setting breakpoints)')
5
+ .idempotent()
6
+ .build(),
7
+ tool('debugger_disable')
8
+ .desc('Disable the debugger and clear all breakpoints')
9
+ .destructive()
10
+ .build(),
11
+ tool('debugger_pause').desc('Pause execution at the next statement').build(),
12
+ tool('debugger_resume').desc('Resume execution (continue)').build(),
13
+ tool('debugger_step_into').desc('Step into the next function call').build(),
14
+ tool('debugger_step_over').desc('Step over the next function call').build(),
15
+ tool('debugger_step_out').desc('Step out of the current function').build(),
16
+ tool('breakpoint_set')
17
+ .desc('Set a breakpoint at a specific location. Supports URL-based and scriptId-based breakpoints with optional conditions.')
18
+ .string('url', 'URL of the script (e.g., "app.js", "https://cdn.example.com/app.js")')
19
+ .string('scriptId', 'Script ID (alternative to URL, get from get_all_scripts)')
20
+ .number('lineNumber', 'Line number (0-based)')
21
+ .number('columnNumber', 'Column number (0-based, optional)')
22
+ .string('condition', 'Conditional breakpoint expression (e.g., "x > 100")')
23
+ .required('lineNumber')
24
+ .idempotent()
25
+ .build(),
26
+ tool('breakpoint_remove')
27
+ .desc('Remove a breakpoint by its ID')
28
+ .string('breakpointId', 'Breakpoint ID (from breakpoint_set or breakpoint_list)')
29
+ .required('breakpointId')
30
+ .idempotent()
31
+ .build(),
32
+ tool('breakpoint_list').desc('List all active breakpoints').readOnly().idempotent().build(),
33
+ tool('get_call_stack')
34
+ .desc('Get the current call stack (only available when paused at a breakpoint)')
35
+ .readOnly()
36
+ .idempotent()
37
+ .build(),
38
+ tool('debugger_evaluate')
39
+ .desc('Evaluate an expression in the context of the current call frame (only when paused)')
40
+ .string('expression', 'JavaScript expression to evaluate (e.g., "x + y", "user.name")')
41
+ .string('callFrameId', 'Call frame ID (from get_call_stack, defaults to current frame)')
42
+ .required('expression')
43
+ .openWorld()
44
+ .build(),
45
+ tool('debugger_evaluate_global')
46
+ .desc('Evaluate an expression in the global context (does not require paused state)')
47
+ .string('expression', 'JavaScript expression to evaluate')
48
+ .required('expression')
49
+ .openWorld()
50
+ .build(),
51
+ tool('debugger_wait_for_paused')
52
+ .desc('Wait for the debugger to pause (useful after setting breakpoints and triggering code)')
53
+ .number('timeout', 'Timeout in milliseconds (default: 30000)', { default: 30000 })
54
+ .readOnly()
55
+ .idempotent()
56
+ .build(),
57
+ tool('debugger_get_paused_state')
58
+ .desc('Get the current paused state (check if debugger is paused and why)')
59
+ .readOnly()
60
+ .idempotent()
61
+ .build(),
62
+ tool('breakpoint_set_on_exception')
63
+ .desc('Pause on exceptions (all exceptions or only uncaught)')
64
+ .enum('state', ['none', 'uncaught', 'all'], 'Exception pause state', { default: 'none' })
65
+ .required('state')
66
+ .idempotent()
67
+ .build(),
68
+ tool('get_object_properties')
69
+ .desc('Get all properties of an object (when paused, use objectId from variables)')
70
+ .string('objectId', 'Object ID (from get_scope_variables)')
71
+ .required('objectId')
72
+ .readOnly()
73
+ .idempotent()
74
+ .build(),
75
+ tool('get_scope_variables_enhanced')
76
+ .desc(`Enhanced scope variable inspection with deep object traversal.
205
77
 
206
78
  Improvements over get_scope_variables:
207
79
  1. Graceful error handling for "Could not find object" errors (retries with fallback)
@@ -216,35 +88,20 @@ Use cases:
216
88
 
217
89
  Examples:
218
90
  get_scope_variables_enhanced()
219
- get_scope_variables_enhanced(callFrameId="xxx", includeObjectProperties=true)`,
220
- inputSchema: {
221
- type: 'object',
222
- properties: {
223
- callFrameId: {
224
- type: 'string',
225
- description: 'Call frame ID (from get_call_stack, defaults to current frame)',
226
- },
227
- includeObjectProperties: {
228
- type: 'boolean',
229
- description: 'Expand object properties recursively (default: false)',
230
- default: false,
231
- },
232
- maxDepth: {
233
- type: 'number',
234
- description: 'Maximum traversal depth for nested objects (default: 1)',
235
- default: 1,
236
- },
237
- skipErrors: {
238
- type: 'boolean',
239
- description: 'Skip properties that throw errors during access (default: true)',
240
- default: true,
241
- },
242
- },
243
- },
244
- },
245
- {
246
- name: 'debugger_save_session',
247
- description: `Save the current debugging session to a JSON file for later restoration.
91
+ get_scope_variables_enhanced(callFrameId="xxx", includeObjectProperties=true)`)
92
+ .string('callFrameId', 'Call frame ID (from get_call_stack, defaults to current frame)')
93
+ .boolean('includeObjectProperties', 'Expand object properties recursively (default: false)', {
94
+ default: false,
95
+ })
96
+ .number('maxDepth', 'Maximum traversal depth for nested objects (default: 1)', { default: 1 })
97
+ .boolean('skipErrors', 'Skip properties that throw errors during access (default: true)', {
98
+ default: true,
99
+ })
100
+ .readOnly()
101
+ .idempotent()
102
+ .build(),
103
+ tool('debugger_save_session')
104
+ .desc(`Save the current debugging session to a JSON file for later restoration.
248
105
 
249
106
  Captures:
250
107
  - All active breakpoints (location, condition, action)
@@ -257,24 +114,13 @@ Saved to:
257
114
 
258
115
  Examples:
259
116
  debugger_save_session()
260
- debugger_save_session(filePath="my-debug-session.json", metadata={description: "Login flow debugging"})`,
261
- inputSchema: {
262
- type: 'object',
263
- properties: {
264
- filePath: {
265
- type: 'string',
266
- description: 'Output file path (defaults to ./debugger-sessions/<timestamp>.json)',
267
- },
268
- metadata: {
269
- type: 'object',
270
- description: 'Optional metadata to attach (e.g., description, tags)',
271
- },
272
- },
273
- },
274
- },
275
- {
276
- name: 'debugger_load_session',
277
- description: `Load a previously saved debugging session to restore breakpoints and watches.
117
+ debugger_save_session(filePath="my-debug-session.json", metadata={description: "Login flow debugging"})`)
118
+ .string('filePath', 'Output file path (defaults to ./debugger-sessions/<timestamp>.json)')
119
+ .object('metadata', {}, 'Optional metadata to attach (e.g., description, tags)')
120
+ .idempotent()
121
+ .build(),
122
+ tool('debugger_load_session')
123
+ .desc(`Load a previously saved debugging session to restore breakpoints and watches.
278
124
 
279
125
  Two input modes:
280
126
  1. File path: provide filePath to load from disk
@@ -287,24 +133,13 @@ Restores:
287
133
 
288
134
  Examples:
289
135
  debugger_load_session(filePath="my-debug-session.json")
290
- debugger_load_session(sessionData="{...}")`,
291
- inputSchema: {
292
- type: 'object',
293
- properties: {
294
- filePath: {
295
- type: 'string',
296
- description: 'Path to the saved session file',
297
- },
298
- sessionData: {
299
- type: 'string',
300
- description: 'Session JSON string (alternative to filePath)',
301
- },
302
- },
303
- },
304
- },
305
- {
306
- name: 'debugger_export_session',
307
- description: `Export the current debugging session as a JSON string for sharing or backup.
136
+ debugger_load_session(sessionData="{...}")`)
137
+ .string('filePath', 'Path to the saved session file')
138
+ .string('sessionData', 'Session JSON string (alternative to filePath)')
139
+ .idempotent()
140
+ .build(),
141
+ tool('debugger_export_session')
142
+ .desc(`Export the current debugging session as a JSON string for sharing or backup.
308
143
 
309
144
  Returns session data as JSON, including:
310
145
  - Active breakpoints
@@ -313,20 +148,13 @@ Returns session data as JSON, including:
313
148
 
314
149
  Examples:
315
150
  debugger_export_session()
316
- debugger_export_session(metadata={description: "API debugging session"})`,
317
- inputSchema: {
318
- type: 'object',
319
- properties: {
320
- metadata: {
321
- type: 'object',
322
- description: 'Optional metadata to include in the export',
323
- },
324
- },
325
- },
326
- },
327
- {
328
- name: 'debugger_list_sessions',
329
- description: `List all saved debugging sessions in the ./debugger-sessions/ directory.
151
+ debugger_export_session(metadata={description: "API debugging session"})`)
152
+ .object('metadata', {}, 'Optional metadata to include in the export')
153
+ .readOnly()
154
+ .idempotent()
155
+ .build(),
156
+ tool('debugger_list_sessions')
157
+ .desc(`List all saved debugging sessions in the ./debugger-sessions/ directory.
330
158
 
331
159
  Returns for each session:
332
160
  - File name and path
@@ -338,10 +166,8 @@ Use cases:
338
166
  - Clean up old sessions
339
167
 
340
168
  Examples:
341
- debugger_list_sessions()`,
342
- inputSchema: {
343
- type: 'object',
344
- properties: {},
345
- },
346
- },
169
+ debugger_list_sessions()`)
170
+ .readOnly()
171
+ .idempotent()
172
+ .build(),
347
173
  ];
@@ -26,8 +26,15 @@ const manifest = {
26
26
  profiles: ['workflow', 'full'],
27
27
  ensure,
28
28
  prerequisites: {
29
- debugger_enable: [{ condition: 'Browser must be launched', fix: 'Call browser_launch or browser_attach first' }],
30
- breakpoint_set: [{ condition: 'Browser must be launched', fix: 'Call browser_launch and debugger_enable first' }],
29
+ debugger_enable: [
30
+ { condition: 'Browser must be launched', fix: 'Call browser_launch or browser_attach first' },
31
+ ],
32
+ breakpoint_set: [
33
+ {
34
+ condition: 'Browser must be launched',
35
+ fix: 'Call browser_launch and debugger_enable first',
36
+ },
37
+ ],
31
38
  },
32
39
  registrations: [
33
40
  { tool: t('debugger_enable'), domain: DOMAIN, bind: b((h, a) => h.handleDebuggerEnable(a)) },
@@ -1,155 +1,45 @@
1
+ import { tool } from '../../registry/tool-builder.js';
1
2
  export const encodingTools = [
2
- {
3
- name: 'binary_detect_format',
4
- description: 'Detect binary payload format/encoding via magic bytes, encoding heuristics, and Shannon entropy.',
5
- inputSchema: {
6
- type: 'object',
7
- properties: {
8
- data: {
9
- type: 'string',
10
- description: 'Input payload string. For source=file, this is optional. For source=raw + requestId, this can be omitted.',
11
- },
12
- source: {
13
- type: 'string',
14
- enum: ['base64', 'hex', 'file', 'raw'],
15
- description: 'How to interpret input payload',
16
- },
17
- filePath: {
18
- type: 'string',
19
- description: 'File path when source=file (reads first 512 bytes)',
20
- },
21
- requestId: {
22
- type: 'string',
23
- description: 'Optional captured network requestId to resolve response body from active page context',
24
- },
25
- },
26
- required: ['source'],
27
- },
28
- annotations: {
29
- readOnlyHint: true,
30
- destructiveHint: false,
31
- idempotentHint: true,
32
- openWorldHint: false,
33
- },
34
- },
35
- {
36
- name: 'binary_decode',
37
- description: 'Decode binary payloads (base64/hex/url/protobuf/msgpack) into hex, utf8, or json output.',
38
- inputSchema: {
39
- type: 'object',
40
- properties: {
41
- data: {
42
- type: 'string',
43
- description: 'Input encoded payload',
44
- },
45
- encoding: {
46
- type: 'string',
47
- enum: ['base64', 'hex', 'url', 'protobuf', 'msgpack'],
48
- description: 'Declared input encoding/format',
49
- },
50
- outputFormat: {
51
- type: 'string',
52
- enum: ['hex', 'utf8', 'json'],
53
- description: 'Target output format',
54
- default: 'hex',
55
- },
56
- },
57
- required: ['data', 'encoding'],
58
- },
59
- annotations: {
60
- readOnlyHint: false,
61
- destructiveHint: false,
62
- idempotentHint: false,
63
- openWorldHint: false,
64
- },
65
- },
66
- {
67
- name: 'binary_encode',
68
- description: 'Encode utf8/hex/json input into base64/hex/url output.',
69
- inputSchema: {
70
- type: 'object',
71
- properties: {
72
- data: {
73
- type: 'string',
74
- description: 'Input payload',
75
- },
76
- inputFormat: {
77
- type: 'string',
78
- enum: ['utf8', 'hex', 'json'],
79
- description: 'How to parse input payload',
80
- },
81
- outputEncoding: {
82
- type: 'string',
83
- enum: ['base64', 'hex', 'url'],
84
- description: 'Desired output encoding',
85
- },
86
- },
87
- required: ['data', 'inputFormat', 'outputEncoding'],
88
- },
89
- annotations: {
90
- readOnlyHint: false,
91
- destructiveHint: false,
92
- idempotentHint: false,
93
- openWorldHint: false,
94
- },
95
- },
96
- {
97
- name: 'binary_entropy_analysis',
98
- description: 'Compute Shannon entropy + byte frequency distribution to assess plaintext/encoded/compressed/encrypted/random likelihood.',
99
- inputSchema: {
100
- type: 'object',
101
- properties: {
102
- data: {
103
- type: 'string',
104
- description: 'Input payload string (optional when source=file)',
105
- },
106
- source: {
107
- type: 'string',
108
- enum: ['base64', 'hex', 'raw', 'file'],
109
- description: 'How to interpret input payload',
110
- },
111
- filePath: {
112
- type: 'string',
113
- description: 'File path when source=file',
114
- },
115
- blockSize: {
116
- type: 'number',
117
- description: 'Block size for per-block entropy (default: 256)',
118
- default: 256,
119
- },
120
- },
121
- required: ['source'],
122
- },
123
- annotations: {
124
- readOnlyHint: true,
125
- destructiveHint: false,
126
- idempotentHint: true,
127
- openWorldHint: false,
128
- },
129
- },
130
- {
131
- name: 'protobuf_decode_raw',
132
- description: 'Decode base64 protobuf bytes without schema using wire-type aware recursive parser.',
133
- inputSchema: {
134
- type: 'object',
135
- properties: {
136
- data: {
137
- type: 'string',
138
- description: 'Base64-encoded protobuf payload',
139
- },
140
- maxDepth: {
141
- type: 'number',
142
- description: 'Maximum recursive decode depth (default: 5)',
143
- default: 5,
144
- },
145
- },
146
- required: ['data'],
147
- },
148
- annotations: {
149
- readOnlyHint: true,
150
- destructiveHint: false,
151
- idempotentHint: true,
152
- openWorldHint: false,
153
- },
154
- },
3
+ tool('binary_detect_format')
4
+ .desc('Detect binary payload format/encoding via magic bytes, encoding heuristics, and Shannon entropy')
5
+ .string('data', 'Input payload')
6
+ .enum('source', ['base64', 'hex', 'file', 'raw'], 'How to interpret input payload')
7
+ .string('filePath', 'File path when source=file')
8
+ .string('requestId', 'Captured network requestId to resolve response body')
9
+ .required('source')
10
+ .readOnly()
11
+ .idempotent()
12
+ .build(),
13
+ tool('binary_decode')
14
+ .desc('Decode binary payloads into hex, utf8, or json output')
15
+ .string('data', 'Input encoded payload')
16
+ .enum('encoding', ['base64', 'hex', 'url', 'protobuf', 'msgpack'], 'Declared input encoding')
17
+ .enum('outputFormat', ['hex', 'utf8', 'json'], 'Target output format', { default: 'hex' })
18
+ .required('data', 'encoding')
19
+ .build(),
20
+ tool('binary_encode')
21
+ .desc('Encode utf8/hex/json input into base64/hex/url output')
22
+ .string('data', 'Input payload')
23
+ .enum('inputFormat', ['utf8', 'hex', 'json'], 'How to parse input')
24
+ .enum('outputEncoding', ['base64', 'hex', 'url'], 'Desired output encoding')
25
+ .required('data', 'inputFormat', 'outputEncoding')
26
+ .build(),
27
+ tool('binary_entropy_analysis')
28
+ .desc('Compute Shannon entropy + byte frequency to assess plaintext/encoded/compressed/encrypted likelihood')
29
+ .string('data', 'Input payload')
30
+ .enum('source', ['base64', 'hex', 'raw', 'file'], 'How to interpret input payload')
31
+ .string('filePath', 'File path when source=file')
32
+ .number('blockSize', 'Block size for per-block entropy', { default: 256 })
33
+ .required('source')
34
+ .readOnly()
35
+ .idempotent()
36
+ .build(),
37
+ tool('protobuf_decode_raw')
38
+ .desc('Decode base64 protobuf bytes without schema using wire-type aware recursive parser')
39
+ .string('data', 'Base64-encoded protobuf payload')
40
+ .number('maxDepth', 'Maximum recursive decode depth', { default: 5 })
41
+ .required('data')
42
+ .readOnly()
43
+ .idempotent()
44
+ .build(),
155
45
  ];