@jshookmcp/jshook 0.2.2 → 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 (414) hide show
  1. package/LICENSE +661 -661
  2. package/README.md +15 -6
  3. package/README.zh.md +19 -4
  4. package/dist/native/scripts/linux/enum-windows.sh +12 -12
  5. package/dist/native/scripts/macos/enum-windows.applescript +22 -22
  6. package/dist/native/scripts/windows/enum-windows-by-class.ps1 +51 -51
  7. package/dist/native/scripts/windows/enum-windows.ps1 +44 -44
  8. package/dist/native/scripts/windows/inject-dll.ps1 +21 -21
  9. package/dist/packages/extension-sdk/src/bridges/shared.js +2 -2
  10. package/dist/packages/extension-sdk/src/plugin.d.ts +5 -0
  11. package/dist/packages/extension-sdk/src/plugin.js +119 -33
  12. package/dist/packages/extension-sdk/src/workflow.d.ts +156 -0
  13. package/dist/packages/extension-sdk/src/workflow.js +236 -0
  14. package/dist/src/config/search-defaults.js +161 -0
  15. package/dist/src/constants.d.ts +3 -0
  16. package/dist/src/constants.js +4 -1
  17. package/dist/src/index.d.ts +1 -1
  18. package/dist/src/index.js +13 -17
  19. package/dist/src/modules/analyzer/CodeAnalyzer.d.ts +1 -3
  20. package/dist/src/modules/analyzer/CodeAnalyzer.js +16 -28
  21. package/dist/src/modules/analyzer/CodeAnalyzerDataFlow.d.ts +1 -2
  22. package/dist/src/modules/analyzer/CodeAnalyzerDataFlow.js +1 -45
  23. package/dist/src/modules/analyzer/IntelligentAnalyzer.d.ts +1 -37
  24. package/dist/src/modules/analyzer/IntelligentAnalyzer.js +9 -142
  25. package/dist/src/modules/analyzer/PatternDetector.js +3 -3
  26. package/dist/src/modules/analyzer/PatternDetectorAuthPatterns.js +1 -1
  27. package/dist/src/modules/browser/BrowserDiscovery.d.ts +6 -5
  28. package/dist/src/modules/browser/BrowserDiscovery.js +3 -3
  29. package/dist/src/modules/browser/BrowserModeManager.d.ts +1 -1
  30. package/dist/src/modules/browser/BrowserModeManager.js +11 -10
  31. package/dist/src/modules/browser/TabRegistry.js +2 -2
  32. package/dist/src/modules/browser/UnifiedBrowserManager.d.ts +1 -0
  33. package/dist/src/modules/browser/UnifiedBrowserManager.js +19 -4
  34. package/dist/src/modules/captcha/AICaptchaDetector.d.ts +14 -23
  35. package/dist/src/modules/captcha/AICaptchaDetector.js +8 -202
  36. package/dist/src/modules/captcha/CaptchaDetector.d.ts +31 -17
  37. package/dist/src/modules/captcha/CaptchaDetector.js +1 -1
  38. package/dist/src/modules/collector/CodeCache.d.ts +2 -2
  39. package/dist/src/modules/collector/CodeCollector.d.ts +12 -9
  40. package/dist/src/modules/collector/CodeCollector.js +5 -6
  41. package/dist/src/modules/collector/DOMInspector.d.ts +3 -2
  42. package/dist/src/modules/collector/DOMInspector.js +49 -59
  43. package/dist/src/modules/collector/PageController.d.ts +17 -4
  44. package/dist/src/modules/collector/PageController.js +2 -5
  45. package/dist/src/modules/collector/PageScriptCollectors.js +3 -3
  46. package/dist/src/modules/crypto/CryptoDetector.d.ts +1 -4
  47. package/dist/src/modules/crypto/CryptoDetector.js +2 -42
  48. package/dist/src/modules/crypto/CryptoRules.js +1 -1
  49. package/dist/src/modules/debugger/BlackboxManager.js +1 -1
  50. package/dist/src/modules/debugger/DebuggerManager.impl.core.scope.js +1 -1
  51. package/dist/src/modules/debugger/ScriptManager.impl.extract-function-tree.js +5 -3
  52. package/dist/src/modules/debugger/WatchExpressionManager.js +1 -1
  53. package/dist/src/modules/deobfuscator/Deobfuscator.d.ts +1 -4
  54. package/dist/src/modules/deobfuscator/Deobfuscator.js +4 -39
  55. package/dist/src/modules/deobfuscator/JSVMPDeobfuscator.d.ts +0 -3
  56. package/dist/src/modules/deobfuscator/JSVMPDeobfuscator.js +2 -8
  57. package/dist/src/modules/deobfuscator/JSVMPDeobfuscator.restore.d.ts +2 -3
  58. package/dist/src/modules/deobfuscator/JSVMPDeobfuscator.restore.js +5 -57
  59. package/dist/src/modules/deobfuscator/JScramblerDeobfuscator.js +3 -4
  60. package/dist/src/modules/deobfuscator/PackerDeobfuscator.js +1 -1
  61. package/dist/src/modules/deobfuscator/VMDeobfuscator.d.ts +2 -10
  62. package/dist/src/modules/deobfuscator/VMDeobfuscator.js +3 -128
  63. package/dist/src/modules/deobfuscator/webcrack.js +15 -2
  64. package/dist/src/modules/emulator/AIEnvironmentAnalyzer.d.ts +5 -8
  65. package/dist/src/modules/emulator/AIEnvironmentAnalyzer.js +10 -102
  66. package/dist/src/modules/emulator/EnvironmentEmulator.d.ts +1 -5
  67. package/dist/src/modules/emulator/EnvironmentEmulator.js +7 -91
  68. package/dist/src/modules/emulator/EnvironmentEmulatorFetch.js +58 -61
  69. package/dist/src/modules/emulator/templates/chrome-env.d.ts +17 -7
  70. package/dist/src/modules/emulator/templates/chrome-env.js +14 -7
  71. package/dist/src/modules/external/ExternalToolRunner.d.ts +1 -1
  72. package/dist/src/modules/external/ExternalToolRunner.js +26 -23
  73. package/dist/src/modules/monitor/ConsoleMonitor.impl.core.class.d.ts +13 -0
  74. package/dist/src/modules/monitor/ConsoleMonitor.impl.core.class.js +42 -0
  75. package/dist/src/modules/monitor/FetchInterceptor.d.ts +46 -0
  76. package/dist/src/modules/monitor/FetchInterceptor.js +191 -0
  77. package/dist/src/modules/monitor/PerformanceMonitor.js +8 -7
  78. package/dist/src/modules/process/BaseMemoryManager.d.ts +1 -1
  79. package/dist/src/modules/process/LinuxProcessManager.js +4 -2
  80. package/dist/src/modules/process/MacProcessManager.js +1 -1
  81. package/dist/src/modules/process/MemoryManager.d.ts +1 -1
  82. package/dist/src/modules/process/MemoryManager.js +2 -2
  83. package/dist/src/modules/process/ProcessManager.impl.js +1 -1
  84. package/dist/src/modules/process/memory/AuditTrail.js +1 -1
  85. package/dist/src/modules/process/memory/reader.js +35 -3
  86. package/dist/src/modules/process/memory/regions.enumerate.js +1 -1
  87. package/dist/src/modules/process/memory/regions.protection.js +42 -9
  88. package/dist/src/modules/process/memory/scanner.d.ts +5 -1
  89. package/dist/src/modules/process/memory/scanner.darwin.js +57 -0
  90. package/dist/src/modules/process/memory/scanner.js +88 -4
  91. package/dist/src/modules/process/memory/writer.js +44 -4
  92. package/dist/src/modules/security/ExecutionSandbox.js +7 -8
  93. package/dist/src/modules/stealth/FingerprintManager.js +1 -1
  94. package/dist/src/modules/stealth/StealthScripts.d.ts +4 -2
  95. package/dist/src/modules/stealth/StealthScripts.js +53 -14
  96. package/dist/src/modules/stealth/StealthVerifier.d.ts +1 -1
  97. package/dist/src/modules/stealth/StealthVerifier.js +2 -4
  98. package/dist/src/modules/symbolic/JSVMPSymbolicExecutor.d.ts +14 -0
  99. package/dist/src/modules/symbolic/JSVMPSymbolicExecutor.js +181 -2
  100. package/dist/src/modules/trace/TraceDB.js +12 -6
  101. package/dist/src/modules/trace/TraceRecorder.js +1 -5
  102. package/dist/src/native/AntiCheatDetector.js +67 -16
  103. package/dist/src/native/CodeInjector.js +4 -4
  104. package/dist/src/native/HardwareBreakpoint.js +25 -16
  105. package/dist/src/native/HeapAnalyzer.js +2 -2
  106. package/dist/src/native/MemoryController.js +1 -1
  107. package/dist/src/native/MemoryScanSession.js +2 -2
  108. package/dist/src/native/MemoryScanner.js +4 -8
  109. package/dist/src/native/NativeMemoryManager.impl.js +2 -2
  110. package/dist/src/native/PEAnalyzer.js +14 -15
  111. package/dist/src/native/PointerChainEngine.js +2 -4
  112. package/dist/src/native/ScriptLoader.js +4 -9
  113. package/dist/src/native/Speedhack.js +1 -1
  114. package/dist/src/native/StructureAnalyzer.js +52 -33
  115. package/dist/src/native/Win32API.d.ts +1 -0
  116. package/dist/src/native/Win32API.js +13 -0
  117. package/dist/src/native/Win32Debug.js +19 -19
  118. package/dist/src/native/platform/darwin/DarwinAPI.d.ts +2 -0
  119. package/dist/src/native/platform/darwin/DarwinAPI.js +8 -0
  120. package/dist/src/native/platform/darwin/DarwinMemoryProvider.js +6 -1
  121. package/dist/src/server/MCPServer.context.d.ts +2 -1
  122. package/dist/src/server/MCPServer.d.ts +2 -1
  123. package/dist/src/server/MCPServer.domain.d.ts +1 -1
  124. package/dist/src/server/MCPServer.domain.js +81 -16
  125. package/dist/src/server/MCPServer.js +42 -14
  126. package/dist/src/server/MCPServer.resources.d.ts +2 -0
  127. package/dist/src/server/MCPServer.resources.js +91 -0
  128. package/dist/src/server/MCPServer.search.handlers.call.js +2 -1
  129. package/dist/src/server/MCPServer.search.helpers.js +2 -2
  130. package/dist/src/server/MCPServer.tools.js +1 -1
  131. package/dist/src/server/MCPServer.transport.js +12 -0
  132. package/dist/src/server/ToolCallContextGuard.d.ts +5 -0
  133. package/dist/src/server/ToolCallContextGuard.js +85 -0
  134. package/dist/src/server/ToolRouter.d.ts +26 -10
  135. package/dist/src/server/ToolRouter.intent.d.ts +26 -0
  136. package/dist/src/server/ToolRouter.intent.js +77 -0
  137. package/dist/src/server/ToolRouter.js +103 -284
  138. package/dist/src/server/ToolRouter.policy.d.ts +22 -0
  139. package/dist/src/server/ToolRouter.policy.js +163 -0
  140. package/dist/src/server/ToolRouter.probe.d.ts +17 -0
  141. package/dist/src/server/ToolRouter.probe.js +103 -0
  142. package/dist/src/server/ToolRouter.renderer.d.ts +9 -0
  143. package/dist/src/server/ToolRouter.renderer.js +52 -0
  144. package/dist/src/server/activation/ActivationController.js +15 -12
  145. package/dist/src/server/activation/CompoundConditionEngine.js +1 -1
  146. package/dist/src/server/activation/PredictiveBooster.js +1 -3
  147. package/dist/src/server/domains/analysis/definitions.js +155 -655
  148. package/dist/src/server/domains/analysis/handlers.impl.d.ts +8 -8
  149. package/dist/src/server/domains/analysis/handlers.impl.js +34 -28
  150. package/dist/src/server/domains/analysis/handlers.web-tools.js +4 -3
  151. package/dist/src/server/domains/analysis/manifest.js +6 -4
  152. package/dist/src/server/domains/antidebug/definitions.js +25 -111
  153. package/dist/src/server/domains/browser/definitions.tools.advanced.js +59 -88
  154. package/dist/src/server/domains/browser/definitions.tools.behavior.js +120 -227
  155. package/dist/src/server/domains/browser/definitions.tools.page-core.js +157 -386
  156. package/dist/src/server/domains/browser/definitions.tools.page-system.js +108 -250
  157. package/dist/src/server/domains/browser/definitions.tools.runtime.js +61 -174
  158. package/dist/src/server/domains/browser/definitions.tools.security.js +92 -237
  159. package/dist/src/server/domains/browser/handlers/camoufox-browser.js +3 -2
  160. package/dist/src/server/domains/browser/handlers/captcha-solver.js +3 -3
  161. package/dist/src/server/domains/browser/handlers/dom-query.js +2 -1
  162. package/dist/src/server/domains/browser/handlers/facade-initializer.d.ts +3 -3
  163. package/dist/src/server/domains/browser/handlers/facade-initializer.js +3 -3
  164. package/dist/src/server/domains/browser/handlers/framework-state.js +231 -3
  165. package/dist/src/server/domains/browser/handlers/indexeddb-dump.js +21 -20
  166. package/dist/src/server/domains/browser/handlers/script-management.js +1 -1
  167. package/dist/src/server/domains/browser/handlers/stealth-injection.js +8 -2
  168. package/dist/src/server/domains/browser/handlers.impl.d.ts +15 -12
  169. package/dist/src/server/domains/browser/handlers.impl.js +5 -6
  170. package/dist/src/server/domains/browser/manifest.js +37 -13
  171. package/dist/src/server/domains/coordination/definitions.js +50 -149
  172. package/dist/src/server/domains/coordination/index.d.ts +20 -1
  173. package/dist/src/server/domains/coordination/index.js +133 -0
  174. package/dist/src/server/domains/coordination/manifest.js +15 -0
  175. package/dist/src/server/domains/debugger/definitions.tools.advanced.js +72 -189
  176. package/dist/src/server/domains/debugger/definitions.tools.core.js +114 -288
  177. package/dist/src/server/domains/debugger/manifest.js +9 -2
  178. package/dist/src/server/domains/encoding/definitions.js +43 -153
  179. package/dist/src/server/domains/encoding/handlers.base.js +2 -2
  180. package/dist/src/server/domains/evidence/definitions.d.ts +2 -0
  181. package/dist/src/server/domains/evidence/definitions.js +42 -0
  182. package/dist/src/server/domains/evidence/handlers.d.ts +582 -0
  183. package/dist/src/server/domains/evidence/handlers.js +60 -0
  184. package/dist/src/server/domains/evidence/index.d.ts +2 -0
  185. package/dist/src/server/domains/evidence/index.js +2 -0
  186. package/dist/src/server/domains/evidence/manifest.d.ts +63 -0
  187. package/dist/src/server/domains/evidence/manifest.js +78 -0
  188. package/dist/src/server/domains/graphql/definitions.js +53 -141
  189. package/dist/src/server/domains/graphql/handlers.impl.core.runtime.replay.js +92 -114
  190. package/dist/src/server/domains/hooks/ai-handlers.d.ts +0 -7
  191. package/dist/src/server/domains/hooks/ai-handlers.js +4 -70
  192. package/dist/src/server/domains/hooks/definitions.js +69 -335
  193. package/dist/src/server/domains/hooks/manifest.d.ts +1 -1
  194. package/dist/src/server/domains/hooks/manifest.js +1 -2
  195. package/dist/src/server/domains/instrumentation/definitions.d.ts +2 -0
  196. package/dist/src/server/domains/instrumentation/definitions.js +99 -0
  197. package/dist/src/server/domains/instrumentation/handlers.d.ts +78 -0
  198. package/dist/src/server/domains/instrumentation/handlers.js +206 -0
  199. package/dist/src/server/domains/instrumentation/index.d.ts +2 -0
  200. package/dist/src/server/domains/instrumentation/index.js +2 -0
  201. package/dist/src/server/domains/instrumentation/manifest.d.ts +63 -0
  202. package/dist/src/server/domains/instrumentation/manifest.js +114 -0
  203. package/dist/src/server/domains/macro/definitions.js +16 -43
  204. package/dist/src/server/domains/maintenance/definitions.js +60 -219
  205. package/dist/src/server/domains/maintenance/handlers.d.ts +2 -2
  206. package/dist/src/server/domains/maintenance/handlers.extensions.js +78 -20
  207. package/dist/src/server/domains/maintenance/handlers.js +2 -2
  208. package/dist/src/server/domains/memory/definitions.js +387 -559
  209. package/dist/src/server/domains/memory/handlers/hooks.d.ts +55 -0
  210. package/dist/src/server/domains/memory/handlers/hooks.js +115 -0
  211. package/dist/src/server/domains/memory/handlers/integrity.d.ts +77 -0
  212. package/dist/src/server/domains/memory/handlers/integrity.js +180 -0
  213. package/dist/src/server/domains/memory/handlers/pointer-chain.d.ts +29 -0
  214. package/dist/src/server/domains/memory/handlers/pointer-chain.js +82 -0
  215. package/dist/src/server/domains/memory/handlers/readwrite.d.ts +41 -0
  216. package/dist/src/server/domains/memory/handlers/readwrite.js +78 -0
  217. package/dist/src/server/domains/memory/handlers/scan.d.ts +35 -0
  218. package/dist/src/server/domains/memory/handlers/scan.js +97 -0
  219. package/dist/src/server/domains/memory/handlers/session.d.ts +23 -0
  220. package/dist/src/server/domains/memory/handlers/session.js +49 -0
  221. package/dist/src/server/domains/memory/handlers/structure.d.ts +29 -0
  222. package/dist/src/server/domains/memory/handlers/structure.js +74 -0
  223. package/dist/src/server/domains/memory/handlers.impl.d.ts +49 -54
  224. package/dist/src/server/domains/memory/handlers.impl.js +63 -494
  225. package/dist/src/server/domains/memory/manifest.js +236 -64
  226. package/dist/src/server/domains/native-bridge/definitions.js +54 -192
  227. package/dist/src/server/domains/native-bridge/index.d.ts +1 -0
  228. package/dist/src/server/domains/native-bridge/index.js +2 -1
  229. package/dist/src/server/domains/network/auth-extractor.js +1 -1
  230. package/dist/src/server/domains/network/definitions.js +175 -578
  231. package/dist/src/server/domains/network/handlers.base.core.d.ts +64 -0
  232. package/dist/src/server/domains/network/handlers.base.core.js +623 -0
  233. package/dist/src/server/domains/network/handlers.base.d.ts +2 -124
  234. package/dist/src/server/domains/network/handlers.base.js +3 -878
  235. package/dist/src/server/domains/network/handlers.base.performance.d.ts +63 -0
  236. package/dist/src/server/domains/network/handlers.base.performance.js +193 -0
  237. package/dist/src/server/domains/network/handlers.base.types.d.ts +42 -0
  238. package/dist/src/server/domains/network/handlers.base.types.js +89 -0
  239. package/dist/src/server/domains/network/handlers.impl.core.runtime.d.ts +1 -1
  240. package/dist/src/server/domains/network/handlers.impl.core.runtime.intercept.d.ts +21 -0
  241. package/dist/src/server/domains/network/handlers.impl.core.runtime.intercept.js +186 -0
  242. package/dist/src/server/domains/network/handlers.impl.core.runtime.js +1 -1
  243. package/dist/src/server/domains/network/manifest.js +15 -0
  244. package/dist/src/server/domains/network/replay.js +1 -4
  245. package/dist/src/server/domains/platform/definitions.js +121 -112
  246. package/dist/src/server/domains/platform/handlers/bridge-handlers.d.ts +5 -1
  247. package/dist/src/server/domains/platform/handlers/bridge-handlers.js +194 -5
  248. package/dist/src/server/domains/platform/handlers/electron-asar-helpers.js +26 -6
  249. package/dist/src/server/domains/platform/handlers/electron-dual-cdp.d.ts +3 -0
  250. package/dist/src/server/domains/platform/handlers/electron-dual-cdp.js +170 -0
  251. package/dist/src/server/domains/platform/handlers/electron-fuse-handler.d.ts +3 -0
  252. package/dist/src/server/domains/platform/handlers/electron-fuse-handler.js +193 -0
  253. package/dist/src/server/domains/platform/handlers/electron-handlers.d.ts +6 -0
  254. package/dist/src/server/domains/platform/handlers/electron-handlers.js +95 -2
  255. package/dist/src/server/domains/platform/handlers/electron-ipc-sniffer.d.ts +2 -0
  256. package/dist/src/server/domains/platform/handlers/electron-ipc-sniffer.js +370 -0
  257. package/dist/src/server/domains/platform/handlers/electron-userdata-handler.d.ts +2 -0
  258. package/dist/src/server/domains/platform/handlers/electron-userdata-handler.js +78 -0
  259. package/dist/src/server/domains/platform/handlers/miniapp-handlers.d.ts +1 -1
  260. package/dist/src/server/domains/platform/handlers/miniapp-handlers.js +4 -4
  261. package/dist/src/server/domains/platform/handlers/v8-bytecode-handler.d.ts +2 -0
  262. package/dist/src/server/domains/platform/handlers/v8-bytecode-handler.js +207 -0
  263. package/dist/src/server/domains/platform/handlers.d.ts +48 -0
  264. package/dist/src/server/domains/platform/handlers.js +29 -0
  265. package/dist/src/server/domains/platform/manifest.js +38 -0
  266. package/dist/src/server/domains/process/definitions.js +163 -647
  267. package/dist/src/server/domains/process/handlers.base.d.ts +3 -95
  268. package/dist/src/server/domains/process/handlers.base.js +7 -462
  269. package/dist/src/server/domains/process/handlers.base.process.d.ts +61 -0
  270. package/dist/src/server/domains/process/handlers.base.process.js +417 -0
  271. package/dist/src/server/domains/process/handlers.base.types.d.ts +57 -0
  272. package/dist/src/server/domains/process/handlers.base.types.js +50 -0
  273. package/dist/src/server/domains/process/handlers.impl.core.runtime.inject.js +19 -17
  274. package/dist/src/server/domains/process/manifest.js +6 -1
  275. package/dist/src/server/domains/sandbox/definitions.js +11 -33
  276. package/dist/src/server/domains/sandbox/handlers.js +8 -3
  277. package/dist/src/server/domains/shared/ResponseBuilder.d.ts +209 -0
  278. package/dist/src/server/domains/shared/ResponseBuilder.js +48 -0
  279. package/dist/src/server/domains/shared/modules.d.ts +0 -2
  280. package/dist/src/server/domains/shared/modules.js +0 -1
  281. package/dist/src/server/domains/sourcemap/definitions.js +27 -111
  282. package/dist/src/server/domains/sourcemap/handlers.impl.sourcemap-common.js +7 -2
  283. package/dist/src/server/domains/sourcemap/handlers.impl.sourcemap-main.js +1 -1
  284. package/dist/src/server/domains/sourcemap/handlers.impl.sourcemap-parse-base.js +1 -1
  285. package/dist/src/server/domains/sourcemap/manifest.d.ts +1 -1
  286. package/dist/src/server/domains/sourcemap/manifest.js +1 -1
  287. package/dist/src/server/domains/streaming/definitions.js +36 -148
  288. package/dist/src/server/domains/streaming/handlers.impl.streaming-sse.js +163 -164
  289. package/dist/src/server/domains/streaming/handlers.impl.streaming-ws.js +1 -1
  290. package/dist/src/server/domains/trace/TraceSummarizer.d.ts +60 -0
  291. package/dist/src/server/domains/trace/TraceSummarizer.js +112 -0
  292. package/dist/src/server/domains/trace/definitions.tools.js +51 -176
  293. package/dist/src/server/domains/trace/handlers.d.ts +2 -1
  294. package/dist/src/server/domains/trace/handlers.js +62 -9
  295. package/dist/src/server/domains/trace/index.d.ts +2 -1
  296. package/dist/src/server/domains/trace/index.js +2 -1
  297. package/dist/src/server/domains/trace/manifest.js +18 -4
  298. package/dist/src/server/domains/transform/definitions.js +50 -210
  299. package/dist/src/server/domains/transform/handlers.impl.transform-base.js +6 -6
  300. package/dist/src/server/domains/transform/handlers.impl.transform-crypto.js +18 -19
  301. package/dist/src/server/domains/transform/manifest.d.ts +1 -1
  302. package/dist/src/server/domains/transform/manifest.js +1 -1
  303. package/dist/src/server/domains/wasm/definitions.js +55 -232
  304. package/dist/src/server/domains/wasm/handlers.js +3 -3
  305. package/dist/src/server/domains/workflow/definitions.js +144 -414
  306. package/dist/src/server/domains/workflow/handlers.impl.workflow-account-bundle.js +2 -2
  307. package/dist/src/server/domains/workflow/handlers.impl.workflow-base.d.ts +2 -0
  308. package/dist/src/server/domains/workflow/handlers.impl.workflow-base.js +126 -87
  309. package/dist/src/server/domains/workflow/handlers.impl.workflow-batch.js +5 -5
  310. package/dist/src/server/evidence/ReverseEvidenceGraph.d.ts +20 -0
  311. package/dist/src/server/evidence/ReverseEvidenceGraph.js +208 -0
  312. package/dist/src/server/evidence/index.d.ts +2 -0
  313. package/dist/src/server/evidence/index.js +1 -0
  314. package/dist/src/server/evidence/types.d.ts +22 -0
  315. package/dist/src/server/evidence/types.js +1 -0
  316. package/dist/src/server/extensions/ExtensionManager.d.ts +1 -0
  317. package/dist/src/server/extensions/ExtensionManager.discovery.js +72 -9
  318. package/dist/src/server/extensions/ExtensionManager.integrity.js +1 -1
  319. package/dist/src/server/extensions/ExtensionManager.js +193 -40
  320. package/dist/src/server/extensions/ExtensionManager.roots.d.ts +1 -1
  321. package/dist/src/server/extensions/ExtensionManager.roots.js +19 -9
  322. package/dist/src/server/extensions/plugin-config.js +1 -1
  323. package/dist/src/server/extensions/plugin-env.d.ts +1 -1
  324. package/dist/src/server/extensions/plugin-env.js +10 -4
  325. package/dist/src/server/extensions/types.d.ts +17 -0
  326. package/dist/src/server/extensions/types.js +1 -1
  327. package/dist/src/server/http/HttpMiddleware.js +1 -1
  328. package/dist/src/server/instrumentation/EvidenceGraphBridge.d.ts +13 -0
  329. package/dist/src/server/instrumentation/EvidenceGraphBridge.js +150 -0
  330. package/dist/src/server/instrumentation/InstrumentationSession.d.ts +60 -0
  331. package/dist/src/server/instrumentation/InstrumentationSession.js +269 -0
  332. package/dist/src/server/instrumentation/index.d.ts +2 -0
  333. package/dist/src/server/instrumentation/index.js +2 -0
  334. package/dist/src/server/instrumentation/types.d.ts +62 -0
  335. package/dist/src/server/instrumentation/types.js +7 -0
  336. package/dist/src/server/macros/MacroConfigLoader.d.ts +6 -5
  337. package/dist/src/server/macros/MacroConfigLoader.js +61 -59
  338. package/dist/src/server/macros/MacroRunner.js +6 -2
  339. package/dist/src/server/macros/builtins/index.d.ts +2 -3
  340. package/dist/src/server/macros/builtins/index.js +51 -7
  341. package/dist/src/server/plugins/PluginContract.d.ts +1 -1
  342. package/dist/src/server/registry/contracts.d.ts +7 -1
  343. package/dist/src/server/registry/discovery.js +5 -4
  344. package/dist/src/server/registry/ensure-browser-core.js +0 -3
  345. package/dist/src/server/registry/index.js +4 -4
  346. package/dist/src/server/registry/tool-builder.d.ts +46 -0
  347. package/dist/src/server/registry/tool-builder.js +105 -0
  348. package/dist/src/server/sandbox/MCPBridge.d.ts +9 -0
  349. package/dist/src/server/sandbox/MCPBridge.js +22 -0
  350. package/dist/src/server/sandbox/QuickJSSandbox.d.ts +4 -1
  351. package/dist/src/server/sandbox/QuickJSSandbox.js +162 -2
  352. package/dist/src/server/sandbox/types.d.ts +13 -0
  353. package/dist/src/server/search/AffinityGraph.d.ts +7 -1
  354. package/dist/src/server/search/AffinityGraph.js +24 -3
  355. package/dist/src/server/search/EmbeddingWorker.js +5 -3
  356. package/dist/src/server/search/FeedbackTracker.d.ts +9 -0
  357. package/dist/src/server/search/FeedbackTracker.js +26 -0
  358. package/dist/src/server/search/QueryNormalizer.d.ts +6 -0
  359. package/dist/src/server/search/QueryNormalizer.js +94 -0
  360. package/dist/src/server/search/ToolSearchEngineImpl.d.ts +2 -3
  361. package/dist/src/server/search/ToolSearchEngineImpl.js +38 -88
  362. package/dist/src/server/workflows/WorkflowContract.d.ts +24 -0
  363. package/dist/src/server/workflows/WorkflowContract.js +12 -0
  364. package/dist/src/server/workflows/WorkflowEngine.d.ts +1 -0
  365. package/dist/src/server/workflows/WorkflowEngine.js +136 -3
  366. package/dist/src/types/config.d.ts +0 -14
  367. package/dist/src/types/deobfuscator.d.ts +0 -1
  368. package/dist/src/types/index.d.ts +1 -1
  369. package/dist/src/utils/DetailedDataManager.js +2 -0
  370. package/dist/src/utils/RingBuffer.js +5 -5
  371. package/dist/src/utils/TokenBudgetManager.js +1 -1
  372. package/dist/src/utils/UnifiedCacheManager.d.ts +1 -1
  373. package/dist/src/utils/UnifiedCacheManager.js +3 -3
  374. package/dist/src/utils/artifactRetention.js +2 -2
  375. package/dist/src/utils/betterSqlite3.d.ts +11 -0
  376. package/dist/src/utils/betterSqlite3.js +88 -0
  377. package/dist/src/utils/browserExecutable.js +2 -2
  378. package/dist/src/utils/cliFastPath.js +17 -6
  379. package/dist/src/utils/config.js +4 -26
  380. package/dist/src/utils/environmentDoctor.js +138 -11
  381. package/dist/src/utils/outputPaths.js +16 -9
  382. package/dist/src/utils/parallel.js +1 -3
  383. package/package.json +76 -72
  384. package/scripts/postinstall.cjs +37 -37
  385. package/src/native/scripts/linux/enum-windows.sh +12 -12
  386. package/src/native/scripts/macos/enum-windows.applescript +22 -22
  387. package/src/native/scripts/windows/enum-windows-by-class.ps1 +51 -51
  388. package/src/native/scripts/windows/enum-windows.ps1 +44 -44
  389. package/src/native/scripts/windows/inject-dll.ps1 +21 -21
  390. package/workflows/.gitkeep +0 -0
  391. package/dist/src/modules/analyzer/AISummarizer.d.ts +0 -39
  392. package/dist/src/modules/analyzer/AISummarizer.js +0 -122
  393. package/dist/src/modules/hook/AIHookGenerator.d.ts +0 -52
  394. package/dist/src/modules/hook/AIHookGenerator.js +0 -360
  395. package/dist/src/modules/hook/AIHookGeneratorTemplates.d.ts +0 -9
  396. package/dist/src/modules/hook/AIHookGeneratorTemplates.js +0 -157
  397. package/dist/src/server/macros/builtins/deobfuscate-ast-flow.d.ts +0 -2
  398. package/dist/src/server/macros/builtins/deobfuscate-ast-flow.js +0 -25
  399. package/dist/src/server/macros/builtins/unpacker-flow.d.ts +0 -2
  400. package/dist/src/server/macros/builtins/unpacker-flow.js +0 -25
  401. package/dist/src/services/LLMService.d.ts +0 -37
  402. package/dist/src/services/LLMService.js +0 -233
  403. package/dist/src/services/prompts/analysis.d.ts +0 -9
  404. package/dist/src/services/prompts/analysis.js +0 -158
  405. package/dist/src/services/prompts/crypto.d.ts +0 -2
  406. package/dist/src/services/prompts/crypto.js +0 -108
  407. package/dist/src/services/prompts/deobfuscation.d.ts +0 -6
  408. package/dist/src/services/prompts/deobfuscation.js +0 -300
  409. package/dist/src/services/prompts/environment.d.ts +0 -16
  410. package/dist/src/services/prompts/environment.js +0 -372
  411. package/dist/src/services/prompts/intelligence.d.ts +0 -4
  412. package/dist/src/services/prompts/intelligence.js +0 -250
  413. package/dist/src/services/prompts/taint.d.ts +0 -2
  414. 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
  ];