@jshookmcp/jshook 0.2.3 → 0.2.6

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 (583) hide show
  1. package/README.md +14 -5
  2. package/README.zh.md +18 -3
  3. package/dist/packages/extension-sdk/src/bridges/shared.js +2 -2
  4. package/dist/packages/extension-sdk/src/plugin.d.ts +5 -0
  5. package/dist/packages/extension-sdk/src/plugin.js +119 -33
  6. package/dist/packages/extension-sdk/src/workflow.d.ts +171 -0
  7. package/dist/packages/extension-sdk/src/workflow.js +272 -0
  8. package/dist/src/config/search-defaults.js +161 -0
  9. package/dist/src/constants.d.ts +3 -0
  10. package/dist/src/constants.js +4 -1
  11. package/dist/src/index.d.ts +1 -1
  12. package/dist/src/index.js +13 -17
  13. package/dist/src/modules/analyzer/CodeAnalyzer.d.ts +1 -3
  14. package/dist/src/modules/analyzer/CodeAnalyzer.js +16 -28
  15. package/dist/src/modules/analyzer/CodeAnalyzerDataFlow.d.ts +1 -2
  16. package/dist/src/modules/analyzer/CodeAnalyzerDataFlow.js +1 -45
  17. package/dist/src/modules/analyzer/IntelligentAnalyzer.d.ts +1 -37
  18. package/dist/src/modules/analyzer/IntelligentAnalyzer.js +9 -142
  19. package/dist/src/modules/analyzer/PatternDetector.js +3 -3
  20. package/dist/src/modules/analyzer/PatternDetectorAuthPatterns.js +1 -1
  21. package/dist/src/modules/browser/BrowserDiscovery.js +2 -2
  22. package/dist/src/modules/browser/BrowserModeManager.js +11 -10
  23. package/dist/src/modules/browser/BrowserPool.d.ts +49 -0
  24. package/dist/src/modules/browser/BrowserPool.js +288 -0
  25. package/dist/src/modules/browser/TabRegistry.js +2 -2
  26. package/dist/src/modules/browser/UnifiedBrowserManager.d.ts +1 -0
  27. package/dist/src/modules/browser/UnifiedBrowserManager.js +18 -3
  28. package/dist/src/modules/captcha/AICaptchaDetector.d.ts +1 -10
  29. package/dist/src/modules/captcha/AICaptchaDetector.js +7 -201
  30. package/dist/src/modules/collector/CodeCollector.js +4 -5
  31. package/dist/src/modules/collector/DOMInspector.js +48 -58
  32. package/dist/src/modules/collector/PageController.d.ts +17 -4
  33. package/dist/src/modules/collector/PageController.js +2 -5
  34. package/dist/src/modules/collector/PageScriptCollectors.js +3 -3
  35. package/dist/src/modules/crypto/CryptoDetector.d.ts +1 -4
  36. package/dist/src/modules/crypto/CryptoDetector.js +2 -42
  37. package/dist/src/modules/crypto/CryptoRules.js +1 -1
  38. package/dist/src/modules/debugger/BlackboxManager.js +1 -1
  39. package/dist/src/modules/debugger/DebuggerManager.impl.core.scope.js +1 -1
  40. package/dist/src/modules/debugger/ScriptManager.impl.extract-function-tree.js +4 -2
  41. package/dist/src/modules/debugger/WatchExpressionManager.js +1 -1
  42. package/dist/src/modules/deobfuscator/AdvancedDeobfuscator.d.ts +5 -0
  43. package/dist/src/modules/deobfuscator/AdvancedDeobfuscator.js +43 -2
  44. package/dist/src/modules/deobfuscator/Deobfuscator.d.ts +1 -4
  45. package/dist/src/modules/deobfuscator/Deobfuscator.js +9 -39
  46. package/dist/src/modules/deobfuscator/JSVMPDeobfuscator.d.ts +0 -3
  47. package/dist/src/modules/deobfuscator/JSVMPDeobfuscator.js +2 -8
  48. package/dist/src/modules/deobfuscator/JSVMPDeobfuscator.restore.d.ts +1 -2
  49. package/dist/src/modules/deobfuscator/JSVMPDeobfuscator.restore.js +3 -55
  50. package/dist/src/modules/deobfuscator/JScramblerDeobfuscator.js +3 -4
  51. package/dist/src/modules/deobfuscator/VMDeobfuscator.d.ts +2 -10
  52. package/dist/src/modules/deobfuscator/VMDeobfuscator.js +3 -128
  53. package/dist/src/modules/deobfuscator/webcrack.js +15 -2
  54. package/dist/src/modules/emulator/AIEnvironmentAnalyzer.d.ts +5 -8
  55. package/dist/src/modules/emulator/AIEnvironmentAnalyzer.js +10 -102
  56. package/dist/src/modules/emulator/EnvironmentEmulator.d.ts +1 -5
  57. package/dist/src/modules/emulator/EnvironmentEmulator.js +7 -91
  58. package/dist/src/modules/emulator/EnvironmentEmulatorFetch.js +58 -61
  59. package/dist/src/modules/emulator/templates/chrome-env.d.ts +17 -7
  60. package/dist/src/modules/emulator/templates/chrome-env.js +14 -7
  61. package/dist/src/modules/external/ExternalToolRunner.js +25 -22
  62. package/dist/src/modules/hook/HookGeneratorBuilders.core.generators.compose.js +5 -5
  63. package/dist/src/modules/hook/HookGeneratorBuilders.core.generators.network.js +311 -311
  64. package/dist/src/modules/hook/HookGeneratorBuilders.core.generators.runtime.js +410 -410
  65. package/dist/src/modules/hook/HookGeneratorBuilders.core.generators.storage.js +122 -122
  66. package/dist/src/modules/monitor/ConsoleMonitor.impl.core.class.d.ts +13 -0
  67. package/dist/src/modules/monitor/ConsoleMonitor.impl.core.class.js +42 -0
  68. package/dist/src/modules/monitor/ConsoleMonitor.impl.core.dynamic.js +194 -194
  69. package/dist/src/modules/monitor/FetchInterceptor.d.ts +46 -0
  70. package/dist/src/modules/monitor/FetchInterceptor.js +191 -0
  71. package/dist/src/modules/monitor/PerformanceMonitor.js +8 -7
  72. package/dist/src/modules/monitor/PlaywrightNetworkMonitor.js +62 -62
  73. package/dist/src/modules/process/BaseMemoryManager.d.ts +1 -1
  74. package/dist/src/modules/process/LinuxProcessManager.js +2 -0
  75. package/dist/src/modules/process/MacProcessManager.js +25 -25
  76. package/dist/src/modules/process/MemoryManager.d.ts +1 -1
  77. package/dist/src/modules/process/MemoryManager.js +2 -2
  78. package/dist/src/modules/process/memory/AuditTrail.js +1 -1
  79. package/dist/src/modules/process/memory/availability.js +49 -49
  80. package/dist/src/modules/process/memory/injector.js +185 -185
  81. package/dist/src/modules/process/memory/reader.js +85 -53
  82. package/dist/src/modules/process/memory/regions.dump.js +51 -51
  83. package/dist/src/modules/process/memory/regions.enumerate.js +108 -108
  84. package/dist/src/modules/process/memory/regions.modules.js +80 -80
  85. package/dist/src/modules/process/memory/regions.protection.js +148 -115
  86. package/dist/src/modules/process/memory/scanner.d.ts +5 -1
  87. package/dist/src/modules/process/memory/scanner.darwin.js +98 -41
  88. package/dist/src/modules/process/memory/scanner.js +88 -4
  89. package/dist/src/modules/process/memory/scanner.windows.js +124 -124
  90. package/dist/src/modules/process/memory/writer.js +98 -58
  91. package/dist/src/modules/security/ExecutionSandbox.js +51 -52
  92. package/dist/src/modules/stealth/FingerprintManager.js +1 -1
  93. package/dist/src/modules/stealth/StealthScripts.d.ts +1 -0
  94. package/dist/src/modules/stealth/StealthScripts.js +18 -13
  95. package/dist/src/modules/stealth/StealthVerifier.js +1 -3
  96. package/dist/src/modules/symbolic/JSVMPSymbolicExecutor.d.ts +14 -0
  97. package/dist/src/modules/symbolic/JSVMPSymbolicExecutor.js +181 -2
  98. package/dist/src/modules/trace/TraceDB.js +75 -69
  99. package/dist/src/modules/trace/TraceRecorder.js +1 -5
  100. package/dist/src/native/AntiCheatDetector.js +67 -16
  101. package/dist/src/native/CodeInjector.js +3 -3
  102. package/dist/src/native/HardwareBreakpoint.js +24 -15
  103. package/dist/src/native/HeapAnalyzer.js +2 -2
  104. package/dist/src/native/MemoryController.js +1 -1
  105. package/dist/src/native/MemoryScanSession.js +2 -2
  106. package/dist/src/native/MemoryScanner.js +4 -8
  107. package/dist/src/native/NativeMemoryManager.impl.js +2 -2
  108. package/dist/src/native/PEAnalyzer.js +14 -15
  109. package/dist/src/native/PointerChainEngine.js +2 -4
  110. package/dist/src/native/ScriptLoader.js +4 -9
  111. package/dist/src/native/Speedhack.js +1 -1
  112. package/dist/src/native/StructureAnalyzer.js +52 -33
  113. package/dist/src/native/Win32API.d.ts +1 -0
  114. package/dist/src/native/Win32API.js +13 -0
  115. package/dist/src/native/Win32Debug.js +19 -19
  116. package/dist/src/native/platform/darwin/DarwinAPI.d.ts +2 -0
  117. package/dist/src/native/platform/darwin/DarwinAPI.js +8 -0
  118. package/dist/src/native/platform/darwin/DarwinMemoryProvider.js +6 -1
  119. package/dist/src/server/MCPServer.context.d.ts +3 -1
  120. package/dist/src/server/MCPServer.d.ts +2 -1
  121. package/dist/src/server/MCPServer.domain.d.ts +1 -1
  122. package/dist/src/server/MCPServer.domain.js +81 -16
  123. package/dist/src/server/MCPServer.js +41 -14
  124. package/dist/src/server/MCPServer.resources.d.ts +2 -0
  125. package/dist/src/server/MCPServer.resources.js +91 -0
  126. package/dist/src/server/MCPServer.search.handlers.call.js +2 -1
  127. package/dist/src/server/MCPServer.search.helpers.js +1 -1
  128. package/dist/src/server/MCPServer.transport.js +12 -0
  129. package/dist/src/server/ToolCallContextGuard.js +8 -0
  130. package/dist/src/server/ToolRouter.d.ts +25 -9
  131. package/dist/src/server/ToolRouter.intent.d.ts +26 -0
  132. package/dist/src/server/ToolRouter.intent.js +77 -0
  133. package/dist/src/server/ToolRouter.js +103 -284
  134. package/dist/src/server/ToolRouter.policy.d.ts +22 -0
  135. package/dist/src/server/ToolRouter.policy.js +163 -0
  136. package/dist/src/server/ToolRouter.probe.d.ts +17 -0
  137. package/dist/src/server/ToolRouter.probe.js +103 -0
  138. package/dist/src/server/ToolRouter.renderer.d.ts +9 -0
  139. package/dist/src/server/ToolRouter.renderer.js +52 -0
  140. package/dist/src/server/activation/ActivationController.js +15 -12
  141. package/dist/src/server/activation/CompoundConditionEngine.js +1 -1
  142. package/dist/src/server/activation/PredictiveBooster.js +1 -3
  143. package/dist/src/server/domains/analysis/definitions.js +155 -655
  144. package/dist/src/server/domains/analysis/handlers.impl.js +26 -20
  145. package/dist/src/server/domains/analysis/handlers.web-tools.js +2 -1
  146. package/dist/src/server/domains/analysis/manifest.js +6 -4
  147. package/dist/src/server/domains/antidebug/definitions.js +25 -111
  148. package/dist/src/server/domains/browser/definitions.tools.advanced.js +59 -88
  149. package/dist/src/server/domains/browser/definitions.tools.behavior.js +120 -227
  150. package/dist/src/server/domains/browser/definitions.tools.page-core.js +210 -439
  151. package/dist/src/server/domains/browser/definitions.tools.page-system.js +108 -250
  152. package/dist/src/server/domains/browser/definitions.tools.runtime.js +98 -211
  153. package/dist/src/server/domains/browser/definitions.tools.security.js +194 -339
  154. package/dist/src/server/domains/browser/handlers/camoufox-browser.js +3 -2
  155. package/dist/src/server/domains/browser/handlers/captcha-solver.js +3 -3
  156. package/dist/src/server/domains/browser/handlers/dom-query.js +2 -1
  157. package/dist/src/server/domains/browser/handlers/framework-state.js +27 -9
  158. package/dist/src/server/domains/browser/handlers/indexeddb-dump.js +21 -20
  159. package/dist/src/server/domains/browser/handlers/script-management.js +1 -1
  160. package/dist/src/server/domains/browser/handlers/stealth-injection.d.ts +1 -0
  161. package/dist/src/server/domains/browser/handlers/stealth-injection.js +3 -0
  162. package/dist/src/server/domains/browser/handlers.impl.d.ts +1 -2
  163. package/dist/src/server/domains/browser/handlers.impl.js +2 -3
  164. package/dist/src/server/domains/browser/manifest.js +37 -13
  165. package/dist/src/server/domains/coordination/definitions.js +50 -216
  166. package/dist/src/server/domains/coordination/index.d.ts +2 -1
  167. package/dist/src/server/domains/coordination/index.js +1 -0
  168. package/dist/src/server/domains/debugger/definitions.tools.advanced.js +72 -189
  169. package/dist/src/server/domains/debugger/definitions.tools.core.js +114 -288
  170. package/dist/src/server/domains/debugger/manifest.js +9 -2
  171. package/dist/src/server/domains/encoding/definitions.js +43 -153
  172. package/dist/src/server/domains/encoding/handlers.base.js +2 -2
  173. package/dist/src/server/domains/evidence/definitions.d.ts +2 -0
  174. package/dist/src/server/domains/evidence/definitions.js +42 -0
  175. package/dist/src/server/domains/evidence/handlers.d.ts +582 -0
  176. package/dist/src/server/domains/evidence/handlers.js +60 -0
  177. package/dist/src/server/domains/evidence/index.d.ts +2 -0
  178. package/dist/src/server/domains/evidence/index.js +2 -0
  179. package/dist/src/server/domains/evidence/manifest.d.ts +63 -0
  180. package/dist/src/server/domains/evidence/manifest.js +78 -0
  181. package/dist/src/server/domains/graphql/definitions.js +53 -141
  182. package/dist/src/server/domains/graphql/handlers.impl.core.runtime.replay.js +92 -114
  183. package/dist/src/server/domains/graphql/handlers.impl.core.runtime.shared.js +77 -77
  184. package/dist/src/server/domains/hooks/ai-handlers.d.ts +0 -7
  185. package/dist/src/server/domains/hooks/ai-handlers.js +1 -67
  186. package/dist/src/server/domains/hooks/definitions.js +69 -335
  187. package/dist/src/server/domains/hooks/manifest.d.ts +1 -1
  188. package/dist/src/server/domains/hooks/manifest.js +1 -2
  189. package/dist/src/server/domains/instrumentation/definitions.d.ts +2 -0
  190. package/dist/src/server/domains/instrumentation/definitions.js +99 -0
  191. package/dist/src/server/domains/instrumentation/handlers.d.ts +78 -0
  192. package/dist/src/server/domains/instrumentation/handlers.js +206 -0
  193. package/dist/src/server/domains/instrumentation/index.d.ts +2 -0
  194. package/dist/src/server/domains/instrumentation/index.js +2 -0
  195. package/dist/src/server/domains/instrumentation/manifest.d.ts +63 -0
  196. package/dist/src/server/domains/instrumentation/manifest.js +114 -0
  197. package/dist/src/server/domains/macro/definitions.js +16 -43
  198. package/dist/src/server/domains/maintenance/definitions.js +60 -219
  199. package/dist/src/server/domains/maintenance/handlers.extensions.js +78 -20
  200. package/dist/src/server/domains/memory/definitions.js +387 -559
  201. package/dist/src/server/domains/memory/handlers/hooks.d.ts +55 -0
  202. package/dist/src/server/domains/memory/handlers/hooks.js +115 -0
  203. package/dist/src/server/domains/memory/handlers/integrity.d.ts +77 -0
  204. package/dist/src/server/domains/memory/handlers/integrity.js +180 -0
  205. package/dist/src/server/domains/memory/handlers/pointer-chain.d.ts +29 -0
  206. package/dist/src/server/domains/memory/handlers/pointer-chain.js +82 -0
  207. package/dist/src/server/domains/memory/handlers/readwrite.d.ts +41 -0
  208. package/dist/src/server/domains/memory/handlers/readwrite.js +78 -0
  209. package/dist/src/server/domains/memory/handlers/scan.d.ts +35 -0
  210. package/dist/src/server/domains/memory/handlers/scan.js +97 -0
  211. package/dist/src/server/domains/memory/handlers/session.d.ts +23 -0
  212. package/dist/src/server/domains/memory/handlers/session.js +49 -0
  213. package/dist/src/server/domains/memory/handlers/structure.d.ts +29 -0
  214. package/dist/src/server/domains/memory/handlers/structure.js +74 -0
  215. package/dist/src/server/domains/memory/handlers.impl.d.ts +49 -54
  216. package/dist/src/server/domains/memory/handlers.impl.js +63 -494
  217. package/dist/src/server/domains/memory/manifest.js +236 -64
  218. package/dist/src/server/domains/native-bridge/definitions.js +54 -192
  219. package/dist/src/server/domains/native-bridge/index.d.ts +1 -0
  220. package/dist/src/server/domains/native-bridge/index.js +2 -1
  221. package/dist/src/server/domains/network/auth-extractor.js +1 -1
  222. package/dist/src/server/domains/network/definitions.js +175 -578
  223. package/dist/src/server/domains/network/handlers.base.core.d.ts +64 -0
  224. package/dist/src/server/domains/network/handlers.base.core.js +623 -0
  225. package/dist/src/server/domains/network/handlers.base.d.ts +2 -124
  226. package/dist/src/server/domains/network/handlers.base.js +3 -878
  227. package/dist/src/server/domains/network/handlers.base.performance.d.ts +63 -0
  228. package/dist/src/server/domains/network/handlers.base.performance.js +193 -0
  229. package/dist/src/server/domains/network/handlers.base.types.d.ts +42 -0
  230. package/dist/src/server/domains/network/handlers.base.types.js +89 -0
  231. package/dist/src/server/domains/network/handlers.impl.core.runtime.d.ts +1 -1
  232. package/dist/src/server/domains/network/handlers.impl.core.runtime.intercept.d.ts +21 -0
  233. package/dist/src/server/domains/network/handlers.impl.core.runtime.intercept.js +186 -0
  234. package/dist/src/server/domains/network/handlers.impl.core.runtime.js +1 -1
  235. package/dist/src/server/domains/network/manifest.js +15 -0
  236. package/dist/src/server/domains/network/replay.js +1 -4
  237. package/dist/src/server/domains/platform/definitions.js +121 -112
  238. package/dist/src/server/domains/platform/handlers/bridge-handlers.d.ts +4 -0
  239. package/dist/src/server/domains/platform/handlers/bridge-handlers.js +193 -4
  240. package/dist/src/server/domains/platform/handlers/electron-asar-helpers.js +26 -6
  241. package/dist/src/server/domains/platform/handlers/electron-dual-cdp.d.ts +3 -0
  242. package/dist/src/server/domains/platform/handlers/electron-dual-cdp.js +170 -0
  243. package/dist/src/server/domains/platform/handlers/electron-fuse-handler.d.ts +3 -0
  244. package/dist/src/server/domains/platform/handlers/electron-fuse-handler.js +193 -0
  245. package/dist/src/server/domains/platform/handlers/electron-handlers.d.ts +6 -0
  246. package/dist/src/server/domains/platform/handlers/electron-handlers.js +95 -2
  247. package/dist/src/server/domains/platform/handlers/electron-ipc-sniffer.d.ts +2 -0
  248. package/dist/src/server/domains/platform/handlers/electron-ipc-sniffer.js +370 -0
  249. package/dist/src/server/domains/platform/handlers/electron-userdata-handler.d.ts +2 -0
  250. package/dist/src/server/domains/platform/handlers/electron-userdata-handler.js +78 -0
  251. package/dist/src/server/domains/platform/handlers/miniapp-handlers.js +3 -3
  252. package/dist/src/server/domains/platform/handlers/v8-bytecode-handler.d.ts +2 -0
  253. package/dist/src/server/domains/platform/handlers/v8-bytecode-handler.js +207 -0
  254. package/dist/src/server/domains/platform/handlers.d.ts +48 -0
  255. package/dist/src/server/domains/platform/handlers.js +29 -0
  256. package/dist/src/server/domains/platform/manifest.js +38 -0
  257. package/dist/src/server/domains/process/definitions.js +163 -647
  258. package/dist/src/server/domains/process/handlers.base.d.ts +3 -95
  259. package/dist/src/server/domains/process/handlers.base.js +7 -462
  260. package/dist/src/server/domains/process/handlers.base.process.d.ts +61 -0
  261. package/dist/src/server/domains/process/handlers.base.process.js +417 -0
  262. package/dist/src/server/domains/process/handlers.base.types.d.ts +57 -0
  263. package/dist/src/server/domains/process/handlers.base.types.js +50 -0
  264. package/dist/src/server/domains/process/handlers.impl.core.runtime.inject.js +18 -16
  265. package/dist/src/server/domains/process/manifest.js +6 -1
  266. package/dist/src/server/domains/sandbox/definitions.js +11 -33
  267. package/dist/src/server/domains/sandbox/handlers.js +8 -3
  268. package/dist/src/server/domains/shared/ResponseBuilder.d.ts +209 -0
  269. package/dist/src/server/domains/shared/ResponseBuilder.js +48 -0
  270. package/dist/src/server/domains/shared/modules.d.ts +0 -2
  271. package/dist/src/server/domains/shared/modules.js +0 -1
  272. package/dist/src/server/domains/shared-state-board/definitions.d.ts +2 -0
  273. package/dist/src/server/domains/shared-state-board/definitions.js +78 -0
  274. package/dist/src/server/domains/shared-state-board/handlers.impl.d.ts +58 -0
  275. package/dist/src/server/domains/shared-state-board/handlers.impl.js +419 -0
  276. package/dist/src/server/domains/shared-state-board/index.d.ts +2 -0
  277. package/dist/src/server/domains/shared-state-board/index.js +2 -0
  278. package/dist/src/server/domains/shared-state-board/manifest.d.ts +57 -0
  279. package/dist/src/server/domains/shared-state-board/manifest.js +74 -0
  280. package/dist/src/server/domains/sourcemap/definitions.js +27 -111
  281. package/dist/src/server/domains/sourcemap/handlers.impl.sourcemap-common.js +7 -2
  282. package/dist/src/server/domains/sourcemap/handlers.impl.sourcemap-main.js +1 -1
  283. package/dist/src/server/domains/sourcemap/handlers.impl.sourcemap-parse-base.js +1 -1
  284. package/dist/src/server/domains/sourcemap/manifest.d.ts +1 -1
  285. package/dist/src/server/domains/sourcemap/manifest.js +1 -1
  286. package/dist/src/server/domains/streaming/definitions.js +36 -148
  287. package/dist/src/server/domains/streaming/handlers.impl.streaming-sse.js +163 -164
  288. package/dist/src/server/domains/streaming/handlers.impl.streaming-ws.js +1 -1
  289. package/dist/src/server/domains/trace/TraceSummarizer.js +8 -5
  290. package/dist/src/server/domains/trace/definitions.tools.js +51 -206
  291. package/dist/src/server/domains/trace/handlers.js +10 -12
  292. package/dist/src/server/domains/trace/index.d.ts +2 -1
  293. package/dist/src/server/domains/trace/index.js +2 -1
  294. package/dist/src/server/domains/trace/manifest.js +15 -3
  295. package/dist/src/server/domains/transform/definitions.js +50 -210
  296. package/dist/src/server/domains/transform/handlers.impl.transform-base.js +108 -108
  297. package/dist/src/server/domains/transform/handlers.impl.transform-crypto.js +18 -19
  298. package/dist/src/server/domains/transform/manifest.d.ts +1 -1
  299. package/dist/src/server/domains/transform/manifest.js +1 -1
  300. package/dist/src/server/domains/wasm/definitions.js +55 -232
  301. package/dist/src/server/domains/wasm/handlers.js +1 -1
  302. package/dist/src/server/domains/workflow/definitions.js +144 -414
  303. package/dist/src/server/domains/workflow/handlers.impl.workflow-account-bundle.js +1 -1
  304. package/dist/src/server/domains/workflow/handlers.impl.workflow-api.js +51 -51
  305. package/dist/src/server/domains/workflow/handlers.impl.workflow-base.d.ts +2 -0
  306. package/dist/src/server/domains/workflow/handlers.impl.workflow-base.js +126 -87
  307. package/dist/src/server/domains/workflow/handlers.impl.workflow-batch.js +5 -5
  308. package/dist/src/server/evidence/ReverseEvidenceGraph.d.ts +20 -0
  309. package/dist/src/server/evidence/ReverseEvidenceGraph.js +208 -0
  310. package/dist/src/server/evidence/index.d.ts +2 -0
  311. package/dist/src/server/evidence/index.js +1 -0
  312. package/dist/src/server/evidence/types.d.ts +22 -0
  313. package/dist/src/server/evidence/types.js +1 -0
  314. package/dist/src/server/extensions/ExtensionManager.d.ts +1 -0
  315. package/dist/src/server/extensions/ExtensionManager.discovery.js +72 -9
  316. package/dist/src/server/extensions/ExtensionManager.integrity.js +1 -1
  317. package/dist/src/server/extensions/ExtensionManager.js +193 -40
  318. package/dist/src/server/extensions/ExtensionManager.roots.d.ts +1 -1
  319. package/dist/src/server/extensions/ExtensionManager.roots.js +4 -4
  320. package/dist/src/server/extensions/plugin-config.js +1 -1
  321. package/dist/src/server/extensions/plugin-env.d.ts +1 -1
  322. package/dist/src/server/extensions/plugin-env.js +10 -4
  323. package/dist/src/server/extensions/types.d.ts +17 -0
  324. package/dist/src/server/extensions/types.js +1 -1
  325. package/dist/src/server/http/SseStream.d.ts +21 -0
  326. package/dist/src/server/http/SseStream.js +129 -0
  327. package/dist/src/server/instrumentation/EvidenceGraphBridge.d.ts +13 -0
  328. package/dist/src/server/instrumentation/EvidenceGraphBridge.js +150 -0
  329. package/dist/src/server/instrumentation/InstrumentationSession.d.ts +60 -0
  330. package/dist/src/server/instrumentation/InstrumentationSession.js +269 -0
  331. package/dist/src/server/instrumentation/index.d.ts +2 -0
  332. package/dist/src/server/instrumentation/index.js +2 -0
  333. package/dist/src/server/instrumentation/types.d.ts +62 -0
  334. package/dist/src/server/instrumentation/types.js +7 -0
  335. package/dist/src/server/macros/MacroConfigLoader.d.ts +6 -5
  336. package/dist/src/server/macros/MacroConfigLoader.js +61 -59
  337. package/dist/src/server/macros/MacroRunner.js +6 -2
  338. package/dist/src/server/macros/builtins/index.d.ts +2 -3
  339. package/dist/src/server/macros/builtins/index.js +51 -7
  340. package/dist/src/server/plugins/PluginContract.d.ts +1 -1
  341. package/dist/src/server/registry/contracts.d.ts +1 -1
  342. package/dist/src/server/registry/discovery.js +5 -4
  343. package/dist/src/server/registry/ensure-browser-core.js +0 -3
  344. package/dist/src/server/registry/index.js +4 -4
  345. package/dist/src/server/registry/tool-builder.d.ts +46 -0
  346. package/dist/src/server/registry/tool-builder.js +105 -0
  347. package/dist/src/server/sandbox/QuickJSSandbox.js +16 -5
  348. package/dist/src/server/sandbox/SandboxHelpers.js +250 -250
  349. package/dist/src/server/search/EmbeddingWorker.js +5 -3
  350. package/dist/src/server/search/FeedbackTracker.d.ts +9 -0
  351. package/dist/src/server/search/FeedbackTracker.js +26 -0
  352. package/dist/src/server/search/QueryNormalizer.d.ts +6 -0
  353. package/dist/src/server/search/QueryNormalizer.js +94 -0
  354. package/dist/src/server/search/ToolSearchEngineImpl.d.ts +2 -3
  355. package/dist/src/server/search/ToolSearchEngineImpl.js +38 -88
  356. package/dist/src/server/teams/TeamManager.d.ts +43 -0
  357. package/dist/src/server/teams/TeamManager.js +238 -0
  358. package/dist/src/server/teams/index.d.ts +1 -0
  359. package/dist/src/server/teams/index.js +1 -0
  360. package/dist/src/server/workflows/WorkflowContract.d.ts +44 -4
  361. package/dist/src/server/workflows/WorkflowContract.js +52 -0
  362. package/dist/src/server/workflows/WorkflowEngine.d.ts +1 -0
  363. package/dist/src/server/workflows/WorkflowEngine.js +314 -4
  364. package/dist/src/types/config.d.ts +0 -14
  365. package/dist/src/types/deobfuscator.d.ts +1 -1
  366. package/dist/src/types/index.d.ts +1 -1
  367. package/dist/src/utils/DetailedDataManager.js +2 -0
  368. package/dist/src/utils/RingBuffer.js +5 -5
  369. package/dist/src/utils/TokenBudgetManager.js +1 -1
  370. package/dist/src/utils/UnifiedCacheManager.js +1 -1
  371. package/dist/src/utils/artifactRetention.js +2 -2
  372. package/dist/src/utils/betterSqlite3.d.ts +11 -0
  373. package/dist/src/utils/betterSqlite3.js +88 -0
  374. package/dist/src/utils/browserExecutable.js +2 -2
  375. package/dist/src/utils/cache/CachedDecorator.d.ts +8 -0
  376. package/dist/src/utils/cache/CachedDecorator.js +55 -0
  377. package/dist/src/utils/cache/PersistentCache.d.ts +33 -0
  378. package/dist/src/utils/cache/PersistentCache.js +246 -0
  379. package/dist/src/utils/cache/index.d.ts +2 -0
  380. package/dist/src/utils/cache/index.js +2 -0
  381. package/dist/src/utils/cliFastPath.js +5 -8
  382. package/dist/src/utils/config.js +4 -26
  383. package/dist/src/utils/environmentDoctor.js +138 -11
  384. package/dist/src/utils/outputPaths.js +16 -9
  385. package/dist/src/utils/parallel.js +1 -3
  386. package/package.json +82 -81
  387. package/scripts/postinstall.cjs +54 -27
  388. package/workflows/.gitkeep +0 -0
  389. package/workflows/anti-bot-diagnoser/.jshook-install.json +14 -0
  390. package/workflows/anti-bot-diagnoser/LICENSE +21 -0
  391. package/workflows/anti-bot-diagnoser/README.md +105 -0
  392. package/workflows/anti-bot-diagnoser/docs/agent-recipes.md +44 -0
  393. package/workflows/anti-bot-diagnoser/meta.yaml +6 -0
  394. package/workflows/anti-bot-diagnoser/package.json +22 -0
  395. package/workflows/anti-bot-diagnoser/tsconfig.json +15 -0
  396. package/workflows/anti-bot-diagnoser/workflow.ts +224 -0
  397. package/workflows/api-openapi-probe/.jshook-install.json +14 -0
  398. package/workflows/api-openapi-probe/meta.yaml +6 -0
  399. package/workflows/api-openapi-probe/package.json +22 -0
  400. package/workflows/api-openapi-probe/pnpm-lock.yaml +819 -0
  401. package/workflows/api-openapi-probe/tsconfig.json +15 -0
  402. package/workflows/api-openapi-probe/workflow.ts +40 -0
  403. package/workflows/api-probe-batch/.jshook-install.json +14 -0
  404. package/workflows/api-probe-batch/LICENSE +21 -0
  405. package/workflows/api-probe-batch/README.md +45 -0
  406. package/workflows/api-probe-batch/meta.yaml +4 -0
  407. package/workflows/api-probe-batch/package.json +23 -0
  408. package/workflows/api-probe-batch/tsconfig.json +16 -0
  409. package/workflows/api-probe-batch/workflow.ts +111 -0
  410. package/workflows/auth-bootstrap/.jshook-install.json +14 -0
  411. package/workflows/auth-bootstrap/LICENSE +21 -0
  412. package/workflows/auth-bootstrap/README.md +74 -0
  413. package/workflows/auth-bootstrap/meta.yaml +4 -0
  414. package/workflows/auth-bootstrap/package.json +23 -0
  415. package/workflows/auth-bootstrap/tsconfig.json +16 -0
  416. package/workflows/auth-bootstrap/workflow.ts +141 -0
  417. package/workflows/auth-extract/.jshook-install.json +14 -0
  418. package/workflows/auth-extract/meta.yaml +6 -0
  419. package/workflows/auth-extract/package.json +22 -0
  420. package/workflows/auth-extract/pnpm-lock.yaml +819 -0
  421. package/workflows/auth-extract/tsconfig.json +15 -0
  422. package/workflows/auth-extract/workflow.ts +36 -0
  423. package/workflows/auth-surface-mapper/.jshook-install.json +14 -0
  424. package/workflows/auth-surface-mapper/meta.yaml +6 -0
  425. package/workflows/auth-surface-mapper/package.json +22 -0
  426. package/workflows/auth-surface-mapper/pnpm-lock.yaml +819 -0
  427. package/workflows/auth-surface-mapper/tsconfig.json +15 -0
  428. package/workflows/auth-surface-mapper/workflow.ts +104 -0
  429. package/workflows/batch-register/.jshook-install.json +14 -0
  430. package/workflows/batch-register/LICENSE +21 -0
  431. package/workflows/batch-register/README.md +39 -0
  432. package/workflows/batch-register/meta.yaml +4 -0
  433. package/workflows/batch-register/package.json +23 -0
  434. package/workflows/batch-register/tsconfig.json +16 -0
  435. package/workflows/batch-register/workflow.ts +67 -0
  436. package/workflows/bundle-recovery/.jshook-install.json +14 -0
  437. package/workflows/bundle-recovery/LICENSE +21 -0
  438. package/workflows/bundle-recovery/README.md +105 -0
  439. package/workflows/bundle-recovery/docs/agent-recipes.md +44 -0
  440. package/workflows/bundle-recovery/meta.yaml +6 -0
  441. package/workflows/bundle-recovery/package.json +22 -0
  442. package/workflows/bundle-recovery/tsconfig.json +15 -0
  443. package/workflows/bundle-recovery/workflow.ts +179 -0
  444. package/workflows/challenge-detector/.jshook-install.json +14 -0
  445. package/workflows/challenge-detector/meta.yaml +14 -0
  446. package/workflows/challenge-detector/package.json +22 -0
  447. package/workflows/challenge-detector/pnpm-lock.yaml +819 -0
  448. package/workflows/challenge-detector/tsconfig.json +15 -0
  449. package/workflows/challenge-detector/workflow.ts +298 -0
  450. package/workflows/deobfuscation-pipeline/.jshook-install.json +14 -0
  451. package/workflows/deobfuscation-pipeline/meta.yaml +6 -0
  452. package/workflows/deobfuscation-pipeline/package.json +22 -0
  453. package/workflows/deobfuscation-pipeline/pnpm-lock.yaml +819 -0
  454. package/workflows/deobfuscation-pipeline/tsconfig.json +15 -0
  455. package/workflows/deobfuscation-pipeline/workflow.ts +119 -0
  456. package/workflows/electron-bridge-mapper/.jshook-install.json +14 -0
  457. package/workflows/electron-bridge-mapper/meta.yaml +6 -0
  458. package/workflows/electron-bridge-mapper/package.json +22 -0
  459. package/workflows/electron-bridge-mapper/pnpm-lock.yaml +819 -0
  460. package/workflows/electron-bridge-mapper/tsconfig.json +15 -0
  461. package/workflows/electron-bridge-mapper/workflow.ts +125 -0
  462. package/workflows/evidence-pack/.jshook-install.json +14 -0
  463. package/workflows/evidence-pack/LICENSE +21 -0
  464. package/workflows/evidence-pack/README.md +105 -0
  465. package/workflows/evidence-pack/docs/agent-recipes.md +44 -0
  466. package/workflows/evidence-pack/meta.yaml +6 -0
  467. package/workflows/evidence-pack/package.json +22 -0
  468. package/workflows/evidence-pack/tsconfig.json +15 -0
  469. package/workflows/evidence-pack/workflow.ts +154 -0
  470. package/workflows/js-bundle-search/.jshook-install.json +14 -0
  471. package/workflows/js-bundle-search/LICENSE +21 -0
  472. package/workflows/js-bundle-search/README.md +46 -0
  473. package/workflows/js-bundle-search/meta.yaml +4 -0
  474. package/workflows/js-bundle-search/package.json +23 -0
  475. package/workflows/js-bundle-search/tsconfig.json +16 -0
  476. package/workflows/js-bundle-search/workflow.ts +118 -0
  477. package/workflows/protocol-registry/.jshook-install.json +14 -0
  478. package/workflows/protocol-registry/meta.yaml +6 -0
  479. package/workflows/protocol-registry/package.json +22 -0
  480. package/workflows/protocol-registry/pnpm-lock.yaml +819 -0
  481. package/workflows/protocol-registry/tsconfig.json +15 -0
  482. package/workflows/protocol-registry/workflow.ts +107 -0
  483. package/workflows/qwen-mail-open-latest/meta.yaml +7 -0
  484. package/workflows/qwen-mail-open-latest/package.json +22 -0
  485. package/workflows/qwen-mail-open-latest/pnpm-lock.yaml +819 -0
  486. package/workflows/qwen-mail-open-latest/tsconfig.json +15 -0
  487. package/workflows/qwen-mail-open-latest/workflow.ts +77 -0
  488. package/workflows/register-account-flow/.jshook-install.json +14 -0
  489. package/workflows/register-account-flow/LICENSE +21 -0
  490. package/workflows/register-account-flow/README.md +64 -0
  491. package/workflows/register-account-flow/meta.yaml +4 -0
  492. package/workflows/register-account-flow/package.json +23 -0
  493. package/workflows/register-account-flow/tsconfig.json +16 -0
  494. package/workflows/register-account-flow/workflow.ts +127 -0
  495. package/workflows/replay-lab/.jshook-install.json +14 -0
  496. package/workflows/replay-lab/meta.yaml +6 -0
  497. package/workflows/replay-lab/package.json +22 -0
  498. package/workflows/replay-lab/pnpm-lock.yaml +819 -0
  499. package/workflows/replay-lab/tsconfig.json +15 -0
  500. package/workflows/replay-lab/workflow.ts +106 -0
  501. package/workflows/script-evidence-scan/.jshook-install.json +14 -0
  502. package/workflows/script-evidence-scan/LICENSE +21 -0
  503. package/workflows/script-evidence-scan/README.md +61 -0
  504. package/workflows/script-evidence-scan/meta.yaml +4 -0
  505. package/workflows/script-evidence-scan/package.json +23 -0
  506. package/workflows/script-evidence-scan/tsconfig.json +16 -0
  507. package/workflows/script-evidence-scan/workflow.ts +89 -0
  508. package/workflows/signature-hunter/.jshook-install.json +14 -0
  509. package/workflows/signature-hunter/LICENSE +21 -0
  510. package/workflows/signature-hunter/README.md +105 -0
  511. package/workflows/signature-hunter/docs/agent-recipes.md +44 -0
  512. package/workflows/signature-hunter/meta.yaml +6 -0
  513. package/workflows/signature-hunter/package.json +22 -0
  514. package/workflows/signature-hunter/tsconfig.json +15 -0
  515. package/workflows/signature-hunter/workflow.ts +170 -0
  516. package/workflows/signing-lineage/.jshook-install.json +14 -0
  517. package/workflows/signing-lineage/meta.yaml +6 -0
  518. package/workflows/signing-lineage/package.json +22 -0
  519. package/workflows/signing-lineage/pnpm-lock.yaml +819 -0
  520. package/workflows/signing-lineage/tsconfig.json +15 -0
  521. package/workflows/signing-lineage/workflow.ts +120 -0
  522. package/workflows/temp-mail-extract-link/.jshook-install.json +14 -0
  523. package/workflows/temp-mail-extract-link/LICENSE +21 -0
  524. package/workflows/temp-mail-extract-link/README.md +71 -0
  525. package/workflows/temp-mail-extract-link/meta.yaml +4 -0
  526. package/workflows/temp-mail-extract-link/package.json +23 -0
  527. package/workflows/temp-mail-extract-link/tsconfig.json +16 -0
  528. package/workflows/temp-mail-extract-link/workflow.ts +221 -0
  529. package/workflows/temp-mail-open-latest/.jshook-install.json +14 -0
  530. package/workflows/temp-mail-open-latest/LICENSE +21 -0
  531. package/workflows/temp-mail-open-latest/README.md +61 -0
  532. package/workflows/temp-mail-open-latest/meta.yaml +4 -0
  533. package/workflows/temp-mail-open-latest/package.json +23 -0
  534. package/workflows/temp-mail-open-latest/tsconfig.json +16 -0
  535. package/workflows/temp-mail-open-latest/workflow.ts +136 -0
  536. package/workflows/template/.jshook-install.json +14 -0
  537. package/workflows/template/LICENSE +21 -0
  538. package/workflows/template/README.md +45 -0
  539. package/workflows/template/docs/SKILL.md +111 -0
  540. package/workflows/template/meta.yaml +6 -0
  541. package/workflows/template/package.json +22 -0
  542. package/workflows/template/pnpm-lock.yaml +819 -0
  543. package/workflows/template/tsconfig.json +15 -0
  544. package/workflows/template/workflow.ts +73 -0
  545. package/workflows/web-api-capture-session/.jshook-install.json +14 -0
  546. package/workflows/web-api-capture-session/LICENSE +21 -0
  547. package/workflows/web-api-capture-session/README.md +64 -0
  548. package/workflows/web-api-capture-session/meta.yaml +4 -0
  549. package/workflows/web-api-capture-session/package.json +23 -0
  550. package/workflows/web-api-capture-session/tsconfig.json +16 -0
  551. package/workflows/web-api-capture-session/workflow.ts +124 -0
  552. package/workflows/ws-protocol-lifter/.jshook-install.json +14 -0
  553. package/workflows/ws-protocol-lifter/LICENSE +21 -0
  554. package/workflows/ws-protocol-lifter/README.md +105 -0
  555. package/workflows/ws-protocol-lifter/docs/agent-recipes.md +44 -0
  556. package/workflows/ws-protocol-lifter/meta.yaml +6 -0
  557. package/workflows/ws-protocol-lifter/package.json +22 -0
  558. package/workflows/ws-protocol-lifter/tsconfig.json +15 -0
  559. package/workflows/ws-protocol-lifter/workflow.ts +163 -0
  560. package/dist/src/modules/analyzer/AISummarizer.d.ts +0 -39
  561. package/dist/src/modules/analyzer/AISummarizer.js +0 -122
  562. package/dist/src/modules/hook/AIHookGenerator.d.ts +0 -52
  563. package/dist/src/modules/hook/AIHookGenerator.js +0 -360
  564. package/dist/src/modules/hook/AIHookGeneratorTemplates.d.ts +0 -9
  565. package/dist/src/modules/hook/AIHookGeneratorTemplates.js +0 -157
  566. package/dist/src/server/macros/builtins/deobfuscate-ast-flow.d.ts +0 -2
  567. package/dist/src/server/macros/builtins/deobfuscate-ast-flow.js +0 -25
  568. package/dist/src/server/macros/builtins/unpacker-flow.d.ts +0 -2
  569. package/dist/src/server/macros/builtins/unpacker-flow.js +0 -25
  570. package/dist/src/services/LLMService.d.ts +0 -37
  571. package/dist/src/services/LLMService.js +0 -233
  572. package/dist/src/services/prompts/analysis.d.ts +0 -9
  573. package/dist/src/services/prompts/analysis.js +0 -158
  574. package/dist/src/services/prompts/crypto.d.ts +0 -2
  575. package/dist/src/services/prompts/crypto.js +0 -108
  576. package/dist/src/services/prompts/deobfuscation.d.ts +0 -6
  577. package/dist/src/services/prompts/deobfuscation.js +0 -300
  578. package/dist/src/services/prompts/environment.d.ts +0 -16
  579. package/dist/src/services/prompts/environment.js +0 -372
  580. package/dist/src/services/prompts/intelligence.d.ts +0 -4
  581. package/dist/src/services/prompts/intelligence.js +0 -250
  582. package/dist/src/services/prompts/taint.d.ts +0 -2
  583. package/dist/src/services/prompts/taint.js +0 -54
@@ -5,22 +5,30 @@ import { ToolRegistry } from '../modules/external/ToolRegistry.js';
5
5
  import { GHIDRA_BRIDGE_ENDPOINT, IDA_BRIDGE_ENDPOINT } from '../constants.js';
6
6
  import { getProjectRoot } from './outputPaths.js';
7
7
  import { getArtifactRetentionConfig } from './artifactRetention.js';
8
+ import { probeBetterSqlite3 } from './betterSqlite3.js';
8
9
  const execFileAsync = promisify(execFile);
9
10
  const require = createRequire(import.meta.url);
10
11
  export async function runEnvironmentDoctor(options) {
11
12
  const includeBridgeHealth = options?.includeBridgeHealth ?? true;
12
13
  const registry = new ToolRegistry();
13
14
  const externalResults = await registry.probeAll(true);
15
+ const gitCommand = await checkCommand('git', ['--version']);
16
+ const pythonCommand = await checkCommand('python', ['--version']);
17
+ const pnpmCommand = await checkPnpmCommand();
18
+ const corepackCommand = normalizeCorepackCheck(await checkCommand('corepack', ['--version']), pnpmCommand);
14
19
  const packages = [
15
20
  checkPackage('@modelcontextprotocol/sdk'),
16
21
  checkPackage('rebrowser-puppeteer-core'),
22
+ checkBetterSqlite3(),
17
23
  checkPackage('camoufox-js', 'Optional Firefox anti-detect driver'),
18
24
  checkPackage('playwright-core', 'Optional browser automation dependency'),
25
+ checkNativeMemory(),
19
26
  ];
20
27
  const commands = [
21
- await checkCommand('git', ['--version']),
22
- await checkCommand('python', ['--version']),
23
- await checkCommand('pnpm', ['--version']),
28
+ gitCommand,
29
+ pythonCommand,
30
+ pnpmCommand,
31
+ corepackCommand,
24
32
  ...Object.entries(externalResults).map(([name, result]) => ({
25
33
  name,
26
34
  status: (result.available ? 'ok' : 'missing'),
@@ -127,17 +135,118 @@ function checkPackage(packageName, missingHint) {
127
135
  };
128
136
  }
129
137
  }
130
- async function checkCommand(command, args) {
138
+ function checkBetterSqlite3() {
139
+ const result = probeBetterSqlite3();
140
+ return {
141
+ name: 'better-sqlite3',
142
+ status: result.status,
143
+ detail: result.detail,
144
+ };
145
+ }
146
+ function isPnpmOperational(pnpm) {
147
+ return pnpm.status === 'ok' || pnpm.detail.includes('npx fallback works');
148
+ }
149
+ async function checkPnpmCommand() {
150
+ const direct = await checkCommand('pnpm', ['--version']);
151
+ if (direct.status === 'ok') {
152
+ return direct;
153
+ }
154
+ const npxFallback = await checkCommand('npx', ['pnpm', '--version'], 10_000);
155
+ if (npxFallback.status === 'ok') {
156
+ return {
157
+ name: 'pnpm',
158
+ status: 'warn',
159
+ detail: `direct pnpm command unavailable; npx fallback works (${npxFallback.detail})`,
160
+ };
161
+ }
162
+ return direct;
163
+ }
164
+ function normalizeCorepackCheck(corepack, pnpm) {
165
+ if (corepack.status !== 'missing' || !isPnpmOperational(pnpm)) {
166
+ return corepack;
167
+ }
168
+ return {
169
+ name: corepack.name,
170
+ status: 'warn',
171
+ detail: process.platform === 'win32'
172
+ ? pnpm.detail.includes('npx fallback works')
173
+ ? 'corepack not found; use `npx pnpm` directly (common with nvm4w-managed Node on Windows)'
174
+ : 'corepack not found; standalone pnpm is available (common with nvm4w-managed Node on Windows)'
175
+ : pnpm.detail.includes('npx fallback works')
176
+ ? 'corepack not found; use `npx pnpm` directly'
177
+ : 'corepack not found; standalone pnpm is available',
178
+ };
179
+ }
180
+ function checkNativeMemory() {
181
+ try {
182
+ const koffiPkg = require.resolve('koffi/package.json');
183
+ const koffiJson = require(koffiPkg);
184
+ const koffiVersion = koffiJson.version ?? 'unknown';
185
+ if (process.platform === 'win32') {
186
+ return {
187
+ name: 'native-memory',
188
+ status: 'ok',
189
+ detail: `koffi ${koffiVersion} — Win32 kernel32.dll available`,
190
+ };
191
+ }
192
+ if (process.platform === 'darwin') {
193
+ try {
194
+ const koffi = require('koffi');
195
+ const lib = koffi.load('/usr/lib/libSystem.B.dylib');
196
+ lib.unload();
197
+ return {
198
+ name: 'native-memory',
199
+ status: 'ok',
200
+ detail: `koffi ${koffiVersion} — macOS libSystem.B.dylib available (Mach APIs need root + SIP config)`,
201
+ };
202
+ }
203
+ catch {
204
+ return {
205
+ name: 'native-memory',
206
+ status: 'warn',
207
+ detail: `koffi ${koffiVersion} installed but cannot load libSystem.B.dylib`,
208
+ };
209
+ }
210
+ }
211
+ return {
212
+ name: 'native-memory',
213
+ status: 'warn',
214
+ detail: `koffi ${koffiVersion} — no native FFI memory provider for ${process.platform} (proc-based ops available on Linux)`,
215
+ };
216
+ }
217
+ catch {
218
+ return {
219
+ name: 'native-memory',
220
+ status: 'missing',
221
+ detail: 'koffi not installed — native memory tools unavailable. Install with: pnpm add koffi',
222
+ };
223
+ }
224
+ }
225
+ async function checkCommand(command, args, timeout = 4000) {
131
226
  try {
132
227
  const { stdout, stderr } = await execFileAsync(command, args, {
133
- timeout: 4000,
228
+ timeout,
134
229
  windowsHide: true,
135
230
  });
136
231
  const detail = `${stdout || stderr}`.trim().split(/\r?\n/)[0] || 'available';
137
232
  return { name: command, status: 'ok', detail };
138
233
  }
139
234
  catch (error) {
140
- const detail = error instanceof Error ? error.message : String(error);
235
+ let finalError = error;
236
+ if (process.platform === 'win32') {
237
+ try {
238
+ const { stdout, stderr } = await execFileAsync('cmd', ['/c', command, ...args], {
239
+ timeout,
240
+ windowsHide: true,
241
+ });
242
+ const detail = `${stdout || stderr}`.trim().split(/\r?\n/)[0] || 'available';
243
+ return { name: command, status: 'ok', detail: `${detail} (via cmd)` };
244
+ }
245
+ catch (cmdError) {
246
+ finalError = cmdError;
247
+ }
248
+ }
249
+ const detail = finalError instanceof Error ? finalError.message : String(finalError);
141
250
  const missing = /ENOENT|not recognized|not found/i.test(detail);
142
251
  return {
143
252
  name: command,
@@ -168,25 +277,43 @@ async function checkHttpEndpoint(name, url) {
168
277
  }
169
278
  function buildPlatformLimitations() {
170
279
  const limitations = [];
171
- if (process.platform !== 'win32') {
172
- limitations.push('Memory write / injection tools are Windows-only; on Linux/macOS prefer browser hooks, network capture, or Frida-based alternatives.');
280
+ if (process.platform === 'darwin') {
281
+ limitations.push('26 cross-platform memory tools available (scan, pointer-chain, structure-analysis, heap). ' +
282
+ '15 Windows-only tools unavailable (PE analysis, anti-cheat, code injection, speedhack, hardware breakpoints).');
283
+ limitations.push('Native memory operations (mach_vm_read/write) require root privileges and may require SIP configuration on ARM64.');
173
284
  }
174
- if (process.platform === 'linux') {
285
+ else if (process.platform === 'linux') {
286
+ limitations.push('Process management available via /proc. Native FFI memory provider not implemented — memory read/write uses /proc/pid/mem (requires root or CAP_SYS_PTRACE).');
175
287
  limitations.push('Camoufox runs on Linux, but some Chrome/CDP-heavy workflows are better served by the Chrome driver.');
176
288
  }
177
- if (process.platform === 'darwin') {
178
- limitations.push('macOS users should expect some Windows-native process tooling to be unavailable.');
289
+ else if (process.platform !== 'win32') {
290
+ limitations.push(`Platform ${process.platform} is not supported for native memory operations. Use Windows or macOS.`);
179
291
  }
180
292
  return limitations;
181
293
  }
182
294
  function buildRecommendations(packages, commands, bridges, limitations) {
183
295
  const recommendations = [];
296
+ const pnpmCommand = commands.find((item) => item.name === 'pnpm');
297
+ const corepackCommand = commands.find((item) => item.name === 'corepack');
298
+ if (packages.some((item) => item.name === 'better-sqlite3' && item.status !== 'ok')) {
299
+ recommendations.push('Install or rebuild the optional SQLite trace backend with `pnpm add -O better-sqlite3@12.6.2` or `npm rebuild better-sqlite3 --foreground-scripts` under the active Node version if you need trace tooling.');
300
+ }
184
301
  if (packages.some((item) => item.name === 'camoufox-js' && item.status !== 'ok')) {
185
302
  recommendations.push('Install optional browser dependencies with `pnpm run install:full` if you need Camoufox support.');
186
303
  }
187
304
  if (commands.some((item) => item.name.startsWith('wabt.') && item.status !== 'ok')) {
188
305
  recommendations.push('Install wabt if you need full WASM disassembly/decompilation; otherwise the server will stay in basic mode.');
189
306
  }
307
+ if (pnpmCommand && !isPnpmOperational(pnpmCommand)) {
308
+ recommendations.push('Install pnpm or enable Corepack (`corepack enable`) before running package-management workflows.');
309
+ }
310
+ else if (pnpmCommand?.detail.includes('npx fallback works')) {
311
+ recommendations.push('Use `npx pnpm` directly on this machine or repair the local pnpm/Corepack shim if scripts expect bare `pnpm`.');
312
+ }
313
+ else if (corepackCommand?.status === 'warn' &&
314
+ corepackCommand.detail.includes('standalone pnpm')) {
315
+ recommendations.push('Use `pnpm` or `npx pnpm` directly on this machine; `corepack` is optional and may be absent on nvm4w-managed Windows installs.');
316
+ }
190
317
  if (bridges.some((item) => item.status !== 'ok')) {
191
318
  recommendations.push('Check local bridge endpoints (Ghidra / IDA / Burp) before relying on native-bridge workflows.');
192
319
  }
@@ -1,9 +1,14 @@
1
1
  import { mkdir } from 'node:fs/promises';
2
2
  import { basename, dirname, extname, isAbsolute, normalize, relative, resolve, sep, } from 'node:path';
3
3
  import { fileURLToPath } from 'node:url';
4
- const currentFile = fileURLToPath(import.meta.url);
5
- const currentDir = dirname(currentFile);
6
- const projectRoot = resolve(currentDir, '..', '..');
4
+ const defaultProjectRoot = fileURLToPath(new URL('../..', import.meta.url));
5
+ function resolveProjectRoot(env = process.env) {
6
+ const requestedRoot = env.MCP_PROJECT_ROOT?.trim();
7
+ if (!requestedRoot) {
8
+ return defaultProjectRoot;
9
+ }
10
+ return normalize(isAbsolute(requestedRoot) ? requestedRoot : resolve(defaultProjectRoot, requestedRoot));
11
+ }
7
12
  function isInside(baseDir, targetPath) {
8
13
  const rel = relative(baseDir, targetPath);
9
14
  if (!rel || rel === '..' || rel.startsWith(`..${sep}`) || isAbsolute(rel)) {
@@ -11,11 +16,11 @@ function isInside(baseDir, targetPath) {
11
16
  }
12
17
  return true;
13
18
  }
14
- function resolveWithinProject(inputPath) {
15
- const candidate = isAbsolute(inputPath) ? normalize(inputPath) : resolve(projectRoot, inputPath);
16
- return isInside(projectRoot, candidate)
19
+ function resolveWithinProject(inputPath, baseRoot = getProjectRoot()) {
20
+ const candidate = isAbsolute(inputPath) ? normalize(inputPath) : resolve(baseRoot, inputPath);
21
+ return isInside(baseRoot, candidate)
17
22
  ? candidate
18
- : resolve(projectRoot, 'screenshots', 'external', normalize(inputPath).split(/[\\/]/).pop() || 'output.bin');
23
+ : resolve(baseRoot, 'screenshots', 'external', normalize(inputPath).split(/[\\/]/).pop() || 'output.bin');
19
24
  }
20
25
  function withDefaultExtension(filePath, extension) {
21
26
  if (extname(filePath)) {
@@ -24,20 +29,22 @@ function withDefaultExtension(filePath, extension) {
24
29
  return `${filePath}.${extension.replace(/^\./, '')}`;
25
30
  }
26
31
  export function getProjectRoot() {
27
- return projectRoot;
32
+ return resolveProjectRoot();
28
33
  }
29
34
  export function resolveOutputDirectory(inputDir, fallbackDir = 'screenshots') {
35
+ const projectRoot = getProjectRoot();
30
36
  const requested = inputDir?.trim();
31
37
  if (!requested) {
32
38
  return resolve(projectRoot, fallbackDir);
33
39
  }
34
- const resolved = resolveWithinProject(requested);
40
+ const resolved = resolveWithinProject(requested, projectRoot);
35
41
  if (isInside(projectRoot, resolved)) {
36
42
  return resolved;
37
43
  }
38
44
  return resolve(projectRoot, fallbackDir);
39
45
  }
40
46
  export async function resolveScreenshotOutputPath(options) {
47
+ const projectRoot = getProjectRoot();
41
48
  const extension = options.type === 'jpeg' ? 'jpg' : 'png';
42
49
  const fallbackDir = options.fallbackDir || 'screenshots/manual';
43
50
  const fallbackName = options.fallbackName || 'page';
@@ -44,9 +44,7 @@ export async function parallelExecute(items, executor, options = {}) {
44
44
  duration: Date.now() - startTime,
45
45
  };
46
46
  })();
47
- const wrappedTask = task.then(() => {
48
- executing.delete(wrappedTask);
49
- }, () => {
47
+ const wrappedTask = task.finally(() => {
50
48
  executing.delete(wrappedTask);
51
49
  });
52
50
  executing.add(wrappedTask);
package/package.json CHANGED
@@ -1,8 +1,55 @@
1
1
  {
2
2
  "name": "@jshookmcp/jshook",
3
- "version": "0.2.3",
4
- "description": "MCP server with 249 built-in tools (242 domain tools across 17 domains plus 7 built-in meta-tools) for AI-assisted JavaScript analysis and security analysis — browser automation, CDP debugging, network monitoring, JS hooks, code analysis, and workflow orchestration",
5
- "mcpName": "io.github.vmoranv/jshookmcp",
3
+ "version": "0.2.6",
4
+ "description": "MCP server with 337 built-in tools across 24 domains for AI-assisted JavaScript analysis and security analysis — browser automation, CDP debugging, network monitoring, JS hooks, code analysis, and workflow orchestration",
5
+ "keywords": [
6
+ "ai",
7
+ "anti-detection",
8
+ "ast",
9
+ "browser-automation",
10
+ "captcha",
11
+ "chrome-devtools",
12
+ "claude",
13
+ "code-analysis",
14
+ "cryptography-detection",
15
+ "debugger",
16
+ "deobfuscation",
17
+ "hook",
18
+ "hooking",
19
+ "javascript",
20
+ "javascript-analysis",
21
+ "mcp",
22
+ "model-context-protocol",
23
+ "network-monitoring",
24
+ "obfuscation",
25
+ "puppeteer",
26
+ "security-analysis",
27
+ "web-scraping"
28
+ ],
29
+ "homepage": "https://github.com/vmoranv/jshookmcp#readme",
30
+ "bugs": {
31
+ "url": "https://github.com/vmoranv/jshookmcp/issues"
32
+ },
33
+ "license": "AGPL-3.0-only",
34
+ "author": {
35
+ "name": "vmoranv",
36
+ "url": "https://github.com/vmoranv"
37
+ },
38
+ "repository": {
39
+ "type": "git",
40
+ "url": "https://github.com/vmoranv/jshookmcp.git"
41
+ },
42
+ "bin": {
43
+ "jshook": "dist/src/index.js",
44
+ "jshookmcp": "dist/src/index.js"
45
+ },
46
+ "files": [
47
+ "dist",
48
+ "workflows",
49
+ "src/native/scripts",
50
+ "scripts/postinstall.cjs"
51
+ ],
52
+ "type": "module",
6
53
  "main": "dist/src/index.js",
7
54
  "types": "dist/src/index.d.ts",
8
55
  "exports": {
@@ -15,136 +62,90 @@
15
62
  "types": "./dist/src/server/plugin-api.d.ts"
16
63
  }
17
64
  },
18
- "type": "module",
19
- "files": [
20
- "dist",
21
- "src/native/scripts",
22
- "scripts/postinstall.cjs"
23
- ],
24
- "bin": {
25
- "jshook": "dist/src/index.js",
26
- "jshookmcp": "dist/src/index.js"
27
- },
28
- "repository": {
29
- "type": "git",
30
- "url": "https://github.com/vmoranv/jshookmcp.git"
31
- },
32
- "bugs": {
33
- "url": "https://github.com/vmoranv/jshookmcp/issues"
34
- },
35
- "homepage": "https://github.com/vmoranv/jshookmcp#readme",
36
65
  "publishConfig": {
37
- "registry": "https://registry.npmjs.org",
38
- "access": "public"
66
+ "access": "public",
67
+ "registry": "https://registry.npmjs.org"
39
68
  },
40
- "keywords": [
41
- "mcp",
42
- "model-context-protocol",
43
- "javascript",
44
- "javascript-analysis",
45
- "security-analysis",
46
- "hook",
47
- "hooking",
48
- "deobfuscation",
49
- "ai",
50
- "claude",
51
- "puppeteer",
52
- "chrome-devtools",
53
- "debugger",
54
- "web-scraping",
55
- "anti-detection",
56
- "captcha",
57
- "browser-automation",
58
- "network-monitoring",
59
- "ast",
60
- "obfuscation",
61
- "cryptography-detection",
62
- "code-analysis"
63
- ],
64
- "author": {
65
- "name": "vmoranv",
66
- "url": "https://github.com/vmoranv"
67
- },
68
- "license": "AGPL-3.0-only",
69
69
  "dependencies": {
70
70
  "@anthropic-ai/sdk": "^0.78.0",
71
71
  "@babel/generator": "^7.29.1",
72
72
  "@babel/parser": "^7.29.0",
73
73
  "@babel/traverse": "^7.29.0",
74
74
  "@babel/types": "^7.29.0",
75
+ "@huggingface/transformers": "^3.8.1",
75
76
  "@modelcontextprotocol/sdk": "^1.27.1",
76
77
  "ajv": "^8.18.0",
77
78
  "ajv-formats": "^3.0.1",
78
79
  "chalk": "^5.6.2",
79
80
  "commander": "^14.0.3",
80
- "dotenv": "^17.3.1",
81
+ "dotenv": "^17.4.0",
81
82
  "koffi": "^2.15.1",
82
83
  "openai": "^6.25.0",
83
84
  "ora": "^9.3.0",
85
+ "quickjs-emscripten": "^0.32.0",
84
86
  "rebrowser-puppeteer-core": "^24.8.1",
85
87
  "tinyglobby": "^0.2.15",
86
88
  "zod": "^4.3.6"
87
89
  },
88
- "optionalDependencies": {
89
- "camoufox-js": "^0.9.1",
90
- "playwright-core": "^1.58.2",
91
- "webcrack": "^2.15.1"
92
- },
93
90
  "devDependencies": {
94
- "@huggingface/transformers": "^3.8.1",
95
91
  "@types/babel__generator": "^7.27.0",
96
92
  "@types/babel__traverse": "^7.28.0",
97
93
  "@types/better-sqlite3": "^7.6.13",
98
94
  "@types/node": "^25.3.0",
99
- "@typescript-eslint/eslint-plugin": "^8.56.1",
100
- "@typescript-eslint/parser": "^8.56.1",
101
- "@vitest/coverage-v8": "^4.0.18",
95
+ "@vitest/coverage-v8": "^4.1.2",
102
96
  "cross-env": "^10.1.0",
103
- "eslint": "^10.0.2",
104
97
  "estree-walker": "^2.0.2",
105
- "lefthook": "^2.1.3",
98
+ "lefthook": "^2.1.4",
106
99
  "medium-zoom": "^1.1.0",
107
- "nodemon": "^3.1.14",
108
- "oxlint": "^1.56.0",
109
- "prettier": "^3.8.1",
110
- "quickjs-emscripten": "^0.32.0",
100
+ "oxfmt": "^0.43.0",
101
+ "oxlint": "^1.58.0",
111
102
  "tsc-alias": "^1.8.16",
112
103
  "tsx": "^4.21.0",
113
104
  "typescript": "^5.9.3",
114
- "vite": "^6.0.0",
105
+ "vite": "^8.0.2",
115
106
  "vitepress": "1.6.4",
116
- "vitest": "^4.0.18",
107
+ "vitest": "^4.1.2",
117
108
  "vue": "^3.5.30"
118
109
  },
110
+ "optionalDependencies": {
111
+ "better-sqlite3": "12.6.2",
112
+ "camoufox-js": "^0.9.1",
113
+ "playwright-core": "^1.58.2",
114
+ "webcrack": "^2.15.1"
115
+ },
119
116
  "engines": {
120
- "node": ">=20.0.0"
117
+ "node": "^20.19.0 || >=22.12.0"
121
118
  },
119
+ "mcpName": "io.github.vmoranv/jshookmcp",
122
120
  "scripts": {
123
121
  "build": "node scripts/clean-dist.mjs && tsc -p tsconfig.build.json && tsc-alias -p tsconfig.build.json --resolve-full-paths && pnpm -C packages/extension-sdk build && node scripts/copy-native-scripts.mjs && node scripts/generate-entry-reexport.mjs && node scripts/fix-bin-permissions.mjs",
124
122
  "typecheck": "tsc --noEmit -p tsconfig.build.json && pnpm -C packages/extension-sdk typecheck",
125
123
  "dev": "tsx --conditions=development watch src/index.ts",
126
124
  "start": "node dist/src/index.js",
127
125
  "doctor": "tsx src/cli/doctor.ts",
128
- "docs:generate": "node scripts/generate-vitepress-reference.mjs && prettier \"docs/reference/**/*.md\" \"docs/en/reference/**/*.md\" --write",
126
+ "docs:generate": "node scripts/generate-vitepress-reference.mjs",
129
127
  "docs:dev": "vitepress dev docs --host 127.0.0.1 --port 5173",
130
128
  "docs:build": "pnpm run docs:generate && vitepress build docs",
131
129
  "docs:preview": "vitepress preview docs --host 127.0.0.1 --port 4173",
132
130
  "lint:md": "pnpm dlx markdownlint-cli2",
133
- "format:docs": "pnpm run docs:generate && prettier docs .github README.md README.zh.md CONTRIBUTING.md --write",
134
- "check:docs-format": "prettier docs .github README.md README.zh.md CONTRIBUTING.md --check",
135
- "lint:ox": "oxlint src/ tests/",
136
- "lint": "eslint src --ext .ts",
137
- "format": "prettier --write \"src/**/*.ts\"",
131
+ "lint": "oxlint src/ tests/",
132
+ "lint:fix": "oxlint --fix src/ tests/",
133
+ "format": "oxfmt \"src/**\" \"tests/**\" \"!tests/tmp/**\" --write --no-error-on-unmatched-pattern",
134
+ "format:check": "oxfmt \"src/**\" \"tests/**\" \"!tests/tmp/**\" --check --no-error-on-unmatched-pattern",
138
135
  "test": "vitest run",
139
136
  "test:e2e": "cross-env E2E_TARGET_URL=https://vmoranv.github.io/jshookmcp/ vitest run --config tests/e2e/vitest.e2e.config.ts",
140
- "test:coverage": "cross-env ENABLE_INJECTION_TOOLS=true vitest run --coverage",
137
+ "test:coverage": "node -e \"require('fs').mkdirSync('coverage/.tmp', { recursive: true })\" && cross-env ENABLE_INJECTION_TOOLS=true COVERAGE_FULL=true vitest run --coverage",
141
138
  "package:verify-bin": "node scripts/verify-packed-bin.mjs",
142
139
  "package:verify-install": "node scripts/verify-packed-install.mjs",
143
140
  "package:verify-release": "node scripts/verify-release-artifact.mjs",
144
- "audit:tools": "node scripts/audit-tools.mjs",
145
- "check": "pnpm run lint:ox && pnpm run lint && pnpm run typecheck && pnpm run test",
141
+ "audit:tools": "tsx scripts/audit-tools.mjs",
142
+ "git:refresh-noise": "node scripts/refresh-git-noise.mjs",
143
+ "check": "pnpm run metadata:check && pnpm run lint && pnpm run format:check && pnpm run typecheck && pnpm run test",
146
144
  "package": "pnpm pack",
147
145
  "postinstall": "node scripts/postinstall.cjs",
148
- "install:full": "pnpm install && pnpm exec camoufox-js fetch"
146
+ "install:full": "pnpm install && pnpm exec camoufox-js fetch",
147
+ "metadata:sync": "node scripts/generate-metadata.mjs --write",
148
+ "metadata:check": "node scripts/generate-metadata.mjs --check",
149
+ "check:docs-format": "pnpm run lint:md"
149
150
  }
150
151
  }
@@ -2,36 +2,63 @@ const fs = require('node:fs');
2
2
  const path = require('node:path');
3
3
  const { spawnSync } = require('node:child_process');
4
4
 
5
- const repoGitDir = path.join(process.cwd(), '.git');
6
- const localBin = path.join(
7
- process.cwd(),
8
- 'node_modules',
9
- '.bin',
10
- process.platform === 'win32' ? 'lefthook.cmd' : 'lefthook'
11
- );
12
-
13
- if (!fs.existsSync(repoGitDir)) {
14
- process.exit(0);
15
- }
5
+ const repoGitDir = path.join(process.cwd(), '.git');
6
+ const localBin = path.join(
7
+ process.cwd(),
8
+ 'node_modules',
9
+ '.bin',
10
+ process.platform === 'win32' ? 'lefthook.cmd' : 'lefthook'
11
+ );
12
+ const isCi = process.env.CI === 'true' || process.env.GITHUB_ACTIONS === 'true';
13
+
14
+ if (isCi || !fs.existsSync(repoGitDir)) {
15
+ process.exit(0);
16
+ }
16
17
 
17
18
  if (!fs.existsSync(localBin)) {
18
19
  console.warn('[postinstall] lefthook not found locally; skipping git hook installation.');
19
20
  process.exit(0);
20
21
  }
21
22
 
22
- const result = spawnSync(localBin, ['install'], {
23
- stdio: 'inherit',
24
- shell: process.platform === 'win32',
25
- });
26
-
27
- if (result.error) {
28
- console.warn(
29
- `[postinstall] lefthook install failed to spawn: ${result.error.message}; skipping git hook installation.`
30
- );
31
- } else if (result.status !== 0) {
32
- console.warn(
33
- `[postinstall] lefthook install exited with status ${result.status}; skipping git hook installation.`
34
- );
35
- }
36
-
37
- process.exit(0);
23
+ const hooksPathResult = spawnSync('git', ['config', '--local', '--get', 'core.hooksPath'], {
24
+ encoding: 'utf8',
25
+ shell: process.platform === 'win32',
26
+ });
27
+
28
+ const configuredHooksPath = hooksPathResult.status === 0 ? hooksPathResult.stdout.trim() : '';
29
+ if (configuredHooksPath) {
30
+ const resolvedHooksPath = path.resolve(process.cwd(), configuredHooksPath);
31
+ const defaultHooksPath = path.resolve(repoGitDir, 'hooks');
32
+
33
+ if (resolvedHooksPath === defaultHooksPath) {
34
+ process.exit(0);
35
+ }
36
+
37
+ console.warn(
38
+ `[postinstall] core.hooksPath is already set to "${configuredHooksPath}"; skipping git hook installation.`
39
+ );
40
+ process.exit(0);
41
+ }
42
+
43
+ const result = spawnSync(localBin, ['install'], {
44
+ encoding: 'utf8',
45
+ stdio: ['ignore', 'pipe', 'pipe'],
46
+ shell: process.platform === 'win32',
47
+ });
48
+
49
+ if (result.error) {
50
+ console.warn(
51
+ `[postinstall] lefthook install failed to spawn: ${result.error.message}; skipping git hook installation.`
52
+ );
53
+ } else if (result.status !== 0) {
54
+ const firstDetailLine = [result.stdout, result.stderr]
55
+ .join('\n')
56
+ .split(/\r?\n/)
57
+ .map((line) => line.trim())
58
+ .find(Boolean);
59
+ console.warn(
60
+ `[postinstall] lefthook install exited with status ${result.status}; skipping git hook installation${firstDetailLine ? ` (${firstDetailLine})` : ''}.`
61
+ );
62
+ }
63
+
64
+ process.exit(0);
File without changes
@@ -0,0 +1,14 @@
1
+ {
2
+ "version": 1,
3
+ "kind": "workflow",
4
+ "slug": "anti-bot-diagnoser",
5
+ "id": "workflow.anti-bot-diagnoser.v1",
6
+ "source": {
7
+ "type": "git",
8
+ "repo": "https://github.com/vmoranv/jshook_workflow_anti_bot_diagnoser",
9
+ "ref": "main",
10
+ "commit": "b7e270de2a0cbb90ed431bd9de4fcd101cc53439",
11
+ "subpath": ".",
12
+ "entry": "workflow.ts"
13
+ }
14
+ }
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 vmoranv
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.