@pensar/apex 2.5.0 → 2.6.1-canary.0cc77dcc

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 (1507) hide show
  1. package/README.md +38 -0
  2. package/bin/pensar.js +12 -4
  3. package/build/agent-6mzhkzxj.js +13 -0
  4. package/build/agent-9ymr36jt.js +13 -0
  5. package/build/{agent-m30a62kh.js → agent-fb1d2x2a.js} +48 -50
  6. package/build/agent-h8z7zb26.js +15 -0
  7. package/build/agent-runs-awgj4sat.js +313 -0
  8. package/build/{apps-x4ef2gpc.js → apps-d50kkp3g.js} +50 -58
  9. package/build/{auth-7ay8qgxm.js → auth-396rc66q.js} +61 -68
  10. package/build/blackboxAgent-j3ncq55f.js +13 -0
  11. package/build/blackboxPentest-aw69ect4.js +59 -0
  12. package/build/cli-0ym9qz7r.js +175 -0
  13. package/build/{cli-zav1yx5k.js → cli-2dqvgkh8.js} +990 -632
  14. package/build/cli-38j2jc0m.js +62 -0
  15. package/build/{cli-ee3axgts.js → cli-3gt761d2.js} +7 -1
  16. package/build/{cli-sx3jkv7p.js → cli-3p4gyc9m.js} +28872 -25951
  17. package/build/cli-3qznjsnr.js +14 -0
  18. package/build/cli-5ppxe6qz.js +355 -0
  19. package/build/cli-691cfgdy.js +186 -0
  20. package/build/{cli-x92fkt2f.js → cli-6y2mzdz2.js} +55 -97
  21. package/build/{cli-73k43t1r.js → cli-8s4ew1hv.js} +53 -78
  22. package/build/{cli-53rm0rrz.js → cli-8w8k4dph.js} +1 -1
  23. package/build/{cli-68260ckj.js → cli-91gs9whc.js} +1658 -1606
  24. package/build/{cli-7vg06q5r.js → cli-9s7snz6x.js} +135 -125
  25. package/build/{cli-bw2ddttk.js → cli-a1m3pmke.js} +4730 -267
  26. package/build/{cli-knd276ed.js → cli-bb02pjt0.js} +31 -31
  27. package/build/{cli-p4r7q012.js → cli-c0ha5wh1.js} +16072 -12743
  28. package/build/{cli-j54qa6tm.js → cli-c2k4xxaw.js} +42 -42
  29. package/build/{cli-k71t434r.js → cli-ec2hwkv3.js} +34 -76
  30. package/build/{cli-vkbzcnw1.js → cli-fapvkkbh.js} +43 -40
  31. package/build/cli-g06s7edq.js +11 -0
  32. package/build/cli-gsaf4jk3.js +280 -0
  33. package/build/{cli-bc05qbss.js → cli-h6y3bt60.js} +13 -21
  34. package/build/cli-jdrx44ge.js +14 -0
  35. package/build/{cli-z5c0ypg1.js → cli-jp6wytx1.js} +4 -4
  36. package/build/cli-mz5pk30x.js +5508 -0
  37. package/build/{cli-kff2bbq7.js → cli-nmg32cfd.js} +43 -43
  38. package/build/cli-pckpvwbd.js +22 -0
  39. package/build/cli-pwm29ks7.js +6337 -0
  40. package/build/cli-retw3rw5.js +12 -0
  41. package/build/cli-se8ae8z3.js +2250 -0
  42. package/build/{cli-dm0fc0bm.js → cli-v1sarr4y.js} +5 -9
  43. package/build/cli-v9rrvh12.js +429 -0
  44. package/build/{cli-3py0a0wg.js → cli-vfta27tv.js} +206 -136
  45. package/build/cli-xcy2vxj2.js +1732 -0
  46. package/build/{cli-y3dpm18e.js → cli-xn12g67s.js} +75 -92
  47. package/build/cli.js +769 -195
  48. package/build/{config-4kzh88xz.js → config-hddxxr27.js} +16 -19
  49. package/build/{doctor-rz7sx6ev.js → doctor-z94afr10.js} +26 -15
  50. package/build/export-trajectory-rt4tf07k.js +112 -0
  51. package/build/{fastStrike-a54atjc8.js → fastStrike-mgws2nav.js} +56 -31
  52. package/build/{fixes-fv66yn1z.js → fixes-9qtsvwxx.js} +22 -30
  53. package/build/{getMachineId-bsd-xj3bn2fv.js → getMachineId-bsd-zr67nd9p.js} +5 -5
  54. package/build/{getMachineId-darwin-07jzjcx6.js → getMachineId-darwin-fd1d562d.js} +5 -5
  55. package/build/{getMachineId-linux-ahngynxd.js → getMachineId-linux-kjmg243j.js} +4 -4
  56. package/build/{getMachineId-unsupported-vy43b44z.js → getMachineId-unsupported-n4r58vke.js} +4 -4
  57. package/build/{getMachineId-win-8x66cynz.js → getMachineId-win-yzgpfsrb.js} +5 -5
  58. package/build/index-0d05xcz4.js +25 -0
  59. package/build/index-0ef0j7yp.js +12 -0
  60. package/build/index-557xary4.js +121 -0
  61. package/build/index-a0bxw5zq.js +17477 -0
  62. package/build/{index-cbwn03kz.js → index-a2xycbjs.js} +12 -31
  63. package/build/{index-psqjpw5m.js → index-c1h0g35p.js} +11 -11
  64. package/build/index-cfbd4zej.js +17 -0
  65. package/build/index-mqaw1ac6.js +9 -0
  66. package/build/{index-kyd1jm89.js → index-nfhetcq8.js} +159 -169
  67. package/build/index-qnyevb6q.js +1563 -0
  68. package/build/{index-fpwr10qm.js → index-wyn4g2c1.js} +5048 -3786
  69. package/build/index-zbq3rvwx.js +36 -0
  70. package/build/index-zhr65sg3.js +102 -0
  71. package/build/{issues-019678t0.js → issues-9zdszfq8.js} +51 -47
  72. package/build/knowledge-r6rmer3d.js +139 -0
  73. package/build/lib/chunk-02awpt3c.js +431 -0
  74. package/build/lib/chunk-0me4mrrd.js +7150 -0
  75. package/build/lib/chunk-2j49k090.js +922 -0
  76. package/build/lib/chunk-2njv7wz3.js +178 -0
  77. package/build/lib/chunk-2t65f749.js +1412 -0
  78. package/build/lib/chunk-3502z798.js +9232 -0
  79. package/build/lib/chunk-3q89v4xv.js +21 -0
  80. package/build/lib/chunk-3w05jmk6.js +685 -0
  81. package/build/lib/chunk-48zms2q1.js +572 -0
  82. package/build/lib/chunk-4ydrmwd9.js +980 -0
  83. package/build/lib/chunk-517rf135.js +143 -0
  84. package/build/lib/chunk-5cp1fp0x.js +186 -0
  85. package/build/lib/chunk-7gjdygcx.js +171 -0
  86. package/build/lib/chunk-8vhr65w3.js +272 -0
  87. package/build/lib/chunk-9nsrd4xg.js +12 -0
  88. package/build/lib/chunk-asbemhm5.js +56 -0
  89. package/build/lib/chunk-b8eq85d2.js +143 -0
  90. package/build/lib/chunk-bx94rwt5.js +24 -0
  91. package/build/lib/chunk-eb4h4k1f.js +213 -0
  92. package/build/lib/chunk-ebkq3bcq.js +102 -0
  93. package/build/lib/chunk-esymacwg.js +14 -0
  94. package/build/lib/chunk-f04pr76h.js +317 -0
  95. package/build/lib/chunk-fy3bbbqy.js +7896 -0
  96. package/build/lib/chunk-g8d2x00m.js +2429 -0
  97. package/build/lib/chunk-ja7j565c.js +743 -0
  98. package/build/lib/chunk-jah67hkt.js +120 -0
  99. package/build/lib/chunk-jdjagvgr.js +85 -0
  100. package/build/lib/chunk-k5m5rasy.js +439 -0
  101. package/build/lib/chunk-mp1czx2y.js +510 -0
  102. package/build/lib/chunk-mrjbsaf4.js +31 -0
  103. package/build/lib/chunk-mv74mq5n.js +59 -0
  104. package/build/lib/chunk-n0ba7khr.js +64 -0
  105. package/build/lib/chunk-ngp6p527.js +317 -0
  106. package/build/lib/chunk-q5e23acz.js +52 -0
  107. package/build/lib/chunk-sk8xnywf.js +212 -0
  108. package/build/lib/chunk-t5bt5vn1.js +146 -0
  109. package/build/lib/chunk-tsnk2k9x.js +345 -0
  110. package/build/lib/chunk-vt9spgd1.js +62 -0
  111. package/build/lib/chunk-vx228eeq.js +82 -0
  112. package/build/lib/chunk-wr6ke041.js +11157 -0
  113. package/build/lib/chunk-xcdtrzk5.js +27 -0
  114. package/build/lib/chunk-xpfg2fbk.js +90 -0
  115. package/build/lib/chunk-zrbqn62x.js +697 -0
  116. package/build/lib/core/agents/agentRuntime.d.ts +47 -0
  117. package/build/lib/core/agents/defineAgent.d.ts +82 -0
  118. package/build/lib/core/agents/offSecAgent/index.d.ts +9 -0
  119. package/build/lib/core/agents/offSecAgent/index.js +225 -0
  120. package/build/lib/core/agents/offSecAgent/interruptedStepFinalization.d.ts +23 -0
  121. package/build/lib/core/agents/offSecAgent/interruptedStepMessages.d.ts +42 -0
  122. package/build/lib/core/agents/offSecAgent/messagePersistence.d.ts +39 -0
  123. package/build/lib/core/agents/offSecAgent/offensiveSecurityAgent.d.ts +233 -0
  124. package/build/lib/core/agents/offSecAgent/prompt.d.ts +35 -0
  125. package/build/lib/core/agents/offSecAgent/recordedTools.d.ts +11 -0
  126. package/build/lib/core/agents/offSecAgent/runtimeContext.d.ts +43 -0
  127. package/build/lib/core/agents/offSecAgent/streamDiagnostics.d.ts +67 -0
  128. package/build/lib/core/agents/offSecAgent/subagentSpawner.d.ts +223 -0
  129. package/build/lib/core/agents/offSecAgent/subagentSpawner.js +19 -0
  130. package/build/lib/core/agents/offSecAgent/toolLifecycle.d.ts +54 -0
  131. package/build/lib/core/agents/offSecAgent/tools/__tests__/sandboxScript.d.ts +1 -0
  132. package/build/lib/core/agents/offSecAgent/tools/addMemory.d.ts +16 -0
  133. package/build/lib/core/agents/offSecAgent/tools/agentScratch.d.ts +17 -0
  134. package/build/lib/core/agents/offSecAgent/tools/applyPatch.d.ts +8 -0
  135. package/build/lib/core/agents/offSecAgent/tools/applyPatchImpl.d.ts +24 -0
  136. package/build/lib/core/agents/offSecAgent/tools/askUserQuestions.d.ts +42 -0
  137. package/build/lib/core/agents/offSecAgent/tools/browserHeaderRouting.d.ts +9 -0
  138. package/build/lib/core/agents/offSecAgent/tools/browserToolFactories.d.ts +40 -0
  139. package/build/lib/core/agents/offSecAgent/tools/browserTools.d.ts +96 -0
  140. package/build/lib/core/agents/offSecAgent/tools/callbackListener.d.ts +212 -0
  141. package/build/lib/core/agents/offSecAgent/tools/camoufox.d.ts +106 -0
  142. package/build/lib/core/agents/offSecAgent/tools/checkpointState.d.ts +17 -0
  143. package/build/lib/core/agents/offSecAgent/tools/completeAuthentication.d.ts +39 -0
  144. package/build/lib/core/agents/offSecAgent/tools/crawlAuthenticated.d.ts +36 -0
  145. package/build/lib/core/agents/offSecAgent/tools/createAttackSurfaceReport.d.ts +31 -0
  146. package/build/lib/core/agents/offSecAgent/tools/createFile.d.ts +12 -0
  147. package/build/lib/core/agents/offSecAgent/tools/createTask.d.ts +20 -0
  148. package/build/lib/core/agents/offSecAgent/tools/delegateAuth.d.ts +72 -0
  149. package/build/lib/core/agents/offSecAgent/tools/deleteFile.d.ts +10 -0
  150. package/build/lib/core/agents/offSecAgent/tools/destructiveGuard.d.ts +94 -0
  151. package/build/lib/core/agents/offSecAgent/tools/detectAuthScheme.d.ts +72 -0
  152. package/build/lib/core/agents/offSecAgent/tools/documentApp.d.ts +38 -0
  153. package/build/lib/core/agents/offSecAgent/tools/documentEndpoint.d.ts +111 -0
  154. package/build/lib/core/agents/offSecAgent/tools/documentFinding.d.ts +285 -0
  155. package/build/lib/core/agents/offSecAgent/tools/email/adapters.d.ts +45 -0
  156. package/build/lib/core/agents/offSecAgent/tools/email/adapters.js +8 -0
  157. package/build/lib/core/agents/offSecAgent/tools/email/getAttachments.d.ts +33 -0
  158. package/build/lib/core/agents/offSecAgent/tools/email/getMessage.d.ts +20 -0
  159. package/build/lib/core/agents/offSecAgent/tools/email/index.d.ts +145 -0
  160. package/build/lib/core/agents/offSecAgent/tools/email/listInboxes.d.ts +23 -0
  161. package/build/lib/core/agents/offSecAgent/tools/email/listMessages.d.ts +22 -0
  162. package/build/lib/core/agents/offSecAgent/tools/email/markRead.d.ts +20 -0
  163. package/build/lib/core/agents/offSecAgent/tools/email/searchMessages.d.ts +24 -0
  164. package/build/lib/core/agents/offSecAgent/tools/email/sendEmail.d.ts +28 -0
  165. package/build/lib/core/agents/offSecAgent/tools/email/types.d.ts +40 -0
  166. package/build/lib/core/agents/offSecAgent/tools/email/types.js +0 -0
  167. package/build/lib/core/agents/offSecAgent/tools/executeCommand.d.ts +84 -0
  168. package/build/lib/core/agents/offSecAgent/tools/extractJsEndpoints.d.ts +13 -0
  169. package/build/lib/core/agents/offSecAgent/tools/fileWorkspace.d.ts +21 -0
  170. package/build/lib/core/agents/offSecAgent/tools/fileWorkspaceRemote.d.ts +13 -0
  171. package/build/lib/core/agents/offSecAgent/tools/getMemory.d.ts +12 -0
  172. package/build/lib/core/agents/offSecAgent/tools/getPage.d.ts +17 -0
  173. package/build/lib/core/agents/offSecAgent/tools/gitDiff.d.ts +12 -0
  174. package/build/lib/core/agents/offSecAgent/tools/gitStatus.d.ts +10 -0
  175. package/build/lib/core/agents/offSecAgent/tools/glob.d.ts +8 -0
  176. package/build/lib/core/agents/offSecAgent/tools/globImpl.d.ts +13 -0
  177. package/build/lib/core/agents/offSecAgent/tools/globPattern.d.ts +7 -0
  178. package/build/lib/core/agents/offSecAgent/tools/grep.d.ts +10 -0
  179. package/build/lib/core/agents/offSecAgent/tools/grepImpl.d.ts +34 -0
  180. package/build/lib/core/agents/offSecAgent/tools/httpRequest.d.ts +70 -0
  181. package/build/lib/core/agents/offSecAgent/tools/index.d.ts +466 -0
  182. package/build/lib/core/agents/offSecAgent/tools/index.js +262 -0
  183. package/build/lib/core/agents/offSecAgent/tools/listFiles.d.ts +9 -0
  184. package/build/lib/core/agents/offSecAgent/tools/listFilesImpl.d.ts +27 -0
  185. package/build/lib/core/agents/offSecAgent/tools/listMemories.d.ts +13 -0
  186. package/build/lib/core/agents/offSecAgent/tools/listPromptInjections.d.ts +18 -0
  187. package/build/lib/core/agents/offSecAgent/tools/listTasks.d.ts +24 -0
  188. package/build/lib/core/agents/offSecAgent/tools/patchApply.d.ts +24 -0
  189. package/build/lib/core/agents/offSecAgent/tools/patchParse.d.ts +24 -0
  190. package/build/lib/core/agents/offSecAgent/tools/perCommandShell.d.ts +82 -0
  191. package/build/lib/core/agents/offSecAgent/tools/playwrightMcp.d.ts +369 -0
  192. package/build/lib/core/agents/offSecAgent/tools/probeAuthEndpoints.d.ts +28 -0
  193. package/build/lib/core/agents/offSecAgent/tools/profileCodebase.d.ts +33 -0
  194. package/build/lib/core/agents/offSecAgent/tools/provideComparisonResults.d.ts +31 -0
  195. package/build/lib/core/agents/offSecAgent/tools/queryWhiteboxCatalog.d.ts +17 -0
  196. package/build/lib/core/agents/offSecAgent/tools/readFile.d.ts +11 -0
  197. package/build/lib/core/agents/offSecAgent/tools/readFileImpl.d.ts +31 -0
  198. package/build/lib/core/agents/offSecAgent/tools/readSkill.d.ts +15 -0
  199. package/build/lib/core/agents/offSecAgent/tools/reportError.d.ts +31 -0
  200. package/build/lib/core/agents/offSecAgent/tools/response.d.ts +15 -0
  201. package/build/lib/core/agents/offSecAgent/tools/runAttackSurface.d.ts +81 -0
  202. package/build/lib/core/agents/offSecAgent/tools/runCodeQuery.d.ts +44 -0
  203. package/build/lib/core/agents/offSecAgent/tools/runPentestWorkflow.d.ts +32 -0
  204. package/build/lib/core/agents/offSecAgent/tools/runWhiteboxScan.d.ts +52 -0
  205. package/build/lib/core/agents/offSecAgent/tools/sandbox.d.ts +30 -0
  206. package/build/lib/core/agents/offSecAgent/tools/sandboxPlaywright.d.ts +137 -0
  207. package/build/lib/core/agents/offSecAgent/tools/sandboxScript.d.ts +6 -0
  208. package/build/lib/core/agents/offSecAgent/tools/scopeGuard.d.ts +91 -0
  209. package/build/lib/core/agents/offSecAgent/tools/scriptSyntaxCheck.d.ts +45 -0
  210. package/build/lib/core/agents/offSecAgent/tools/smsInbox.d.ts +67 -0
  211. package/build/lib/core/agents/offSecAgent/tools/smsInbox.js +6 -0
  212. package/build/lib/core/agents/offSecAgent/tools/smsListMessages.d.ts +29 -0
  213. package/build/lib/core/agents/offSecAgent/tools/spawnCodingAgent.d.ts +43 -0
  214. package/build/lib/core/agents/offSecAgent/tools/spawnPentestAgent.d.ts +51 -0
  215. package/build/lib/core/agents/offSecAgent/tools/spawnPentestSwarm.d.ts +52 -0
  216. package/build/lib/core/agents/offSecAgent/tools/submitPlan.d.ts +12 -0
  217. package/build/lib/core/agents/offSecAgent/tools/testEndpointVariations.d.ts +34 -0
  218. package/build/lib/core/agents/offSecAgent/tools/threatModelGenerator.d.ts +32 -0
  219. package/build/lib/core/agents/offSecAgent/tools/toolOutput.d.ts +23 -0
  220. package/build/lib/core/agents/offSecAgent/tools/types.d.ts +215 -0
  221. package/build/lib/core/agents/offSecAgent/tools/updateFile.d.ts +14 -0
  222. package/build/lib/core/agents/offSecAgent/tools/updateTask.d.ts +20 -0
  223. package/build/lib/core/agents/offSecAgent/tools/validateDiscovery.d.ts +24 -0
  224. package/build/lib/core/agents/offSecAgent/tools/webSearch.d.ts +16 -0
  225. package/build/lib/core/agents/offSecAgent/tools/whiteboxCandidates.d.ts +108 -0
  226. package/build/lib/core/agents/offSecAgent/tools/whiteboxJobs.d.ts +157 -0
  227. package/build/lib/core/agents/offSecAgent/tools/windowsCurl.d.ts +20 -0
  228. package/build/lib/core/agents/offSecAgent/tools/workspaceApps.d.ts +120 -0
  229. package/build/lib/core/agents/offSecAgent/tools/workspaceDomains.d.ts +22 -0
  230. package/build/lib/core/agents/offSecAgent/tools/workspaceFailure.d.ts +6 -0
  231. package/build/lib/core/agents/offSecAgent/tools/writePlan.d.ts +13 -0
  232. package/build/lib/core/agents/offSecAgent/trace.d.ts +268 -0
  233. package/build/lib/core/agents/offSecAgent/types.d.ts +543 -0
  234. package/build/lib/core/agents/offSecAgent/types.js +7 -0
  235. package/build/lib/core/agents/specialized/attackSurface/blackboxAgent.d.ts +66 -0
  236. package/build/lib/core/agents/specialized/attackSurface/blackboxAgent.js +33 -0
  237. package/build/lib/core/agents/specialized/attackSurface/blackboxRiskScoring.d.ts +30 -0
  238. package/build/lib/core/agents/specialized/attackSurface/grpcSchema.d.ts +93 -0
  239. package/build/lib/core/agents/specialized/attackSurface/jsExtraction.d.ts +42 -0
  240. package/build/lib/core/agents/specialized/attackSurface/prompts.d.ts +1 -0
  241. package/build/lib/core/agents/specialized/attackSurface/schemas.d.ts +284 -0
  242. package/build/lib/core/agents/specialized/attackSurface/schemas.js +144 -0
  243. package/build/lib/core/agents/specialized/attackSurface/types.d.ts +32 -0
  244. package/build/lib/core/agents/specialized/authenticationAgent/agent.d.ts +73 -0
  245. package/build/lib/core/agents/specialized/authenticationAgent/index.d.ts +4 -0
  246. package/build/lib/core/agents/specialized/authenticationAgent/index.js +71 -0
  247. package/build/lib/core/agents/specialized/authenticationAgent/prompts.d.ts +10 -0
  248. package/build/lib/core/agents/specialized/authenticationAgent/types.d.ts +620 -0
  249. package/build/lib/core/agents/specialized/benchmark/comparisonAgent.d.ts +10 -0
  250. package/build/lib/core/agents/specialized/benchmark/docker-utils.d.ts +17 -0
  251. package/build/lib/core/agents/specialized/benchmark/flag-detector.d.ts +60 -0
  252. package/build/lib/core/agents/specialized/benchmark/index.d.ts +8 -0
  253. package/build/lib/core/agents/specialized/benchmark/prompts.d.ts +1 -0
  254. package/build/lib/core/agents/specialized/benchmark/remote/circuit-breaker.d.ts +22 -0
  255. package/build/lib/core/agents/specialized/benchmark/remote/daytona-wrapper.d.ts +33 -0
  256. package/build/lib/core/agents/specialized/benchmark/remote/index.d.ts +2 -0
  257. package/build/lib/core/agents/specialized/benchmark/types.d.ts +92 -0
  258. package/build/lib/core/agents/specialized/benchmarkComparisonAgent.d.ts +27 -0
  259. package/build/lib/core/agents/specialized/codeAgent/agent.d.ts +50 -0
  260. package/build/lib/core/agents/specialized/codeAgent/agent.js +31 -0
  261. package/build/lib/core/agents/specialized/codeAgent/prompts.d.ts +1 -0
  262. package/build/lib/core/agents/specialized/codeAgent/schemas.d.ts +11 -0
  263. package/build/lib/core/agents/specialized/codeAgent/schemas.js +10 -0
  264. package/build/lib/core/agents/specialized/cvssScorer/index.d.ts +56 -0
  265. package/build/lib/core/agents/specialized/environment/agent.d.ts +43 -0
  266. package/build/lib/core/agents/specialized/environment/index.d.ts +4 -0
  267. package/build/lib/core/agents/specialized/environment/prompts.d.ts +10 -0
  268. package/build/lib/core/agents/specialized/environment/types.d.ts +37 -0
  269. package/build/lib/core/agents/specialized/findingJudge/agent.d.ts +22 -0
  270. package/build/lib/core/agents/specialized/findingJudge/agent.js +224 -0
  271. package/build/lib/core/agents/specialized/findingJudge/index.d.ts +31 -0
  272. package/build/lib/core/agents/specialized/findingJudge/index.js +13 -0
  273. package/build/lib/core/agents/specialized/findingJudge/prompts.d.ts +3 -0
  274. package/build/lib/core/agents/specialized/findingJudge/types.d.ts +77 -0
  275. package/build/lib/core/agents/specialized/googleSignInPrompt.d.ts +4 -0
  276. package/build/lib/core/agents/specialized/mobileOtpPrompt.d.ts +1 -0
  277. package/build/lib/core/agents/specialized/patching/agent.d.ts +64 -0
  278. package/build/lib/core/agents/specialized/patching/index.d.ts +4 -0
  279. package/build/lib/core/agents/specialized/patching/index.js +44 -0
  280. package/build/lib/core/agents/specialized/patching/prompts.d.ts +17 -0
  281. package/build/lib/core/agents/specialized/patching/types.d.ts +40 -0
  282. package/build/lib/core/agents/specialized/pentest/agent.d.ts +172 -0
  283. package/build/lib/core/agents/specialized/pentest/agent.js +43 -0
  284. package/build/lib/core/agents/specialized/pentest/helperWorkspace.d.ts +16 -0
  285. package/build/lib/core/agents/specialized/pentest/planPrompt.d.ts +13 -0
  286. package/build/lib/core/agents/specialized/utils.d.ts +7 -0
  287. package/build/lib/core/agents/specialized/vulnerabilityReproduction/agent.d.ts +94 -0
  288. package/build/lib/core/agents/specialized/whiteboxAttackSurface/agent.d.ts +148 -0
  289. package/build/lib/core/agents/specialized/whiteboxAttackSurface/endpointDocumentationAgent.d.ts +61 -0
  290. package/build/lib/core/agents/specialized/whiteboxAttackSurface/index.d.ts +5 -0
  291. package/build/lib/core/agents/specialized/whiteboxAttackSurface/index.js +47 -0
  292. package/build/lib/core/agents/specialized/whiteboxAttackSurface/prompts.d.ts +34 -0
  293. package/build/lib/core/agents/specialized/whiteboxAttackSurface/types.d.ts +382 -0
  294. package/build/lib/core/agents/specialized/whiteboxAttackSurface/types.js +21 -0
  295. package/build/lib/core/ai/ai.d.ts +332 -0
  296. package/build/lib/core/ai/ai.js +68 -0
  297. package/build/lib/core/ai/caching.d.ts +26 -0
  298. package/build/lib/core/ai/compactionEvidence.d.ts +15 -0
  299. package/build/lib/core/ai/compactionTelemetry.d.ts +55 -0
  300. package/build/lib/core/ai/contextManagement.d.ts +85 -0
  301. package/build/lib/core/ai/index.d.ts +10 -0
  302. package/build/lib/core/ai/index.js +72 -0
  303. package/build/lib/core/ai/inference-attempt/adapters.d.ts +15 -0
  304. package/build/lib/core/ai/inference-attempt/builder.d.ts +31 -0
  305. package/build/lib/core/ai/inference-attempt/envelope.d.ts +120 -0
  306. package/build/lib/core/ai/inference-attempt/errors.d.ts +6 -0
  307. package/build/lib/core/ai/inference-attempt/identity.d.ts +13 -0
  308. package/build/lib/core/ai/inference-attempt/index.d.ts +36 -0
  309. package/build/lib/core/ai/inference-attempt/project.d.ts +21 -0
  310. package/build/lib/core/ai/inference-attempt/recording.d.ts +23 -0
  311. package/build/lib/core/ai/inference-attempt/tokens.d.ts +13 -0
  312. package/build/lib/core/ai/inference-attempt/validate.d.ts +2 -0
  313. package/build/lib/core/ai/mantle.d.ts +28 -0
  314. package/build/lib/core/ai/model-history.d.ts +4 -0
  315. package/build/lib/core/ai/models/anthropic.d.ts +2 -0
  316. package/build/lib/core/ai/models/bedrock.d.ts +2 -0
  317. package/build/lib/core/ai/models/claude-capabilities.d.ts +6 -0
  318. package/build/lib/core/ai/models/concentrate.d.ts +2 -0
  319. package/build/lib/core/ai/models/google.d.ts +2 -0
  320. package/build/lib/core/ai/models/inception.d.ts +2 -0
  321. package/build/lib/core/ai/models/index.d.ts +29 -0
  322. package/build/lib/core/ai/models/mantle.d.ts +2 -0
  323. package/build/lib/core/ai/models/openai.d.ts +2 -0
  324. package/build/lib/core/ai/models/openrouter.d.ts +2 -0
  325. package/build/lib/core/ai/models/pensar.d.ts +2 -0
  326. package/build/lib/core/ai/native-rollout-evidence/capture.d.ts +31 -0
  327. package/build/lib/core/ai/native-rollout-evidence/content.d.ts +14 -0
  328. package/build/lib/core/ai/native-rollout-evidence/index.d.ts +9 -0
  329. package/build/lib/core/ai/native-rollout-evidence/provider-metadata.d.ts +15 -0
  330. package/build/lib/core/ai/native-rollout-evidence/schema.d.ts +554 -0
  331. package/build/lib/core/ai/native-rollout-evidence/validate.d.ts +8 -0
  332. package/build/lib/core/ai/providers/anthropic.d.ts +2 -0
  333. package/build/lib/core/ai/providers/concentrate.d.ts +9 -0
  334. package/build/lib/core/ai/providers/custom.d.ts +3 -0
  335. package/build/lib/core/ai/providers/hoonify.d.ts +6 -0
  336. package/build/lib/core/ai/providers/openai-pro-fetch.d.ts +2 -0
  337. package/build/lib/core/ai/providers/pensar.d.ts +34 -0
  338. package/build/lib/core/ai/providers/pensarFormatters.d.ts +2 -0
  339. package/build/lib/core/ai/providers/pensarResponsesStream.d.ts +15 -0
  340. package/build/lib/core/ai/providers/pensarSSE.d.ts +23 -0
  341. package/build/lib/core/ai/providers/pensarSigning.d.ts +1 -0
  342. package/build/lib/core/ai/providers/pensarStreamUsage.d.ts +19 -0
  343. package/build/lib/core/ai/streamTelemetry.d.ts +22 -0
  344. package/build/lib/core/ai/utils.d.ts +90 -0
  345. package/build/lib/core/ai/utils.js +22 -0
  346. package/build/lib/core/api/apiClient.d.ts +7 -0
  347. package/build/lib/core/api/apps.d.ts +213 -0
  348. package/build/lib/core/api/attackSurface.d.ts +14 -0
  349. package/build/lib/core/api/authentication.d.ts +3 -0
  350. package/build/lib/core/api/benchmark.d.ts +5 -0
  351. package/build/lib/core/api/blackboxPentest.d.ts +11 -0
  352. package/build/lib/core/api/clientIdentity.d.ts +10 -0
  353. package/build/lib/core/api/constants.d.ts +5 -0
  354. package/build/lib/core/api/domains.d.ts +19 -0
  355. package/build/lib/core/api/environment.d.ts +16 -0
  356. package/build/lib/core/api/index.d.ts +41 -0
  357. package/build/lib/core/api/index.js +187 -0
  358. package/build/lib/core/api/issues.d.ts +273 -0
  359. package/build/lib/core/api/knowledge.d.ts +33 -0
  360. package/build/lib/core/api/localWorker.d.ts +4 -0
  361. package/build/lib/core/api/offesecAgent.d.ts +34 -0
  362. package/build/lib/core/api/patching.d.ts +15 -0
  363. package/build/lib/core/api/recordedRun.d.ts +36 -0
  364. package/build/lib/core/api/targetedPentest.d.ts +15 -0
  365. package/build/lib/core/api/targetedPentest.js +32 -0
  366. package/build/lib/core/api/threatModel.d.ts +1 -0
  367. package/build/lib/core/api/trajectoryExport.d.ts +38 -0
  368. package/build/lib/core/api/vulnerabilityReproduction.d.ts +10 -0
  369. package/build/lib/core/assets/wordlists.d.ts +31 -0
  370. package/build/lib/core/atif/convert.d.ts +27 -0
  371. package/build/lib/core/atif/index.d.ts +7 -0
  372. package/build/lib/core/atif/schema.d.ts +459 -0
  373. package/build/lib/core/atif/serialize.d.ts +2 -0
  374. package/build/lib/core/atif/test-fixtures.d.ts +28 -0
  375. package/build/lib/core/atif/validate.d.ts +12 -0
  376. package/build/lib/core/auth/connection.d.ts +12 -0
  377. package/build/lib/core/auth/device-flow.d.ts +38 -0
  378. package/build/lib/core/auth/gateway.d.ts +25 -0
  379. package/build/lib/core/auth/index.d.ts +8 -0
  380. package/build/lib/core/auth/signing.d.ts +14 -0
  381. package/build/lib/core/auth/token.d.ts +17 -0
  382. package/build/lib/core/auth/types.d.ts +85 -0
  383. package/build/lib/core/auth/workspaces.d.ts +34 -0
  384. package/build/lib/core/benchmark/index.d.ts +3 -0
  385. package/build/lib/core/benchmark/report.d.ts +3 -0
  386. package/build/lib/core/benchmark/runner.d.ts +3 -0
  387. package/build/lib/core/benchmark/types.d.ts +80 -0
  388. package/build/lib/core/cli/logLevelArgs.d.ts +18 -0
  389. package/build/lib/core/cli/model.d.ts +9 -0
  390. package/build/lib/core/cli/pentestMode.d.ts +5 -0
  391. package/build/lib/core/cli/tuiArgs.d.ts +5 -0
  392. package/build/lib/core/config/config.d.ts +86 -0
  393. package/build/lib/core/config/customProviders.d.ts +62 -0
  394. package/build/lib/core/config/index.d.ts +6 -0
  395. package/build/lib/core/config/index.js +6 -0
  396. package/build/lib/core/credentials/index.d.ts +2 -0
  397. package/build/lib/core/credentials/manager.d.ts +85 -0
  398. package/build/lib/core/credentials/types.d.ts +79 -0
  399. package/build/lib/core/doctor.d.ts +1 -0
  400. package/build/lib/core/eventBus.d.ts +195 -0
  401. package/build/lib/core/eventBus.js +6 -0
  402. package/build/lib/core/findings/attackSurfaceRegistry.d.ts +88 -0
  403. package/build/lib/core/findings/attackSurfaceRegistry.js +6 -0
  404. package/build/lib/core/findings/registry.d.ts +177 -0
  405. package/build/lib/core/findings/registry.js +21 -0
  406. package/build/lib/core/history.d.ts +23 -0
  407. package/build/lib/core/hoonify.d.ts +8 -0
  408. package/build/lib/core/http/parse.d.ts +50 -0
  409. package/build/lib/core/http/redirects.d.ts +23 -0
  410. package/build/lib/core/http/targetHeaders.d.ts +30 -0
  411. package/build/lib/core/http/targetScope.d.ts +12 -0
  412. package/build/lib/core/http/types.d.ts +11 -0
  413. package/build/lib/core/id/id.d.ts +60 -0
  414. package/build/lib/core/id/id.js +28 -0
  415. package/build/lib/core/installation/index.d.ts +25 -0
  416. package/build/lib/core/integrations/herdr.d.ts +13 -0
  417. package/build/lib/core/integrations/surface/index.d.ts +37 -0
  418. package/build/lib/core/integrations/surface/types.d.ts +22 -0
  419. package/build/lib/core/integrations/wandb/client.d.ts +23 -0
  420. package/build/lib/core/integrations/wandb/upload.d.ts +36 -0
  421. package/build/lib/core/logger/index.d.ts +62 -0
  422. package/build/lib/core/logger/structured.d.ts +30 -0
  423. package/build/lib/core/memory/index.d.ts +92 -0
  424. package/build/lib/core/memory/index.js +21 -0
  425. package/build/lib/core/messages/types.d.ts +96 -0
  426. package/build/lib/core/obfuscation/engine.d.ts +51 -0
  427. package/build/lib/core/obfuscation/index.d.ts +20 -0
  428. package/build/lib/core/observability/active-root-spans.d.ts +5 -0
  429. package/build/lib/core/observability/active-spans.d.ts +22 -0
  430. package/build/lib/core/observability/index.d.ts +36 -0
  431. package/build/lib/core/observability/index.js +27 -0
  432. package/build/lib/core/observability/runtime.d.ts +63 -0
  433. package/build/lib/core/observability/telemetry.d.ts +52 -0
  434. package/build/lib/core/observability/testkit.d.ts +24 -0
  435. package/build/lib/core/operator/approvalGate.d.ts +61 -0
  436. package/build/lib/core/operator/index.d.ts +9 -0
  437. package/build/lib/core/operator/types.d.ts +167 -0
  438. package/build/lib/core/plan/index.d.ts +16 -0
  439. package/build/lib/core/prompt-injections/index.d.ts +111 -0
  440. package/build/lib/core/prompt-injections/index.js +24 -0
  441. package/build/lib/core/providers/index.d.ts +5 -0
  442. package/build/lib/core/providers/types.d.ts +13 -0
  443. package/build/lib/core/providers/utils.d.ts +15 -0
  444. package/build/lib/core/providers/verify.d.ts +11 -0
  445. package/build/lib/core/report/builder.d.ts +9 -0
  446. package/build/lib/core/report/index.d.ts +7 -0
  447. package/build/lib/core/report/renderers/json.d.ts +2 -0
  448. package/build/lib/core/report/renderers/markdown.d.ts +2 -0
  449. package/build/lib/core/report/schemas.d.ts +115 -0
  450. package/build/lib/core/runtime/agentExecution.d.ts +15 -0
  451. package/build/lib/core/runtime/launchLocalWorker.d.ts +33 -0
  452. package/build/lib/core/runtime/localRunLock.d.ts +9 -0
  453. package/build/lib/core/runtime/localRunWorker.d.ts +18 -0
  454. package/build/lib/core/runtime/localWorkerEndpoint.d.ts +14 -0
  455. package/build/lib/core/runtime/localWorkerProtocol.d.ts +294 -0
  456. package/build/lib/core/runtime/localWorkerTransport.d.ts +30 -0
  457. package/build/lib/core/runtime/persistenceError.d.ts +9 -0
  458. package/build/lib/core/runtime/recordedExecution.d.ts +6 -0
  459. package/build/lib/core/runtime/recordedRunClient.d.ts +34 -0
  460. package/build/lib/core/runtime/runCheckpointStore.d.ts +11 -0
  461. package/build/lib/core/runtime/runContext.d.ts +48 -0
  462. package/build/lib/core/runtime/runControl.d.ts +44 -0
  463. package/build/lib/core/runtime/runControlStore.d.ts +83 -0
  464. package/build/lib/core/runtime/runDeadline.d.ts +4 -0
  465. package/build/lib/core/runtime/runEvidence.d.ts +37 -0
  466. package/build/lib/core/runtime/runInference.d.ts +9 -0
  467. package/build/lib/core/runtime/runModelStore.d.ts +27 -0
  468. package/build/lib/core/runtime/runObservation.d.ts +19 -0
  469. package/build/lib/core/runtime/runRecoveryContext.d.ts +20 -0
  470. package/build/lib/core/runtime/runRecoveryPlan.d.ts +38 -0
  471. package/build/lib/core/runtime/runRecoveryStore.d.ts +77 -0
  472. package/build/lib/core/runtime/runStore.d.ts +133 -0
  473. package/build/lib/core/runtime/runStorePath.d.ts +1 -0
  474. package/build/lib/core/runtime/runToolStore.d.ts +50 -0
  475. package/build/lib/core/runtime/runTools.d.ts +16 -0
  476. package/build/lib/core/runtime/sqliteControlStore.d.ts +41 -0
  477. package/build/lib/core/runtime/sqliteModelStore.d.ts +20 -0
  478. package/build/lib/core/runtime/sqliteRecoveryStore.d.ts +35 -0
  479. package/build/lib/core/runtime/sqliteRunStore.d.ts +8 -0
  480. package/build/lib/core/runtime/sqliteToolStore.d.ts +30 -0
  481. package/build/lib/core/runtime/testfixtures/localWorkerChild.d.ts +1 -0
  482. package/build/lib/core/runtime/testfixtures/localWorkerLauncher.d.ts +1 -0
  483. package/build/lib/core/runtime/testfixtures/recoveryChild.d.ts +1 -0
  484. package/build/lib/core/services/rateLimiter/index.d.ts +36 -0
  485. package/build/lib/core/services/rateLimiter/types.d.ts +10 -0
  486. package/build/lib/core/session/execution-metrics.d.ts +37 -0
  487. package/build/lib/core/session/index.d.ts +586 -0
  488. package/build/lib/core/session/index.js +36 -0
  489. package/build/lib/core/session/loader.d.ts +30 -0
  490. package/build/lib/core/session/persistence.d.ts +215 -0
  491. package/build/lib/core/session/persistence.js +35 -0
  492. package/build/lib/core/session/types.d.ts +59 -0
  493. package/build/lib/core/session/usage.d.ts +37 -0
  494. package/build/lib/core/skills/builtins/index.d.ts +13 -0
  495. package/build/lib/core/skills/builtins/pentest.d.ts +19 -0
  496. package/build/lib/core/skills/builtins/promptInjection.d.ts +2 -0
  497. package/build/lib/core/skills/builtins/threatModel.d.ts +11 -0
  498. package/build/lib/core/skills/index.d.ts +5 -0
  499. package/build/lib/core/skills/parser.d.ts +11 -0
  500. package/build/lib/core/skills/registry.d.ts +30 -0
  501. package/build/lib/core/skills/scanner.d.ts +12 -0
  502. package/build/lib/core/skills/types.d.ts +44 -0
  503. package/build/lib/core/skills/utils.d.ts +6 -0
  504. package/build/lib/core/storage/index.d.ts +248 -0
  505. package/build/lib/core/tasks/index.d.ts +78 -0
  506. package/build/lib/core/tools/backends/capture.d.ts +10 -0
  507. package/build/lib/core/tools/backends/collectCommand.d.ts +9 -0
  508. package/build/lib/core/tools/backends/helpers.d.ts +43 -0
  509. package/build/lib/core/tools/backends/httpTransport.d.ts +18 -0
  510. package/build/lib/core/tools/backends/index.d.ts +8 -0
  511. package/build/lib/core/tools/backends/index.js +31 -0
  512. package/build/lib/core/tools/backends/local.d.ts +11 -0
  513. package/build/lib/core/tools/backends/policy.d.ts +39 -0
  514. package/build/lib/core/tools/backends/resolve.d.ts +25 -0
  515. package/build/lib/core/tools/backends/types.d.ts +240 -0
  516. package/build/lib/core/tools/backends/whitebox.d.ts +6 -0
  517. package/build/lib/core/tools/backends/whiteboxJobs.d.ts +18 -0
  518. package/build/lib/core/tools/backends/windowsProgram.d.ts +4 -0
  519. package/build/lib/core/tools/daytonaSandbox.d.ts +14 -0
  520. package/build/lib/core/toolset/index.d.ts +28 -0
  521. package/build/lib/core/util/lazyLogger.d.ts +16 -0
  522. package/build/lib/core/utils/concurrency.d.ts +16 -0
  523. package/build/lib/core/utils/prompt.d.ts +12 -0
  524. package/build/lib/core/whitebox/adapters.d.ts +29 -0
  525. package/build/lib/core/whitebox/artifacts.d.ts +32 -0
  526. package/build/lib/core/whitebox/boundedProcess.d.ts +35 -0
  527. package/build/lib/core/whitebox/candidates.d.ts +29 -0
  528. package/build/lib/core/whitebox/catalog.d.ts +10 -0
  529. package/build/lib/core/whitebox/index.d.ts +9 -0
  530. package/build/lib/core/whitebox/jobKernel.d.ts +33 -0
  531. package/build/lib/core/whitebox/jobSupervisor.d.ts +14 -0
  532. package/build/lib/core/whitebox/jobs.d.ts +17 -0
  533. package/build/lib/core/whitebox/paths.d.ts +22 -0
  534. package/build/lib/core/whitebox/profileTransport.d.ts +10 -0
  535. package/build/lib/core/whitebox/profiles.d.ts +3 -0
  536. package/build/lib/core/whitebox/repoProfile.d.ts +4 -0
  537. package/build/lib/core/whitebox/types.d.ts +108 -0
  538. package/build/lib/core/workflows/fastStrike.d.ts +4 -0
  539. package/build/lib/core/workflows/pentest.d.ts +167 -0
  540. package/build/lib/core/workflows/pentest.js +42 -0
  541. package/build/lib/core/workflows/seams.d.ts +102 -0
  542. package/build/lib/core/workflows/seams.js +37 -0
  543. package/build/lib/core/workflows/threatModel.d.ts +26 -0
  544. package/build/lib/core/workflows/whiteboxAttackSurface.d.ts +142 -0
  545. package/build/lib/core/workflows/whiteboxAttackSurface.js +36 -0
  546. package/build/lib/index.d.ts +26 -0
  547. package/build/lib/index.js +96 -0
  548. package/build/lib/lib/attack-path/types.d.ts +9 -0
  549. package/build/lib/lib/cvss/calculator.d.ts +31 -0
  550. package/build/lib/lib/cvss/index.d.ts +24 -0
  551. package/build/lib/lib/cvss/index.js +24 -0
  552. package/build/lib/lib/cvss/macrovector-scores.d.ts +59 -0
  553. package/build/lib/lib/cvss/types.d.ts +114 -0
  554. package/build/lib/lib/cvss/types.js +8 -0
  555. package/build/lib/lib/cwe/cwe-catalog.d.ts +13 -0
  556. package/build/lib/lib/cwe/types.d.ts +28 -0
  557. package/build/lib/lib/cwe/validate.d.ts +15 -0
  558. package/build/lib/lib/evidence/types.d.ts +12 -0
  559. package/build/lib/util/errors.d.ts +186 -0
  560. package/build/lib/util/lock.d.ts +2 -0
  561. package/build/lib/util/name.d.ts +14 -0
  562. package/build/lib/util/url.d.ts +40 -0
  563. package/build/{logs-wzr5176k.js → logs-1r7nkzhg.js} +22 -30
  564. package/build/{multipart-parser-g2xxkezz.js → multipart-parser-vjjdbpd1.js} +10 -10
  565. package/build/native-rollout-evidence-y0vdtjje.js +135 -0
  566. package/build/offesecAgent-dfj42jkj.js +22 -0
  567. package/build/{parse-rtccymzn.js → parse-cqecqrc5.js} +0 -4
  568. package/build/pentest-n8k0dd5q.js +22 -0
  569. package/build/pentests-jh9az51h.js +143 -0
  570. package/build/recordedRunClient-mvendk9n.js +11 -0
  571. package/build/{targetedPentest-tdwtgmxm.js → targetedPentest-rgffxsgd.js} +22 -22
  572. package/build/{targets-763n91t7.js → targets-wn0gmdhe.js} +24 -32
  573. package/build/threatModel-6efzjpbv.js +21 -0
  574. package/build/{token-3bbp59y6.js → token-mk7t8y0y.js} +2 -2
  575. package/build/{token-util-6xjme11b.js → token-util-vd776hrv.js} +1 -2
  576. package/build/{uninstall-d33159cz.js → uninstall-cmv057jn.js} +3 -3
  577. package/build/{upload-9qj1kpt9.js → upload-vkkj6h54.js} +8 -14
  578. package/build/{utils-t7gc2903.js → utils-b1kae4f3.js} +29 -29
  579. package/package.json +230 -5
  580. package/src/cli/agent-runs.attach.test.ts +359 -0
  581. package/src/cli/agent-runs.test.ts +1172 -0
  582. package/src/cli/agent-runs.ts +430 -0
  583. package/src/cli/apps.test.ts +63 -0
  584. package/src/cli/apps.ts +526 -0
  585. package/src/cli/auth.ts +375 -0
  586. package/src/cli/command-exit.test.ts +15 -0
  587. package/src/cli/command-exit.ts +3 -0
  588. package/src/cli/config.ts +210 -0
  589. package/src/cli/export-trajectory.test.ts +224 -0
  590. package/src/cli/export-trajectory.ts +119 -0
  591. package/src/cli/fixes.ts +56 -0
  592. package/src/cli/issues.test.ts +214 -0
  593. package/src/cli/issues.ts +242 -0
  594. package/src/cli/json-output.test.ts +62 -0
  595. package/src/cli/knowledge.test.ts +140 -0
  596. package/src/cli/knowledge.ts +146 -0
  597. package/src/cli/launcher.test.ts +81 -0
  598. package/src/cli/logs.ts +111 -0
  599. package/src/cli/native-rollout-evidence.test.ts +322 -0
  600. package/src/cli/native-rollout-evidence.ts +206 -0
  601. package/src/cli/pentests.test.ts +194 -0
  602. package/src/cli/pentests.ts +159 -0
  603. package/src/cli/resume.test.ts +107 -0
  604. package/src/cli/targets.ts +125 -0
  605. package/src/cli/uninstall.ts +302 -0
  606. package/src/cli.ts +882 -0
  607. package/src/core/agents/agentRuntime.test.ts +242 -0
  608. package/src/core/agents/agentRuntime.ts +120 -0
  609. package/src/core/agents/defineAgent.ts +134 -0
  610. package/src/core/agents/offSecAgent/index.ts +162 -0
  611. package/src/core/agents/offSecAgent/interruptedStepFinalization.test.ts +295 -0
  612. package/src/core/agents/offSecAgent/interruptedStepFinalization.ts +162 -0
  613. package/src/core/agents/offSecAgent/interruptedStepMessages.test.ts +296 -0
  614. package/src/core/agents/offSecAgent/interruptedStepMessages.ts +137 -0
  615. package/src/core/agents/offSecAgent/messagePersistence.test.ts +281 -0
  616. package/src/core/agents/offSecAgent/messagePersistence.ts +111 -0
  617. package/src/core/agents/offSecAgent/offensiveSecurityAgent.runtimeContext.test.ts +689 -0
  618. package/src/core/agents/offSecAgent/offensiveSecurityAgent.test.ts +2899 -0
  619. package/src/core/agents/offSecAgent/offensiveSecurityAgent.ts +1610 -0
  620. package/src/core/agents/offSecAgent/prompt.test.ts +72 -0
  621. package/src/core/agents/offSecAgent/prompt.ts +368 -0
  622. package/src/core/agents/offSecAgent/recordedTools.test.ts +580 -0
  623. package/src/core/agents/offSecAgent/recordedTools.ts +162 -0
  624. package/src/core/agents/offSecAgent/runtimeContext.test.ts +531 -0
  625. package/src/core/agents/offSecAgent/runtimeContext.ts +387 -0
  626. package/src/core/agents/offSecAgent/selectiveConstruction.publicPath.test.ts +295 -0
  627. package/src/core/agents/offSecAgent/selectiveConstruction.test.ts +498 -0
  628. package/src/core/agents/offSecAgent/streamDiagnostics.test.ts +310 -0
  629. package/src/core/agents/offSecAgent/streamDiagnostics.ts +237 -0
  630. package/src/core/agents/offSecAgent/subagentSpawner.hooks.test.ts +102 -0
  631. package/src/core/agents/offSecAgent/subagentSpawner.test.ts +384 -0
  632. package/src/core/agents/offSecAgent/subagentSpawner.ts +664 -0
  633. package/src/core/agents/offSecAgent/toolLifecycle.test.ts +199 -0
  634. package/src/core/agents/offSecAgent/toolLifecycle.ts +171 -0
  635. package/src/core/agents/offSecAgent/tools/__tests__/sandboxScript.ts +14 -0
  636. package/src/core/agents/offSecAgent/tools/addMemory.ts +87 -0
  637. package/src/core/agents/offSecAgent/tools/agentScratch.test.ts +36 -0
  638. package/src/core/agents/offSecAgent/tools/agentScratch.ts +23 -0
  639. package/src/core/agents/offSecAgent/tools/applyPatch.test.ts +546 -0
  640. package/src/core/agents/offSecAgent/tools/applyPatch.ts +58 -0
  641. package/src/core/agents/offSecAgent/tools/applyPatchImpl.ts +300 -0
  642. package/src/core/agents/offSecAgent/tools/askUserQuestions.ts +81 -0
  643. package/src/core/agents/offSecAgent/tools/authBackendStatus.test.ts +112 -0
  644. package/src/core/agents/offSecAgent/tools/browserHeaderRouting.test.ts +136 -0
  645. package/src/core/agents/offSecAgent/tools/browserHeaderRouting.ts +81 -0
  646. package/src/core/agents/offSecAgent/tools/browserToolFactories.ts +372 -0
  647. package/src/core/agents/offSecAgent/tools/browserTools.test.ts +243 -0
  648. package/src/core/agents/offSecAgent/tools/browserTools.ts +285 -0
  649. package/src/core/agents/offSecAgent/tools/callbackListener.test.ts +1011 -0
  650. package/src/core/agents/offSecAgent/tools/callbackListener.ts +1038 -0
  651. package/src/core/agents/offSecAgent/tools/camoufox.test.ts +119 -0
  652. package/src/core/agents/offSecAgent/tools/camoufox.ts +199 -0
  653. package/src/core/agents/offSecAgent/tools/checkpointState.ts +79 -0
  654. package/src/core/agents/offSecAgent/tools/codingTools.windows.test.ts +625 -0
  655. package/src/core/agents/offSecAgent/tools/completeAuthentication.ts +136 -0
  656. package/src/core/agents/offSecAgent/tools/crawlAuthenticated.test.ts +267 -0
  657. package/src/core/agents/offSecAgent/tools/crawlAuthenticated.ts +170 -0
  658. package/src/core/agents/offSecAgent/tools/createAttackSurfaceReport.ts +75 -0
  659. package/src/core/agents/offSecAgent/tools/createFile.test.ts +111 -0
  660. package/src/core/agents/offSecAgent/tools/createFile.ts +44 -0
  661. package/src/core/agents/offSecAgent/tools/createTask.ts +118 -0
  662. package/src/core/agents/offSecAgent/tools/delegateAuth.ts +391 -0
  663. package/src/core/agents/offSecAgent/tools/deleteFile.test.ts +102 -0
  664. package/src/core/agents/offSecAgent/tools/deleteFile.ts +39 -0
  665. package/src/core/agents/offSecAgent/tools/destructiveGuard.test.ts +827 -0
  666. package/src/core/agents/offSecAgent/tools/destructiveGuard.ts +747 -0
  667. package/src/core/agents/offSecAgent/tools/detectAuthScheme.ts +191 -0
  668. package/src/core/agents/offSecAgent/tools/documentApp.ts +242 -0
  669. package/src/core/agents/offSecAgent/tools/documentEndpoint.ts +291 -0
  670. package/src/core/agents/offSecAgent/tools/documentFinding.test.ts +2091 -0
  671. package/src/core/agents/offSecAgent/tools/documentFinding.ts +1240 -0
  672. package/src/core/agents/offSecAgent/tools/email/adapters.test.ts +279 -0
  673. package/src/core/agents/offSecAgent/tools/email/adapters.ts +1121 -0
  674. package/src/core/agents/offSecAgent/tools/email/getAttachments.ts +73 -0
  675. package/src/core/agents/offSecAgent/tools/email/getMessage.ts +56 -0
  676. package/src/core/agents/offSecAgent/tools/email/inboxBackend.test.ts +137 -0
  677. package/src/core/agents/offSecAgent/tools/email/index.ts +55 -0
  678. package/src/core/agents/offSecAgent/tools/email/listInboxes.ts +47 -0
  679. package/src/core/agents/offSecAgent/tools/email/listMessages.ts +67 -0
  680. package/src/core/agents/offSecAgent/tools/email/markRead.ts +57 -0
  681. package/src/core/agents/offSecAgent/tools/email/searchMessages.ts +76 -0
  682. package/src/core/agents/offSecAgent/tools/email/sendEmail.ts +165 -0
  683. package/src/core/agents/offSecAgent/tools/email/types.ts +45 -0
  684. package/src/core/agents/offSecAgent/tools/executeCommand.backends.test.ts +171 -0
  685. package/src/core/agents/offSecAgent/tools/executeCommand.test.ts +1153 -0
  686. package/src/core/agents/offSecAgent/tools/executeCommand.ts +604 -0
  687. package/src/core/agents/offSecAgent/tools/extractJsEndpoints.ts +44 -0
  688. package/src/core/agents/offSecAgent/tools/fileBackends.test.ts +66 -0
  689. package/src/core/agents/offSecAgent/tools/fileMutations.test.ts +159 -0
  690. package/src/core/agents/offSecAgent/tools/fileToolBackendPurity.test.ts +72 -0
  691. package/src/core/agents/offSecAgent/tools/fileWorkspace.test.ts +357 -0
  692. package/src/core/agents/offSecAgent/tools/fileWorkspace.ts +434 -0
  693. package/src/core/agents/offSecAgent/tools/fileWorkspaceRemote.ts +263 -0
  694. package/src/core/agents/offSecAgent/tools/getMemory.ts +69 -0
  695. package/src/core/agents/offSecAgent/tools/getPage.test.ts +1127 -0
  696. package/src/core/agents/offSecAgent/tools/getPage.ts +70 -0
  697. package/src/core/agents/offSecAgent/tools/gitDiff.ts +67 -0
  698. package/src/core/agents/offSecAgent/tools/gitStatus.ts +61 -0
  699. package/src/core/agents/offSecAgent/tools/gitTools.test.ts +237 -0
  700. package/src/core/agents/offSecAgent/tools/glob.test.ts +695 -0
  701. package/src/core/agents/offSecAgent/tools/glob.ts +51 -0
  702. package/src/core/agents/offSecAgent/tools/globImpl.ts +313 -0
  703. package/src/core/agents/offSecAgent/tools/globPattern.ts +203 -0
  704. package/src/core/agents/offSecAgent/tools/grep.test.ts +922 -0
  705. package/src/core/agents/offSecAgent/tools/grep.ts +73 -0
  706. package/src/core/agents/offSecAgent/tools/grepImpl.ts +718 -0
  707. package/src/core/agents/offSecAgent/tools/httpBackends.test.ts +534 -0
  708. package/src/core/agents/offSecAgent/tools/httpRequest.test.ts +2409 -0
  709. package/src/core/agents/offSecAgent/tools/httpRequest.ts +425 -0
  710. package/src/core/agents/offSecAgent/tools/index.ts +787 -0
  711. package/src/core/agents/offSecAgent/tools/listFiles.bounded.test.ts +514 -0
  712. package/src/core/agents/offSecAgent/tools/listFiles.public-counters.test.ts +163 -0
  713. package/src/core/agents/offSecAgent/tools/listFiles.test.ts +521 -0
  714. package/src/core/agents/offSecAgent/tools/listFiles.ts +49 -0
  715. package/src/core/agents/offSecAgent/tools/listFilesImpl.ts +351 -0
  716. package/src/core/agents/offSecAgent/tools/listMemories.ts +71 -0
  717. package/src/core/agents/offSecAgent/tools/listPromptInjections.test.ts +201 -0
  718. package/src/core/agents/offSecAgent/tools/listPromptInjections.ts +78 -0
  719. package/src/core/agents/offSecAgent/tools/listTasks.ts +100 -0
  720. package/src/core/agents/offSecAgent/tools/patchApply.test.ts +573 -0
  721. package/src/core/agents/offSecAgent/tools/patchApply.ts +430 -0
  722. package/src/core/agents/offSecAgent/tools/patchParse.test.ts +383 -0
  723. package/src/core/agents/offSecAgent/tools/patchParse.ts +354 -0
  724. package/src/core/agents/offSecAgent/tools/perCommandShell.drain.test.ts +109 -0
  725. package/src/core/agents/offSecAgent/tools/perCommandShell.test.ts +565 -0
  726. package/src/core/agents/offSecAgent/tools/perCommandShell.ts +516 -0
  727. package/src/core/agents/offSecAgent/tools/perCommandShell.windows.test.ts +142 -0
  728. package/src/core/agents/offSecAgent/tools/playwrightMcp.test.ts +778 -0
  729. package/src/core/agents/offSecAgent/tools/playwrightMcp.ts +1426 -0
  730. package/src/core/agents/offSecAgent/tools/probeAuthEndpoints.ts +262 -0
  731. package/src/core/agents/offSecAgent/tools/profileCodebase.ts +110 -0
  732. package/src/core/agents/offSecAgent/tools/provideComparisonResults.ts +106 -0
  733. package/src/core/agents/offSecAgent/tools/queryWhiteboxCatalog.coalescing-cost.test.ts +108 -0
  734. package/src/core/agents/offSecAgent/tools/queryWhiteboxCatalog.test.ts +183 -0
  735. package/src/core/agents/offSecAgent/tools/queryWhiteboxCatalog.ts +143 -0
  736. package/src/core/agents/offSecAgent/tools/readFile.test.ts +1242 -0
  737. package/src/core/agents/offSecAgent/tools/readFile.ts +89 -0
  738. package/src/core/agents/offSecAgent/tools/readFileImpl.ts +956 -0
  739. package/src/core/agents/offSecAgent/tools/readSkill.ts +38 -0
  740. package/src/core/agents/offSecAgent/tools/reportError.test.ts +48 -0
  741. package/src/core/agents/offSecAgent/tools/reportError.ts +65 -0
  742. package/src/core/agents/offSecAgent/tools/response.ts +27 -0
  743. package/src/core/agents/offSecAgent/tools/runAttackSurface.ts +198 -0
  744. package/src/core/agents/offSecAgent/tools/runCodeQuery.test.ts +82 -0
  745. package/src/core/agents/offSecAgent/tools/runCodeQuery.ts +237 -0
  746. package/src/core/agents/offSecAgent/tools/runPentestWorkflow.ts +122 -0
  747. package/src/core/agents/offSecAgent/tools/runWhiteboxScan.ts +189 -0
  748. package/src/core/agents/offSecAgent/tools/runtimeBackendConsumers.test.ts +143 -0
  749. package/src/core/agents/offSecAgent/tools/sandbox.ts +37 -0
  750. package/src/core/agents/offSecAgent/tools/sandboxPlaywright.test.ts +235 -0
  751. package/src/core/agents/offSecAgent/tools/sandboxPlaywright.ts +1029 -0
  752. package/src/core/agents/offSecAgent/tools/sandboxScript.test.ts +31 -0
  753. package/src/core/agents/offSecAgent/tools/sandboxScript.ts +60 -0
  754. package/src/core/agents/offSecAgent/tools/scopeGuard.test.ts +574 -0
  755. package/src/core/agents/offSecAgent/tools/scopeGuard.ts +317 -0
  756. package/src/core/agents/offSecAgent/tools/scriptSyntaxCheck.test.ts +566 -0
  757. package/src/core/agents/offSecAgent/tools/scriptSyntaxCheck.ts +240 -0
  758. package/src/core/agents/offSecAgent/tools/selectiveFactories.test.ts +476 -0
  759. package/src/core/agents/offSecAgent/tools/smsInbox.ts +130 -0
  760. package/src/core/agents/offSecAgent/tools/smsListMessages.test.ts +443 -0
  761. package/src/core/agents/offSecAgent/tools/smsListMessages.ts +123 -0
  762. package/src/core/agents/offSecAgent/tools/spawnCodingAgent.ts +229 -0
  763. package/src/core/agents/offSecAgent/tools/spawnPentestAgent.test.ts +413 -0
  764. package/src/core/agents/offSecAgent/tools/spawnPentestAgent.ts +266 -0
  765. package/src/core/agents/offSecAgent/tools/spawnPentestSwarm.ts +146 -0
  766. package/src/core/agents/offSecAgent/tools/submitPlan.ts +51 -0
  767. package/src/core/agents/offSecAgent/tools/testEndpointVariations.ts +127 -0
  768. package/src/core/agents/offSecAgent/tools/threatModelGenerator.ts +664 -0
  769. package/src/core/agents/offSecAgent/tools/toolOutput.test.ts +480 -0
  770. package/src/core/agents/offSecAgent/tools/toolOutput.ts +160 -0
  771. package/src/core/agents/offSecAgent/tools/types.ts +267 -0
  772. package/src/core/agents/offSecAgent/tools/updateFile.ts +121 -0
  773. package/src/core/agents/offSecAgent/tools/updateTask.ts +107 -0
  774. package/src/core/agents/offSecAgent/tools/validateDiscovery.ts +123 -0
  775. package/src/core/agents/offSecAgent/tools/webSearch.ts +265 -0
  776. package/src/core/agents/offSecAgent/tools/whiteboxCandidates.ts +197 -0
  777. package/src/core/agents/offSecAgent/tools/whiteboxJobs.ts +312 -0
  778. package/src/core/agents/offSecAgent/tools/windowsCurl.test.ts +801 -0
  779. package/src/core/agents/offSecAgent/tools/windowsCurl.ts +202 -0
  780. package/src/core/agents/offSecAgent/tools/workspaceApps.test.ts +257 -0
  781. package/src/core/agents/offSecAgent/tools/workspaceApps.ts +334 -0
  782. package/src/core/agents/offSecAgent/tools/workspaceDomains.test.ts +113 -0
  783. package/src/core/agents/offSecAgent/tools/workspaceDomains.ts +57 -0
  784. package/src/core/agents/offSecAgent/tools/workspaceFailure.ts +11 -0
  785. package/src/core/agents/offSecAgent/tools/writePlan.ts +65 -0
  786. package/src/core/agents/offSecAgent/trace.test.ts +796 -0
  787. package/src/core/agents/offSecAgent/trace.ts +633 -0
  788. package/src/core/agents/offSecAgent/types.test.ts +224 -0
  789. package/src/core/agents/offSecAgent/types.ts +676 -0
  790. package/src/core/agents/specialized/attackSurface/blackboxAgent.test.ts +31 -0
  791. package/src/core/agents/specialized/attackSurface/blackboxAgent.ts +272 -0
  792. package/src/core/agents/specialized/attackSurface/blackboxRiskScoring.ts +276 -0
  793. package/src/core/agents/specialized/attackSurface/grpcSchema.ts +142 -0
  794. package/src/core/agents/specialized/attackSurface/jsExtraction.test.ts +237 -0
  795. package/src/core/agents/specialized/attackSurface/jsExtraction.ts +174 -0
  796. package/src/core/agents/specialized/attackSurface/prompts.ts +349 -0
  797. package/src/core/agents/specialized/attackSurface/schemas.ts +300 -0
  798. package/src/core/agents/specialized/attackSurface/types.ts +100 -0
  799. package/src/core/agents/specialized/authenticationAgent/agent.test.ts +111 -0
  800. package/src/core/agents/specialized/authenticationAgent/agent.ts +300 -0
  801. package/src/core/agents/specialized/authenticationAgent/index.ts +74 -0
  802. package/src/core/agents/specialized/authenticationAgent/prompts.test.ts +36 -0
  803. package/src/core/agents/specialized/authenticationAgent/prompts.ts +645 -0
  804. package/src/core/agents/specialized/authenticationAgent/types.ts +833 -0
  805. package/src/core/agents/specialized/benchmark/comparisonAgent.ts +344 -0
  806. package/src/core/agents/specialized/benchmark/docker-utils.ts +257 -0
  807. package/src/core/agents/specialized/benchmark/flag-detector.ts +686 -0
  808. package/src/core/agents/specialized/benchmark/index.ts +28 -0
  809. package/src/core/agents/specialized/benchmark/prompts.ts +257 -0
  810. package/src/core/agents/specialized/benchmark/remote/circuit-breaker.ts +108 -0
  811. package/src/core/agents/specialized/benchmark/remote/daytona-wrapper.ts +1005 -0
  812. package/src/core/agents/specialized/benchmark/remote/index.ts +2 -0
  813. package/src/core/agents/specialized/benchmark/types.ts +98 -0
  814. package/src/core/agents/specialized/benchmarkComparisonAgent.test.ts +111 -0
  815. package/src/core/agents/specialized/benchmarkComparisonAgent.ts +203 -0
  816. package/src/core/agents/specialized/codeAgent/agent.test.ts +89 -0
  817. package/src/core/agents/specialized/codeAgent/agent.ts +134 -0
  818. package/src/core/agents/specialized/codeAgent/prompts.ts +48 -0
  819. package/src/core/agents/specialized/codeAgent/schemas.ts +33 -0
  820. package/src/core/agents/specialized/cvssScorer/index.test.ts +87 -0
  821. package/src/core/agents/specialized/cvssScorer/index.ts +546 -0
  822. package/src/core/agents/specialized/environment/agent.ts +75 -0
  823. package/src/core/agents/specialized/environment/index.ts +16 -0
  824. package/src/core/agents/specialized/environment/prompts.ts +194 -0
  825. package/src/core/agents/specialized/environment/types.ts +48 -0
  826. package/src/core/agents/specialized/findingJudge/agent.test.ts +114 -0
  827. package/src/core/agents/specialized/findingJudge/agent.ts +59 -0
  828. package/src/core/agents/specialized/findingJudge/index.test.ts +155 -0
  829. package/src/core/agents/specialized/findingJudge/index.ts +166 -0
  830. package/src/core/agents/specialized/findingJudge/prompts.ts +140 -0
  831. package/src/core/agents/specialized/findingJudge/types.ts +115 -0
  832. package/src/core/agents/specialized/googleSignInPrompt.test.ts +29 -0
  833. package/src/core/agents/specialized/googleSignInPrompt.ts +18 -0
  834. package/src/core/agents/specialized/mobileOtpPrompt.ts +9 -0
  835. package/src/core/agents/specialized/patching/agent.test.ts +220 -0
  836. package/src/core/agents/specialized/patching/agent.ts +146 -0
  837. package/src/core/agents/specialized/patching/index.ts +20 -0
  838. package/src/core/agents/specialized/patching/prompts.test.ts +172 -0
  839. package/src/core/agents/specialized/patching/prompts.ts +396 -0
  840. package/src/core/agents/specialized/patching/types.ts +49 -0
  841. package/src/core/agents/specialized/pentest/agent.test.ts +1046 -0
  842. package/src/core/agents/specialized/pentest/agent.ts +1482 -0
  843. package/src/core/agents/specialized/pentest/helperLifecycle.test.ts +425 -0
  844. package/src/core/agents/specialized/pentest/helperWorkspace.test.ts +84 -0
  845. package/src/core/agents/specialized/pentest/helperWorkspace.ts +33 -0
  846. package/src/core/agents/specialized/pentest/planPrompt.ts +68 -0
  847. package/src/core/agents/specialized/pentest/results.test.ts +198 -0
  848. package/src/core/agents/specialized/utils.test.ts +16 -0
  849. package/src/core/agents/specialized/utils.ts +28 -0
  850. package/src/core/agents/specialized/vulnerabilityReproduction/agent.test.ts +195 -0
  851. package/src/core/agents/specialized/vulnerabilityReproduction/agent.ts +159 -0
  852. package/src/core/agents/specialized/whiteboxAttackSurface/agent.test.ts +39 -0
  853. package/src/core/agents/specialized/whiteboxAttackSurface/agent.ts +227 -0
  854. package/src/core/agents/specialized/whiteboxAttackSurface/endpointDocumentationAgent.concurrency.test.ts +138 -0
  855. package/src/core/agents/specialized/whiteboxAttackSurface/endpointDocumentationAgent.test.ts +199 -0
  856. package/src/core/agents/specialized/whiteboxAttackSurface/endpointDocumentationAgent.ts +330 -0
  857. package/src/core/agents/specialized/whiteboxAttackSurface/index.ts +24 -0
  858. package/src/core/agents/specialized/whiteboxAttackSurface/prompts.ts +345 -0
  859. package/src/core/agents/specialized/whiteboxAttackSurface/types.test.ts +67 -0
  860. package/src/core/agents/specialized/whiteboxAttackSurface/types.ts +234 -0
  861. package/src/core/ai/ai.contract.test.ts +43 -0
  862. package/src/core/ai/ai.durability-hooks.test.ts +527 -0
  863. package/src/core/ai/ai.effective-tools.test.ts +739 -0
  864. package/src/core/ai/ai.native-rollout-evidence.test.ts +373 -0
  865. package/src/core/ai/ai.outer-catch-recovery.test.ts +82 -0
  866. package/src/core/ai/ai.proactive-recovery.test.ts +69 -0
  867. package/src/core/ai/ai.recorded-attempts.test.ts +621 -0
  868. package/src/core/ai/ai.recorded-context.test.ts +448 -0
  869. package/src/core/ai/ai.recorded-tools.test.ts +850 -0
  870. package/src/core/ai/ai.request-retention.test.ts +296 -0
  871. package/src/core/ai/ai.test.ts +636 -0
  872. package/src/core/ai/ai.ts +2349 -0
  873. package/src/core/ai/caching.test.ts +179 -0
  874. package/src/core/ai/caching.ts +119 -0
  875. package/src/core/ai/compactionEvidence.test.ts +52 -0
  876. package/src/core/ai/compactionEvidence.ts +101 -0
  877. package/src/core/ai/compactionTelemetry.test.ts +621 -0
  878. package/src/core/ai/compactionTelemetry.ts +287 -0
  879. package/src/core/ai/concentrate.test.ts +28 -0
  880. package/src/core/ai/contextManagement.test.ts +350 -0
  881. package/src/core/ai/contextManagement.ts +594 -0
  882. package/src/core/ai/index.ts +73 -0
  883. package/src/core/ai/inference-attempt/adapters.test.ts +84 -0
  884. package/src/core/ai/inference-attempt/adapters.ts +391 -0
  885. package/src/core/ai/inference-attempt/attempt.test.ts +198 -0
  886. package/src/core/ai/inference-attempt/builder.ts +171 -0
  887. package/src/core/ai/inference-attempt/envelope.ts +120 -0
  888. package/src/core/ai/inference-attempt/errors.ts +15 -0
  889. package/src/core/ai/inference-attempt/fixtures/anthropic-messages-cache-create.json +18 -0
  890. package/src/core/ai/inference-attempt/fixtures/anthropic-messages-cache-read.json +18 -0
  891. package/src/core/ai/inference-attempt/fixtures/anthropic-messages-incomplete.json +16 -0
  892. package/src/core/ai/inference-attempt/fixtures/anthropic-messages-mixed.json +22 -0
  893. package/src/core/ai/inference-attempt/fixtures/anthropic-messages-non-cache.json +26 -0
  894. package/src/core/ai/inference-attempt/fixtures/bedrock-converse-cache-create.json +18 -0
  895. package/src/core/ai/inference-attempt/fixtures/bedrock-converse-cache-read.json +26 -0
  896. package/src/core/ai/inference-attempt/fixtures/bedrock-converse-incomplete.json +19 -0
  897. package/src/core/ai/inference-attempt/fixtures/bedrock-converse-mixed.json +20 -0
  898. package/src/core/ai/inference-attempt/fixtures/bedrock-converse-non-cache.json +24 -0
  899. package/src/core/ai/inference-attempt/fixtures/openai-responses-cache-read.json +17 -0
  900. package/src/core/ai/inference-attempt/fixtures/openai-responses-incomplete.json +16 -0
  901. package/src/core/ai/inference-attempt/fixtures/openai-responses-non-cache.json +23 -0
  902. package/src/core/ai/inference-attempt/fixtures/pensar-anthropic-rest-incomplete.json +21 -0
  903. package/src/core/ai/inference-attempt/fixtures/pensar-anthropic-rest-native.json +16 -0
  904. package/src/core/ai/inference-attempt/fixtures/pensar-anthropic-stream-cache-create.json +20 -0
  905. package/src/core/ai/inference-attempt/fixtures/pensar-anthropic-stream-cache-read.json +20 -0
  906. package/src/core/ai/inference-attempt/fixtures/pensar-anthropic-stream-incomplete.json +16 -0
  907. package/src/core/ai/inference-attempt/fixtures/pensar-anthropic-stream-mixed.json +21 -0
  908. package/src/core/ai/inference-attempt/fixtures/pensar-anthropic-stream-non-cache.json +19 -0
  909. package/src/core/ai/inference-attempt/fixtures/reject-cache-read-exceeds-inclusive.json +11 -0
  910. package/src/core/ai/inference-attempt/fixtures/reject-components-exceed-inclusive.json +12 -0
  911. package/src/core/ai/inference-attempt/fixtures/reject-identity-mismatch.json +13 -0
  912. package/src/core/ai/inference-attempt/fixtures/reject-negative-token.json +9 -0
  913. package/src/core/ai/inference-attempt/fixtures/reject-non-integer-token.json +8 -0
  914. package/src/core/ai/inference-attempt/fixtures/sdk-normalized-cache-read.json +19 -0
  915. package/src/core/ai/inference-attempt/fixtures/sdk-normalized-incomplete.json +15 -0
  916. package/src/core/ai/inference-attempt/fixtures/sdk-normalized-mixed.json +20 -0
  917. package/src/core/ai/inference-attempt/fixtures/sdk-normalized-non-cache.json +16 -0
  918. package/src/core/ai/inference-attempt/identity.ts +25 -0
  919. package/src/core/ai/inference-attempt/index.ts +70 -0
  920. package/src/core/ai/inference-attempt/project.test.ts +118 -0
  921. package/src/core/ai/inference-attempt/project.ts +60 -0
  922. package/src/core/ai/inference-attempt/recording.ts +46 -0
  923. package/src/core/ai/inference-attempt/tokens.ts +165 -0
  924. package/src/core/ai/inference-attempt/validate.ts +20 -0
  925. package/src/core/ai/mantle.test.ts +50 -0
  926. package/src/core/ai/mantle.ts +45 -0
  927. package/src/core/ai/model-history.test.ts +53 -0
  928. package/src/core/ai/model-history.ts +38 -0
  929. package/src/core/ai/models/anthropic.ts +145 -0
  930. package/src/core/ai/models/bedrock.ts +600 -0
  931. package/src/core/ai/models/claude-capabilities.ts +22 -0
  932. package/src/core/ai/models/concentrate.ts +192 -0
  933. package/src/core/ai/models/google.ts +154 -0
  934. package/src/core/ai/models/inception.ts +10 -0
  935. package/src/core/ai/models/index.ts +250 -0
  936. package/src/core/ai/models/mantle.ts +14 -0
  937. package/src/core/ai/models/models.test.ts +290 -0
  938. package/src/core/ai/models/openai.ts +409 -0
  939. package/src/core/ai/models/openrouter.ts +336 -0
  940. package/src/core/ai/models/pensar.ts +66 -0
  941. package/src/core/ai/native-rollout-evidence/capture.test.ts +1836 -0
  942. package/src/core/ai/native-rollout-evidence/capture.ts +1572 -0
  943. package/src/core/ai/native-rollout-evidence/content.test.ts +55 -0
  944. package/src/core/ai/native-rollout-evidence/content.ts +129 -0
  945. package/src/core/ai/native-rollout-evidence/index.ts +68 -0
  946. package/src/core/ai/native-rollout-evidence/provider-metadata.test.ts +85 -0
  947. package/src/core/ai/native-rollout-evidence/provider-metadata.ts +129 -0
  948. package/src/core/ai/native-rollout-evidence/recording.test.ts +398 -0
  949. package/src/core/ai/native-rollout-evidence/schema.test.ts +210 -0
  950. package/src/core/ai/native-rollout-evidence/schema.ts +353 -0
  951. package/src/core/ai/native-rollout-evidence/validate.ts +141 -0
  952. package/src/core/ai/providers/anthropic-models.test.ts +289 -0
  953. package/src/core/ai/providers/anthropic.ts +73 -0
  954. package/src/core/ai/providers/concentrate.live.test.ts +71 -0
  955. package/src/core/ai/providers/concentrate.test.ts +160 -0
  956. package/src/core/ai/providers/concentrate.ts +145 -0
  957. package/src/core/ai/providers/custom.live.test.ts +42 -0
  958. package/src/core/ai/providers/custom.test.ts +474 -0
  959. package/src/core/ai/providers/custom.ts +70 -0
  960. package/src/core/ai/providers/gateway-models.test.ts +638 -0
  961. package/src/core/ai/providers/hoonify.live.test.ts +72 -0
  962. package/src/core/ai/providers/hoonify.test.ts +284 -0
  963. package/src/core/ai/providers/hoonify.ts +32 -0
  964. package/src/core/ai/providers/openai-models.test.ts +356 -0
  965. package/src/core/ai/providers/openai-pro-fetch.test.ts +64 -0
  966. package/src/core/ai/providers/openai-pro-fetch.ts +32 -0
  967. package/src/core/ai/providers/pensar.ts +645 -0
  968. package/src/core/ai/providers/pensarFormatters.test.ts +272 -0
  969. package/src/core/ai/providers/pensarFormatters.ts +533 -0
  970. package/src/core/ai/providers/pensarResponsesStream.test.ts +191 -0
  971. package/src/core/ai/providers/pensarResponsesStream.ts +294 -0
  972. package/src/core/ai/providers/pensarSSE.test.ts +83 -0
  973. package/src/core/ai/providers/pensarSSE.ts +128 -0
  974. package/src/core/ai/providers/pensarSigning.ts +2 -0
  975. package/src/core/ai/providers/pensarStreamUsage.test.ts +79 -0
  976. package/src/core/ai/providers/pensarStreamUsage.ts +62 -0
  977. package/src/core/ai/stepContext.test.ts +61 -0
  978. package/src/core/ai/streamIdleTimeout.test.ts +390 -0
  979. package/src/core/ai/streamTelemetry.ts +90 -0
  980. package/src/core/ai/usage-callback.test.ts +511 -0
  981. package/src/core/ai/utils.native-rollout-evidence.test.ts +135 -0
  982. package/src/core/ai/utils.pensar.test.ts +59 -0
  983. package/src/core/ai/utils.ts +796 -0
  984. package/src/core/api/apiClient.test.ts +58 -0
  985. package/src/core/api/apiClient.ts +73 -0
  986. package/src/core/api/apps.test.ts +78 -0
  987. package/src/core/api/apps.ts +388 -0
  988. package/src/core/api/attackSurface.test.ts +24 -0
  989. package/src/core/api/attackSurface.ts +89 -0
  990. package/src/core/api/authentication.ts +8 -0
  991. package/src/core/api/benchmark.ts +35 -0
  992. package/src/core/api/blackboxPentest.test.ts +89 -0
  993. package/src/core/api/blackboxPentest.ts +64 -0
  994. package/src/core/api/clientIdentity.test.ts +61 -0
  995. package/src/core/api/clientIdentity.ts +57 -0
  996. package/src/core/api/comments.test.ts +69 -0
  997. package/src/core/api/constants.ts +15 -0
  998. package/src/core/api/domains.test.ts +35 -0
  999. package/src/core/api/domains.ts +32 -0
  1000. package/src/core/api/environment.ts +47 -0
  1001. package/src/core/api/index.ts +219 -0
  1002. package/src/core/api/issues.test.ts +82 -0
  1003. package/src/core/api/issues.ts +439 -0
  1004. package/src/core/api/knowledge.ts +70 -0
  1005. package/src/core/api/localWorker.ts +29 -0
  1006. package/src/core/api/offesecAgent.test.ts +289 -0
  1007. package/src/core/api/offesecAgent.ts +77 -0
  1008. package/src/core/api/patching.ts +44 -0
  1009. package/src/core/api/recordedRun.control.test.ts +830 -0
  1010. package/src/core/api/recordedRun.inference.test.ts +529 -0
  1011. package/src/core/api/recordedRun.loop.test.ts +290 -0
  1012. package/src/core/api/recordedRun.recovery.test.ts +651 -0
  1013. package/src/core/api/recordedRun.test.ts +646 -0
  1014. package/src/core/api/recordedRun.ts +542 -0
  1015. package/src/core/api/targetedPentest.test.ts +177 -0
  1016. package/src/core/api/targetedPentest.ts +83 -0
  1017. package/src/core/api/threatModel.ts +5 -0
  1018. package/src/core/api/trajectoryExport.test.ts +299 -0
  1019. package/src/core/api/trajectoryExport.ts +362 -0
  1020. package/src/core/api/vulnerabilityReproduction.test.ts +56 -0
  1021. package/src/core/api/vulnerabilityReproduction.ts +54 -0
  1022. package/src/core/assets/wordlists.test.ts +85 -0
  1023. package/src/core/assets/wordlists.ts +111 -0
  1024. package/src/core/atif/compatibility.test.ts +107 -0
  1025. package/src/core/atif/convert.test.ts +815 -0
  1026. package/src/core/atif/convert.ts +1658 -0
  1027. package/src/core/atif/fixtures/portable-bundle-v1.json +813 -0
  1028. package/src/core/atif/index.ts +34 -0
  1029. package/src/core/atif/schema.ts +345 -0
  1030. package/src/core/atif/serialize.test.ts +244 -0
  1031. package/src/core/atif/serialize.ts +419 -0
  1032. package/src/core/atif/test-fixtures.ts +184 -0
  1033. package/src/core/atif/validate.test.ts +188 -0
  1034. package/src/core/atif/validate.ts +289 -0
  1035. package/src/core/auth/connection.ts +26 -0
  1036. package/src/core/auth/device-flow.ts +203 -0
  1037. package/src/core/auth/gateway.ts +66 -0
  1038. package/src/core/auth/index.ts +29 -0
  1039. package/src/core/auth/signing.ts +25 -0
  1040. package/src/core/auth/token.ts +140 -0
  1041. package/src/core/auth/types.ts +106 -0
  1042. package/src/core/auth/workspaces.ts +192 -0
  1043. package/src/core/benchmark/index.ts +11 -0
  1044. package/src/core/benchmark/report.ts +257 -0
  1045. package/src/core/benchmark/runner.ts +698 -0
  1046. package/src/core/benchmark/types.ts +80 -0
  1047. package/src/core/cli/logLevelArgs.test.ts +83 -0
  1048. package/src/core/cli/logLevelArgs.ts +62 -0
  1049. package/src/core/cli/model.ts +35 -0
  1050. package/src/core/cli/pentestMode.test.ts +24 -0
  1051. package/src/core/cli/pentestMode.ts +23 -0
  1052. package/src/core/cli/tuiArgs.test.ts +58 -0
  1053. package/src/core/cli/tuiArgs.ts +28 -0
  1054. package/src/core/config/config.test.ts +183 -0
  1055. package/src/core/config/config.ts +201 -0
  1056. package/src/core/config/customProviders.test.ts +183 -0
  1057. package/src/core/config/customProviders.ts +190 -0
  1058. package/src/core/config/index.ts +7 -0
  1059. package/src/core/credentials/index.ts +6 -0
  1060. package/src/core/credentials/manager.ts +313 -0
  1061. package/src/core/credentials/types.ts +112 -0
  1062. package/src/core/doctor.ts +138 -0
  1063. package/src/core/eventBus.test.ts +374 -0
  1064. package/src/core/eventBus.ts +410 -0
  1065. package/src/core/findings/attackSurfaceRegistry.ts +294 -0
  1066. package/src/core/findings/registry.test.ts +1680 -0
  1067. package/src/core/findings/registry.ts +800 -0
  1068. package/src/core/history.ts +82 -0
  1069. package/src/core/hoonify.test.ts +250 -0
  1070. package/src/core/hoonify.ts +163 -0
  1071. package/src/core/http/headers.contract.test.ts +1161 -0
  1072. package/src/core/http/parse.ts +257 -0
  1073. package/src/core/http/redirects.test.ts +207 -0
  1074. package/src/core/http/redirects.ts +145 -0
  1075. package/src/core/http/targetHeaders.ts +604 -0
  1076. package/src/core/http/targetScope.ts +52 -0
  1077. package/src/core/http/types.ts +39 -0
  1078. package/src/core/id/id.test.ts +88 -0
  1079. package/src/core/id/id.ts +138 -0
  1080. package/src/core/installation/index.ts +222 -0
  1081. package/src/core/installation/installation.test.ts +415 -0
  1082. package/src/core/integrations/herdr.test.ts +335 -0
  1083. package/src/core/integrations/herdr.ts +163 -0
  1084. package/src/core/integrations/surface/index.test.ts +534 -0
  1085. package/src/core/integrations/surface/index.ts +224 -0
  1086. package/src/core/integrations/surface/types.ts +29 -0
  1087. package/src/core/integrations/wandb/client.ts +167 -0
  1088. package/src/core/integrations/wandb/upload.test.ts +415 -0
  1089. package/src/core/integrations/wandb/upload.ts +76 -0
  1090. package/src/core/logger/errorLog.test.ts +98 -0
  1091. package/src/core/logger/index.ts +214 -0
  1092. package/src/core/logger/structured.test.ts +212 -0
  1093. package/src/core/logger/structured.ts +207 -0
  1094. package/src/core/memory/backend.test.ts +186 -0
  1095. package/src/core/memory/index.ts +279 -0
  1096. package/src/core/memory/memory.test.ts +362 -0
  1097. package/src/core/messages/types.ts +141 -0
  1098. package/src/core/obfuscation/engine.test.ts +314 -0
  1099. package/src/core/obfuscation/engine.ts +647 -0
  1100. package/src/core/obfuscation/index.ts +27 -0
  1101. package/src/core/observability/active-root-spans.ts +30 -0
  1102. package/src/core/observability/active-spans.ts +80 -0
  1103. package/src/core/observability/index.ts +91 -0
  1104. package/src/core/observability/log-correlation.test.ts +276 -0
  1105. package/src/core/observability/payload-capture.test.ts +59 -0
  1106. package/src/core/observability/runtime.test.ts +743 -0
  1107. package/src/core/observability/runtime.ts +371 -0
  1108. package/src/core/observability/shutdown.test.ts +551 -0
  1109. package/src/core/observability/telemetry.test.ts +895 -0
  1110. package/src/core/observability/telemetry.ts +220 -0
  1111. package/src/core/observability/testkit.test.ts +66 -0
  1112. package/src/core/observability/testkit.ts +97 -0
  1113. package/src/core/observability/trace-contract.test.ts +1031 -0
  1114. package/src/core/observability.test.ts +135 -0
  1115. package/src/core/operator/approvalGate.test.ts +300 -0
  1116. package/src/core/operator/approvalGate.ts +287 -0
  1117. package/src/core/operator/index.ts +30 -0
  1118. package/src/core/operator/types.ts +355 -0
  1119. package/src/core/plan/index.ts +44 -0
  1120. package/src/core/prompt-injections/index.test.ts +248 -0
  1121. package/src/core/prompt-injections/index.ts +350 -0
  1122. package/src/core/providers/index.ts +5 -0
  1123. package/src/core/providers/types.ts +87 -0
  1124. package/src/core/providers/utils.test.ts +189 -0
  1125. package/src/core/providers/utils.ts +183 -0
  1126. package/src/core/providers/verify.test.ts +49 -0
  1127. package/src/core/providers/verify.ts +198 -0
  1128. package/src/core/report/builder.test.ts +229 -0
  1129. package/src/core/report/builder.ts +58 -0
  1130. package/src/core/report/index.ts +13 -0
  1131. package/src/core/report/renderers/json.test.ts +76 -0
  1132. package/src/core/report/renderers/json.ts +5 -0
  1133. package/src/core/report/renderers/markdown.test.ts +366 -0
  1134. package/src/core/report/renderers/markdown.ts +133 -0
  1135. package/src/core/report/schemas.ts +48 -0
  1136. package/src/core/runtime/agentExecution.test.ts +94 -0
  1137. package/src/core/runtime/agentExecution.ts +27 -0
  1138. package/src/core/runtime/launchLocalWorker.test.ts +707 -0
  1139. package/src/core/runtime/launchLocalWorker.ts +273 -0
  1140. package/src/core/runtime/localRunLock.ts +118 -0
  1141. package/src/core/runtime/localRunWorker.test.ts +381 -0
  1142. package/src/core/runtime/localRunWorker.ts +287 -0
  1143. package/src/core/runtime/localWorker.acceptance.test.ts +548 -0
  1144. package/src/core/runtime/localWorkerEndpoint.test.ts +145 -0
  1145. package/src/core/runtime/localWorkerEndpoint.ts +82 -0
  1146. package/src/core/runtime/localWorkerProtocol.ts +176 -0
  1147. package/src/core/runtime/localWorkerTransport.test.ts +841 -0
  1148. package/src/core/runtime/localWorkerTransport.ts +434 -0
  1149. package/src/core/runtime/persistenceError.ts +14 -0
  1150. package/src/core/runtime/recordedExecution.ts +43 -0
  1151. package/src/core/runtime/recordedRunClient.integration.test.ts +106 -0
  1152. package/src/core/runtime/recordedRunClient.test.ts +677 -0
  1153. package/src/core/runtime/recordedRunClient.ts +303 -0
  1154. package/src/core/runtime/runCheckpointStore.ts +23 -0
  1155. package/src/core/runtime/runContext.test.ts +445 -0
  1156. package/src/core/runtime/runContext.ts +184 -0
  1157. package/src/core/runtime/runControl.test.ts +923 -0
  1158. package/src/core/runtime/runControl.ts +419 -0
  1159. package/src/core/runtime/runControlStore.ts +106 -0
  1160. package/src/core/runtime/runDeadline.test.ts +44 -0
  1161. package/src/core/runtime/runDeadline.ts +28 -0
  1162. package/src/core/runtime/runEvidence.test.ts +384 -0
  1163. package/src/core/runtime/runEvidence.ts +267 -0
  1164. package/src/core/runtime/runInference.test.ts +408 -0
  1165. package/src/core/runtime/runInference.ts +125 -0
  1166. package/src/core/runtime/runModelStore.ts +55 -0
  1167. package/src/core/runtime/runObservation.ts +24 -0
  1168. package/src/core/runtime/runRecoveryContext.test.ts +602 -0
  1169. package/src/core/runtime/runRecoveryContext.ts +195 -0
  1170. package/src/core/runtime/runRecoveryPlan.test.ts +851 -0
  1171. package/src/core/runtime/runRecoveryPlan.ts +540 -0
  1172. package/src/core/runtime/runRecoveryStore.ts +78 -0
  1173. package/src/core/runtime/runStore.ts +148 -0
  1174. package/src/core/runtime/runStorePath.ts +13 -0
  1175. package/src/core/runtime/runToolStore.ts +66 -0
  1176. package/src/core/runtime/runTools.crash.test.ts +414 -0
  1177. package/src/core/runtime/runTools.test.ts +689 -0
  1178. package/src/core/runtime/runTools.ts +208 -0
  1179. package/src/core/runtime/sqliteControlStore.test.ts +917 -0
  1180. package/src/core/runtime/sqliteControlStore.ts +555 -0
  1181. package/src/core/runtime/sqliteModelStore.test.ts +619 -0
  1182. package/src/core/runtime/sqliteModelStore.ts +286 -0
  1183. package/src/core/runtime/sqliteRecoveryStore.public.test.ts +374 -0
  1184. package/src/core/runtime/sqliteRecoveryStore.test.ts +836 -0
  1185. package/src/core/runtime/sqliteRecoveryStore.ts +435 -0
  1186. package/src/core/runtime/sqliteRunContext.test.ts +1000 -0
  1187. package/src/core/runtime/sqliteRunObservation.test.ts +432 -0
  1188. package/src/core/runtime/sqliteRunStore.test.ts +698 -0
  1189. package/src/core/runtime/sqliteRunStore.ts +593 -0
  1190. package/src/core/runtime/sqliteToolStore.test.ts +1231 -0
  1191. package/src/core/runtime/sqliteToolStore.ts +419 -0
  1192. package/src/core/runtime/testfixtures/localWorkerChild.ts +254 -0
  1193. package/src/core/runtime/testfixtures/localWorkerLauncher.ts +15 -0
  1194. package/src/core/runtime/testfixtures/recoveryChild.ts +159 -0
  1195. package/src/core/services/rateLimiter/index.test.ts +106 -0
  1196. package/src/core/services/rateLimiter/index.ts +157 -0
  1197. package/src/core/services/rateLimiter/types.ts +10 -0
  1198. package/src/core/session/admitted-config.test.ts +50 -0
  1199. package/src/core/session/deprecated-headers-shim.test.ts +111 -0
  1200. package/src/core/session/execution-metrics.test.ts +297 -0
  1201. package/src/core/session/execution-metrics.ts +176 -0
  1202. package/src/core/session/index.ts +1085 -0
  1203. package/src/core/session/loader.ts +212 -0
  1204. package/src/core/session/persistence.test.ts +1210 -0
  1205. package/src/core/session/persistence.ts +1076 -0
  1206. package/src/core/session/rehydrate.test.ts +393 -0
  1207. package/src/core/session/types.ts +139 -0
  1208. package/src/core/session/usage.test.ts +99 -0
  1209. package/src/core/session/usage.ts +84 -0
  1210. package/src/core/skills/builtins/index.ts +22 -0
  1211. package/src/core/skills/builtins/pentest.ts +135 -0
  1212. package/src/core/skills/builtins/promptInjection.ts +44 -0
  1213. package/src/core/skills/builtins/threatModel.ts +336 -0
  1214. package/src/core/skills/index.ts +15 -0
  1215. package/src/core/skills/parser.test.ts +120 -0
  1216. package/src/core/skills/parser.ts +106 -0
  1217. package/src/core/skills/registry.test.ts +202 -0
  1218. package/src/core/skills/registry.ts +109 -0
  1219. package/src/core/skills/scanner.test.ts +157 -0
  1220. package/src/core/skills/scanner.ts +115 -0
  1221. package/src/core/skills/types.ts +45 -0
  1222. package/src/core/skills/utils.ts +16 -0
  1223. package/src/core/storage/index.ts +150 -0
  1224. package/src/core/tasks/index.ts +242 -0
  1225. package/src/core/tools/backends/capture.ts +38 -0
  1226. package/src/core/tools/backends/collectCommand.test.ts +33 -0
  1227. package/src/core/tools/backends/collectCommand.ts +28 -0
  1228. package/src/core/tools/backends/helpers.ts +140 -0
  1229. package/src/core/tools/backends/httpTransport.ts +534 -0
  1230. package/src/core/tools/backends/index.ts +61 -0
  1231. package/src/core/tools/backends/local.test.ts +307 -0
  1232. package/src/core/tools/backends/local.ts +820 -0
  1233. package/src/core/tools/backends/policy.test.ts +137 -0
  1234. package/src/core/tools/backends/policy.ts +129 -0
  1235. package/src/core/tools/backends/resolve.test.ts +309 -0
  1236. package/src/core/tools/backends/resolve.ts +152 -0
  1237. package/src/core/tools/backends/types.ts +279 -0
  1238. package/src/core/tools/backends/whitebox.test.ts +275 -0
  1239. package/src/core/tools/backends/whitebox.ts +14 -0
  1240. package/src/core/tools/backends/whiteboxJobs.test.ts +375 -0
  1241. package/src/core/tools/backends/whiteboxJobs.ts +157 -0
  1242. package/src/core/tools/backends/windowsProgram.ts +36 -0
  1243. package/src/core/tools/daytonaSandbox.test.ts +491 -0
  1244. package/src/core/tools/daytonaSandbox.ts +232 -0
  1245. package/src/core/toolset/index.ts +583 -0
  1246. package/src/core/util/lazyLogger.ts +32 -0
  1247. package/src/core/utils/concurrency.test.ts +204 -0
  1248. package/src/core/utils/concurrency.ts +75 -0
  1249. package/src/core/utils/prompt.ts +28 -0
  1250. package/src/core/whitebox/adapters.ts +277 -0
  1251. package/src/core/whitebox/artifacts.ts +128 -0
  1252. package/src/core/whitebox/boundedProcess.ts +265 -0
  1253. package/src/core/whitebox/candidates.ts +268 -0
  1254. package/src/core/whitebox/catalog.ts +82 -0
  1255. package/src/core/whitebox/index.ts +53 -0
  1256. package/src/core/whitebox/jobKernel.test.ts +91 -0
  1257. package/src/core/whitebox/jobKernel.ts +347 -0
  1258. package/src/core/whitebox/jobSupervisor.ts +264 -0
  1259. package/src/core/whitebox/jobs.ts +21 -0
  1260. package/src/core/whitebox/paths.ts +94 -0
  1261. package/src/core/whitebox/profileTransport.ts +225 -0
  1262. package/src/core/whitebox/profiles.ts +294 -0
  1263. package/src/core/whitebox/repoProfile.test.ts +217 -0
  1264. package/src/core/whitebox/repoProfile.ts +256 -0
  1265. package/src/core/whitebox/types.ts +189 -0
  1266. package/src/core/whitebox/whitebox.test.ts +789 -0
  1267. package/src/core/workflows/fastStrike.seams.test.ts +217 -0
  1268. package/src/core/workflows/fastStrike.test.ts +29 -0
  1269. package/src/core/workflows/fastStrike.ts +239 -0
  1270. package/src/core/workflows/pentest.test.ts +575 -0
  1271. package/src/core/workflows/pentest.ts +1022 -0
  1272. package/src/core/workflows/seams.test.ts +386 -0
  1273. package/src/core/workflows/seams.ts +276 -0
  1274. package/src/core/workflows/threatModel.ts +108 -0
  1275. package/src/core/workflows/usage-forwarding.test.ts +203 -0
  1276. package/src/core/workflows/whiteboxAttackSurface.test.ts +695 -0
  1277. package/src/core/workflows/whiteboxAttackSurface.ts +1740 -0
  1278. package/src/index.ts +49 -0
  1279. package/src/lib/attack-path/types.ts +13 -0
  1280. package/src/lib/cvss/calculator.test.ts +2090 -0
  1281. package/src/lib/cvss/calculator.ts +643 -0
  1282. package/src/lib/cvss/index.ts +65 -0
  1283. package/src/lib/cvss/macrovector-scores.ts +402 -0
  1284. package/src/lib/cvss/types.ts +241 -0
  1285. package/src/lib/cwe/cwe-catalog.ts +444 -0
  1286. package/src/lib/cwe/types.test.ts +142 -0
  1287. package/src/lib/cwe/types.ts +37 -0
  1288. package/src/lib/cwe/validate.test.ts +110 -0
  1289. package/src/lib/cwe/validate.ts +53 -0
  1290. package/src/lib/evidence/types.ts +9 -0
  1291. package/src/tests/agentWorkingDirectory.test.ts +175 -0
  1292. package/src/tests/attackSurface.test.ts +35 -0
  1293. package/src/tests/auth.test.ts +196 -0
  1294. package/src/tests/authCookieExport.test.ts +143 -0
  1295. package/src/tests/authPentestHandoff.test.ts +231 -0
  1296. package/src/tests/browserCookies.test.ts +128 -0
  1297. package/src/tests/credentialManager.test.ts +657 -0
  1298. package/src/tests/data/console.openapi.json +1037 -0
  1299. package/src/tests/data/console.sitemap.xml +348 -0
  1300. package/src/tests/delegateAuthMerge.test.ts +48 -0
  1301. package/src/tui/auto-copy.ts +36 -0
  1302. package/src/tui/clipboard.ts +65 -0
  1303. package/src/tui/command-registry.test.ts +124 -0
  1304. package/src/tui/command-registry.ts +645 -0
  1305. package/src/tui/command-router.ts +81 -0
  1306. package/src/tui/components/agent-display.tsx +480 -0
  1307. package/src/tui/components/ascii-art.tsx +225 -0
  1308. package/src/tui/components/chat/approval-inline.tsx +51 -0
  1309. package/src/tui/components/chat/config-view.tsx +279 -0
  1310. package/src/tui/components/chat/home-view.tsx +288 -0
  1311. package/src/tui/components/chat/index.tsx +161 -0
  1312. package/src/tui/components/chat/input-area.tsx +529 -0
  1313. package/src/tui/components/chat/lib/play-core/num.ts +102 -0
  1314. package/src/tui/components/chat/lib/wave-simulation.ts +124 -0
  1315. package/src/tui/components/chat/loading-indicator.test.ts +33 -0
  1316. package/src/tui/components/chat/loading-indicator.tsx +115 -0
  1317. package/src/tui/components/chat/message-list.tsx +264 -0
  1318. package/src/tui/components/chat/petri-animation.tsx +175 -0
  1319. package/src/tui/components/chat/plan-review-message.tsx +49 -0
  1320. package/src/tui/components/chat/questions-form.tsx +756 -0
  1321. package/src/tui/components/commands/__tests__/recorded-runs-lifecycle.tsx +907 -0
  1322. package/src/tui/components/commands/advanced-settings.tsx +94 -0
  1323. package/src/tui/components/commands/api-key-input.tsx +122 -0
  1324. package/src/tui/components/commands/auth-flow-logic.test.ts +58 -0
  1325. package/src/tui/components/commands/auth-flow-logic.ts +30 -0
  1326. package/src/tui/components/commands/auth-flow.tsx +702 -0
  1327. package/src/tui/components/commands/credits-flow.tsx +210 -0
  1328. package/src/tui/components/commands/help-dialog.tsx +238 -0
  1329. package/src/tui/components/commands/models-display.tsx +111 -0
  1330. package/src/tui/components/commands/operator-wizard.tsx +328 -0
  1331. package/src/tui/components/commands/provider-manager.tsx +241 -0
  1332. package/src/tui/components/commands/provider-selection.tsx +129 -0
  1333. package/src/tui/components/commands/recorded-runs.test.ts +40 -0
  1334. package/src/tui/components/commands/recorded-runs.tsx +793 -0
  1335. package/src/tui/components/commands/sessions-display.tsx +365 -0
  1336. package/src/tui/components/commands/shortcuts-dialog.tsx +52 -0
  1337. package/src/tui/components/commands/skills-dialog.tsx +308 -0
  1338. package/src/tui/components/commands/theme-picker.tsx +177 -0
  1339. package/src/tui/components/commands/web-wizard.tsx +965 -0
  1340. package/src/tui/components/dialog-layout.tsx +73 -0
  1341. package/src/tui/components/error-boundary.tsx +82 -0
  1342. package/src/tui/components/footer.tsx +101 -0
  1343. package/src/tui/components/input.tsx +43 -0
  1344. package/src/tui/components/loaders.tsx +784 -0
  1345. package/src/tui/components/model-picker/ModelPicker.tsx +907 -0
  1346. package/src/tui/components/model-picker/ModelPickerDialog.tsx +75 -0
  1347. package/src/tui/components/model-picker/index.ts +2 -0
  1348. package/src/tui/components/model-picker/model-navigation.test.ts +102 -0
  1349. package/src/tui/components/model-picker/model-navigation.ts +54 -0
  1350. package/src/tui/components/model-picker/model-search.test.ts +62 -0
  1351. package/src/tui/components/model-picker/model-search.ts +42 -0
  1352. package/src/tui/components/model-picker/model-visibility.test.ts +65 -0
  1353. package/src/tui/components/model-picker/model-visibility.ts +59 -0
  1354. package/src/tui/components/operator-dashboard/conversation.test.ts +431 -0
  1355. package/src/tui/components/operator-dashboard/conversation.ts +179 -0
  1356. package/src/tui/components/operator-dashboard/display-state.test.ts +369 -0
  1357. package/src/tui/components/operator-dashboard/display-state.ts +163 -0
  1358. package/src/tui/components/operator-dashboard/herdr-state.test.ts +162 -0
  1359. package/src/tui/components/operator-dashboard/herdr-state.ts +81 -0
  1360. package/src/tui/components/operator-dashboard/index.tsx +2044 -0
  1361. package/src/tui/components/operator-dashboard/logic.test.ts +753 -0
  1362. package/src/tui/components/operator-dashboard/logic.ts +465 -0
  1363. package/src/tui/components/operator-dashboard/queue.test.ts +147 -0
  1364. package/src/tui/components/operator-dashboard/queue.ts +55 -0
  1365. package/src/tui/components/operator-dashboard/queued-messages.tsx +50 -0
  1366. package/src/tui/components/operator-dashboard/run-events.test.ts +913 -0
  1367. package/src/tui/components/operator-dashboard/run-events.ts +507 -0
  1368. package/src/tui/components/operator-dashboard/run-tracing.test.ts +206 -0
  1369. package/src/tui/components/operator-dashboard/run-tracing.ts +105 -0
  1370. package/src/tui/components/operator-dashboard/subagent-detail-view.tsx +51 -0
  1371. package/src/tui/components/operator-dashboard/subagent-dialog.tsx +142 -0
  1372. package/src/tui/components/operator-dashboard/subagent-hub.test.ts +162 -0
  1373. package/src/tui/components/operator-dashboard/subagent-hub.tsx +266 -0
  1374. package/src/tui/components/operator-dashboard/subagent-state.test.ts +431 -0
  1375. package/src/tui/components/operator-dashboard/subagent-state.ts +404 -0
  1376. package/src/tui/components/operator-dashboard/subagent-status-bar.tsx +80 -0
  1377. package/src/tui/components/operator-dashboard/tool-argument-buffer.test.ts +317 -0
  1378. package/src/tui/components/operator-dashboard/tool-arguments.perf.test.ts +121 -0
  1379. package/src/tui/components/operator-dashboard/welcome-logo.tsx +79 -0
  1380. package/src/tui/components/operator-dashboard/workflow-data.test.ts +291 -0
  1381. package/src/tui/components/operator-dashboard/workflow-data.ts +130 -0
  1382. package/src/tui/components/report-viewer-dialog.tsx +98 -0
  1383. package/src/tui/components/responsible-use-disclosure.tsx +55 -0
  1384. package/src/tui/components/screenshot-modal.tsx +204 -0
  1385. package/src/tui/components/shared/__tests__/prompt-input-lifecycle.tsx +64 -0
  1386. package/src/tui/components/shared/__tests__/tool-renderer-lifecycle.tsx +69 -0
  1387. package/src/tui/components/shared/action-label.test.ts +133 -0
  1388. package/src/tui/components/shared/action-label.ts +18 -0
  1389. package/src/tui/components/shared/ascii-spinner.tsx +40 -0
  1390. package/src/tui/components/shared/dialog-controls.tsx +76 -0
  1391. package/src/tui/components/shared/index.ts +37 -0
  1392. package/src/tui/components/shared/markdown-viewer.tsx +188 -0
  1393. package/src/tui/components/shared/markdown.ts +239 -0
  1394. package/src/tui/components/shared/message-renderer.tsx +178 -0
  1395. package/src/tui/components/shared/message-utils.ts +175 -0
  1396. package/src/tui/components/shared/pentest-workflow-display.tsx +330 -0
  1397. package/src/tui/components/shared/prompt-input-lifecycle.test.ts +22 -0
  1398. package/src/tui/components/shared/prompt-input-logic.test.ts +782 -0
  1399. package/src/tui/components/shared/prompt-input-logic.ts +423 -0
  1400. package/src/tui/components/shared/prompt-input.tsx +782 -0
  1401. package/src/tui/components/shared/result-registry.test.ts +90 -0
  1402. package/src/tui/components/shared/result-registry.ts +900 -0
  1403. package/src/tui/components/shared/syntax-highlight.ts +242 -0
  1404. package/src/tui/components/shared/tool-registry.test.ts +59 -0
  1405. package/src/tui/components/shared/tool-registry.ts +279 -0
  1406. package/src/tui/components/shared/tool-renderer.test.ts +13 -0
  1407. package/src/tui/components/shared/tool-renderer.tsx +223 -0
  1408. package/src/tui/components/shared/type-guards.ts +64 -0
  1409. package/src/tui/components/shared/use-paste-extmarks.ts +109 -0
  1410. package/src/tui/components/switch.tsx +81 -0
  1411. package/src/tui/components/terminal-focus-handler.tsx +34 -0
  1412. package/src/tui/components/toast.tsx +82 -0
  1413. package/src/tui/components/usage-labels.test.ts +191 -0
  1414. package/src/tui/components/usage-labels.ts +78 -0
  1415. package/src/tui/console-theme.ts +59 -0
  1416. package/src/tui/context/agent.tsx +251 -0
  1417. package/src/tui/context/command.tsx +291 -0
  1418. package/src/tui/context/config.tsx +59 -0
  1419. package/src/tui/context/dialog.tsx +206 -0
  1420. package/src/tui/context/dimensions.tsx +31 -0
  1421. package/src/tui/context/focus-ownership.test.ts +26 -0
  1422. package/src/tui/context/focus-ownership.ts +12 -0
  1423. package/src/tui/context/focus.tsx +86 -0
  1424. package/src/tui/context/herdr.tsx +28 -0
  1425. package/src/tui/context/input.tsx +45 -0
  1426. package/src/tui/context/keybinding.tsx +92 -0
  1427. package/src/tui/context/obfuscation.tsx +114 -0
  1428. package/src/tui/context/route.tsx +127 -0
  1429. package/src/tui/context/session-usage.test.ts +295 -0
  1430. package/src/tui/context/session-usage.ts +204 -0
  1431. package/src/tui/context/session.tsx +62 -0
  1432. package/src/tui/context/toast.tsx +66 -0
  1433. package/src/tui/generated-ascii-art.json +1 -0
  1434. package/src/tui/generated-ascii-art.json.d.ts +2 -0
  1435. package/src/tui/herdr-startup.test.ts +157 -0
  1436. package/src/tui/hooks/use-sessions-list.ts +165 -0
  1437. package/src/tui/index.tsx +838 -0
  1438. package/src/tui/keybindings/index.ts +126 -0
  1439. package/src/tui/keybindings/registry.ts +146 -0
  1440. package/src/tui/keybindings-registry.ts +43 -0
  1441. package/src/tui/obfuscation/patch.ts +139 -0
  1442. package/src/tui/terminal-focus.ts +218 -0
  1443. package/src/tui/theme/colors.ts +43 -0
  1444. package/src/tui/theme/context.tsx +137 -0
  1445. package/src/tui/theme/detect-mode.ts +56 -0
  1446. package/src/tui/theme/index.ts +75 -0
  1447. package/src/tui/theme/registry.ts +29 -0
  1448. package/src/tui/theme/themes/apex.ts +190 -0
  1449. package/src/tui/theme/themes/ayu.ts +189 -0
  1450. package/src/tui/theme/themes/catppuccin.ts +189 -0
  1451. package/src/tui/theme/themes/dracula.ts +190 -0
  1452. package/src/tui/theme/themes/everforest.ts +189 -0
  1453. package/src/tui/theme/themes/flexoki.ts +190 -0
  1454. package/src/tui/theme/themes/github.ts +189 -0
  1455. package/src/tui/theme/themes/gruvbox.ts +189 -0
  1456. package/src/tui/theme/themes/index.ts +54 -0
  1457. package/src/tui/theme/themes/kanagawa.ts +189 -0
  1458. package/src/tui/theme/themes/material.ts +190 -0
  1459. package/src/tui/theme/themes/monokai.ts +190 -0
  1460. package/src/tui/theme/themes/nightfox.ts +189 -0
  1461. package/src/tui/theme/themes/nord.ts +190 -0
  1462. package/src/tui/theme/themes/onedark.ts +190 -0
  1463. package/src/tui/theme/themes/rose-pine.ts +189 -0
  1464. package/src/tui/theme/themes/solarized.ts +189 -0
  1465. package/src/tui/theme/themes/tokyonight.ts +189 -0
  1466. package/src/tui/theme/themes/vesper.ts +191 -0
  1467. package/src/tui/theme/types.ts +143 -0
  1468. package/src/tui/utils/command-flags.test.ts +269 -0
  1469. package/src/tui/utils/command-flags.ts +377 -0
  1470. package/src/tui/utils/kitty-graphics.ts +76 -0
  1471. package/src/tui/utils/open-file.ts +37 -0
  1472. package/src/tui/utils/open-report.ts +34 -0
  1473. package/src/tui/utils/open-url.ts +39 -0
  1474. package/src/tui/utils/paste.ts +8 -0
  1475. package/src/tui/utils/scroll.ts +81 -0
  1476. package/src/util/errors.ts +58 -0
  1477. package/src/util/lock.ts +100 -0
  1478. package/src/util/name.ts +148 -0
  1479. package/src/util/url.test.ts +162 -0
  1480. package/src/util/url.ts +107 -0
  1481. package/build/agent-13rrhp8d.js +0 -20
  1482. package/build/agent-zbj2331s.js +0 -30
  1483. package/build/authentication-f4j3w5vs.js +0 -20
  1484. package/build/blackboxAgent-v2vx9ws4.js +0 -20
  1485. package/build/blackboxPentest-w5nwzpvk.js +0 -70
  1486. package/build/cli-5wemv37a.js +0 -194
  1487. package/build/cli-7s062hr6.js +0 -22
  1488. package/build/cli-9qbxkhye.js +0 -55
  1489. package/build/cli-avmhkjtv.js +0 -22961
  1490. package/build/cli-g3czc3jz.js +0 -204
  1491. package/build/cli-ww7hbazg.js +0 -88
  1492. package/build/index-18vyy6mj.js +0 -19
  1493. package/build/index-5wh7gq37.js +0 -12858
  1494. package/build/index-e23zc8g4.js +0 -34
  1495. package/build/index-hnwhswqj.js +0 -213
  1496. package/build/index-wkmnr4nm.js +0 -39
  1497. package/build/index-ywmfnd30.js +0 -12
  1498. package/build/offesecAgent-c97pqzcn.js +0 -27
  1499. package/build/pentest-4p5jt7gj.js +0 -30
  1500. package/build/pentests-v98eg8n3.js +0 -92
  1501. package/build/threatModel-81d4rcbk.js +0 -29
  1502. /package/build/{cli-c8131c4q.js → cli-0wsh8j2t.js} +0 -0
  1503. /package/build/{cli-9pbk8m32.js → cli-ag6jtndp.js} +0 -0
  1504. /package/build/{cli-e08r86zk.js → cli-b3dvxjgk.js} +0 -0
  1505. /package/build/{cli-fw5r7pfj.js → cli-q126f6ef.js} +0 -0
  1506. /package/build/{cli-9fsre5pt.js → cli-qba2x69h.js} +0 -0
  1507. /package/build/{cli-7q3ae3ft.js → cli-z82n3qk1.js} +0 -0
package/build/cli.js CHANGED
@@ -1,51 +1,60 @@
1
1
  #!/usr/bin/env bun
2
2
  // @bun
3
+ import"./cli-pckpvwbd.js";
4
+ import"./cli-nmg32cfd.js";
3
5
  import {
6
+ require_src,
7
+ require_src2,
8
+ require_src3,
9
+ require_src4,
4
10
  require_index_node_http,
11
+ require_src5,
5
12
  require_index_shim,
6
- require_src as require_src2,
7
- require_src1 as require_src3,
8
- require_src2 as require_src4,
9
- require_src3 as require_src5,
10
- require_src4 as require_src6
11
- } from "./cli-68260ckj.js";
12
- import"./cli-dm0fc0bm.js";
13
+ ActiveSpanProcessor
14
+ } from "./cli-91gs9whc.js";
13
15
  import {
14
16
  createThreatModelPrompt
15
- } from "./cli-fw5r7pfj.js";
16
- import"./cli-c8131c4q.js";
17
+ } from "./cli-q126f6ef.js";
17
18
  import {
18
- buildAuthConfig,
19
19
  endAllActiveRootSpans,
20
20
  init_active_root_spans,
21
- init_ai1 as init_ai,
22
21
  init_model_history,
23
22
  init_models,
23
+ buildAuthConfig,
24
+ init_utils,
24
25
  init_session,
26
+ createLogger,
27
+ logger,
25
28
  init_structured,
26
- init_toolset,
27
- init_utils,
28
- logger
29
- } from "./cli-p4r7q012.js";
30
- import"./cli-kff2bbq7.js";
31
- import"./cli-avmhkjtv.js";
32
- import"./cli-j54qa6tm.js";
33
- import"./cli-7s062hr6.js";
34
- import"./cli-ww7hbazg.js";
29
+ init_ai2
30
+ } from "./cli-c0ha5wh1.js";
31
+ import {
32
+ init_inference_attempt,
33
+ init_native_rollout_evidence
34
+ } from "./cli-se8ae8z3.js";
35
+ import"./cli-c2k4xxaw.js";
36
+ import {
37
+ parseCustomModelId,
38
+ resolveCustomModel,
39
+ resolveCustomApiKey,
40
+ init_customProviders,
41
+ resolveHoonifyModel,
42
+ init_hoonify
43
+ } from "./cli-5ppxe6qz.js";
35
44
  import {
36
- init_installation,
37
45
  init_package,
46
+ version,
38
47
  package_default,
39
- version
40
- } from "./cli-g3czc3jz.js";
48
+ init_installation
49
+ } from "./cli-v9rrvh12.js";
41
50
  import {
42
- require_src
43
- } from "./cli-knd276ed.js";
51
+ require_src6
52
+ } from "./cli-bb02pjt0.js";
44
53
  import {
54
+ __toESM,
45
55
  __commonJS,
46
- __require,
47
- __toESM
48
- } from "./cli-bc05qbss.js";
56
+ __require
57
+ } from "./cli-h6y3bt60.js";
49
58
 
50
59
  // node_modules/dotenv/lib/main.js
51
60
  var require_main = __commonJS(function(exports, module) {
@@ -244,13 +253,13 @@ var require_main = __commonJS(function(exports, module) {
244
253
  }
245
254
  let lastError;
246
255
  const parsedAll = {};
247
- for (const path2 of optionPaths) {
256
+ for (const path of optionPaths) {
248
257
  try {
249
- const parsed = DotenvModule.parse(fs.readFileSync(path2, { encoding }));
258
+ const parsed = DotenvModule.parse(fs.readFileSync(path, { encoding }));
250
259
  DotenvModule.populate(parsedAll, parsed, options);
251
260
  } catch (e) {
252
261
  if (debug) {
253
- _debug(`failed to load ${path2} ${e.message}`);
262
+ _debug(`failed to load ${path} ${e.message}`);
254
263
  }
255
264
  lastError = e;
256
265
  }
@@ -263,8 +272,8 @@ var require_main = __commonJS(function(exports, module) {
263
272
  const shortPaths = [];
264
273
  for (const filePath of optionPaths) {
265
274
  try {
266
- const relative = path.relative(process.cwd(), filePath);
267
- shortPaths.push(relative);
275
+ const relative2 = path.relative(process.cwd(), filePath);
276
+ shortPaths.push(relative2);
268
277
  } catch (e) {
269
278
  if (debug) {
270
279
  _debug(`failed to load ${filePath} ${e.message}`);
@@ -368,6 +377,7 @@ var require_main = __commonJS(function(exports, module) {
368
377
 
369
378
  // src/cli.ts
370
379
  var import_dotenv = __toESM(require_main(), 1);
380
+ import { resolve as resolve2 } from "path";
371
381
  // package.json
372
382
  var package_default2 = {
373
383
  author: "Pensar",
@@ -375,13 +385,15 @@ var package_default2 = {
375
385
  pensar: "./bin/pensar.js"
376
386
  },
377
387
  dependencies: {
378
- "@ai-sdk/amazon-bedrock": "^4.0.119",
388
+ "@ai-sdk/amazon-bedrock": "4.0.119",
379
389
  "@ai-sdk/anthropic": "^3.0.85",
380
390
  "@ai-sdk/google": "^3.0.83",
381
391
  "@ai-sdk/openai": "3.0.46",
382
392
  "@ai-sdk/openai-compatible": "^2.0.51",
383
393
  "@ai-sdk/provider": "^3.0.10",
384
- "@daytonaio/sdk": "^0.112.3",
394
+ "@aws-sdk/client-s3": "3.1146.0",
395
+ "@aws-sdk/lib-storage": "3.1146.0",
396
+ "@daytona/sdk": "0.222.0",
385
397
  "@googleapis/gmail": "^16.1.2",
386
398
  "@microsoft/microsoft-graph-client": "^3.0.7",
387
399
  "@modelcontextprotocol/sdk": "^1.29.0",
@@ -393,7 +405,7 @@ var package_default2 = {
393
405
  "@opentelemetry/resources": "^2.10.0",
394
406
  "@opentui/core": "^0.1.107",
395
407
  "@opentui/react": "^0.1.107",
396
- "@pensar/surface": "0.3.0",
408
+ "@pensar/surface": "0.3.1",
397
409
  "@playwright/mcp": "^0.0.54",
398
410
  ai: "^6.0.208",
399
411
  "camoufox-js": "^0.11.1",
@@ -408,6 +420,7 @@ var package_default2 = {
408
420
  react: "^19.2.7",
409
421
  sharp: "^0.34.5",
410
422
  tldts: "^7.4.3",
423
+ undici: "^6",
411
424
  yaml: "^2.9.0",
412
425
  zod: "^4.4.3"
413
426
  },
@@ -430,8 +443,226 @@ var package_default2 = {
430
443
  bun: ">=1.0.0",
431
444
  node: ">=18.0.0"
432
445
  },
446
+ exports: {
447
+ ".": {
448
+ default: "./build/lib/index.js",
449
+ import: "./build/lib/index.js",
450
+ types: "./build/lib/index.d.ts"
451
+ },
452
+ "./agents/offSecAgent": {
453
+ default: "./build/lib/core/agents/offSecAgent/index.js",
454
+ import: "./build/lib/core/agents/offSecAgent/index.js",
455
+ types: "./build/lib/core/agents/offSecAgent/index.d.ts"
456
+ },
457
+ "./agents/offSecAgent/tools": {
458
+ default: "./build/lib/core/agents/offSecAgent/tools/index.js",
459
+ import: "./build/lib/core/agents/offSecAgent/tools/index.js",
460
+ types: "./build/lib/core/agents/offSecAgent/tools/index.d.ts"
461
+ },
462
+ "./agents/offSecAgent/tools/email/adapters": {
463
+ default: "./build/lib/core/agents/offSecAgent/tools/email/adapters.js",
464
+ import: "./build/lib/core/agents/offSecAgent/tools/email/adapters.js",
465
+ types: "./build/lib/core/agents/offSecAgent/tools/email/adapters.d.ts"
466
+ },
467
+ "./agents/offSecAgent/tools/email/types": {
468
+ default: "./build/lib/core/agents/offSecAgent/tools/email/types.js",
469
+ import: "./build/lib/core/agents/offSecAgent/tools/email/types.js",
470
+ types: "./build/lib/core/agents/offSecAgent/tools/email/types.d.ts"
471
+ },
472
+ "./agents/offSecAgent/tools/smsInbox": {
473
+ default: "./build/lib/core/agents/offSecAgent/tools/smsInbox.js",
474
+ import: "./build/lib/core/agents/offSecAgent/tools/smsInbox.js",
475
+ types: "./build/lib/core/agents/offSecAgent/tools/smsInbox.d.ts"
476
+ },
477
+ "./agents/offSecAgent/types": {
478
+ default: "./build/lib/core/agents/offSecAgent/types.js",
479
+ import: "./build/lib/core/agents/offSecAgent/types.js",
480
+ types: "./build/lib/core/agents/offSecAgent/types.d.ts"
481
+ },
482
+ "./agents/specialized/attackSurface/blackboxAgent": {
483
+ default: "./build/lib/core/agents/specialized/attackSurface/blackboxAgent.js",
484
+ import: "./build/lib/core/agents/specialized/attackSurface/blackboxAgent.js",
485
+ types: "./build/lib/core/agents/specialized/attackSurface/blackboxAgent.d.ts"
486
+ },
487
+ "./agents/specialized/attackSurface/schemas": {
488
+ default: "./build/lib/core/agents/specialized/attackSurface/schemas.js",
489
+ import: "./build/lib/core/agents/specialized/attackSurface/schemas.js",
490
+ types: "./build/lib/core/agents/specialized/attackSurface/schemas.d.ts"
491
+ },
492
+ "./agents/specialized/authenticationAgent": {
493
+ default: "./build/lib/core/agents/specialized/authenticationAgent/index.js",
494
+ import: "./build/lib/core/agents/specialized/authenticationAgent/index.js",
495
+ types: "./build/lib/core/agents/specialized/authenticationAgent/index.d.ts"
496
+ },
497
+ "./agents/specialized/codeAgent/agent": {
498
+ default: "./build/lib/core/agents/specialized/codeAgent/agent.js",
499
+ import: "./build/lib/core/agents/specialized/codeAgent/agent.js",
500
+ types: "./build/lib/core/agents/specialized/codeAgent/agent.d.ts"
501
+ },
502
+ "./agents/specialized/codeAgent/schemas": {
503
+ default: "./build/lib/core/agents/specialized/codeAgent/schemas.js",
504
+ import: "./build/lib/core/agents/specialized/codeAgent/schemas.js",
505
+ types: "./build/lib/core/agents/specialized/codeAgent/schemas.d.ts"
506
+ },
507
+ "./agents/specialized/findingJudge": {
508
+ default: "./build/lib/core/agents/specialized/findingJudge/index.js",
509
+ import: "./build/lib/core/agents/specialized/findingJudge/index.js",
510
+ types: "./build/lib/core/agents/specialized/findingJudge/index.d.ts"
511
+ },
512
+ "./agents/specialized/findingJudge/agent": {
513
+ default: "./build/lib/core/agents/specialized/findingJudge/agent.js",
514
+ import: "./build/lib/core/agents/specialized/findingJudge/agent.js",
515
+ types: "./build/lib/core/agents/specialized/findingJudge/agent.d.ts"
516
+ },
517
+ "./agents/specialized/patching": {
518
+ default: "./build/lib/core/agents/specialized/patching/index.js",
519
+ import: "./build/lib/core/agents/specialized/patching/index.js",
520
+ types: "./build/lib/core/agents/specialized/patching/index.d.ts"
521
+ },
522
+ "./agents/specialized/pentest/agent": {
523
+ default: "./build/lib/core/agents/specialized/pentest/agent.js",
524
+ import: "./build/lib/core/agents/specialized/pentest/agent.js",
525
+ types: "./build/lib/core/agents/specialized/pentest/agent.d.ts"
526
+ },
527
+ "./agents/specialized/whiteboxAttackSurface": {
528
+ default: "./build/lib/core/agents/specialized/whiteboxAttackSurface/index.js",
529
+ import: "./build/lib/core/agents/specialized/whiteboxAttackSurface/index.js",
530
+ types: "./build/lib/core/agents/specialized/whiteboxAttackSurface/index.d.ts"
531
+ },
532
+ "./agents/specialized/whiteboxAttackSurface/types": {
533
+ default: "./build/lib/core/agents/specialized/whiteboxAttackSurface/types.js",
534
+ import: "./build/lib/core/agents/specialized/whiteboxAttackSurface/types.js",
535
+ types: "./build/lib/core/agents/specialized/whiteboxAttackSurface/types.d.ts"
536
+ },
537
+ "./api/targetedPentest": {
538
+ default: "./build/lib/core/api/targetedPentest.js",
539
+ import: "./build/lib/core/api/targetedPentest.js",
540
+ types: "./build/lib/core/api/targetedPentest.d.ts"
541
+ },
542
+ "./core/ai": {
543
+ default: "./build/lib/core/ai/index.js",
544
+ import: "./build/lib/core/ai/index.js",
545
+ types: "./build/lib/core/ai/index.d.ts"
546
+ },
547
+ "./core/ai/ai": {
548
+ default: "./build/lib/core/ai/ai.js",
549
+ import: "./build/lib/core/ai/ai.js",
550
+ types: "./build/lib/core/ai/ai.d.ts"
551
+ },
552
+ "./core/ai/utils": {
553
+ default: "./build/lib/core/ai/utils.js",
554
+ import: "./build/lib/core/ai/utils.js",
555
+ types: "./build/lib/core/ai/utils.d.ts"
556
+ },
557
+ "./core/api": {
558
+ default: "./build/lib/core/api/index.js",
559
+ import: "./build/lib/core/api/index.js",
560
+ types: "./build/lib/core/api/index.d.ts"
561
+ },
562
+ "./core/config": {
563
+ default: "./build/lib/core/config/index.js",
564
+ import: "./build/lib/core/config/index.js",
565
+ types: "./build/lib/core/config/index.d.ts"
566
+ },
567
+ "./core/eventBus": {
568
+ default: "./build/lib/core/eventBus.js",
569
+ import: "./build/lib/core/eventBus.js",
570
+ types: "./build/lib/core/eventBus.d.ts"
571
+ },
572
+ "./core/id": {
573
+ default: "./build/lib/core/id/id.js",
574
+ import: "./build/lib/core/id/id.js",
575
+ types: "./build/lib/core/id/id.d.ts"
576
+ },
577
+ "./core/memory": {
578
+ default: "./build/lib/core/memory/index.js",
579
+ import: "./build/lib/core/memory/index.js",
580
+ types: "./build/lib/core/memory/index.d.ts"
581
+ },
582
+ "./core/observability": {
583
+ default: "./build/lib/core/observability/index.js",
584
+ import: "./build/lib/core/observability/index.js",
585
+ types: "./build/lib/core/observability/index.d.ts"
586
+ },
587
+ "./core/prompt-injections": {
588
+ default: "./build/lib/core/prompt-injections/index.js",
589
+ import: "./build/lib/core/prompt-injections/index.js",
590
+ types: "./build/lib/core/prompt-injections/index.d.ts"
591
+ },
592
+ "./core/session": {
593
+ default: "./build/lib/core/session/index.js",
594
+ import: "./build/lib/core/session/index.js",
595
+ types: "./build/lib/core/session/index.d.ts"
596
+ },
597
+ "./core/session/persistence": {
598
+ default: "./build/lib/core/session/persistence.js",
599
+ import: "./build/lib/core/session/persistence.js",
600
+ types: "./build/lib/core/session/persistence.d.ts"
601
+ },
602
+ "./findings/attackSurfaceRegistry": {
603
+ default: "./build/lib/core/findings/attackSurfaceRegistry.js",
604
+ import: "./build/lib/core/findings/attackSurfaceRegistry.js",
605
+ types: "./build/lib/core/findings/attackSurfaceRegistry.d.ts"
606
+ },
607
+ "./findings/registry": {
608
+ default: "./build/lib/core/findings/registry.js",
609
+ import: "./build/lib/core/findings/registry.js",
610
+ types: "./build/lib/core/findings/registry.d.ts"
611
+ },
612
+ "./lib/cvss": {
613
+ default: "./build/lib/lib/cvss/index.js",
614
+ import: "./build/lib/lib/cvss/index.js",
615
+ types: "./build/lib/lib/cvss/index.d.ts"
616
+ },
617
+ "./lib/cvss/types": {
618
+ default: "./build/lib/lib/cvss/types.js",
619
+ import: "./build/lib/lib/cvss/types.js",
620
+ types: "./build/lib/lib/cvss/types.d.ts"
621
+ },
622
+ "./package.json": "./package.json",
623
+ "./src/*": "./src/*.ts",
624
+ "./src/core/agents/offSecAgent": "./src/core/agents/offSecAgent/index.ts",
625
+ "./src/core/agents/offSecAgent/tools": "./src/core/agents/offSecAgent/tools/index.ts",
626
+ "./src/core/agents/specialized/authenticationAgent": "./src/core/agents/specialized/authenticationAgent/index.ts",
627
+ "./src/core/agents/specialized/findingJudge": "./src/core/agents/specialized/findingJudge/index.ts",
628
+ "./src/core/agents/specialized/patching": "./src/core/agents/specialized/patching/index.ts",
629
+ "./src/core/agents/specialized/whiteboxAttackSurface": "./src/core/agents/specialized/whiteboxAttackSurface/index.ts",
630
+ "./src/core/ai": "./src/core/ai/index.ts",
631
+ "./src/core/api": "./src/core/api/index.ts",
632
+ "./src/core/memory": "./src/core/memory/index.ts",
633
+ "./src/core/observability": "./src/core/observability/index.ts",
634
+ "./src/core/prompt-injections": "./src/core/prompt-injections/index.ts",
635
+ "./src/core/session": "./src/core/session/index.ts",
636
+ "./src/lib/cvss": "./src/lib/cvss/index.ts",
637
+ "./subagentSpawner": {
638
+ default: "./build/lib/core/agents/offSecAgent/subagentSpawner.js",
639
+ import: "./build/lib/core/agents/offSecAgent/subagentSpawner.js",
640
+ types: "./build/lib/core/agents/offSecAgent/subagentSpawner.d.ts"
641
+ },
642
+ "./tools/backends": {
643
+ default: "./build/lib/core/tools/backends/index.js",
644
+ import: "./build/lib/core/tools/backends/index.js",
645
+ types: "./build/lib/core/tools/backends/index.d.ts"
646
+ },
647
+ "./workflows/pentest": {
648
+ default: "./build/lib/core/workflows/pentest.js",
649
+ import: "./build/lib/core/workflows/pentest.js",
650
+ types: "./build/lib/core/workflows/pentest.d.ts"
651
+ },
652
+ "./workflows/seams": {
653
+ default: "./build/lib/core/workflows/seams.js",
654
+ import: "./build/lib/core/workflows/seams.js",
655
+ types: "./build/lib/core/workflows/seams.d.ts"
656
+ },
657
+ "./workflows/whiteboxAttackSurface": {
658
+ default: "./build/lib/core/workflows/whiteboxAttackSurface.js",
659
+ import: "./build/lib/core/workflows/whiteboxAttackSurface.js",
660
+ types: "./build/lib/core/workflows/whiteboxAttackSurface.d.ts"
661
+ }
662
+ },
433
663
  files: [
434
664
  "build",
665
+ "src",
435
666
  "bin",
436
667
  "assets",
437
668
  "pensar.svg",
@@ -469,6 +700,7 @@ var package_default2 = {
469
700
  "build:binary:linux-x64": "bun build src/cli.ts --compile --external electron --external chromium-bidi --external camoufox-js --target=bun-linux-x64 --outfile dist/pensar-linux-x64",
470
701
  "build:binary:macos-arm64": "bun build src/cli.ts --compile --external electron --external chromium-bidi --external camoufox-js --target=bun-darwin-arm64 --outfile dist/pensar-darwin-arm64",
471
702
  "build:binary:macos-x64": "bun build src/cli.ts --compile --external electron --external chromium-bidi --external camoufox-js --target=bun-darwin-x64 --outfile dist/pensar-darwin-x64",
703
+ "build:lib": "bun run scripts/build-lib.ts",
472
704
  check: "biome check --write",
473
705
  "check:ci": "biome check",
474
706
  "daytona-benchmark": "bun run scripts/daytona-benchmark.ts",
@@ -483,20 +715,25 @@ var package_default2 = {
483
715
  "lint:fix": "biome lint --write src/",
484
716
  "local-benchmark": "bun run scripts/local-benchmark.ts",
485
717
  pensar: "node bin/pensar.js",
486
- prepublishOnly: "npm run build",
718
+ "perf:tui": "bun --no-env-file scripts/tui-performance.ts",
719
+ prepublishOnly: "npm run build && npm run build:lib",
487
720
  start: "bun run src/tui/index.tsx",
488
721
  test: "vitest run",
722
+ "test:lib-exports": "bun run scripts/verify-lib-exports.ts",
723
+ "test:tui": "bun --no-env-file test scripts/tui-performance/",
489
724
  "test:watch": "vitest",
490
725
  tsc: "tsc --noEmit"
491
726
  },
492
727
  type: "module",
493
- version: "2.5.0"
728
+ version: "2.6.1-canary.0cc77dcc"
494
729
  };
495
730
 
496
731
  // src/core/ai/index.ts
497
- init_ai();
732
+ init_ai2();
733
+ init_inference_attempt();
498
734
  init_model_history();
499
735
  init_models();
736
+ init_native_rollout_evidence();
500
737
  init_utils();
501
738
 
502
739
  // src/core/api/clientIdentity.ts
@@ -552,6 +789,28 @@ function resolveCliLogLevel(argv) {
552
789
  return { level: logLevelValue ?? shorthandLevel, invalid };
553
790
  }
554
791
 
792
+ // src/core/cli/model.ts
793
+ init_customProviders();
794
+ init_hoonify();
795
+ function resolveExplicitCliModel(options) {
796
+ const { model, provider, customProviders } = options;
797
+ if (provider && !model)
798
+ throw new Error("--model-provider requires --model.");
799
+ if (!model)
800
+ return;
801
+ const id = provider === "hoonify" ? `hoonify:${model}` : provider ? `custom:${provider}:${model}` : model;
802
+ if (id.startsWith("hoonify:")) {
803
+ if (options.hoonifyCatalogError)
804
+ throw new Error(options.hoonifyCatalogError);
805
+ resolveHoonifyModel(id, options.hoonifyModels);
806
+ }
807
+ if (parseCustomModelId(id)) {
808
+ const resolved = resolveCustomModel(id, customProviders);
809
+ resolveCustomApiKey(resolved.provider);
810
+ }
811
+ return id;
812
+ }
813
+
555
814
  // src/core/cli/pentestMode.ts
556
815
  var SUPPORTED_PENTEST_MODES = ["exfil"];
557
816
  function resolvePentestMode(mode) {
@@ -567,6 +826,26 @@ function resolvePentestMode(mode) {
567
826
  };
568
827
  }
569
828
 
829
+ // src/core/cli/tuiArgs.ts
830
+ function parseTuiArgs(args) {
831
+ if (args.length === 0)
832
+ return {};
833
+ if (args[0] !== "--resume") {
834
+ throw new Error("Use pensar --resume <session-id> [--model <model>].");
835
+ }
836
+ const sessionId = args[1];
837
+ if (!sessionId || !/^[a-zA-Z0-9][a-zA-Z0-9_-]*$/.test(sessionId)) {
838
+ throw new Error("--resume requires a saved session ID.");
839
+ }
840
+ if (args.length === 2)
841
+ return { sessionId };
842
+ const modelId = args[3];
843
+ if (args.length !== 4 || args[2] !== "--model" || !modelId?.trim() || modelId.startsWith("-")) {
844
+ throw new Error("Use pensar --resume <session-id> [--model <model>].");
845
+ }
846
+ return { sessionId, modelId };
847
+ }
848
+
570
849
  // src/core/eventBus.ts
571
850
  import { EventEmitter } from "node:events";
572
851
  var CHILD_BUS_FORWARD_POLICY = {
@@ -627,12 +906,12 @@ class AgentEventBus {
627
906
  const p = payload;
628
907
  const isLifecycle = forwardKey === "subagent-spawn" || forwardKey === "subagent-complete";
629
908
  if (isLifecycle) {
630
- const next2 = { ...p };
909
+ const next = { ...p };
631
910
  if (!p.parentSubagentId)
632
- next2.parentSubagentId = childSessionId;
911
+ next.parentSubagentId = childSessionId;
633
912
  if (!p.parentSessionId)
634
- next2.parentSessionId = childSessionId;
635
- parent.emit(forwardKey, next2);
913
+ next.parentSessionId = childSessionId;
914
+ parent.emit(forwardKey, next);
636
915
  return;
637
916
  }
638
917
  const next = { ...p };
@@ -732,7 +1011,7 @@ class AgentEventBus {
732
1011
  // src/core/installation/index.ts
733
1012
  init_package();
734
1013
  import { spawnSync } from "node:child_process";
735
- function getCurrentVersion2() {
1014
+ function getCurrentVersion() {
736
1015
  return package_default.version;
737
1016
  }
738
1017
  function isNewerVersion(current, latest) {
@@ -797,7 +1076,7 @@ function getUpgradeCommandString(method) {
797
1076
  return `${cmd} ${args.join(" ")}`;
798
1077
  }
799
1078
  function runUpgrade(method, options) {
800
- const currentVersion = getCurrentVersion2();
1079
+ const currentVersion = getCurrentVersion();
801
1080
  const { cmd, args } = getUpgradeCommand(method);
802
1081
  const interactive = options?.interactive ?? false;
803
1082
  const result = spawnSync(cmd, args, {
@@ -822,7 +1101,7 @@ function runUpgrade(method, options) {
822
1101
  };
823
1102
  }
824
1103
  async function upgrade(options) {
825
- const currentVersion = getCurrentVersion2();
1104
+ const currentVersion = getCurrentVersion();
826
1105
  let latestVersion;
827
1106
  try {
828
1107
  latestVersion = await getLatestVersion();
@@ -861,6 +1140,147 @@ You can upgrade manually by running:
861
1140
  };
862
1141
  }
863
1142
 
1143
+ // src/core/integrations/herdr.ts
1144
+ import { spawn } from "node:child_process";
1145
+ var SOURCE = "pensar-apex";
1146
+ var AGENT = "apex";
1147
+ var REPORT_TIMEOUT_MS = 1000;
1148
+ var INVALID_RESUME_CHARACTER = /['\p{Cc}]/u;
1149
+ var sequence = 0;
1150
+ function nextSequence() {
1151
+ sequence = Math.max(sequence + 1, Date.now() * 1000);
1152
+ return String(sequence);
1153
+ }
1154
+ function validResumeArgv(argv) {
1155
+ return argv.length > 0 && argv.length <= 64 && /^[a-zA-Z0-9_.][a-zA-Z0-9_.-]*$/.test(argv[0]) && argv.every((arg) => !INVALID_RESUME_CHARACTER.test(arg)) && argv.reduce((bytes, arg) => bytes + Buffer.byteLength(arg), 0) <= 8192;
1156
+ }
1157
+ function createHerdrReporter(env = process.env) {
1158
+ const binary = env.HERDR_BIN_PATH;
1159
+ const pane = env.HERDR_PANE_ID;
1160
+ if (env.HERDR_ENV !== "1" || !binary || !pane || !env.HERDR_SOCKET_PATH) {
1161
+ return { report(_report) {}, async release() {} };
1162
+ }
1163
+ const childEnv = { ...env };
1164
+ let pending;
1165
+ let active;
1166
+ let releasePromise;
1167
+ let lastSentKey;
1168
+ let reportStarted = false;
1169
+ let closing = false;
1170
+ let supportsResume = true;
1171
+ function run(args) {
1172
+ return new Promise((resolve) => {
1173
+ try {
1174
+ const child = spawn(binary, args, {
1175
+ env: childEnv,
1176
+ stdio: "ignore",
1177
+ windowsHide: true
1178
+ });
1179
+ let settled = false;
1180
+ const finish = (code) => {
1181
+ if (settled)
1182
+ return;
1183
+ settled = true;
1184
+ clearTimeout(timer);
1185
+ resolve(code);
1186
+ };
1187
+ const timer = setTimeout(() => {
1188
+ try {
1189
+ child.kill("SIGKILL");
1190
+ } catch {}
1191
+ child.unref();
1192
+ finish(null);
1193
+ }, REPORT_TIMEOUT_MS);
1194
+ child.once("spawn", () => {
1195
+ reportStarted = true;
1196
+ });
1197
+ child.once("error", () => finish(null));
1198
+ child.once("close", (code) => finish(code));
1199
+ } catch {
1200
+ resolve(null);
1201
+ }
1202
+ });
1203
+ }
1204
+ function argsFor(command) {
1205
+ return [
1206
+ "pane",
1207
+ command,
1208
+ pane,
1209
+ "--source",
1210
+ SOURCE,
1211
+ "--agent",
1212
+ AGENT,
1213
+ "--seq",
1214
+ nextSequence()
1215
+ ];
1216
+ }
1217
+ async function send(report) {
1218
+ const args = argsFor("report-agent");
1219
+ args.push("--state", report.state);
1220
+ if (report.message && !report.message.includes("\x00")) {
1221
+ args.push("--message", report.message);
1222
+ }
1223
+ const session = report.session;
1224
+ if (session?.id && !INVALID_RESUME_CHARACTER.test(session.id)) {
1225
+ args.push("--agent-session-id", session.id);
1226
+ }
1227
+ const withResume = supportsResume && session && validResumeArgv(session.resumeArgv);
1228
+ const code = await run(withResume ? [...args, "--", ...session.resumeArgv] : args);
1229
+ if (code !== 2 || !withResume)
1230
+ return code;
1231
+ supportsResume = false;
1232
+ if (closing || pending)
1233
+ return code;
1234
+ return send(report);
1235
+ }
1236
+ function drain() {
1237
+ if (active || closing)
1238
+ return;
1239
+ active = (async () => {
1240
+ while (pending && !closing) {
1241
+ const report = pending;
1242
+ pending = undefined;
1243
+ const key = JSON.stringify(report);
1244
+ if (key === lastSentKey)
1245
+ continue;
1246
+ if (await send(report) === 0)
1247
+ lastSentKey = key;
1248
+ }
1249
+ })().finally(() => {
1250
+ active = undefined;
1251
+ if (pending && !closing)
1252
+ drain();
1253
+ });
1254
+ }
1255
+ return {
1256
+ report(report) {
1257
+ if (closing)
1258
+ return;
1259
+ pending = {
1260
+ state: report.state,
1261
+ message: report.message,
1262
+ session: report.session ? {
1263
+ id: report.session.id,
1264
+ resumeArgv: [...report.session.resumeArgv]
1265
+ } : undefined
1266
+ };
1267
+ drain();
1268
+ },
1269
+ release() {
1270
+ if (releasePromise)
1271
+ return releasePromise;
1272
+ closing = true;
1273
+ pending = undefined;
1274
+ releasePromise = (async () => {
1275
+ await active;
1276
+ if (reportStarted)
1277
+ await run(argsFor("release-agent"));
1278
+ })();
1279
+ return releasePromise;
1280
+ }
1281
+ };
1282
+ }
1283
+
864
1284
  // src/core/logger/index.ts
865
1285
  init_session();
866
1286
  init_structured();
@@ -871,14 +1291,15 @@ var ERROR_LOG_PATH = path.join(os.homedir(), ".pensar", "error.log");
871
1291
 
872
1292
  // src/core/observability/runtime.ts
873
1293
  init_package();
1294
+ init_structured();
874
1295
  init_active_root_spans();
875
- var import_api = __toESM(require_src(), 1);
876
- var import_context_async_hooks = __toESM(require_src2(), 1);
877
- var import_exporter_trace_otlp_http = __toESM(require_src6(), 1);
878
- var import_otlp_exporter_base = __toESM(require_src3(), 1);
1296
+ var import_api = __toESM(require_src6(), 1);
1297
+ var import_context_async_hooks = __toESM(require_src(), 1);
1298
+ var import_exporter_trace_otlp_http = __toESM(require_src5(), 1);
1299
+ var import_otlp_exporter_base = __toESM(require_src2(), 1);
879
1300
  var import_node_http = __toESM(require_index_node_http(), 1);
880
- var import_otlp_transformer = __toESM(require_src5(), 1);
881
- var import_resources = __toESM(require_src4(), 1);
1301
+ var import_otlp_transformer = __toESM(require_src4(), 1);
1302
+ var import_resources = __toESM(require_src3(), 1);
882
1303
  var import_sdk_trace_base = __toESM(require_index_shim(), 1);
883
1304
  import { randomUUID } from "node:crypto";
884
1305
  var DEFAULT_SHUTDOWN_TIMEOUT_MS = 5000;
@@ -896,6 +1317,7 @@ function withTimeout(promise, timeoutMs) {
896
1317
  promise.then(() => settle("completed"), () => settle("completed"));
897
1318
  });
898
1319
  }
1320
+ var log = createLogger("observability");
899
1321
  var NOOP_RUNTIME = {
900
1322
  async forceFlush() {},
901
1323
  async shutdown() {
@@ -961,14 +1383,27 @@ function startObservabilityRuntime(env = process.env, opts) {
961
1383
  return NOOP_RUNTIME;
962
1384
  const shutdownTimeoutMs = opts?.shutdownTimeoutMs ?? DEFAULT_SHUTDOWN_TIMEOUT_MS;
963
1385
  const exporter = createTraceExporter(resolveTracesProtocol(env));
1386
+ const activeSpans = new ActiveSpanProcessor;
964
1387
  const provider = new import_sdk_trace_base.BasicTracerProvider({
965
1388
  resource: buildResource(env),
966
- spanProcessors: opts?.spanProcessors ?? [new import_sdk_trace_base.BatchSpanProcessor(exporter)]
1389
+ spanProcessors: [
1390
+ activeSpans,
1391
+ ...opts?.spanProcessors ?? [new import_sdk_trace_base.BatchSpanProcessor(exporter)]
1392
+ ]
967
1393
  });
968
1394
  const contextManager = new import_context_async_hooks.AsyncLocalStorageContextManager;
969
1395
  contextManager.enable();
970
- import_api.trace.setGlobalTracerProvider(provider);
971
- import_api.context.setGlobalContextManager(contextManager);
1396
+ const ownsTracerGlobal = import_api.trace.setGlobalTracerProvider(provider);
1397
+ if (!ownsTracerGlobal) {
1398
+ log.warn("OTel tracer provider already registered by the host — Apex stays embedded and will not register its own");
1399
+ contextManager.disable();
1400
+ provider.shutdown().catch((error) => log.warn("Orphaned provider shutdown failed", { error: String(error) }));
1401
+ return NOOP_RUNTIME;
1402
+ }
1403
+ const ownsContextGlobal = import_api.context.setGlobalContextManager(contextManager);
1404
+ if (!ownsContextGlobal) {
1405
+ log.warn("OTel context manager already registered by the host — Apex reuses it and will not disable it");
1406
+ }
972
1407
  let shutdownPromise = null;
973
1408
  const runtime = {
974
1409
  async forceFlush() {
@@ -976,18 +1411,24 @@ function startObservabilityRuntime(env = process.env, opts) {
976
1411
  },
977
1412
  shutdown() {
978
1413
  if (!shutdownPromise) {
979
- const shutdownWork = (async () => {
1414
+ const shutdownWork = async () => {
1415
+ activeSpans.endAll();
980
1416
  endAllActiveRootSpans();
981
1417
  try {
982
1418
  await provider.forceFlush();
983
1419
  } finally {
984
- await provider.shutdown();
1420
+ activeSpans.endAll();
1421
+ await provider.shutdown().catch((error) => {
1422
+ log.warn("OTLP export/shutdown failed", { error: String(error) });
1423
+ });
985
1424
  }
986
- })();
987
- shutdownPromise = withTimeout(shutdownWork, shutdownTimeoutMs).then((result) => {
1425
+ };
1426
+ shutdownPromise = withTimeout(shutdownWork(), shutdownTimeoutMs).then((result) => {
988
1427
  contextManager.disable();
1428
+ if (ownsContextGlobal) {
1429
+ import_api.context.disable();
1430
+ }
989
1431
  import_api.trace.disable();
990
- import_api.context.disable();
991
1432
  return result;
992
1433
  }).finally(() => {
993
1434
  activeRuntime = null;
@@ -1045,7 +1486,6 @@ function installObservabilityExitHandlers(runtime, opts) {
1045
1486
  // src/tui/utils/command-flags.ts
1046
1487
  import { readFileSync } from "node:fs";
1047
1488
  import { isAbsolute, resolve } from "node:path";
1048
- init_toolset();
1049
1489
  function combinePromptParts(threatModel, prompt) {
1050
1490
  const parts = [];
1051
1491
  if (threatModel)
@@ -1072,7 +1512,6 @@ function resolveThreatModelPrompt(value) {
1072
1512
  // src/cli.ts
1073
1513
  var args = process.argv.slice(2);
1074
1514
  var version2 = package_default2.version;
1075
- import_dotenv.config();
1076
1515
  var OBFUSCATE_FLAGS = new Set(["--obfuscate", "--redact", "-O"]);
1077
1516
  var obfuscateRequested = args.some((a) => OBFUSCATE_FLAGS.has(a));
1078
1517
  if (obfuscateRequested) {
@@ -1093,6 +1532,7 @@ if (obfuscateRequested) {
1093
1532
  }
1094
1533
  }
1095
1534
  var command = args[0];
1535
+ import_dotenv.config({ quiet: true });
1096
1536
  function getArg(flag, argv = args) {
1097
1537
  const idx = argv.indexOf(flag);
1098
1538
  return idx !== -1 ? argv[idx + 1] : undefined;
@@ -1117,6 +1557,11 @@ function getAllArgs(flag, argv = args) {
1117
1557
  }
1118
1558
  return values;
1119
1559
  }
1560
+ function nativeRolloutEvidenceOutput() {
1561
+ if (!hasFlag("--native-rollout-evidence"))
1562
+ return;
1563
+ return resolve2(getArgRequired("--native-rollout-evidence"));
1564
+ }
1120
1565
  function attachCliAgentStreamListeners(bus) {
1121
1566
  bus.on("text-delta", (d) => process.stdout.write(d.text));
1122
1567
  bus.on("tool-call-complete", (d) => console.log(`
@@ -1124,16 +1569,31 @@ function attachCliAgentStreamListeners(bus) {
1124
1569
  bus.on("tool-result", (d) => console.log(`\u2713 ${d.toolName} completed`));
1125
1570
  bus.on("error", (d) => console.error("Error:", d.error));
1126
1571
  }
1127
- async function createInstrumentedBus(session) {
1572
+ async function createInstrumentedBus(session, model) {
1573
+ headlessHerdrSession = {
1574
+ id: session.id,
1575
+ resumeArgv: [
1576
+ "pensar",
1577
+ "--resume",
1578
+ session.id,
1579
+ "--model",
1580
+ model,
1581
+ ...process.env.PENSAR_OBFUSCATE === "1" ? ["--obfuscate"] : []
1582
+ ]
1583
+ };
1584
+ reportHerdrState("working");
1128
1585
  const bus = new AgentEventBus;
1129
1586
  attachCliAgentStreamListeners(bus);
1130
- const { attachWandbToEventBus } = await import("./upload-9qj1kpt9.js");
1587
+ const { attachWandbToEventBus } = await import("./upload-vkkj6h54.js");
1131
1588
  const wandbCleanup = await attachWandbToEventBus(session, bus).catch((e) => {
1132
1589
  console.warn("[wandb] Tracing disabled:", e.message);
1133
1590
  return null;
1134
1591
  });
1135
1592
  return { bus, cleanup: async () => wandbCleanup?.() };
1136
1593
  }
1594
+ function reportHerdrState(state) {
1595
+ headlessHerdr?.report({ state, session: headlessHerdrSession });
1596
+ }
1137
1597
  async function resolveCliHeaders() {
1138
1598
  const headerArgs = getAllArgs("--header");
1139
1599
  const headersFromArg = getArg("--headers-from");
@@ -1141,10 +1601,10 @@ async function resolveCliHeaders() {
1141
1601
  if (headerArgs.length === 0 && !headersFromArg && !noGlobal) {
1142
1602
  return;
1143
1603
  }
1144
- const { parseHeaderLine: parseHeaderLine2, parseHeadersFromFile, formatParseError: formatParseError2 } = await import("./parse-rtccymzn.js");
1604
+ const { parseHeaderLine, parseHeadersFromFile, formatParseError } = await import("./parse-cqecqrc5.js");
1145
1605
  const merged = {};
1146
1606
  if (!noGlobal) {
1147
- const { config: appConfig } = await import("./index-18vyy6mj.js");
1607
+ const { config: appConfig } = await import("./index-cfbd4zej.js");
1148
1608
  const cfg = await appConfig.get();
1149
1609
  if (cfg.defaultHeaders) {
1150
1610
  Object.assign(merged, cfg.defaultHeaders);
@@ -1155,7 +1615,7 @@ async function resolveCliHeaders() {
1155
1615
  if (!parsed.ok) {
1156
1616
  for (const err of parsed.error) {
1157
1617
  console.error(`--headers-from error:
1158
- ${formatParseError2(err)}`);
1618
+ ${formatParseError(err)}`);
1159
1619
  }
1160
1620
  process.exit(1);
1161
1621
  }
@@ -1164,10 +1624,10 @@ ${formatParseError2(err)}`);
1164
1624
  }
1165
1625
  }
1166
1626
  for (const arg of headerArgs) {
1167
- const parsed = parseHeaderLine2(arg);
1627
+ const parsed = parseHeaderLine(arg);
1168
1628
  if (!parsed.ok) {
1169
1629
  console.error(`--header "${arg}" rejected:
1170
- ${formatParseError2(parsed.error)}`);
1630
+ ${formatParseError(parsed.error)}`);
1171
1631
  process.exit(1);
1172
1632
  }
1173
1633
  merged[parsed.value.name] = parsed.value.value;
@@ -1175,24 +1635,40 @@ ${formatParseError2(parsed.error)}`);
1175
1635
  return merged;
1176
1636
  }
1177
1637
  async function resolveCliModel() {
1178
- const explicit = getArg("--model");
1638
+ const { config: appConfig } = await import("./index-cfbd4zej.js");
1639
+ const { getDefaultModelForConfig } = await import("./utils-b1kae4f3.js");
1640
+ const pensarConfig = await appConfig.get();
1641
+ const explicit = resolveExplicitCliModel({
1642
+ model: getArg("--model"),
1643
+ provider: getArg("--model-provider"),
1644
+ customProviders: pensarConfig.customProviders,
1645
+ hoonifyModels: pensarConfig.hoonifyModels,
1646
+ hoonifyCatalogError: pensarConfig.hoonifyCatalogError
1647
+ });
1179
1648
  if (explicit)
1180
1649
  return explicit;
1181
- const { config: appConfig } = await import("./index-18vyy6mj.js");
1182
- const { getDefaultModelForConfig } = await import("./utils-t7gc2903.js");
1183
- const pensarConfig = await appConfig.get();
1184
1650
  const defaultModel = getDefaultModelForConfig(pensarConfig);
1185
1651
  if (!defaultModel) {
1652
+ if (pensarConfig.hoonifyCatalogError)
1653
+ throw new Error(pensarConfig.hoonifyCatalogError);
1186
1654
  console.error(`Error: No AI provider configured. Set one of:
1187
1655
  ` + ` PENSAR_API_KEY \u2014 Pensar Console (recommended)
1188
1656
  ` + ` ANTHROPIC_API_KEY \u2014 Anthropic direct
1189
1657
  ` + ` OPENAI_API_KEY \u2014 OpenAI
1190
1658
  ` + ` OPENROUTER_API_KEY \u2014 OpenRouter
1191
1659
  ` + ` CONCENTRATE_API_KEY \u2014 Concentrate
1660
+ ` + ` HOONIFY_API_KEY \u2014 Hoonify
1661
+ ` + ` APEX_CUSTOM_PROVIDERS \u2014 Custom OpenAI-compatible providers (JSON)
1192
1662
  ` + `
1193
1663
  Or run 'pensar login' to connect to Pensar Console.`);
1194
1664
  process.exit(1);
1195
1665
  }
1666
+ resolveExplicitCliModel({
1667
+ model: defaultModel.id,
1668
+ customProviders: pensarConfig.customProviders,
1669
+ hoonifyModels: pensarConfig.hoonifyModels,
1670
+ hoonifyCatalogError: pensarConfig.hoonifyCatalogError
1671
+ });
1196
1672
  return defaultModel.id;
1197
1673
  }
1198
1674
  function showHelp() {
@@ -1200,6 +1676,7 @@ function showHelp() {
1200
1676
 
1201
1677
  Usage:
1202
1678
  pensar Launch the TUI
1679
+ pensar --resume <session-id> Reopen a saved session in the TUI
1203
1680
  pensar -p <prompt> Start an operator session with a prompt
1204
1681
  pensar pentest [options] Run a full pentest orchestration
1205
1682
  pensar targeted-pentest [options] Run a targeted pentest on a single target
@@ -1208,16 +1685,22 @@ Usage:
1208
1685
  pensar uninstall Uninstall Pensar (keeps sessions, memories, skills)
1209
1686
  pensar apps Manage the attack surface (apps & endpoints)
1210
1687
  pensar pentests List and manage pentests
1688
+ pensar agent-runs Record and inspect local agent runs
1211
1689
  pensar targets List pentest targets and view their agent logs
1212
1690
  pensar issues List and manage security issues
1213
1691
  pensar fixes View security fixes
1692
+ pensar knowledge Read and edit the workspace knowledge base
1214
1693
  pensar logs View agent execution logs
1215
1694
  pensar config headers Manage global default HTTP headers
1695
+ pensar export-trajectory Convert saved rollout evidence to ATIF
1216
1696
  pensar upgrade Update pensar to the latest version
1217
1697
  pensar doctor Check dependencies and install missing tools
1218
1698
  pensar help Show this help message
1219
1699
  pensar version Show version number
1220
1700
 
1701
+ resume options:
1702
+ --model <model> Restore the session with this model
1703
+
1221
1704
  operator options (-p):
1222
1705
  -p, --prompt <text|@file> (required) Prompt for the operator agent
1223
1706
  -s, --system <text|@file> Override the default system prompt
@@ -1226,6 +1709,8 @@ operator options (-p):
1226
1709
  --header "Name: Value" Custom HTTP header (repeatable)
1227
1710
  --headers-from <file> Load headers from a JSON object or Name:Value file
1228
1711
  --no-global-headers Skip the global defaultHeaders snapshot
1712
+ --native-rollout-evidence <directory>
1713
+ Capture this invocation's model-boundary evidence
1229
1714
 
1230
1715
  pentest options:
1231
1716
  --target <url> (required) Target URL / domain / IP
@@ -1241,6 +1726,8 @@ pentest options:
1241
1726
  --header "Name: Value" Custom HTTP header (repeatable)
1242
1727
  --headers-from <file> Load headers from a JSON object or Name:Value file
1243
1728
  --no-global-headers Skip the global defaultHeaders snapshot
1729
+ --native-rollout-evidence <directory>
1730
+ Capture this invocation's model-boundary evidence
1244
1731
 
1245
1732
  targeted-pentest options:
1246
1733
  --target <url> (required) Target URL / domain / IP
@@ -1249,12 +1736,19 @@ targeted-pentest options:
1249
1736
  --header "Name: Value" Custom HTTP header (repeatable)
1250
1737
  --headers-from <file> Load headers from a JSON object or Name:Value file
1251
1738
  --no-global-headers Skip the global defaultHeaders snapshot
1739
+ --native-rollout-evidence <directory>
1740
+ Capture this invocation's model-boundary evidence
1252
1741
 
1253
1742
  threat-model options:
1254
1743
  --output, -o <path> Output file path (default: ./threat-model.md)
1255
1744
  --model <model> AI model (default: auto-selected from configured provider)
1256
1745
 
1746
+ export-trajectory options:
1747
+ --input <path> Version 1 export request with saved evidence paths and digests
1748
+ --output <path> Fresh output directory; existing paths are never overwritten
1749
+
1257
1750
  Global options:
1751
+ --model-provider <id> Hoonify or custom provider for --model (headless commands)
1258
1752
  -h, --help Show this help message
1259
1753
  -v, --version Show version number
1260
1754
  --log-level <lvl> Diagnostic log level: debug|info|warn|error|silent
@@ -1263,12 +1757,21 @@ Global options:
1263
1757
  --obfuscate Run the TUI in obfuscation mode \u2014 redacts hostnames,
1264
1758
  IPs, UUIDs, emails, paths, tokens, and apparent
1265
1759
  company names so screenshots are safe to share.
1760
+
1761
+ Hoonify inference:
1762
+ Set HOONIFY_API_KEY, then use --model-provider hoonify --model <catalog-model-id>
1763
+ or --model hoonify:<catalog-model-id>. Models are discovered from Hoonify.
1764
+
1765
+ Custom inference:
1766
+ Configure customProviders in ~/.pensar/config.json or set APEX_CUSTOM_PROVIDERS
1767
+ to the equivalent JSON object. API keys are read from each provider's apiKeyEnv.
1768
+ Use --model-provider <id> --model <model>, or --model custom:<id>:<model>.
1266
1769
  `);
1267
1770
  }
1268
1771
  async function runPentest() {
1269
- const { runPentestAgent } = await import("./blackboxPentest-w5nwzpvk.js");
1270
- const { sessions: sessions2 } = await import("./index-kyd1jm89.js");
1271
- const { config: appConfig } = await import("./index-18vyy6mj.js");
1772
+ const { runPentestAgent } = await import("./blackboxPentest-aw69ect4.js");
1773
+ const { sessions } = await import("./index-nfhetcq8.js");
1774
+ const { config: appConfig } = await import("./index-cfbd4zej.js");
1272
1775
  const target = getArgRequired("--target");
1273
1776
  const cwd = getArg("--cwd");
1274
1777
  const mode = getArg("--mode");
@@ -1277,6 +1780,7 @@ async function runPentest() {
1277
1780
  const enableThinking = hasFlag("--extended-thinking");
1278
1781
  const taskDriven = hasFlag("--task-driven");
1279
1782
  const fastStrike = hasFlag("--fast-strike");
1783
+ const evidenceOutput = nativeRolloutEvidenceOutput();
1280
1784
  const resolvedTm = threatModelRaw ? resolveThreatModelPrompt(threatModelRaw) : undefined;
1281
1785
  const resolvedPrompt = promptRaw ? resolveFlagValue(promptRaw) : undefined;
1282
1786
  const prompt = combinePromptParts(resolvedTm, resolvedPrompt);
@@ -1303,7 +1807,7 @@ Task-driven: enabled` : ""}${fastStrike ? `
1303
1807
  Fast strike: enabled` : ""}${headers ? `
1304
1808
  Headers: ${Object.keys(headers).length} configured` : ""}
1305
1809
  `);
1306
- const session = await sessions2.create({
1810
+ const session = await sessions.create({
1307
1811
  name: cwd ? "Whitebox Pentest" : "Blackbox Pentest",
1308
1812
  targets: [target],
1309
1813
  config: {
@@ -1311,24 +1815,30 @@ Headers: ${Object.keys(headers).length} configured` : ""}
1311
1815
  ...exfilMode ? { exfilMode: true } : {},
1312
1816
  ...prompt ? { prompt } : {},
1313
1817
  ...taskDriven ? { taskDriven: true } : {},
1818
+ ...evidenceOutput ? { nativeRolloutEvidence: { outputDirectory: evidenceOutput } } : {},
1314
1819
  ...headers !== undefined ? { headers } : {}
1315
1820
  }
1316
1821
  });
1317
1822
  console.log(`PENSAR_SESSION_PATH:${session.rootPath}`);
1318
- const { bus: pentestBus, cleanup: wandbCleanup } = await createInstrumentedBus(session);
1319
- try {
1320
- const { findings, findingsPath, pocsPath, reportPath } = await runPentestAgent({
1321
- target,
1322
- ...cwd ? { cwd } : {},
1323
- session,
1324
- model,
1325
- enableThinking,
1326
- ...fastStrike ? { fastStrike: true } : {},
1327
- surfaceIntegrationEnabled: pensarConfig.surfaceIntegrationEnabled,
1328
- authConfig: buildAuthConfig(pensarConfig),
1329
- eventBus: pentestBus
1330
- });
1331
- console.log(`
1823
+ const { runWithCliNativeRolloutEvidence } = await import("./native-rollout-evidence-y0vdtjje.js");
1824
+ const evidence = await runWithCliNativeRolloutEvidence({
1825
+ session,
1826
+ outputDirectory: evidenceOutput,
1827
+ run: async () => {
1828
+ const { bus: pentestBus, cleanup: wandbCleanup } = await createInstrumentedBus(session, model);
1829
+ try {
1830
+ const { findings, findingsPath, pocsPath, reportPath } = await runPentestAgent({
1831
+ target,
1832
+ ...cwd ? { cwd } : {},
1833
+ session,
1834
+ model,
1835
+ enableThinking,
1836
+ ...fastStrike ? { fastStrike: true } : {},
1837
+ surfaceIntegrationEnabled: pensarConfig.surfaceIntegrationEnabled,
1838
+ authConfig: buildAuthConfig(pensarConfig),
1839
+ eventBus: pentestBus
1840
+ });
1841
+ console.log(`
1332
1842
  ${sep}
1333
1843
  RESULTS
1334
1844
  ${sep}
@@ -1336,16 +1846,22 @@ Findings: ${findings.length}
1336
1846
  Path: ${findingsPath}
1337
1847
  POCs: ${pocsPath}${reportPath ? `
1338
1848
  Report: ${reportPath}` : ""}`);
1339
- } finally {
1340
- await wandbCleanup();
1849
+ } finally {
1850
+ await wandbCleanup();
1851
+ }
1852
+ }
1853
+ });
1854
+ if (evidence.manifestPath) {
1855
+ console.log(`Native evidence: ${evidence.manifestPath}`);
1341
1856
  }
1342
1857
  }
1343
1858
  async function runTargetedPentest() {
1344
- const { runTargetedPentestAgent } = await import("./targetedPentest-tdwtgmxm.js");
1345
- const { sessions: sessions2 } = await import("./index-kyd1jm89.js");
1346
- const { config: appConfig } = await import("./index-18vyy6mj.js");
1859
+ const { runTargetedPentestAgent } = await import("./targetedPentest-rgffxsgd.js");
1860
+ const { sessions } = await import("./index-nfhetcq8.js");
1861
+ const { config: appConfig } = await import("./index-cfbd4zej.js");
1347
1862
  const target = getArgRequired("--target");
1348
1863
  const objectives = getAllArgs("--objective");
1864
+ const evidenceOutput = nativeRolloutEvidenceOutput();
1349
1865
  const pensarConfig = await appConfig.get();
1350
1866
  const model = await resolveCliModel();
1351
1867
  if (objectives.length === 0) {
@@ -1364,41 +1880,56 @@ Objectives:
1364
1880
  ${objectivesList}
1365
1881
  `);
1366
1882
  const headers = await resolveCliHeaders();
1367
- const session = await sessions2.create({
1883
+ const session = await sessions.create({
1368
1884
  name: "Targeted Pentest",
1369
1885
  targets: [target],
1370
- ...headers !== undefined ? { config: { headers } } : {}
1886
+ ...headers !== undefined || evidenceOutput ? {
1887
+ config: {
1888
+ ...headers !== undefined ? { headers } : {},
1889
+ ...evidenceOutput ? { nativeRolloutEvidence: { outputDirectory: evidenceOutput } } : {}
1890
+ }
1891
+ } : {}
1371
1892
  });
1372
1893
  console.log(`PENSAR_SESSION_PATH:${session.rootPath}`);
1373
- const { bus: targetedBus, cleanup: wandbCleanup } = await createInstrumentedBus(session);
1374
- try {
1375
- const { findings, findingsPath, pocsPath } = await runTargetedPentestAgent({
1376
- target,
1377
- objectives,
1378
- session,
1379
- model,
1380
- authConfig: buildAuthConfig(pensarConfig),
1381
- eventBus: targetedBus
1382
- });
1383
- console.log(`
1894
+ const { runWithCliNativeRolloutEvidence } = await import("./native-rollout-evidence-y0vdtjje.js");
1895
+ const evidence = await runWithCliNativeRolloutEvidence({
1896
+ session,
1897
+ outputDirectory: evidenceOutput,
1898
+ run: async () => {
1899
+ const { bus: targetedBus, cleanup: wandbCleanup } = await createInstrumentedBus(session, model);
1900
+ try {
1901
+ const { findings, findingsPath, pocsPath } = await runTargetedPentestAgent({
1902
+ target,
1903
+ objectives,
1904
+ session,
1905
+ model,
1906
+ authConfig: buildAuthConfig(pensarConfig),
1907
+ eventBus: targetedBus
1908
+ });
1909
+ console.log(`
1384
1910
  ${sep}
1385
1911
  RESULTS
1386
1912
  ${sep}
1387
1913
  Findings: ${findings.length}
1388
1914
  Path: ${findingsPath}
1389
1915
  POCs: ${pocsPath}`);
1390
- } finally {
1391
- await wandbCleanup();
1916
+ } finally {
1917
+ await wandbCleanup();
1918
+ }
1919
+ }
1920
+ });
1921
+ if (evidence.manifestPath) {
1922
+ console.log(`Native evidence: ${evidence.manifestPath}`);
1392
1923
  }
1393
1924
  }
1394
1925
  async function runThreatModel() {
1395
- const { runThreatModelWorkflow } = await import("./threatModel-81d4rcbk.js");
1396
- const { config: appConfig } = await import("./index-18vyy6mj.js");
1397
- const path2 = await import("path");
1926
+ const { runThreatModelWorkflow } = await import("./threatModel-6efzjpbv.js");
1927
+ const { config: appConfig } = await import("./index-cfbd4zej.js");
1928
+ const path = await import("path");
1398
1929
  const pensarConfig = await appConfig.get();
1399
1930
  const model = await resolveCliModel();
1400
1931
  const outputArg = getArg("--output") ?? getArg("-o") ?? "threat-model.md";
1401
- const resolvedPath = path2.isAbsolute(outputArg) ? outputArg : path2.resolve(process.cwd(), outputArg);
1932
+ const resolvedPath = path.isAbsolute(outputArg) ? outputArg : path.resolve(process.cwd(), outputArg);
1402
1933
  const sep = "=".repeat(60);
1403
1934
  console.log(`${sep}
1404
1935
  THREAT MODEL GENERATION
@@ -1413,6 +1944,7 @@ Model: ${model}
1413
1944
  \u2192 ${d.toolName}`));
1414
1945
  threatBus.on("tool-result", (d) => console.log(` \u2713 ${d.toolName}`));
1415
1946
  threatBus.on("error", (d) => console.error("Error:", d.error));
1947
+ reportHerdrState("working");
1416
1948
  await runThreatModelWorkflow({
1417
1949
  codebasePath: process.cwd(),
1418
1950
  outputPath: resolvedPath,
@@ -1427,14 +1959,14 @@ ${sep}
1427
1959
  Threat model written to: ${resolvedPath}`);
1428
1960
  }
1429
1961
  async function runOperator() {
1430
- const { runOffensiveSecurityAgent } = await import("./offesecAgent-c97pqzcn.js");
1431
- const { sessions: sessions2, normalizeMessages, getResumeMessages } = await import("./index-kyd1jm89.js");
1432
- const { ALL_TOOL_NAMES, SKILL_TOOL_NAMES } = await import("./index-hnwhswqj.js");
1433
- const { config: appConfig } = await import("./index-18vyy6mj.js");
1962
+ const { runOffensiveSecurityAgent } = await import("./offesecAgent-dfj42jkj.js");
1963
+ const { sessions, normalizeMessages, getResumeMessages } = await import("./index-nfhetcq8.js");
1964
+ const { ALL_TOOL_NAMES, SKILL_TOOL_NAMES } = await import("./index-0ef0j7yp.js");
1965
+ const { config: appConfig } = await import("./index-cfbd4zej.js");
1434
1966
  const { createInterface } = await import("readline");
1435
- const { readFileSync: readFileSync2, existsSync } = await import("fs");
1436
- const path2 = await import("path");
1437
- const { stepCountIs } = await import("./index-5wh7gq37.js");
1967
+ const { readFileSync, existsSync } = await import("fs");
1968
+ const path = await import("path");
1969
+ const { stepCountIs } = await import("./index-qnyevb6q.js");
1438
1970
  const promptRaw = getArg("-p") ?? getArg("--prompt");
1439
1971
  if (!promptRaw) {
1440
1972
  console.error("Error: -p <prompt> is required");
@@ -1444,6 +1976,7 @@ async function runOperator() {
1444
1976
  const systemRaw = getArg("-s") ?? getArg("--system");
1445
1977
  const systemPrompt = systemRaw ? resolveFlagValue(systemRaw) : undefined;
1446
1978
  const target = getArg("--target");
1979
+ const evidenceOutput = nativeRolloutEvidenceOutput();
1447
1980
  const pensarConfig = await appConfig.get();
1448
1981
  const model = await resolveCliModel();
1449
1982
  const sep = "\u2500".repeat(60);
@@ -1455,7 +1988,7 @@ Target: ${target}` : ""}
1455
1988
  ${sep}
1456
1989
  `);
1457
1990
  const headers = await resolveCliHeaders();
1458
- const session = await sessions2.create({
1991
+ const session = await sessions.create({
1459
1992
  name: "Operator Session",
1460
1993
  targets: target ? [target] : [],
1461
1994
  config: {
@@ -1466,84 +1999,124 @@ ${sep}
1466
1999
  requireApproval: false,
1467
2000
  enableSuggestions: false
1468
2001
  },
1469
- ...headers !== undefined ? { headers } : {}
2002
+ ...headers !== undefined ? { headers } : {},
2003
+ ...evidenceOutput ? { nativeRolloutEvidence: { outputDirectory: evidenceOutput } } : {}
1470
2004
  }
1471
2005
  });
1472
- const { bus, cleanup: wandbCleanup } = await createInstrumentedBus(session);
1473
- let currentPrompt = prompt;
1474
- let messages;
1475
- const rl = createInterface({
1476
- input: process.stdin,
1477
- output: process.stdout
1478
- });
1479
- const askFollowUp = () => new Promise((resolve2) => {
1480
- process.stdout.write(`
2006
+ const { runWithCliNativeRolloutEvidence } = await import("./native-rollout-evidence-y0vdtjje.js");
2007
+ const evidence = await runWithCliNativeRolloutEvidence({
2008
+ session,
2009
+ outputDirectory: evidenceOutput,
2010
+ run: async () => {
2011
+ const { bus, cleanup: wandbCleanup } = await createInstrumentedBus(session, model);
2012
+ let currentPrompt = prompt;
2013
+ let messages;
2014
+ const rl = createInterface({
2015
+ input: process.stdin,
2016
+ output: process.stdout
2017
+ });
2018
+ const askFollowUp = () => new Promise((resolve) => {
2019
+ reportHerdrState("idle");
2020
+ process.stdout.write(`
1481
2021
  ${sep}
1482
2022
  `);
1483
- rl.question("follow-up (empty to exit): ", (answer) => {
1484
- const trimmed = answer.trim();
1485
- resolve2(trimmed || null);
1486
- });
1487
- });
1488
- try {
1489
- for (;; ) {
1490
- await runOffensiveSecurityAgent({
1491
- prompt: currentPrompt,
1492
- ...systemPrompt ? { system: systemPrompt } : {},
1493
- model,
1494
- target,
1495
- activeTools: [...ALL_TOOL_NAMES, ...SKILL_TOOL_NAMES],
1496
- stopWhen: stepCountIs(1e4),
1497
- authConfig: buildAuthConfig(pensarConfig),
1498
- eventBus: bus,
1499
- session,
1500
- messages
2023
+ rl.question("follow-up (empty to exit): ", (answer) => {
2024
+ const trimmed = answer.trim();
2025
+ resolve(trimmed || null);
2026
+ });
1501
2027
  });
1502
- const messagesPath = path2.join(session.rootPath, "messages.json");
1503
- if (existsSync(messagesPath)) {
1504
- const raw = JSON.parse(readFileSync2(messagesPath, "utf-8"));
1505
- const allMessages = Array.isArray(raw) ? raw : [];
1506
- messages = normalizeMessages(getResumeMessages(allMessages));
2028
+ try {
2029
+ for (;; ) {
2030
+ reportHerdrState("working");
2031
+ await runOffensiveSecurityAgent({
2032
+ prompt: currentPrompt,
2033
+ ...systemPrompt ? { system: systemPrompt } : {},
2034
+ model,
2035
+ target,
2036
+ activeTools: [...ALL_TOOL_NAMES, ...SKILL_TOOL_NAMES],
2037
+ stopWhen: stepCountIs(1e4),
2038
+ authConfig: buildAuthConfig(pensarConfig),
2039
+ eventBus: bus,
2040
+ session,
2041
+ messages
2042
+ });
2043
+ const messagesPath = path.join(session.rootPath, "messages.json");
2044
+ if (existsSync(messagesPath)) {
2045
+ const raw = JSON.parse(readFileSync(messagesPath, "utf-8"));
2046
+ const allMessages = Array.isArray(raw) ? raw : [];
2047
+ messages = normalizeMessages(getResumeMessages(allMessages));
2048
+ }
2049
+ const followUp = await askFollowUp();
2050
+ if (!followUp)
2051
+ break;
2052
+ currentPrompt = followUp;
2053
+ messages = normalizeMessages([
2054
+ ...messages ?? [],
2055
+ { role: "user", content: followUp }
2056
+ ]);
2057
+ }
2058
+ } finally {
2059
+ rl.close();
2060
+ await wandbCleanup();
1507
2061
  }
1508
- const followUp = await askFollowUp();
1509
- if (!followUp)
1510
- break;
1511
- currentPrompt = followUp;
1512
- messages = normalizeMessages([
1513
- ...messages ?? [],
1514
- { role: "user", content: followUp }
1515
- ]);
2062
+ console.log(`
2063
+ Session: ${session.rootPath}`);
1516
2064
  }
1517
- } finally {
1518
- rl.close();
1519
- await wandbCleanup();
2065
+ });
2066
+ if (evidence.manifestPath) {
2067
+ console.log(`Native evidence: ${evidence.manifestPath}`);
1520
2068
  }
1521
- console.log(`
1522
- Session: ${session.rootPath}`);
1523
2069
  }
1524
2070
  async function runUpgrade2() {
1525
- const currentVersion = getCurrentVersion2();
2071
+ const currentVersion = getCurrentVersion();
1526
2072
  console.log(`Current version: v${currentVersion}
1527
2073
  Checking for updates...`);
1528
2074
  const result = await upgrade({ interactive: true });
1529
2075
  console.log(`
1530
2076
  ${result.message}`);
1531
- process.exit(result.success ? 0 : 1);
2077
+ process.exitCode = result.success ? 0 : 1;
1532
2078
  }
1533
- var observabilityRuntime = startObservabilityRuntime();
1534
- var exitAfterObservabilityShutdown = args.length !== 0 ? installObservabilityExitHandlers(observabilityRuntime, {
2079
+ var tuiRequested = args.length === 0 || command === "--resume";
2080
+ var headlessHerdr = !tuiRequested && process.stdin.isTTY && process.stdout.isTTY && (hasFlag("-p") || command === "--prompt" || command === "pentest" || command === "targeted-pentest" || command === "threat-model") ? createHerdrReporter() : null;
2081
+ var headlessHerdrSession;
2082
+ var observabilityRuntime = command === "export-trajectory" ? null : startObservabilityRuntime();
2083
+ var standaloneRuntime = observabilityRuntime && {
2084
+ ...observabilityRuntime,
2085
+ shutdown: async () => {
2086
+ const [result] = await Promise.all([
2087
+ observabilityRuntime.shutdown().catch(() => "completed"),
2088
+ headlessHerdr?.release()
2089
+ ]);
2090
+ return result;
2091
+ }
2092
+ };
2093
+ var exitAfterObservabilityShutdown = standaloneRuntime !== null && !tuiRequested ? installObservabilityExitHandlers(standaloneRuntime, {
1535
2094
  onError: (error) => {
1536
2095
  console.error("Uncaught exception:", error);
1537
2096
  }
1538
2097
  }) : null;
1539
2098
  setCurrentCommand(command);
1540
2099
  try {
1541
- if (hasFlag("-p") || command === "--prompt") {
2100
+ if (tuiRequested) {
2101
+ const options = parseTuiArgs(args);
2102
+ if (process.env.PENSAR_NO_TUI === "1") {
2103
+ console.error("TUI mode requires Bun. Install Bun (https://bun.sh) or use a standalone binary release for interactive mode.");
2104
+ console.error("All other commands work with Node \u2014 run 'pensar --help'.");
2105
+ await standaloneRuntime?.shutdown();
2106
+ process.exitCode = 1;
2107
+ } else {
2108
+ const { startTui } = await import("./index-wyn4g2c1.js");
2109
+ await startTui(options);
2110
+ }
2111
+ } else if (hasFlag("-p") || command === "--prompt") {
1542
2112
  await runOperator();
1543
2113
  } else if (command === "version" || command === "--version" || command === "-v") {
1544
2114
  console.log(`v${version2}`);
1545
2115
  } else if (command === "help" || command === "--help" || command === "-h") {
1546
2116
  showHelp();
2117
+ } else if (command === "export-trajectory") {
2118
+ process.argv = [process.argv[0], process.argv[1], ...args.slice(1)];
2119
+ await import("./export-trajectory-rt4tf07k.js");
1547
2120
  } else if (command === "upgrade" || command === "update") {
1548
2121
  await runUpgrade2();
1549
2122
  } else if (command === "pentest") {
@@ -1552,57 +2125,58 @@ try {
1552
2125
  await runTargetedPentest();
1553
2126
  } else if (command === "login" || command === "auth") {
1554
2127
  process.argv = [process.argv[0], process.argv[1], ...args.slice(1)];
1555
- await import("./auth-7ay8qgxm.js");
2128
+ await import("./auth-396rc66q.js");
1556
2129
  } else if (command === "uninstall") {
1557
2130
  process.argv = [process.argv[0], process.argv[1], ...args.slice(1)];
1558
- await import("./uninstall-d33159cz.js");
2131
+ await import("./uninstall-cmv057jn.js");
1559
2132
  } else if (command === "apps") {
1560
2133
  process.argv = [process.argv[0], process.argv[1], ...args.slice(1)];
1561
- await import("./apps-x4ef2gpc.js");
2134
+ await import("./apps-d50kkp3g.js");
1562
2135
  } else if (command === "pentests") {
1563
2136
  process.argv = [process.argv[0], process.argv[1], ...args.slice(1)];
1564
- await import("./pentests-v98eg8n3.js");
2137
+ await import("./pentests-jh9az51h.js");
2138
+ } else if (command === "agent-runs") {
2139
+ const { runAgentRunsCommand } = await import("./agent-runs-awgj4sat.js");
2140
+ await runAgentRunsCommand(args.slice(1));
1565
2141
  } else if (command === "targets") {
1566
2142
  process.argv = [process.argv[0], process.argv[1], ...args.slice(1)];
1567
- await import("./targets-763n91t7.js");
2143
+ await import("./targets-wn0gmdhe.js");
1568
2144
  } else if (command === "issues") {
1569
2145
  process.argv = [process.argv[0], process.argv[1], ...args.slice(1)];
1570
- await import("./issues-019678t0.js");
2146
+ await import("./issues-9zdszfq8.js");
2147
+ } else if (command === "knowledge") {
2148
+ process.argv = [process.argv[0], process.argv[1], ...args.slice(1)];
2149
+ await import("./knowledge-r6rmer3d.js");
1571
2150
  } else if (command === "fixes") {
1572
2151
  process.argv = [process.argv[0], process.argv[1], ...args.slice(1)];
1573
- await import("./fixes-fv66yn1z.js");
2152
+ await import("./fixes-9qtsvwxx.js");
1574
2153
  } else if (command === "logs") {
1575
2154
  process.argv = [process.argv[0], process.argv[1], ...args.slice(1)];
1576
- await import("./logs-wzr5176k.js");
2155
+ await import("./logs-1r7nkzhg.js");
1577
2156
  } else if (command === "config") {
1578
2157
  process.argv = [process.argv[0], process.argv[1], ...args.slice(1)];
1579
- await import("./config-4kzh88xz.js");
2158
+ await import("./config-hddxxr27.js");
1580
2159
  } else if (command === "threat-model") {
1581
2160
  await runThreatModel();
1582
2161
  } else if (command === "doctor") {
1583
- const { runDoctor } = await import("./doctor-rz7sx6ev.js");
2162
+ const { runDoctor } = await import("./doctor-z94afr10.js");
1584
2163
  await runDoctor();
1585
- } else if (args.length === 0) {
1586
- if (process.env.PENSAR_NO_TUI === "1") {
1587
- console.error("TUI mode requires Bun. Install Bun (https://bun.sh) or use a standalone binary release for interactive mode.");
1588
- console.error("All other commands work with Node \u2014 run 'pensar --help'.");
1589
- process.exit(1);
1590
- }
1591
- await import("./index-fpwr10qm.js");
1592
2164
  } else {
1593
2165
  console.error(`Error: Unknown command '${command}'`);
1594
2166
  console.error();
1595
2167
  console.error("Run 'pensar --help' for usage information");
1596
- process.exit(1);
2168
+ process.exitCode = 1;
1597
2169
  }
1598
2170
  } catch (error) {
1599
- if (exitAfterObservabilityShutdown !== null) {
2171
+ if (exitAfterObservabilityShutdown !== null && observabilityRuntime !== null) {
1600
2172
  await exitAfterObservabilityShutdown(1, error, "uncaughtException");
2173
+ } else {
2174
+ await standaloneRuntime?.shutdown();
1601
2175
  }
1602
2176
  throw error;
1603
2177
  } finally {
1604
- if (exitAfterObservabilityShutdown !== null) {
1605
- const shutdownResult = await observabilityRuntime.shutdown().catch(() => "completed");
2178
+ if (exitAfterObservabilityShutdown !== null && standaloneRuntime !== null) {
2179
+ const shutdownResult = await standaloneRuntime.shutdown();
1606
2180
  if (shutdownResult === "timed-out" || command === "pentest" || command === "targeted-pentest") {
1607
2181
  await exitAfterObservabilityShutdown(typeof process.exitCode === "number" ? process.exitCode : 0);
1608
2182
  }