@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,97 +1,6 @@
1
- import { UnifiedProcessManager, MemoryManager } from '../../domains/shared/modules.js';
2
- import { MemoryAuditTrail } from '../../../modules/process/memory/AuditTrail.js';
3
- import type { AuditEntry } from '../../../modules/process/memory/AuditTrail.js';
4
- interface MemoryDiagnosticsInput {
5
- pid?: number;
6
- address?: string;
7
- size?: number;
8
- operation: string;
9
- error?: string;
10
- }
11
- interface MemoryDiagnostics {
12
- permission: {
13
- available: boolean;
14
- reason?: string;
15
- platform: string;
16
- };
17
- process: {
18
- exists: boolean | null;
19
- pid: number | null;
20
- name: string | null;
21
- };
22
- address: {
23
- queried: boolean;
24
- valid: boolean | null;
25
- protection: string | null;
26
- regionStart: string | null;
27
- regionSize: number | null;
28
- };
29
- aslr: {
30
- heuristic: true;
31
- note: string;
32
- };
33
- recommendedActions: string[];
34
- }
35
- export declare function validatePid(value: unknown): number;
36
- export declare function requireString(value: unknown, name: string): string;
37
- export declare function requirePositiveNumber(value: unknown, name: string): number;
38
- export declare class ProcessHandlersBase {
39
- protected processManager: UnifiedProcessManager;
40
- protected memoryManager: MemoryManager;
41
- protected platform: string;
42
- protected auditTrail: MemoryAuditTrail;
43
- constructor();
44
- protected buildMemoryDiagnostics(input: MemoryDiagnosticsInput): Promise<MemoryDiagnostics>;
45
- protected safeBuildMemoryDiagnostics(input: {
46
- pid?: number;
47
- address?: string;
48
- size?: number;
49
- operation: string;
50
- error?: string;
51
- }): Promise<unknown>;
52
- protected recordMemoryAudit(entry: Omit<AuditEntry, 'timestamp' | 'user'>): void;
53
- handleProcessFind(args: Record<string, unknown>): Promise<{
54
- content: {
55
- type: string;
56
- text: string;
57
- }[];
58
- }>;
59
- handleProcessGet(args: Record<string, unknown>): Promise<{
60
- content: {
61
- type: string;
62
- text: string;
63
- }[];
64
- }>;
65
- handleProcessWindows(args: Record<string, unknown>): Promise<{
66
- content: {
67
- type: string;
68
- text: string;
69
- }[];
70
- }>;
71
- handleProcessFindChromium(_args: Record<string, unknown>): Promise<{
72
- content: {
73
- type: string;
74
- text: string;
75
- }[];
76
- }>;
77
- handleProcessCheckDebugPort(args: Record<string, unknown>): Promise<{
78
- content: {
79
- type: string;
80
- text: string;
81
- }[];
82
- }>;
83
- handleProcessLaunchDebug(args: Record<string, unknown>): Promise<{
84
- content: {
85
- type: string;
86
- text: string;
87
- }[];
88
- }>;
89
- handleProcessKill(args: Record<string, unknown>): Promise<{
90
- content: {
91
- type: string;
92
- text: string;
93
- }[];
94
- }>;
1
+ import { ProcessHandlersCore } from './handlers.base.process.js';
2
+ export { validatePid, requireString, requirePositiveNumber } from './handlers.base.types.js';
3
+ export declare class ProcessHandlersBase extends ProcessHandlersCore {
95
4
  handleMemoryRead(args: Record<string, unknown>): Promise<{
96
5
  content: {
97
6
  type: string;
@@ -147,4 +56,3 @@ export declare class ProcessHandlersBase {
147
56
  }[];
148
57
  }>;
149
58
  }
150
- export {};
@@ -1,464 +1,8 @@
1
- import { UnifiedProcessManager, MemoryManager } from '../../domains/shared/modules.js';
2
- import { MemoryAuditTrail } from '../../../modules/process/memory/AuditTrail.js';
3
1
  import { logger } from '../../../utils/logger.js';
4
- import { argNumber, argStringArray } from '../../domains/shared/parse-args.js';
5
- const MEMORY_PATTERN_TYPES = new Set([
6
- 'hex',
7
- 'int32',
8
- 'int64',
9
- 'float',
10
- 'double',
11
- 'string',
12
- ]);
13
- export function validatePid(value) {
14
- const n = Number(value);
15
- if (!Number.isInteger(n) || n <= 0)
16
- throw new Error(`Invalid PID: ${JSON.stringify(value)}`);
17
- return n;
18
- }
19
- export function requireString(value, name) {
20
- if (typeof value !== 'string' || value.length === 0) {
21
- throw new Error(`${name} must be a non-empty string`);
22
- }
23
- return value;
24
- }
25
- export function requirePositiveNumber(value, name) {
26
- const n = Number(value);
27
- if (!Number.isFinite(n) || n <= 0)
28
- throw new Error(`${name} must be a positive number`);
29
- return n;
30
- }
31
- function normalizePatternType(value) {
32
- if (typeof value === 'string' && MEMORY_PATTERN_TYPES.has(value)) {
33
- return value;
34
- }
35
- return 'hex';
36
- }
37
- function getOptionalPid(value) {
38
- const pid = Number(value);
39
- return Number.isInteger(pid) && pid > 0 ? pid : undefined;
40
- }
41
- function getOptionalString(value) {
42
- return typeof value === 'string' && value.length > 0 ? value : undefined;
43
- }
44
- function getOptionalPositiveNumber(value) {
45
- const size = Number(value);
46
- return Number.isFinite(size) && size > 0 ? size : undefined;
47
- }
48
- function getWriteSize(data, encoding) {
49
- if (encoding === 'hex') {
50
- const normalized = data.replace(/\s+/g, '');
51
- return Math.ceil(normalized.length / 2);
52
- }
53
- return Buffer.from(data, 'base64').length;
54
- }
55
- export class ProcessHandlersBase {
56
- processManager;
57
- memoryManager;
58
- platform;
59
- auditTrail = new MemoryAuditTrail();
60
- constructor() {
61
- this.processManager = new UnifiedProcessManager();
62
- this.memoryManager = new MemoryManager();
63
- this.platform = this.processManager.getPlatform();
64
- logger.info(`ProcessToolHandlers initialized for platform: ${this.platform}`);
65
- }
66
- async buildMemoryDiagnostics(input) {
67
- const recommendedActions = new Set();
68
- const permission = await this.memoryManager.checkAvailability();
69
- if (!permission.available) {
70
- recommendedActions.add('Run as administrator');
71
- }
72
- let processInfo = null;
73
- if (input.pid != null) {
74
- try {
75
- const resolvedProcess = await this.processManager.getProcessByPid(input.pid);
76
- processInfo = resolvedProcess
77
- ? {
78
- pid: resolvedProcess.pid,
79
- name: resolvedProcess.name,
80
- executablePath: resolvedProcess.executablePath,
81
- windowTitle: resolvedProcess.windowTitle,
82
- windowHandle: resolvedProcess.windowHandle,
83
- memoryUsage: resolvedProcess.memoryUsage,
84
- }
85
- : null;
86
- }
87
- catch {
88
- processInfo = null;
89
- }
90
- if (!processInfo) {
91
- recommendedActions.add('Check if process is still running');
92
- }
93
- }
94
- let protectionInfo = null;
95
- let protectionQueryFailed = false;
96
- if (input.pid != null && input.address) {
97
- try {
98
- protectionInfo = await this.memoryManager.checkMemoryProtection(input.pid, input.address);
99
- }
100
- catch {
101
- protectionQueryFailed = true;
102
- }
103
- if (protectionQueryFailed || protectionInfo?.success === false) {
104
- recommendedActions.add('Verify address is within valid memory region');
105
- }
106
- }
107
- if (input.size != null &&
108
- protectionInfo?.regionSize != null &&
109
- input.size > protectionInfo.regionSize) {
110
- recommendedActions.add('Reduce the requested size to fit the target memory region');
111
- }
112
- if (input.operation === 'memory_read' &&
113
- protectionInfo?.success &&
114
- protectionInfo.isReadable === false) {
115
- recommendedActions.add('Ensure target memory region is readable');
116
- }
117
- if (input.operation === 'memory_write' &&
118
- protectionInfo?.success &&
119
- protectionInfo.isWritable === false) {
120
- recommendedActions.add('Ensure target memory region is writable');
121
- }
122
- let modulesEnumerated = false;
123
- let moduleCount = null;
124
- if (input.pid != null) {
125
- try {
126
- const modulesResult = await this.memoryManager.enumerateModules(input.pid);
127
- modulesEnumerated = modulesResult.success;
128
- moduleCount = modulesResult.modules?.length ?? null;
129
- }
130
- catch {
131
- modulesEnumerated = false;
132
- }
133
- }
134
- if (input.pid != null && input.address) {
135
- recommendedActions.add('Re-resolve the address after the process restarts because ASLR can shift module addresses');
136
- }
137
- const normalizedError = input.error?.toLowerCase() ?? '';
138
- if (normalizedError.includes('access denied') ||
139
- normalizedError.includes('permission') ||
140
- normalizedError.includes('privilege') ||
141
- normalizedError.includes('administrator')) {
142
- recommendedActions.add('Run as administrator');
143
- }
144
- const aslrNote = modulesEnumerated
145
- ? moduleCount && moduleCount > 0
146
- ? `Enumerated ${moduleCount} module(s). Treat absolute addresses as session-specific because ASLR can shift module bases between launches.`
147
- : 'Module enumeration succeeded but returned no modules. Absolute addresses may still change across process launches because of ASLR.'
148
- : 'Module enumeration was unavailable. Assume ASLR may shift absolute addresses between launches and re-resolve addresses after restarts.';
149
- return {
150
- permission: {
151
- available: permission.available,
152
- reason: permission.reason,
153
- platform: this.platform,
154
- },
155
- process: {
156
- exists: input.pid != null ? Boolean(processInfo) : null,
157
- pid: input.pid ?? null,
158
- name: processInfo?.name ?? null,
159
- },
160
- address: {
161
- queried: input.pid != null && Boolean(input.address),
162
- valid: input.pid != null && input.address ? (protectionInfo?.success ?? null) : null,
163
- protection: protectionInfo?.protection ?? null,
164
- regionStart: protectionInfo?.regionStart ?? null,
165
- regionSize: protectionInfo?.regionSize ?? null,
166
- },
167
- aslr: {
168
- heuristic: true,
169
- note: aslrNote,
170
- },
171
- recommendedActions: Array.from(recommendedActions),
172
- };
173
- }
174
- async safeBuildMemoryDiagnostics(input) {
175
- try {
176
- return await this.buildMemoryDiagnostics(input);
177
- }
178
- catch (diagnosticError) {
179
- logger.warn('Memory diagnostics generation failed:', diagnosticError);
180
- return undefined;
181
- }
182
- }
183
- recordMemoryAudit(entry) {
184
- try {
185
- this.auditTrail.record(entry);
186
- }
187
- catch (auditError) {
188
- logger.warn('Memory audit trail recording failed:', auditError);
189
- }
190
- }
191
- async handleProcessFind(args) {
192
- try {
193
- const pattern = requireString(args.pattern, 'pattern');
194
- const processes = await this.processManager.findProcesses(pattern);
195
- return {
196
- content: [
197
- {
198
- type: 'text',
199
- text: JSON.stringify({
200
- success: true,
201
- pattern,
202
- count: processes.length,
203
- processes: processes.map((p) => ({
204
- pid: p.pid,
205
- name: p.name,
206
- path: p.executablePath,
207
- windowTitle: p.windowTitle,
208
- windowHandle: p.windowHandle,
209
- memoryMB: p.memoryUsage ? Math.round(p.memoryUsage / 1024 / 1024) : undefined,
210
- })),
211
- }, null, 2),
212
- },
213
- ],
214
- };
215
- }
216
- catch (error) {
217
- logger.error('Process find failed:', error);
218
- return {
219
- content: [
220
- {
221
- type: 'text',
222
- text: JSON.stringify({
223
- success: false,
224
- error: error instanceof Error ? error.message : String(error),
225
- }, null, 2),
226
- },
227
- ],
228
- };
229
- }
230
- }
231
- async handleProcessGet(args) {
232
- try {
233
- const pid = validatePid(args.pid);
234
- const process = await this.processManager.getProcessByPid(pid);
235
- if (!process) {
236
- return {
237
- content: [
238
- {
239
- type: 'text',
240
- text: JSON.stringify({
241
- success: false,
242
- message: `Process with PID ${pid} not found`,
243
- }, null, 2),
244
- },
245
- ],
246
- };
247
- }
248
- const cmdLine = await this.processManager.getProcessCommandLine(pid);
249
- const debugPort = await this.processManager.checkDebugPort(pid, {
250
- commandLine: cmdLine.commandLine,
251
- });
252
- return {
253
- content: [
254
- {
255
- type: 'text',
256
- text: JSON.stringify({
257
- success: true,
258
- process: {
259
- ...process,
260
- commandLine: cmdLine.commandLine,
261
- parentPid: cmdLine.parentPid,
262
- debugPort,
263
- },
264
- }, null, 2),
265
- },
266
- ],
267
- };
268
- }
269
- catch (error) {
270
- logger.error('Process get failed:', error);
271
- return {
272
- content: [
273
- {
274
- type: 'text',
275
- text: JSON.stringify({
276
- success: false,
277
- error: error instanceof Error ? error.message : String(error),
278
- }, null, 2),
279
- },
280
- ],
281
- };
282
- }
283
- }
284
- async handleProcessWindows(args) {
285
- try {
286
- const pid = validatePid(args.pid);
287
- const windows = await this.processManager.getProcessWindows(pid);
288
- return {
289
- content: [
290
- {
291
- type: 'text',
292
- text: JSON.stringify({
293
- success: true,
294
- pid,
295
- windowCount: windows.length,
296
- windows: windows.map((w) => ({
297
- handle: w.handle,
298
- title: w.title,
299
- className: w.className,
300
- processId: w.processId,
301
- })),
302
- }, null, 2),
303
- },
304
- ],
305
- };
306
- }
307
- catch (error) {
308
- logger.error('Process windows failed:', error);
309
- return {
310
- content: [
311
- {
312
- type: 'text',
313
- text: JSON.stringify({
314
- success: false,
315
- error: error instanceof Error ? error.message : String(error),
316
- }, null, 2),
317
- },
318
- ],
319
- };
320
- }
321
- }
322
- async handleProcessFindChromium(_args) {
323
- return {
324
- content: [
325
- {
326
- type: 'text',
327
- text: JSON.stringify({
328
- success: false,
329
- disabled: true,
330
- message: 'process_find_chromium is disabled to avoid scanning user-installed browser processes.',
331
- guidance: [
332
- 'Use browser_launch(driver="chrome"|"camoufox") to start a managed browser session.',
333
- 'Use browser_attach/browser_launch(mode="connect") with an explicit browserURL/wsEndpoint.',
334
- 'Use process_launch_debug for explicitly targeted Electron/Chromium executables.',
335
- ],
336
- platform: this.platform,
337
- }, null, 2),
338
- },
339
- ],
340
- };
341
- }
342
- async handleProcessCheckDebugPort(args) {
343
- try {
344
- const pid = validatePid(args.pid);
345
- const debugPort = await this.processManager.checkDebugPort(pid);
346
- return {
347
- content: [
348
- {
349
- type: 'text',
350
- text: JSON.stringify({
351
- success: true,
352
- pid,
353
- debugPort,
354
- canAttach: debugPort !== null,
355
- attachUrl: debugPort ? `http://localhost:${debugPort}` : null,
356
- }, null, 2),
357
- },
358
- ],
359
- };
360
- }
361
- catch (error) {
362
- logger.error('Check debug port failed:', error);
363
- return {
364
- content: [
365
- {
366
- type: 'text',
367
- text: JSON.stringify({
368
- success: false,
369
- error: error instanceof Error ? error.message : String(error),
370
- }, null, 2),
371
- },
372
- ],
373
- };
374
- }
375
- }
376
- async handleProcessLaunchDebug(args) {
377
- try {
378
- const executablePath = requireString(args.executablePath, 'executablePath');
379
- const debugPort = argNumber(args, 'debugPort', 9222);
380
- const argsList = argStringArray(args, 'args');
381
- const process = await this.processManager.launchWithDebug(executablePath, debugPort, argsList);
382
- if (!process) {
383
- return {
384
- content: [
385
- {
386
- type: 'text',
387
- text: JSON.stringify({
388
- success: false,
389
- message: 'Failed to launch process',
390
- }, null, 2),
391
- },
392
- ],
393
- };
394
- }
395
- return {
396
- content: [
397
- {
398
- type: 'text',
399
- text: JSON.stringify({
400
- success: true,
401
- process: {
402
- pid: process.pid,
403
- name: process.name,
404
- path: process.executablePath,
405
- },
406
- debugPort,
407
- attachUrl: `http://localhost:${debugPort}`,
408
- }, null, 2),
409
- },
410
- ],
411
- };
412
- }
413
- catch (error) {
414
- logger.error('Launch debug failed:', error);
415
- return {
416
- content: [
417
- {
418
- type: 'text',
419
- text: JSON.stringify({
420
- success: false,
421
- error: error instanceof Error ? error.message : String(error),
422
- }, null, 2),
423
- },
424
- ],
425
- };
426
- }
427
- }
428
- async handleProcessKill(args) {
429
- try {
430
- const pid = validatePid(args.pid);
431
- const killed = await this.processManager.killProcess(pid);
432
- return {
433
- content: [
434
- {
435
- type: 'text',
436
- text: JSON.stringify({
437
- success: killed,
438
- pid,
439
- message: killed
440
- ? `Process ${pid} killed successfully`
441
- : `Failed to kill process ${pid}`,
442
- }, null, 2),
443
- },
444
- ],
445
- };
446
- }
447
- catch (error) {
448
- logger.error('Process kill failed:', error);
449
- return {
450
- content: [
451
- {
452
- type: 'text',
453
- text: JSON.stringify({
454
- success: false,
455
- error: error instanceof Error ? error.message : String(error),
456
- }, null, 2),
457
- },
458
- ],
459
- };
460
- }
461
- }
2
+ import { ProcessHandlersCore } from './handlers.base.process.js';
3
+ import { validatePid, requireString, requirePositiveNumber, normalizePatternType, getOptionalPid, getOptionalString, getOptionalPositiveNumber, getWriteSize, } from './handlers.base.types.js';
4
+ export { validatePid, requireString, requirePositiveNumber } from './handlers.base.types.js';
5
+ export class ProcessHandlersBase extends ProcessHandlersCore {
462
6
  async handleMemoryRead(args) {
463
7
  const startedAt = Date.now();
464
8
  try {
@@ -615,7 +159,7 @@ export class ProcessHandlersBase {
615
159
  reason: availability.reason,
616
160
  platform: this.platform,
617
161
  requestedAddress: address,
618
- dataLength: data != null ? data.length : 0,
162
+ dataLength: data !== undefined && data !== null ? data.length : 0,
619
163
  encoding,
620
164
  pid,
621
165
  diagnostics,
@@ -709,6 +253,7 @@ export class ProcessHandlersBase {
709
253
  const pid = validatePid(args.pid);
710
254
  const pattern = requireString(args.pattern, 'pattern');
711
255
  const patternType = normalizePatternType(args.patternType);
256
+ const suspendTarget = args.suspendTarget === true;
712
257
  const availability = await this.memoryManager.checkAvailability();
713
258
  if (!availability.available) {
714
259
  const errorMessage = availability.reason ?? 'Memory operations not available';
@@ -744,7 +289,7 @@ export class ProcessHandlersBase {
744
289
  ],
745
290
  };
746
291
  }
747
- const result = await this.memoryManager.scanMemory(pid, pattern, patternType);
292
+ const result = await this.memoryManager.scanMemory(pid, pattern, patternType, suspendTarget);
748
293
  const diagnostics = !result.success
749
294
  ? await this.safeBuildMemoryDiagnostics({
750
295
  pid,
@@ -0,0 +1,61 @@
1
+ import { UnifiedProcessManager, MemoryManager } from '../../domains/shared/modules.js';
2
+ import { MemoryAuditTrail } from '../../../modules/process/memory/AuditTrail.js';
3
+ import { type MemoryDiagnosticsInput, type MemoryDiagnostics, type AuditEntry } from './handlers.base.types.js';
4
+ export declare class ProcessHandlersCore {
5
+ protected processManager: UnifiedProcessManager;
6
+ protected memoryManager: MemoryManager;
7
+ protected platform: string;
8
+ protected auditTrail: MemoryAuditTrail;
9
+ constructor();
10
+ protected buildMemoryDiagnostics(input: MemoryDiagnosticsInput): Promise<MemoryDiagnostics>;
11
+ protected safeBuildMemoryDiagnostics(input: {
12
+ pid?: number;
13
+ address?: string;
14
+ size?: number;
15
+ operation: string;
16
+ error?: string;
17
+ }): Promise<unknown>;
18
+ protected recordMemoryAudit(entry: Omit<AuditEntry, 'timestamp' | 'user'>): void;
19
+ handleProcessFind(args: Record<string, unknown>): Promise<{
20
+ content: {
21
+ type: string;
22
+ text: string;
23
+ }[];
24
+ }>;
25
+ handleProcessGet(args: Record<string, unknown>): Promise<{
26
+ content: {
27
+ type: string;
28
+ text: string;
29
+ }[];
30
+ }>;
31
+ handleProcessWindows(args: Record<string, unknown>): Promise<{
32
+ content: {
33
+ type: string;
34
+ text: string;
35
+ }[];
36
+ }>;
37
+ handleProcessFindChromium(_args: Record<string, unknown>): Promise<{
38
+ content: {
39
+ type: string;
40
+ text: string;
41
+ }[];
42
+ }>;
43
+ handleProcessCheckDebugPort(args: Record<string, unknown>): Promise<{
44
+ content: {
45
+ type: string;
46
+ text: string;
47
+ }[];
48
+ }>;
49
+ handleProcessLaunchDebug(args: Record<string, unknown>): Promise<{
50
+ content: {
51
+ type: string;
52
+ text: string;
53
+ }[];
54
+ }>;
55
+ handleProcessKill(args: Record<string, unknown>): Promise<{
56
+ content: {
57
+ type: string;
58
+ text: string;
59
+ }[];
60
+ }>;
61
+ }