@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.
- package/README.md +38 -0
- package/bin/pensar.js +12 -4
- package/build/agent-6mzhkzxj.js +13 -0
- package/build/agent-9ymr36jt.js +13 -0
- package/build/{agent-m30a62kh.js → agent-fb1d2x2a.js} +48 -50
- package/build/agent-h8z7zb26.js +15 -0
- package/build/agent-runs-awgj4sat.js +313 -0
- package/build/{apps-x4ef2gpc.js → apps-d50kkp3g.js} +50 -58
- package/build/{auth-7ay8qgxm.js → auth-396rc66q.js} +61 -68
- package/build/blackboxAgent-j3ncq55f.js +13 -0
- package/build/blackboxPentest-aw69ect4.js +59 -0
- package/build/cli-0ym9qz7r.js +175 -0
- package/build/{cli-zav1yx5k.js → cli-2dqvgkh8.js} +990 -632
- package/build/cli-38j2jc0m.js +62 -0
- package/build/{cli-ee3axgts.js → cli-3gt761d2.js} +7 -1
- package/build/{cli-sx3jkv7p.js → cli-3p4gyc9m.js} +28872 -25951
- package/build/cli-3qznjsnr.js +14 -0
- package/build/cli-5ppxe6qz.js +355 -0
- package/build/cli-691cfgdy.js +186 -0
- package/build/{cli-x92fkt2f.js → cli-6y2mzdz2.js} +55 -97
- package/build/{cli-73k43t1r.js → cli-8s4ew1hv.js} +53 -78
- package/build/{cli-53rm0rrz.js → cli-8w8k4dph.js} +1 -1
- package/build/{cli-68260ckj.js → cli-91gs9whc.js} +1658 -1606
- package/build/{cli-7vg06q5r.js → cli-9s7snz6x.js} +135 -125
- package/build/{cli-bw2ddttk.js → cli-a1m3pmke.js} +4730 -267
- package/build/{cli-knd276ed.js → cli-bb02pjt0.js} +31 -31
- package/build/{cli-p4r7q012.js → cli-c0ha5wh1.js} +16072 -12743
- package/build/{cli-j54qa6tm.js → cli-c2k4xxaw.js} +42 -42
- package/build/{cli-k71t434r.js → cli-ec2hwkv3.js} +34 -76
- package/build/{cli-vkbzcnw1.js → cli-fapvkkbh.js} +43 -40
- package/build/cli-g06s7edq.js +11 -0
- package/build/cli-gsaf4jk3.js +280 -0
- package/build/{cli-bc05qbss.js → cli-h6y3bt60.js} +13 -21
- package/build/cli-jdrx44ge.js +14 -0
- package/build/{cli-z5c0ypg1.js → cli-jp6wytx1.js} +4 -4
- package/build/cli-mz5pk30x.js +5508 -0
- package/build/{cli-kff2bbq7.js → cli-nmg32cfd.js} +43 -43
- package/build/cli-pckpvwbd.js +22 -0
- package/build/cli-pwm29ks7.js +6337 -0
- package/build/cli-retw3rw5.js +12 -0
- package/build/cli-se8ae8z3.js +2250 -0
- package/build/{cli-dm0fc0bm.js → cli-v1sarr4y.js} +5 -9
- package/build/cli-v9rrvh12.js +429 -0
- package/build/{cli-3py0a0wg.js → cli-vfta27tv.js} +206 -136
- package/build/cli-xcy2vxj2.js +1732 -0
- package/build/{cli-y3dpm18e.js → cli-xn12g67s.js} +75 -92
- package/build/cli.js +769 -195
- package/build/{config-4kzh88xz.js → config-hddxxr27.js} +16 -19
- package/build/{doctor-rz7sx6ev.js → doctor-z94afr10.js} +26 -15
- package/build/export-trajectory-rt4tf07k.js +112 -0
- package/build/{fastStrike-a54atjc8.js → fastStrike-mgws2nav.js} +56 -31
- package/build/{fixes-fv66yn1z.js → fixes-9qtsvwxx.js} +22 -30
- package/build/{getMachineId-bsd-xj3bn2fv.js → getMachineId-bsd-zr67nd9p.js} +5 -5
- package/build/{getMachineId-darwin-07jzjcx6.js → getMachineId-darwin-fd1d562d.js} +5 -5
- package/build/{getMachineId-linux-ahngynxd.js → getMachineId-linux-kjmg243j.js} +4 -4
- package/build/{getMachineId-unsupported-vy43b44z.js → getMachineId-unsupported-n4r58vke.js} +4 -4
- package/build/{getMachineId-win-8x66cynz.js → getMachineId-win-yzgpfsrb.js} +5 -5
- package/build/index-0d05xcz4.js +25 -0
- package/build/index-0ef0j7yp.js +12 -0
- package/build/index-557xary4.js +121 -0
- package/build/index-a0bxw5zq.js +17477 -0
- package/build/{index-cbwn03kz.js → index-a2xycbjs.js} +12 -31
- package/build/{index-psqjpw5m.js → index-c1h0g35p.js} +11 -11
- package/build/index-cfbd4zej.js +17 -0
- package/build/index-mqaw1ac6.js +9 -0
- package/build/{index-kyd1jm89.js → index-nfhetcq8.js} +159 -169
- package/build/index-qnyevb6q.js +1563 -0
- package/build/{index-fpwr10qm.js → index-wyn4g2c1.js} +5048 -3786
- package/build/index-zbq3rvwx.js +36 -0
- package/build/index-zhr65sg3.js +102 -0
- package/build/{issues-019678t0.js → issues-9zdszfq8.js} +51 -47
- package/build/knowledge-r6rmer3d.js +139 -0
- package/build/lib/chunk-02awpt3c.js +431 -0
- package/build/lib/chunk-0me4mrrd.js +7150 -0
- package/build/lib/chunk-2j49k090.js +922 -0
- package/build/lib/chunk-2njv7wz3.js +178 -0
- package/build/lib/chunk-2t65f749.js +1412 -0
- package/build/lib/chunk-3502z798.js +9232 -0
- package/build/lib/chunk-3q89v4xv.js +21 -0
- package/build/lib/chunk-3w05jmk6.js +685 -0
- package/build/lib/chunk-48zms2q1.js +572 -0
- package/build/lib/chunk-4ydrmwd9.js +980 -0
- package/build/lib/chunk-517rf135.js +143 -0
- package/build/lib/chunk-5cp1fp0x.js +186 -0
- package/build/lib/chunk-7gjdygcx.js +171 -0
- package/build/lib/chunk-8vhr65w3.js +272 -0
- package/build/lib/chunk-9nsrd4xg.js +12 -0
- package/build/lib/chunk-asbemhm5.js +56 -0
- package/build/lib/chunk-b8eq85d2.js +143 -0
- package/build/lib/chunk-bx94rwt5.js +24 -0
- package/build/lib/chunk-eb4h4k1f.js +213 -0
- package/build/lib/chunk-ebkq3bcq.js +102 -0
- package/build/lib/chunk-esymacwg.js +14 -0
- package/build/lib/chunk-f04pr76h.js +317 -0
- package/build/lib/chunk-fy3bbbqy.js +7896 -0
- package/build/lib/chunk-g8d2x00m.js +2429 -0
- package/build/lib/chunk-ja7j565c.js +743 -0
- package/build/lib/chunk-jah67hkt.js +120 -0
- package/build/lib/chunk-jdjagvgr.js +85 -0
- package/build/lib/chunk-k5m5rasy.js +439 -0
- package/build/lib/chunk-mp1czx2y.js +510 -0
- package/build/lib/chunk-mrjbsaf4.js +31 -0
- package/build/lib/chunk-mv74mq5n.js +59 -0
- package/build/lib/chunk-n0ba7khr.js +64 -0
- package/build/lib/chunk-ngp6p527.js +317 -0
- package/build/lib/chunk-q5e23acz.js +52 -0
- package/build/lib/chunk-sk8xnywf.js +212 -0
- package/build/lib/chunk-t5bt5vn1.js +146 -0
- package/build/lib/chunk-tsnk2k9x.js +345 -0
- package/build/lib/chunk-vt9spgd1.js +62 -0
- package/build/lib/chunk-vx228eeq.js +82 -0
- package/build/lib/chunk-wr6ke041.js +11157 -0
- package/build/lib/chunk-xcdtrzk5.js +27 -0
- package/build/lib/chunk-xpfg2fbk.js +90 -0
- package/build/lib/chunk-zrbqn62x.js +697 -0
- package/build/lib/core/agents/agentRuntime.d.ts +47 -0
- package/build/lib/core/agents/defineAgent.d.ts +82 -0
- package/build/lib/core/agents/offSecAgent/index.d.ts +9 -0
- package/build/lib/core/agents/offSecAgent/index.js +225 -0
- package/build/lib/core/agents/offSecAgent/interruptedStepFinalization.d.ts +23 -0
- package/build/lib/core/agents/offSecAgent/interruptedStepMessages.d.ts +42 -0
- package/build/lib/core/agents/offSecAgent/messagePersistence.d.ts +39 -0
- package/build/lib/core/agents/offSecAgent/offensiveSecurityAgent.d.ts +233 -0
- package/build/lib/core/agents/offSecAgent/prompt.d.ts +35 -0
- package/build/lib/core/agents/offSecAgent/recordedTools.d.ts +11 -0
- package/build/lib/core/agents/offSecAgent/runtimeContext.d.ts +43 -0
- package/build/lib/core/agents/offSecAgent/streamDiagnostics.d.ts +67 -0
- package/build/lib/core/agents/offSecAgent/subagentSpawner.d.ts +223 -0
- package/build/lib/core/agents/offSecAgent/subagentSpawner.js +19 -0
- package/build/lib/core/agents/offSecAgent/toolLifecycle.d.ts +54 -0
- package/build/lib/core/agents/offSecAgent/tools/__tests__/sandboxScript.d.ts +1 -0
- package/build/lib/core/agents/offSecAgent/tools/addMemory.d.ts +16 -0
- package/build/lib/core/agents/offSecAgent/tools/agentScratch.d.ts +17 -0
- package/build/lib/core/agents/offSecAgent/tools/applyPatch.d.ts +8 -0
- package/build/lib/core/agents/offSecAgent/tools/applyPatchImpl.d.ts +24 -0
- package/build/lib/core/agents/offSecAgent/tools/askUserQuestions.d.ts +42 -0
- package/build/lib/core/agents/offSecAgent/tools/browserHeaderRouting.d.ts +9 -0
- package/build/lib/core/agents/offSecAgent/tools/browserToolFactories.d.ts +40 -0
- package/build/lib/core/agents/offSecAgent/tools/browserTools.d.ts +96 -0
- package/build/lib/core/agents/offSecAgent/tools/callbackListener.d.ts +212 -0
- package/build/lib/core/agents/offSecAgent/tools/camoufox.d.ts +106 -0
- package/build/lib/core/agents/offSecAgent/tools/checkpointState.d.ts +17 -0
- package/build/lib/core/agents/offSecAgent/tools/completeAuthentication.d.ts +39 -0
- package/build/lib/core/agents/offSecAgent/tools/crawlAuthenticated.d.ts +36 -0
- package/build/lib/core/agents/offSecAgent/tools/createAttackSurfaceReport.d.ts +31 -0
- package/build/lib/core/agents/offSecAgent/tools/createFile.d.ts +12 -0
- package/build/lib/core/agents/offSecAgent/tools/createTask.d.ts +20 -0
- package/build/lib/core/agents/offSecAgent/tools/delegateAuth.d.ts +72 -0
- package/build/lib/core/agents/offSecAgent/tools/deleteFile.d.ts +10 -0
- package/build/lib/core/agents/offSecAgent/tools/destructiveGuard.d.ts +94 -0
- package/build/lib/core/agents/offSecAgent/tools/detectAuthScheme.d.ts +72 -0
- package/build/lib/core/agents/offSecAgent/tools/documentApp.d.ts +38 -0
- package/build/lib/core/agents/offSecAgent/tools/documentEndpoint.d.ts +111 -0
- package/build/lib/core/agents/offSecAgent/tools/documentFinding.d.ts +285 -0
- package/build/lib/core/agents/offSecAgent/tools/email/adapters.d.ts +45 -0
- package/build/lib/core/agents/offSecAgent/tools/email/adapters.js +8 -0
- package/build/lib/core/agents/offSecAgent/tools/email/getAttachments.d.ts +33 -0
- package/build/lib/core/agents/offSecAgent/tools/email/getMessage.d.ts +20 -0
- package/build/lib/core/agents/offSecAgent/tools/email/index.d.ts +145 -0
- package/build/lib/core/agents/offSecAgent/tools/email/listInboxes.d.ts +23 -0
- package/build/lib/core/agents/offSecAgent/tools/email/listMessages.d.ts +22 -0
- package/build/lib/core/agents/offSecAgent/tools/email/markRead.d.ts +20 -0
- package/build/lib/core/agents/offSecAgent/tools/email/searchMessages.d.ts +24 -0
- package/build/lib/core/agents/offSecAgent/tools/email/sendEmail.d.ts +28 -0
- package/build/lib/core/agents/offSecAgent/tools/email/types.d.ts +40 -0
- package/build/lib/core/agents/offSecAgent/tools/email/types.js +0 -0
- package/build/lib/core/agents/offSecAgent/tools/executeCommand.d.ts +84 -0
- package/build/lib/core/agents/offSecAgent/tools/extractJsEndpoints.d.ts +13 -0
- package/build/lib/core/agents/offSecAgent/tools/fileWorkspace.d.ts +21 -0
- package/build/lib/core/agents/offSecAgent/tools/fileWorkspaceRemote.d.ts +13 -0
- package/build/lib/core/agents/offSecAgent/tools/getMemory.d.ts +12 -0
- package/build/lib/core/agents/offSecAgent/tools/getPage.d.ts +17 -0
- package/build/lib/core/agents/offSecAgent/tools/gitDiff.d.ts +12 -0
- package/build/lib/core/agents/offSecAgent/tools/gitStatus.d.ts +10 -0
- package/build/lib/core/agents/offSecAgent/tools/glob.d.ts +8 -0
- package/build/lib/core/agents/offSecAgent/tools/globImpl.d.ts +13 -0
- package/build/lib/core/agents/offSecAgent/tools/globPattern.d.ts +7 -0
- package/build/lib/core/agents/offSecAgent/tools/grep.d.ts +10 -0
- package/build/lib/core/agents/offSecAgent/tools/grepImpl.d.ts +34 -0
- package/build/lib/core/agents/offSecAgent/tools/httpRequest.d.ts +70 -0
- package/build/lib/core/agents/offSecAgent/tools/index.d.ts +466 -0
- package/build/lib/core/agents/offSecAgent/tools/index.js +262 -0
- package/build/lib/core/agents/offSecAgent/tools/listFiles.d.ts +9 -0
- package/build/lib/core/agents/offSecAgent/tools/listFilesImpl.d.ts +27 -0
- package/build/lib/core/agents/offSecAgent/tools/listMemories.d.ts +13 -0
- package/build/lib/core/agents/offSecAgent/tools/listPromptInjections.d.ts +18 -0
- package/build/lib/core/agents/offSecAgent/tools/listTasks.d.ts +24 -0
- package/build/lib/core/agents/offSecAgent/tools/patchApply.d.ts +24 -0
- package/build/lib/core/agents/offSecAgent/tools/patchParse.d.ts +24 -0
- package/build/lib/core/agents/offSecAgent/tools/perCommandShell.d.ts +82 -0
- package/build/lib/core/agents/offSecAgent/tools/playwrightMcp.d.ts +369 -0
- package/build/lib/core/agents/offSecAgent/tools/probeAuthEndpoints.d.ts +28 -0
- package/build/lib/core/agents/offSecAgent/tools/profileCodebase.d.ts +33 -0
- package/build/lib/core/agents/offSecAgent/tools/provideComparisonResults.d.ts +31 -0
- package/build/lib/core/agents/offSecAgent/tools/queryWhiteboxCatalog.d.ts +17 -0
- package/build/lib/core/agents/offSecAgent/tools/readFile.d.ts +11 -0
- package/build/lib/core/agents/offSecAgent/tools/readFileImpl.d.ts +31 -0
- package/build/lib/core/agents/offSecAgent/tools/readSkill.d.ts +15 -0
- package/build/lib/core/agents/offSecAgent/tools/reportError.d.ts +31 -0
- package/build/lib/core/agents/offSecAgent/tools/response.d.ts +15 -0
- package/build/lib/core/agents/offSecAgent/tools/runAttackSurface.d.ts +81 -0
- package/build/lib/core/agents/offSecAgent/tools/runCodeQuery.d.ts +44 -0
- package/build/lib/core/agents/offSecAgent/tools/runPentestWorkflow.d.ts +32 -0
- package/build/lib/core/agents/offSecAgent/tools/runWhiteboxScan.d.ts +52 -0
- package/build/lib/core/agents/offSecAgent/tools/sandbox.d.ts +30 -0
- package/build/lib/core/agents/offSecAgent/tools/sandboxPlaywright.d.ts +137 -0
- package/build/lib/core/agents/offSecAgent/tools/sandboxScript.d.ts +6 -0
- package/build/lib/core/agents/offSecAgent/tools/scopeGuard.d.ts +91 -0
- package/build/lib/core/agents/offSecAgent/tools/scriptSyntaxCheck.d.ts +45 -0
- package/build/lib/core/agents/offSecAgent/tools/smsInbox.d.ts +67 -0
- package/build/lib/core/agents/offSecAgent/tools/smsInbox.js +6 -0
- package/build/lib/core/agents/offSecAgent/tools/smsListMessages.d.ts +29 -0
- package/build/lib/core/agents/offSecAgent/tools/spawnCodingAgent.d.ts +43 -0
- package/build/lib/core/agents/offSecAgent/tools/spawnPentestAgent.d.ts +51 -0
- package/build/lib/core/agents/offSecAgent/tools/spawnPentestSwarm.d.ts +52 -0
- package/build/lib/core/agents/offSecAgent/tools/submitPlan.d.ts +12 -0
- package/build/lib/core/agents/offSecAgent/tools/testEndpointVariations.d.ts +34 -0
- package/build/lib/core/agents/offSecAgent/tools/threatModelGenerator.d.ts +32 -0
- package/build/lib/core/agents/offSecAgent/tools/toolOutput.d.ts +23 -0
- package/build/lib/core/agents/offSecAgent/tools/types.d.ts +215 -0
- package/build/lib/core/agents/offSecAgent/tools/updateFile.d.ts +14 -0
- package/build/lib/core/agents/offSecAgent/tools/updateTask.d.ts +20 -0
- package/build/lib/core/agents/offSecAgent/tools/validateDiscovery.d.ts +24 -0
- package/build/lib/core/agents/offSecAgent/tools/webSearch.d.ts +16 -0
- package/build/lib/core/agents/offSecAgent/tools/whiteboxCandidates.d.ts +108 -0
- package/build/lib/core/agents/offSecAgent/tools/whiteboxJobs.d.ts +157 -0
- package/build/lib/core/agents/offSecAgent/tools/windowsCurl.d.ts +20 -0
- package/build/lib/core/agents/offSecAgent/tools/workspaceApps.d.ts +120 -0
- package/build/lib/core/agents/offSecAgent/tools/workspaceDomains.d.ts +22 -0
- package/build/lib/core/agents/offSecAgent/tools/workspaceFailure.d.ts +6 -0
- package/build/lib/core/agents/offSecAgent/tools/writePlan.d.ts +13 -0
- package/build/lib/core/agents/offSecAgent/trace.d.ts +268 -0
- package/build/lib/core/agents/offSecAgent/types.d.ts +543 -0
- package/build/lib/core/agents/offSecAgent/types.js +7 -0
- package/build/lib/core/agents/specialized/attackSurface/blackboxAgent.d.ts +66 -0
- package/build/lib/core/agents/specialized/attackSurface/blackboxAgent.js +33 -0
- package/build/lib/core/agents/specialized/attackSurface/blackboxRiskScoring.d.ts +30 -0
- package/build/lib/core/agents/specialized/attackSurface/grpcSchema.d.ts +93 -0
- package/build/lib/core/agents/specialized/attackSurface/jsExtraction.d.ts +42 -0
- package/build/lib/core/agents/specialized/attackSurface/prompts.d.ts +1 -0
- package/build/lib/core/agents/specialized/attackSurface/schemas.d.ts +284 -0
- package/build/lib/core/agents/specialized/attackSurface/schemas.js +144 -0
- package/build/lib/core/agents/specialized/attackSurface/types.d.ts +32 -0
- package/build/lib/core/agents/specialized/authenticationAgent/agent.d.ts +73 -0
- package/build/lib/core/agents/specialized/authenticationAgent/index.d.ts +4 -0
- package/build/lib/core/agents/specialized/authenticationAgent/index.js +71 -0
- package/build/lib/core/agents/specialized/authenticationAgent/prompts.d.ts +10 -0
- package/build/lib/core/agents/specialized/authenticationAgent/types.d.ts +620 -0
- package/build/lib/core/agents/specialized/benchmark/comparisonAgent.d.ts +10 -0
- package/build/lib/core/agents/specialized/benchmark/docker-utils.d.ts +17 -0
- package/build/lib/core/agents/specialized/benchmark/flag-detector.d.ts +60 -0
- package/build/lib/core/agents/specialized/benchmark/index.d.ts +8 -0
- package/build/lib/core/agents/specialized/benchmark/prompts.d.ts +1 -0
- package/build/lib/core/agents/specialized/benchmark/remote/circuit-breaker.d.ts +22 -0
- package/build/lib/core/agents/specialized/benchmark/remote/daytona-wrapper.d.ts +33 -0
- package/build/lib/core/agents/specialized/benchmark/remote/index.d.ts +2 -0
- package/build/lib/core/agents/specialized/benchmark/types.d.ts +92 -0
- package/build/lib/core/agents/specialized/benchmarkComparisonAgent.d.ts +27 -0
- package/build/lib/core/agents/specialized/codeAgent/agent.d.ts +50 -0
- package/build/lib/core/agents/specialized/codeAgent/agent.js +31 -0
- package/build/lib/core/agents/specialized/codeAgent/prompts.d.ts +1 -0
- package/build/lib/core/agents/specialized/codeAgent/schemas.d.ts +11 -0
- package/build/lib/core/agents/specialized/codeAgent/schemas.js +10 -0
- package/build/lib/core/agents/specialized/cvssScorer/index.d.ts +56 -0
- package/build/lib/core/agents/specialized/environment/agent.d.ts +43 -0
- package/build/lib/core/agents/specialized/environment/index.d.ts +4 -0
- package/build/lib/core/agents/specialized/environment/prompts.d.ts +10 -0
- package/build/lib/core/agents/specialized/environment/types.d.ts +37 -0
- package/build/lib/core/agents/specialized/findingJudge/agent.d.ts +22 -0
- package/build/lib/core/agents/specialized/findingJudge/agent.js +224 -0
- package/build/lib/core/agents/specialized/findingJudge/index.d.ts +31 -0
- package/build/lib/core/agents/specialized/findingJudge/index.js +13 -0
- package/build/lib/core/agents/specialized/findingJudge/prompts.d.ts +3 -0
- package/build/lib/core/agents/specialized/findingJudge/types.d.ts +77 -0
- package/build/lib/core/agents/specialized/googleSignInPrompt.d.ts +4 -0
- package/build/lib/core/agents/specialized/mobileOtpPrompt.d.ts +1 -0
- package/build/lib/core/agents/specialized/patching/agent.d.ts +64 -0
- package/build/lib/core/agents/specialized/patching/index.d.ts +4 -0
- package/build/lib/core/agents/specialized/patching/index.js +44 -0
- package/build/lib/core/agents/specialized/patching/prompts.d.ts +17 -0
- package/build/lib/core/agents/specialized/patching/types.d.ts +40 -0
- package/build/lib/core/agents/specialized/pentest/agent.d.ts +172 -0
- package/build/lib/core/agents/specialized/pentest/agent.js +43 -0
- package/build/lib/core/agents/specialized/pentest/helperWorkspace.d.ts +16 -0
- package/build/lib/core/agents/specialized/pentest/planPrompt.d.ts +13 -0
- package/build/lib/core/agents/specialized/utils.d.ts +7 -0
- package/build/lib/core/agents/specialized/vulnerabilityReproduction/agent.d.ts +94 -0
- package/build/lib/core/agents/specialized/whiteboxAttackSurface/agent.d.ts +148 -0
- package/build/lib/core/agents/specialized/whiteboxAttackSurface/endpointDocumentationAgent.d.ts +61 -0
- package/build/lib/core/agents/specialized/whiteboxAttackSurface/index.d.ts +5 -0
- package/build/lib/core/agents/specialized/whiteboxAttackSurface/index.js +47 -0
- package/build/lib/core/agents/specialized/whiteboxAttackSurface/prompts.d.ts +34 -0
- package/build/lib/core/agents/specialized/whiteboxAttackSurface/types.d.ts +382 -0
- package/build/lib/core/agents/specialized/whiteboxAttackSurface/types.js +21 -0
- package/build/lib/core/ai/ai.d.ts +332 -0
- package/build/lib/core/ai/ai.js +68 -0
- package/build/lib/core/ai/caching.d.ts +26 -0
- package/build/lib/core/ai/compactionEvidence.d.ts +15 -0
- package/build/lib/core/ai/compactionTelemetry.d.ts +55 -0
- package/build/lib/core/ai/contextManagement.d.ts +85 -0
- package/build/lib/core/ai/index.d.ts +10 -0
- package/build/lib/core/ai/index.js +72 -0
- package/build/lib/core/ai/inference-attempt/adapters.d.ts +15 -0
- package/build/lib/core/ai/inference-attempt/builder.d.ts +31 -0
- package/build/lib/core/ai/inference-attempt/envelope.d.ts +120 -0
- package/build/lib/core/ai/inference-attempt/errors.d.ts +6 -0
- package/build/lib/core/ai/inference-attempt/identity.d.ts +13 -0
- package/build/lib/core/ai/inference-attempt/index.d.ts +36 -0
- package/build/lib/core/ai/inference-attempt/project.d.ts +21 -0
- package/build/lib/core/ai/inference-attempt/recording.d.ts +23 -0
- package/build/lib/core/ai/inference-attempt/tokens.d.ts +13 -0
- package/build/lib/core/ai/inference-attempt/validate.d.ts +2 -0
- package/build/lib/core/ai/mantle.d.ts +28 -0
- package/build/lib/core/ai/model-history.d.ts +4 -0
- package/build/lib/core/ai/models/anthropic.d.ts +2 -0
- package/build/lib/core/ai/models/bedrock.d.ts +2 -0
- package/build/lib/core/ai/models/claude-capabilities.d.ts +6 -0
- package/build/lib/core/ai/models/concentrate.d.ts +2 -0
- package/build/lib/core/ai/models/google.d.ts +2 -0
- package/build/lib/core/ai/models/inception.d.ts +2 -0
- package/build/lib/core/ai/models/index.d.ts +29 -0
- package/build/lib/core/ai/models/mantle.d.ts +2 -0
- package/build/lib/core/ai/models/openai.d.ts +2 -0
- package/build/lib/core/ai/models/openrouter.d.ts +2 -0
- package/build/lib/core/ai/models/pensar.d.ts +2 -0
- package/build/lib/core/ai/native-rollout-evidence/capture.d.ts +31 -0
- package/build/lib/core/ai/native-rollout-evidence/content.d.ts +14 -0
- package/build/lib/core/ai/native-rollout-evidence/index.d.ts +9 -0
- package/build/lib/core/ai/native-rollout-evidence/provider-metadata.d.ts +15 -0
- package/build/lib/core/ai/native-rollout-evidence/schema.d.ts +554 -0
- package/build/lib/core/ai/native-rollout-evidence/validate.d.ts +8 -0
- package/build/lib/core/ai/providers/anthropic.d.ts +2 -0
- package/build/lib/core/ai/providers/concentrate.d.ts +9 -0
- package/build/lib/core/ai/providers/custom.d.ts +3 -0
- package/build/lib/core/ai/providers/hoonify.d.ts +6 -0
- package/build/lib/core/ai/providers/openai-pro-fetch.d.ts +2 -0
- package/build/lib/core/ai/providers/pensar.d.ts +34 -0
- package/build/lib/core/ai/providers/pensarFormatters.d.ts +2 -0
- package/build/lib/core/ai/providers/pensarResponsesStream.d.ts +15 -0
- package/build/lib/core/ai/providers/pensarSSE.d.ts +23 -0
- package/build/lib/core/ai/providers/pensarSigning.d.ts +1 -0
- package/build/lib/core/ai/providers/pensarStreamUsage.d.ts +19 -0
- package/build/lib/core/ai/streamTelemetry.d.ts +22 -0
- package/build/lib/core/ai/utils.d.ts +90 -0
- package/build/lib/core/ai/utils.js +22 -0
- package/build/lib/core/api/apiClient.d.ts +7 -0
- package/build/lib/core/api/apps.d.ts +213 -0
- package/build/lib/core/api/attackSurface.d.ts +14 -0
- package/build/lib/core/api/authentication.d.ts +3 -0
- package/build/lib/core/api/benchmark.d.ts +5 -0
- package/build/lib/core/api/blackboxPentest.d.ts +11 -0
- package/build/lib/core/api/clientIdentity.d.ts +10 -0
- package/build/lib/core/api/constants.d.ts +5 -0
- package/build/lib/core/api/domains.d.ts +19 -0
- package/build/lib/core/api/environment.d.ts +16 -0
- package/build/lib/core/api/index.d.ts +41 -0
- package/build/lib/core/api/index.js +187 -0
- package/build/lib/core/api/issues.d.ts +273 -0
- package/build/lib/core/api/knowledge.d.ts +33 -0
- package/build/lib/core/api/localWorker.d.ts +4 -0
- package/build/lib/core/api/offesecAgent.d.ts +34 -0
- package/build/lib/core/api/patching.d.ts +15 -0
- package/build/lib/core/api/recordedRun.d.ts +36 -0
- package/build/lib/core/api/targetedPentest.d.ts +15 -0
- package/build/lib/core/api/targetedPentest.js +32 -0
- package/build/lib/core/api/threatModel.d.ts +1 -0
- package/build/lib/core/api/trajectoryExport.d.ts +38 -0
- package/build/lib/core/api/vulnerabilityReproduction.d.ts +10 -0
- package/build/lib/core/assets/wordlists.d.ts +31 -0
- package/build/lib/core/atif/convert.d.ts +27 -0
- package/build/lib/core/atif/index.d.ts +7 -0
- package/build/lib/core/atif/schema.d.ts +459 -0
- package/build/lib/core/atif/serialize.d.ts +2 -0
- package/build/lib/core/atif/test-fixtures.d.ts +28 -0
- package/build/lib/core/atif/validate.d.ts +12 -0
- package/build/lib/core/auth/connection.d.ts +12 -0
- package/build/lib/core/auth/device-flow.d.ts +38 -0
- package/build/lib/core/auth/gateway.d.ts +25 -0
- package/build/lib/core/auth/index.d.ts +8 -0
- package/build/lib/core/auth/signing.d.ts +14 -0
- package/build/lib/core/auth/token.d.ts +17 -0
- package/build/lib/core/auth/types.d.ts +85 -0
- package/build/lib/core/auth/workspaces.d.ts +34 -0
- package/build/lib/core/benchmark/index.d.ts +3 -0
- package/build/lib/core/benchmark/report.d.ts +3 -0
- package/build/lib/core/benchmark/runner.d.ts +3 -0
- package/build/lib/core/benchmark/types.d.ts +80 -0
- package/build/lib/core/cli/logLevelArgs.d.ts +18 -0
- package/build/lib/core/cli/model.d.ts +9 -0
- package/build/lib/core/cli/pentestMode.d.ts +5 -0
- package/build/lib/core/cli/tuiArgs.d.ts +5 -0
- package/build/lib/core/config/config.d.ts +86 -0
- package/build/lib/core/config/customProviders.d.ts +62 -0
- package/build/lib/core/config/index.d.ts +6 -0
- package/build/lib/core/config/index.js +6 -0
- package/build/lib/core/credentials/index.d.ts +2 -0
- package/build/lib/core/credentials/manager.d.ts +85 -0
- package/build/lib/core/credentials/types.d.ts +79 -0
- package/build/lib/core/doctor.d.ts +1 -0
- package/build/lib/core/eventBus.d.ts +195 -0
- package/build/lib/core/eventBus.js +6 -0
- package/build/lib/core/findings/attackSurfaceRegistry.d.ts +88 -0
- package/build/lib/core/findings/attackSurfaceRegistry.js +6 -0
- package/build/lib/core/findings/registry.d.ts +177 -0
- package/build/lib/core/findings/registry.js +21 -0
- package/build/lib/core/history.d.ts +23 -0
- package/build/lib/core/hoonify.d.ts +8 -0
- package/build/lib/core/http/parse.d.ts +50 -0
- package/build/lib/core/http/redirects.d.ts +23 -0
- package/build/lib/core/http/targetHeaders.d.ts +30 -0
- package/build/lib/core/http/targetScope.d.ts +12 -0
- package/build/lib/core/http/types.d.ts +11 -0
- package/build/lib/core/id/id.d.ts +60 -0
- package/build/lib/core/id/id.js +28 -0
- package/build/lib/core/installation/index.d.ts +25 -0
- package/build/lib/core/integrations/herdr.d.ts +13 -0
- package/build/lib/core/integrations/surface/index.d.ts +37 -0
- package/build/lib/core/integrations/surface/types.d.ts +22 -0
- package/build/lib/core/integrations/wandb/client.d.ts +23 -0
- package/build/lib/core/integrations/wandb/upload.d.ts +36 -0
- package/build/lib/core/logger/index.d.ts +62 -0
- package/build/lib/core/logger/structured.d.ts +30 -0
- package/build/lib/core/memory/index.d.ts +92 -0
- package/build/lib/core/memory/index.js +21 -0
- package/build/lib/core/messages/types.d.ts +96 -0
- package/build/lib/core/obfuscation/engine.d.ts +51 -0
- package/build/lib/core/obfuscation/index.d.ts +20 -0
- package/build/lib/core/observability/active-root-spans.d.ts +5 -0
- package/build/lib/core/observability/active-spans.d.ts +22 -0
- package/build/lib/core/observability/index.d.ts +36 -0
- package/build/lib/core/observability/index.js +27 -0
- package/build/lib/core/observability/runtime.d.ts +63 -0
- package/build/lib/core/observability/telemetry.d.ts +52 -0
- package/build/lib/core/observability/testkit.d.ts +24 -0
- package/build/lib/core/operator/approvalGate.d.ts +61 -0
- package/build/lib/core/operator/index.d.ts +9 -0
- package/build/lib/core/operator/types.d.ts +167 -0
- package/build/lib/core/plan/index.d.ts +16 -0
- package/build/lib/core/prompt-injections/index.d.ts +111 -0
- package/build/lib/core/prompt-injections/index.js +24 -0
- package/build/lib/core/providers/index.d.ts +5 -0
- package/build/lib/core/providers/types.d.ts +13 -0
- package/build/lib/core/providers/utils.d.ts +15 -0
- package/build/lib/core/providers/verify.d.ts +11 -0
- package/build/lib/core/report/builder.d.ts +9 -0
- package/build/lib/core/report/index.d.ts +7 -0
- package/build/lib/core/report/renderers/json.d.ts +2 -0
- package/build/lib/core/report/renderers/markdown.d.ts +2 -0
- package/build/lib/core/report/schemas.d.ts +115 -0
- package/build/lib/core/runtime/agentExecution.d.ts +15 -0
- package/build/lib/core/runtime/launchLocalWorker.d.ts +33 -0
- package/build/lib/core/runtime/localRunLock.d.ts +9 -0
- package/build/lib/core/runtime/localRunWorker.d.ts +18 -0
- package/build/lib/core/runtime/localWorkerEndpoint.d.ts +14 -0
- package/build/lib/core/runtime/localWorkerProtocol.d.ts +294 -0
- package/build/lib/core/runtime/localWorkerTransport.d.ts +30 -0
- package/build/lib/core/runtime/persistenceError.d.ts +9 -0
- package/build/lib/core/runtime/recordedExecution.d.ts +6 -0
- package/build/lib/core/runtime/recordedRunClient.d.ts +34 -0
- package/build/lib/core/runtime/runCheckpointStore.d.ts +11 -0
- package/build/lib/core/runtime/runContext.d.ts +48 -0
- package/build/lib/core/runtime/runControl.d.ts +44 -0
- package/build/lib/core/runtime/runControlStore.d.ts +83 -0
- package/build/lib/core/runtime/runDeadline.d.ts +4 -0
- package/build/lib/core/runtime/runEvidence.d.ts +37 -0
- package/build/lib/core/runtime/runInference.d.ts +9 -0
- package/build/lib/core/runtime/runModelStore.d.ts +27 -0
- package/build/lib/core/runtime/runObservation.d.ts +19 -0
- package/build/lib/core/runtime/runRecoveryContext.d.ts +20 -0
- package/build/lib/core/runtime/runRecoveryPlan.d.ts +38 -0
- package/build/lib/core/runtime/runRecoveryStore.d.ts +77 -0
- package/build/lib/core/runtime/runStore.d.ts +133 -0
- package/build/lib/core/runtime/runStorePath.d.ts +1 -0
- package/build/lib/core/runtime/runToolStore.d.ts +50 -0
- package/build/lib/core/runtime/runTools.d.ts +16 -0
- package/build/lib/core/runtime/sqliteControlStore.d.ts +41 -0
- package/build/lib/core/runtime/sqliteModelStore.d.ts +20 -0
- package/build/lib/core/runtime/sqliteRecoveryStore.d.ts +35 -0
- package/build/lib/core/runtime/sqliteRunStore.d.ts +8 -0
- package/build/lib/core/runtime/sqliteToolStore.d.ts +30 -0
- package/build/lib/core/runtime/testfixtures/localWorkerChild.d.ts +1 -0
- package/build/lib/core/runtime/testfixtures/localWorkerLauncher.d.ts +1 -0
- package/build/lib/core/runtime/testfixtures/recoveryChild.d.ts +1 -0
- package/build/lib/core/services/rateLimiter/index.d.ts +36 -0
- package/build/lib/core/services/rateLimiter/types.d.ts +10 -0
- package/build/lib/core/session/execution-metrics.d.ts +37 -0
- package/build/lib/core/session/index.d.ts +586 -0
- package/build/lib/core/session/index.js +36 -0
- package/build/lib/core/session/loader.d.ts +30 -0
- package/build/lib/core/session/persistence.d.ts +215 -0
- package/build/lib/core/session/persistence.js +35 -0
- package/build/lib/core/session/types.d.ts +59 -0
- package/build/lib/core/session/usage.d.ts +37 -0
- package/build/lib/core/skills/builtins/index.d.ts +13 -0
- package/build/lib/core/skills/builtins/pentest.d.ts +19 -0
- package/build/lib/core/skills/builtins/promptInjection.d.ts +2 -0
- package/build/lib/core/skills/builtins/threatModel.d.ts +11 -0
- package/build/lib/core/skills/index.d.ts +5 -0
- package/build/lib/core/skills/parser.d.ts +11 -0
- package/build/lib/core/skills/registry.d.ts +30 -0
- package/build/lib/core/skills/scanner.d.ts +12 -0
- package/build/lib/core/skills/types.d.ts +44 -0
- package/build/lib/core/skills/utils.d.ts +6 -0
- package/build/lib/core/storage/index.d.ts +248 -0
- package/build/lib/core/tasks/index.d.ts +78 -0
- package/build/lib/core/tools/backends/capture.d.ts +10 -0
- package/build/lib/core/tools/backends/collectCommand.d.ts +9 -0
- package/build/lib/core/tools/backends/helpers.d.ts +43 -0
- package/build/lib/core/tools/backends/httpTransport.d.ts +18 -0
- package/build/lib/core/tools/backends/index.d.ts +8 -0
- package/build/lib/core/tools/backends/index.js +31 -0
- package/build/lib/core/tools/backends/local.d.ts +11 -0
- package/build/lib/core/tools/backends/policy.d.ts +39 -0
- package/build/lib/core/tools/backends/resolve.d.ts +25 -0
- package/build/lib/core/tools/backends/types.d.ts +240 -0
- package/build/lib/core/tools/backends/whitebox.d.ts +6 -0
- package/build/lib/core/tools/backends/whiteboxJobs.d.ts +18 -0
- package/build/lib/core/tools/backends/windowsProgram.d.ts +4 -0
- package/build/lib/core/tools/daytonaSandbox.d.ts +14 -0
- package/build/lib/core/toolset/index.d.ts +28 -0
- package/build/lib/core/util/lazyLogger.d.ts +16 -0
- package/build/lib/core/utils/concurrency.d.ts +16 -0
- package/build/lib/core/utils/prompt.d.ts +12 -0
- package/build/lib/core/whitebox/adapters.d.ts +29 -0
- package/build/lib/core/whitebox/artifacts.d.ts +32 -0
- package/build/lib/core/whitebox/boundedProcess.d.ts +35 -0
- package/build/lib/core/whitebox/candidates.d.ts +29 -0
- package/build/lib/core/whitebox/catalog.d.ts +10 -0
- package/build/lib/core/whitebox/index.d.ts +9 -0
- package/build/lib/core/whitebox/jobKernel.d.ts +33 -0
- package/build/lib/core/whitebox/jobSupervisor.d.ts +14 -0
- package/build/lib/core/whitebox/jobs.d.ts +17 -0
- package/build/lib/core/whitebox/paths.d.ts +22 -0
- package/build/lib/core/whitebox/profileTransport.d.ts +10 -0
- package/build/lib/core/whitebox/profiles.d.ts +3 -0
- package/build/lib/core/whitebox/repoProfile.d.ts +4 -0
- package/build/lib/core/whitebox/types.d.ts +108 -0
- package/build/lib/core/workflows/fastStrike.d.ts +4 -0
- package/build/lib/core/workflows/pentest.d.ts +167 -0
- package/build/lib/core/workflows/pentest.js +42 -0
- package/build/lib/core/workflows/seams.d.ts +102 -0
- package/build/lib/core/workflows/seams.js +37 -0
- package/build/lib/core/workflows/threatModel.d.ts +26 -0
- package/build/lib/core/workflows/whiteboxAttackSurface.d.ts +142 -0
- package/build/lib/core/workflows/whiteboxAttackSurface.js +36 -0
- package/build/lib/index.d.ts +26 -0
- package/build/lib/index.js +96 -0
- package/build/lib/lib/attack-path/types.d.ts +9 -0
- package/build/lib/lib/cvss/calculator.d.ts +31 -0
- package/build/lib/lib/cvss/index.d.ts +24 -0
- package/build/lib/lib/cvss/index.js +24 -0
- package/build/lib/lib/cvss/macrovector-scores.d.ts +59 -0
- package/build/lib/lib/cvss/types.d.ts +114 -0
- package/build/lib/lib/cvss/types.js +8 -0
- package/build/lib/lib/cwe/cwe-catalog.d.ts +13 -0
- package/build/lib/lib/cwe/types.d.ts +28 -0
- package/build/lib/lib/cwe/validate.d.ts +15 -0
- package/build/lib/lib/evidence/types.d.ts +12 -0
- package/build/lib/util/errors.d.ts +186 -0
- package/build/lib/util/lock.d.ts +2 -0
- package/build/lib/util/name.d.ts +14 -0
- package/build/lib/util/url.d.ts +40 -0
- package/build/{logs-wzr5176k.js → logs-1r7nkzhg.js} +22 -30
- package/build/{multipart-parser-g2xxkezz.js → multipart-parser-vjjdbpd1.js} +10 -10
- package/build/native-rollout-evidence-y0vdtjje.js +135 -0
- package/build/offesecAgent-dfj42jkj.js +22 -0
- package/build/{parse-rtccymzn.js → parse-cqecqrc5.js} +0 -4
- package/build/pentest-n8k0dd5q.js +22 -0
- package/build/pentests-jh9az51h.js +143 -0
- package/build/recordedRunClient-mvendk9n.js +11 -0
- package/build/{targetedPentest-tdwtgmxm.js → targetedPentest-rgffxsgd.js} +22 -22
- package/build/{targets-763n91t7.js → targets-wn0gmdhe.js} +24 -32
- package/build/threatModel-6efzjpbv.js +21 -0
- package/build/{token-3bbp59y6.js → token-mk7t8y0y.js} +2 -2
- package/build/{token-util-6xjme11b.js → token-util-vd776hrv.js} +1 -2
- package/build/{uninstall-d33159cz.js → uninstall-cmv057jn.js} +3 -3
- package/build/{upload-9qj1kpt9.js → upload-vkkj6h54.js} +8 -14
- package/build/{utils-t7gc2903.js → utils-b1kae4f3.js} +29 -29
- package/package.json +230 -5
- package/src/cli/agent-runs.attach.test.ts +359 -0
- package/src/cli/agent-runs.test.ts +1172 -0
- package/src/cli/agent-runs.ts +430 -0
- package/src/cli/apps.test.ts +63 -0
- package/src/cli/apps.ts +526 -0
- package/src/cli/auth.ts +375 -0
- package/src/cli/command-exit.test.ts +15 -0
- package/src/cli/command-exit.ts +3 -0
- package/src/cli/config.ts +210 -0
- package/src/cli/export-trajectory.test.ts +224 -0
- package/src/cli/export-trajectory.ts +119 -0
- package/src/cli/fixes.ts +56 -0
- package/src/cli/issues.test.ts +214 -0
- package/src/cli/issues.ts +242 -0
- package/src/cli/json-output.test.ts +62 -0
- package/src/cli/knowledge.test.ts +140 -0
- package/src/cli/knowledge.ts +146 -0
- package/src/cli/launcher.test.ts +81 -0
- package/src/cli/logs.ts +111 -0
- package/src/cli/native-rollout-evidence.test.ts +322 -0
- package/src/cli/native-rollout-evidence.ts +206 -0
- package/src/cli/pentests.test.ts +194 -0
- package/src/cli/pentests.ts +159 -0
- package/src/cli/resume.test.ts +107 -0
- package/src/cli/targets.ts +125 -0
- package/src/cli/uninstall.ts +302 -0
- package/src/cli.ts +882 -0
- package/src/core/agents/agentRuntime.test.ts +242 -0
- package/src/core/agents/agentRuntime.ts +120 -0
- package/src/core/agents/defineAgent.ts +134 -0
- package/src/core/agents/offSecAgent/index.ts +162 -0
- package/src/core/agents/offSecAgent/interruptedStepFinalization.test.ts +295 -0
- package/src/core/agents/offSecAgent/interruptedStepFinalization.ts +162 -0
- package/src/core/agents/offSecAgent/interruptedStepMessages.test.ts +296 -0
- package/src/core/agents/offSecAgent/interruptedStepMessages.ts +137 -0
- package/src/core/agents/offSecAgent/messagePersistence.test.ts +281 -0
- package/src/core/agents/offSecAgent/messagePersistence.ts +111 -0
- package/src/core/agents/offSecAgent/offensiveSecurityAgent.runtimeContext.test.ts +689 -0
- package/src/core/agents/offSecAgent/offensiveSecurityAgent.test.ts +2899 -0
- package/src/core/agents/offSecAgent/offensiveSecurityAgent.ts +1610 -0
- package/src/core/agents/offSecAgent/prompt.test.ts +72 -0
- package/src/core/agents/offSecAgent/prompt.ts +368 -0
- package/src/core/agents/offSecAgent/recordedTools.test.ts +580 -0
- package/src/core/agents/offSecAgent/recordedTools.ts +162 -0
- package/src/core/agents/offSecAgent/runtimeContext.test.ts +531 -0
- package/src/core/agents/offSecAgent/runtimeContext.ts +387 -0
- package/src/core/agents/offSecAgent/selectiveConstruction.publicPath.test.ts +295 -0
- package/src/core/agents/offSecAgent/selectiveConstruction.test.ts +498 -0
- package/src/core/agents/offSecAgent/streamDiagnostics.test.ts +310 -0
- package/src/core/agents/offSecAgent/streamDiagnostics.ts +237 -0
- package/src/core/agents/offSecAgent/subagentSpawner.hooks.test.ts +102 -0
- package/src/core/agents/offSecAgent/subagentSpawner.test.ts +384 -0
- package/src/core/agents/offSecAgent/subagentSpawner.ts +664 -0
- package/src/core/agents/offSecAgent/toolLifecycle.test.ts +199 -0
- package/src/core/agents/offSecAgent/toolLifecycle.ts +171 -0
- package/src/core/agents/offSecAgent/tools/__tests__/sandboxScript.ts +14 -0
- package/src/core/agents/offSecAgent/tools/addMemory.ts +87 -0
- package/src/core/agents/offSecAgent/tools/agentScratch.test.ts +36 -0
- package/src/core/agents/offSecAgent/tools/agentScratch.ts +23 -0
- package/src/core/agents/offSecAgent/tools/applyPatch.test.ts +546 -0
- package/src/core/agents/offSecAgent/tools/applyPatch.ts +58 -0
- package/src/core/agents/offSecAgent/tools/applyPatchImpl.ts +300 -0
- package/src/core/agents/offSecAgent/tools/askUserQuestions.ts +81 -0
- package/src/core/agents/offSecAgent/tools/authBackendStatus.test.ts +112 -0
- package/src/core/agents/offSecAgent/tools/browserHeaderRouting.test.ts +136 -0
- package/src/core/agents/offSecAgent/tools/browserHeaderRouting.ts +81 -0
- package/src/core/agents/offSecAgent/tools/browserToolFactories.ts +372 -0
- package/src/core/agents/offSecAgent/tools/browserTools.test.ts +243 -0
- package/src/core/agents/offSecAgent/tools/browserTools.ts +285 -0
- package/src/core/agents/offSecAgent/tools/callbackListener.test.ts +1011 -0
- package/src/core/agents/offSecAgent/tools/callbackListener.ts +1038 -0
- package/src/core/agents/offSecAgent/tools/camoufox.test.ts +119 -0
- package/src/core/agents/offSecAgent/tools/camoufox.ts +199 -0
- package/src/core/agents/offSecAgent/tools/checkpointState.ts +79 -0
- package/src/core/agents/offSecAgent/tools/codingTools.windows.test.ts +625 -0
- package/src/core/agents/offSecAgent/tools/completeAuthentication.ts +136 -0
- package/src/core/agents/offSecAgent/tools/crawlAuthenticated.test.ts +267 -0
- package/src/core/agents/offSecAgent/tools/crawlAuthenticated.ts +170 -0
- package/src/core/agents/offSecAgent/tools/createAttackSurfaceReport.ts +75 -0
- package/src/core/agents/offSecAgent/tools/createFile.test.ts +111 -0
- package/src/core/agents/offSecAgent/tools/createFile.ts +44 -0
- package/src/core/agents/offSecAgent/tools/createTask.ts +118 -0
- package/src/core/agents/offSecAgent/tools/delegateAuth.ts +391 -0
- package/src/core/agents/offSecAgent/tools/deleteFile.test.ts +102 -0
- package/src/core/agents/offSecAgent/tools/deleteFile.ts +39 -0
- package/src/core/agents/offSecAgent/tools/destructiveGuard.test.ts +827 -0
- package/src/core/agents/offSecAgent/tools/destructiveGuard.ts +747 -0
- package/src/core/agents/offSecAgent/tools/detectAuthScheme.ts +191 -0
- package/src/core/agents/offSecAgent/tools/documentApp.ts +242 -0
- package/src/core/agents/offSecAgent/tools/documentEndpoint.ts +291 -0
- package/src/core/agents/offSecAgent/tools/documentFinding.test.ts +2091 -0
- package/src/core/agents/offSecAgent/tools/documentFinding.ts +1240 -0
- package/src/core/agents/offSecAgent/tools/email/adapters.test.ts +279 -0
- package/src/core/agents/offSecAgent/tools/email/adapters.ts +1121 -0
- package/src/core/agents/offSecAgent/tools/email/getAttachments.ts +73 -0
- package/src/core/agents/offSecAgent/tools/email/getMessage.ts +56 -0
- package/src/core/agents/offSecAgent/tools/email/inboxBackend.test.ts +137 -0
- package/src/core/agents/offSecAgent/tools/email/index.ts +55 -0
- package/src/core/agents/offSecAgent/tools/email/listInboxes.ts +47 -0
- package/src/core/agents/offSecAgent/tools/email/listMessages.ts +67 -0
- package/src/core/agents/offSecAgent/tools/email/markRead.ts +57 -0
- package/src/core/agents/offSecAgent/tools/email/searchMessages.ts +76 -0
- package/src/core/agents/offSecAgent/tools/email/sendEmail.ts +165 -0
- package/src/core/agents/offSecAgent/tools/email/types.ts +45 -0
- package/src/core/agents/offSecAgent/tools/executeCommand.backends.test.ts +171 -0
- package/src/core/agents/offSecAgent/tools/executeCommand.test.ts +1153 -0
- package/src/core/agents/offSecAgent/tools/executeCommand.ts +604 -0
- package/src/core/agents/offSecAgent/tools/extractJsEndpoints.ts +44 -0
- package/src/core/agents/offSecAgent/tools/fileBackends.test.ts +66 -0
- package/src/core/agents/offSecAgent/tools/fileMutations.test.ts +159 -0
- package/src/core/agents/offSecAgent/tools/fileToolBackendPurity.test.ts +72 -0
- package/src/core/agents/offSecAgent/tools/fileWorkspace.test.ts +357 -0
- package/src/core/agents/offSecAgent/tools/fileWorkspace.ts +434 -0
- package/src/core/agents/offSecAgent/tools/fileWorkspaceRemote.ts +263 -0
- package/src/core/agents/offSecAgent/tools/getMemory.ts +69 -0
- package/src/core/agents/offSecAgent/tools/getPage.test.ts +1127 -0
- package/src/core/agents/offSecAgent/tools/getPage.ts +70 -0
- package/src/core/agents/offSecAgent/tools/gitDiff.ts +67 -0
- package/src/core/agents/offSecAgent/tools/gitStatus.ts +61 -0
- package/src/core/agents/offSecAgent/tools/gitTools.test.ts +237 -0
- package/src/core/agents/offSecAgent/tools/glob.test.ts +695 -0
- package/src/core/agents/offSecAgent/tools/glob.ts +51 -0
- package/src/core/agents/offSecAgent/tools/globImpl.ts +313 -0
- package/src/core/agents/offSecAgent/tools/globPattern.ts +203 -0
- package/src/core/agents/offSecAgent/tools/grep.test.ts +922 -0
- package/src/core/agents/offSecAgent/tools/grep.ts +73 -0
- package/src/core/agents/offSecAgent/tools/grepImpl.ts +718 -0
- package/src/core/agents/offSecAgent/tools/httpBackends.test.ts +534 -0
- package/src/core/agents/offSecAgent/tools/httpRequest.test.ts +2409 -0
- package/src/core/agents/offSecAgent/tools/httpRequest.ts +425 -0
- package/src/core/agents/offSecAgent/tools/index.ts +787 -0
- package/src/core/agents/offSecAgent/tools/listFiles.bounded.test.ts +514 -0
- package/src/core/agents/offSecAgent/tools/listFiles.public-counters.test.ts +163 -0
- package/src/core/agents/offSecAgent/tools/listFiles.test.ts +521 -0
- package/src/core/agents/offSecAgent/tools/listFiles.ts +49 -0
- package/src/core/agents/offSecAgent/tools/listFilesImpl.ts +351 -0
- package/src/core/agents/offSecAgent/tools/listMemories.ts +71 -0
- package/src/core/agents/offSecAgent/tools/listPromptInjections.test.ts +201 -0
- package/src/core/agents/offSecAgent/tools/listPromptInjections.ts +78 -0
- package/src/core/agents/offSecAgent/tools/listTasks.ts +100 -0
- package/src/core/agents/offSecAgent/tools/patchApply.test.ts +573 -0
- package/src/core/agents/offSecAgent/tools/patchApply.ts +430 -0
- package/src/core/agents/offSecAgent/tools/patchParse.test.ts +383 -0
- package/src/core/agents/offSecAgent/tools/patchParse.ts +354 -0
- package/src/core/agents/offSecAgent/tools/perCommandShell.drain.test.ts +109 -0
- package/src/core/agents/offSecAgent/tools/perCommandShell.test.ts +565 -0
- package/src/core/agents/offSecAgent/tools/perCommandShell.ts +516 -0
- package/src/core/agents/offSecAgent/tools/perCommandShell.windows.test.ts +142 -0
- package/src/core/agents/offSecAgent/tools/playwrightMcp.test.ts +778 -0
- package/src/core/agents/offSecAgent/tools/playwrightMcp.ts +1426 -0
- package/src/core/agents/offSecAgent/tools/probeAuthEndpoints.ts +262 -0
- package/src/core/agents/offSecAgent/tools/profileCodebase.ts +110 -0
- package/src/core/agents/offSecAgent/tools/provideComparisonResults.ts +106 -0
- package/src/core/agents/offSecAgent/tools/queryWhiteboxCatalog.coalescing-cost.test.ts +108 -0
- package/src/core/agents/offSecAgent/tools/queryWhiteboxCatalog.test.ts +183 -0
- package/src/core/agents/offSecAgent/tools/queryWhiteboxCatalog.ts +143 -0
- package/src/core/agents/offSecAgent/tools/readFile.test.ts +1242 -0
- package/src/core/agents/offSecAgent/tools/readFile.ts +89 -0
- package/src/core/agents/offSecAgent/tools/readFileImpl.ts +956 -0
- package/src/core/agents/offSecAgent/tools/readSkill.ts +38 -0
- package/src/core/agents/offSecAgent/tools/reportError.test.ts +48 -0
- package/src/core/agents/offSecAgent/tools/reportError.ts +65 -0
- package/src/core/agents/offSecAgent/tools/response.ts +27 -0
- package/src/core/agents/offSecAgent/tools/runAttackSurface.ts +198 -0
- package/src/core/agents/offSecAgent/tools/runCodeQuery.test.ts +82 -0
- package/src/core/agents/offSecAgent/tools/runCodeQuery.ts +237 -0
- package/src/core/agents/offSecAgent/tools/runPentestWorkflow.ts +122 -0
- package/src/core/agents/offSecAgent/tools/runWhiteboxScan.ts +189 -0
- package/src/core/agents/offSecAgent/tools/runtimeBackendConsumers.test.ts +143 -0
- package/src/core/agents/offSecAgent/tools/sandbox.ts +37 -0
- package/src/core/agents/offSecAgent/tools/sandboxPlaywright.test.ts +235 -0
- package/src/core/agents/offSecAgent/tools/sandboxPlaywright.ts +1029 -0
- package/src/core/agents/offSecAgent/tools/sandboxScript.test.ts +31 -0
- package/src/core/agents/offSecAgent/tools/sandboxScript.ts +60 -0
- package/src/core/agents/offSecAgent/tools/scopeGuard.test.ts +574 -0
- package/src/core/agents/offSecAgent/tools/scopeGuard.ts +317 -0
- package/src/core/agents/offSecAgent/tools/scriptSyntaxCheck.test.ts +566 -0
- package/src/core/agents/offSecAgent/tools/scriptSyntaxCheck.ts +240 -0
- package/src/core/agents/offSecAgent/tools/selectiveFactories.test.ts +476 -0
- package/src/core/agents/offSecAgent/tools/smsInbox.ts +130 -0
- package/src/core/agents/offSecAgent/tools/smsListMessages.test.ts +443 -0
- package/src/core/agents/offSecAgent/tools/smsListMessages.ts +123 -0
- package/src/core/agents/offSecAgent/tools/spawnCodingAgent.ts +229 -0
- package/src/core/agents/offSecAgent/tools/spawnPentestAgent.test.ts +413 -0
- package/src/core/agents/offSecAgent/tools/spawnPentestAgent.ts +266 -0
- package/src/core/agents/offSecAgent/tools/spawnPentestSwarm.ts +146 -0
- package/src/core/agents/offSecAgent/tools/submitPlan.ts +51 -0
- package/src/core/agents/offSecAgent/tools/testEndpointVariations.ts +127 -0
- package/src/core/agents/offSecAgent/tools/threatModelGenerator.ts +664 -0
- package/src/core/agents/offSecAgent/tools/toolOutput.test.ts +480 -0
- package/src/core/agents/offSecAgent/tools/toolOutput.ts +160 -0
- package/src/core/agents/offSecAgent/tools/types.ts +267 -0
- package/src/core/agents/offSecAgent/tools/updateFile.ts +121 -0
- package/src/core/agents/offSecAgent/tools/updateTask.ts +107 -0
- package/src/core/agents/offSecAgent/tools/validateDiscovery.ts +123 -0
- package/src/core/agents/offSecAgent/tools/webSearch.ts +265 -0
- package/src/core/agents/offSecAgent/tools/whiteboxCandidates.ts +197 -0
- package/src/core/agents/offSecAgent/tools/whiteboxJobs.ts +312 -0
- package/src/core/agents/offSecAgent/tools/windowsCurl.test.ts +801 -0
- package/src/core/agents/offSecAgent/tools/windowsCurl.ts +202 -0
- package/src/core/agents/offSecAgent/tools/workspaceApps.test.ts +257 -0
- package/src/core/agents/offSecAgent/tools/workspaceApps.ts +334 -0
- package/src/core/agents/offSecAgent/tools/workspaceDomains.test.ts +113 -0
- package/src/core/agents/offSecAgent/tools/workspaceDomains.ts +57 -0
- package/src/core/agents/offSecAgent/tools/workspaceFailure.ts +11 -0
- package/src/core/agents/offSecAgent/tools/writePlan.ts +65 -0
- package/src/core/agents/offSecAgent/trace.test.ts +796 -0
- package/src/core/agents/offSecAgent/trace.ts +633 -0
- package/src/core/agents/offSecAgent/types.test.ts +224 -0
- package/src/core/agents/offSecAgent/types.ts +676 -0
- package/src/core/agents/specialized/attackSurface/blackboxAgent.test.ts +31 -0
- package/src/core/agents/specialized/attackSurface/blackboxAgent.ts +272 -0
- package/src/core/agents/specialized/attackSurface/blackboxRiskScoring.ts +276 -0
- package/src/core/agents/specialized/attackSurface/grpcSchema.ts +142 -0
- package/src/core/agents/specialized/attackSurface/jsExtraction.test.ts +237 -0
- package/src/core/agents/specialized/attackSurface/jsExtraction.ts +174 -0
- package/src/core/agents/specialized/attackSurface/prompts.ts +349 -0
- package/src/core/agents/specialized/attackSurface/schemas.ts +300 -0
- package/src/core/agents/specialized/attackSurface/types.ts +100 -0
- package/src/core/agents/specialized/authenticationAgent/agent.test.ts +111 -0
- package/src/core/agents/specialized/authenticationAgent/agent.ts +300 -0
- package/src/core/agents/specialized/authenticationAgent/index.ts +74 -0
- package/src/core/agents/specialized/authenticationAgent/prompts.test.ts +36 -0
- package/src/core/agents/specialized/authenticationAgent/prompts.ts +645 -0
- package/src/core/agents/specialized/authenticationAgent/types.ts +833 -0
- package/src/core/agents/specialized/benchmark/comparisonAgent.ts +344 -0
- package/src/core/agents/specialized/benchmark/docker-utils.ts +257 -0
- package/src/core/agents/specialized/benchmark/flag-detector.ts +686 -0
- package/src/core/agents/specialized/benchmark/index.ts +28 -0
- package/src/core/agents/specialized/benchmark/prompts.ts +257 -0
- package/src/core/agents/specialized/benchmark/remote/circuit-breaker.ts +108 -0
- package/src/core/agents/specialized/benchmark/remote/daytona-wrapper.ts +1005 -0
- package/src/core/agents/specialized/benchmark/remote/index.ts +2 -0
- package/src/core/agents/specialized/benchmark/types.ts +98 -0
- package/src/core/agents/specialized/benchmarkComparisonAgent.test.ts +111 -0
- package/src/core/agents/specialized/benchmarkComparisonAgent.ts +203 -0
- package/src/core/agents/specialized/codeAgent/agent.test.ts +89 -0
- package/src/core/agents/specialized/codeAgent/agent.ts +134 -0
- package/src/core/agents/specialized/codeAgent/prompts.ts +48 -0
- package/src/core/agents/specialized/codeAgent/schemas.ts +33 -0
- package/src/core/agents/specialized/cvssScorer/index.test.ts +87 -0
- package/src/core/agents/specialized/cvssScorer/index.ts +546 -0
- package/src/core/agents/specialized/environment/agent.ts +75 -0
- package/src/core/agents/specialized/environment/index.ts +16 -0
- package/src/core/agents/specialized/environment/prompts.ts +194 -0
- package/src/core/agents/specialized/environment/types.ts +48 -0
- package/src/core/agents/specialized/findingJudge/agent.test.ts +114 -0
- package/src/core/agents/specialized/findingJudge/agent.ts +59 -0
- package/src/core/agents/specialized/findingJudge/index.test.ts +155 -0
- package/src/core/agents/specialized/findingJudge/index.ts +166 -0
- package/src/core/agents/specialized/findingJudge/prompts.ts +140 -0
- package/src/core/agents/specialized/findingJudge/types.ts +115 -0
- package/src/core/agents/specialized/googleSignInPrompt.test.ts +29 -0
- package/src/core/agents/specialized/googleSignInPrompt.ts +18 -0
- package/src/core/agents/specialized/mobileOtpPrompt.ts +9 -0
- package/src/core/agents/specialized/patching/agent.test.ts +220 -0
- package/src/core/agents/specialized/patching/agent.ts +146 -0
- package/src/core/agents/specialized/patching/index.ts +20 -0
- package/src/core/agents/specialized/patching/prompts.test.ts +172 -0
- package/src/core/agents/specialized/patching/prompts.ts +396 -0
- package/src/core/agents/specialized/patching/types.ts +49 -0
- package/src/core/agents/specialized/pentest/agent.test.ts +1046 -0
- package/src/core/agents/specialized/pentest/agent.ts +1482 -0
- package/src/core/agents/specialized/pentest/helperLifecycle.test.ts +425 -0
- package/src/core/agents/specialized/pentest/helperWorkspace.test.ts +84 -0
- package/src/core/agents/specialized/pentest/helperWorkspace.ts +33 -0
- package/src/core/agents/specialized/pentest/planPrompt.ts +68 -0
- package/src/core/agents/specialized/pentest/results.test.ts +198 -0
- package/src/core/agents/specialized/utils.test.ts +16 -0
- package/src/core/agents/specialized/utils.ts +28 -0
- package/src/core/agents/specialized/vulnerabilityReproduction/agent.test.ts +195 -0
- package/src/core/agents/specialized/vulnerabilityReproduction/agent.ts +159 -0
- package/src/core/agents/specialized/whiteboxAttackSurface/agent.test.ts +39 -0
- package/src/core/agents/specialized/whiteboxAttackSurface/agent.ts +227 -0
- package/src/core/agents/specialized/whiteboxAttackSurface/endpointDocumentationAgent.concurrency.test.ts +138 -0
- package/src/core/agents/specialized/whiteboxAttackSurface/endpointDocumentationAgent.test.ts +199 -0
- package/src/core/agents/specialized/whiteboxAttackSurface/endpointDocumentationAgent.ts +330 -0
- package/src/core/agents/specialized/whiteboxAttackSurface/index.ts +24 -0
- package/src/core/agents/specialized/whiteboxAttackSurface/prompts.ts +345 -0
- package/src/core/agents/specialized/whiteboxAttackSurface/types.test.ts +67 -0
- package/src/core/agents/specialized/whiteboxAttackSurface/types.ts +234 -0
- package/src/core/ai/ai.contract.test.ts +43 -0
- package/src/core/ai/ai.durability-hooks.test.ts +527 -0
- package/src/core/ai/ai.effective-tools.test.ts +739 -0
- package/src/core/ai/ai.native-rollout-evidence.test.ts +373 -0
- package/src/core/ai/ai.outer-catch-recovery.test.ts +82 -0
- package/src/core/ai/ai.proactive-recovery.test.ts +69 -0
- package/src/core/ai/ai.recorded-attempts.test.ts +621 -0
- package/src/core/ai/ai.recorded-context.test.ts +448 -0
- package/src/core/ai/ai.recorded-tools.test.ts +850 -0
- package/src/core/ai/ai.request-retention.test.ts +296 -0
- package/src/core/ai/ai.test.ts +636 -0
- package/src/core/ai/ai.ts +2349 -0
- package/src/core/ai/caching.test.ts +179 -0
- package/src/core/ai/caching.ts +119 -0
- package/src/core/ai/compactionEvidence.test.ts +52 -0
- package/src/core/ai/compactionEvidence.ts +101 -0
- package/src/core/ai/compactionTelemetry.test.ts +621 -0
- package/src/core/ai/compactionTelemetry.ts +287 -0
- package/src/core/ai/concentrate.test.ts +28 -0
- package/src/core/ai/contextManagement.test.ts +350 -0
- package/src/core/ai/contextManagement.ts +594 -0
- package/src/core/ai/index.ts +73 -0
- package/src/core/ai/inference-attempt/adapters.test.ts +84 -0
- package/src/core/ai/inference-attempt/adapters.ts +391 -0
- package/src/core/ai/inference-attempt/attempt.test.ts +198 -0
- package/src/core/ai/inference-attempt/builder.ts +171 -0
- package/src/core/ai/inference-attempt/envelope.ts +120 -0
- package/src/core/ai/inference-attempt/errors.ts +15 -0
- package/src/core/ai/inference-attempt/fixtures/anthropic-messages-cache-create.json +18 -0
- package/src/core/ai/inference-attempt/fixtures/anthropic-messages-cache-read.json +18 -0
- package/src/core/ai/inference-attempt/fixtures/anthropic-messages-incomplete.json +16 -0
- package/src/core/ai/inference-attempt/fixtures/anthropic-messages-mixed.json +22 -0
- package/src/core/ai/inference-attempt/fixtures/anthropic-messages-non-cache.json +26 -0
- package/src/core/ai/inference-attempt/fixtures/bedrock-converse-cache-create.json +18 -0
- package/src/core/ai/inference-attempt/fixtures/bedrock-converse-cache-read.json +26 -0
- package/src/core/ai/inference-attempt/fixtures/bedrock-converse-incomplete.json +19 -0
- package/src/core/ai/inference-attempt/fixtures/bedrock-converse-mixed.json +20 -0
- package/src/core/ai/inference-attempt/fixtures/bedrock-converse-non-cache.json +24 -0
- package/src/core/ai/inference-attempt/fixtures/openai-responses-cache-read.json +17 -0
- package/src/core/ai/inference-attempt/fixtures/openai-responses-incomplete.json +16 -0
- package/src/core/ai/inference-attempt/fixtures/openai-responses-non-cache.json +23 -0
- package/src/core/ai/inference-attempt/fixtures/pensar-anthropic-rest-incomplete.json +21 -0
- package/src/core/ai/inference-attempt/fixtures/pensar-anthropic-rest-native.json +16 -0
- package/src/core/ai/inference-attempt/fixtures/pensar-anthropic-stream-cache-create.json +20 -0
- package/src/core/ai/inference-attempt/fixtures/pensar-anthropic-stream-cache-read.json +20 -0
- package/src/core/ai/inference-attempt/fixtures/pensar-anthropic-stream-incomplete.json +16 -0
- package/src/core/ai/inference-attempt/fixtures/pensar-anthropic-stream-mixed.json +21 -0
- package/src/core/ai/inference-attempt/fixtures/pensar-anthropic-stream-non-cache.json +19 -0
- package/src/core/ai/inference-attempt/fixtures/reject-cache-read-exceeds-inclusive.json +11 -0
- package/src/core/ai/inference-attempt/fixtures/reject-components-exceed-inclusive.json +12 -0
- package/src/core/ai/inference-attempt/fixtures/reject-identity-mismatch.json +13 -0
- package/src/core/ai/inference-attempt/fixtures/reject-negative-token.json +9 -0
- package/src/core/ai/inference-attempt/fixtures/reject-non-integer-token.json +8 -0
- package/src/core/ai/inference-attempt/fixtures/sdk-normalized-cache-read.json +19 -0
- package/src/core/ai/inference-attempt/fixtures/sdk-normalized-incomplete.json +15 -0
- package/src/core/ai/inference-attempt/fixtures/sdk-normalized-mixed.json +20 -0
- package/src/core/ai/inference-attempt/fixtures/sdk-normalized-non-cache.json +16 -0
- package/src/core/ai/inference-attempt/identity.ts +25 -0
- package/src/core/ai/inference-attempt/index.ts +70 -0
- package/src/core/ai/inference-attempt/project.test.ts +118 -0
- package/src/core/ai/inference-attempt/project.ts +60 -0
- package/src/core/ai/inference-attempt/recording.ts +46 -0
- package/src/core/ai/inference-attempt/tokens.ts +165 -0
- package/src/core/ai/inference-attempt/validate.ts +20 -0
- package/src/core/ai/mantle.test.ts +50 -0
- package/src/core/ai/mantle.ts +45 -0
- package/src/core/ai/model-history.test.ts +53 -0
- package/src/core/ai/model-history.ts +38 -0
- package/src/core/ai/models/anthropic.ts +145 -0
- package/src/core/ai/models/bedrock.ts +600 -0
- package/src/core/ai/models/claude-capabilities.ts +22 -0
- package/src/core/ai/models/concentrate.ts +192 -0
- package/src/core/ai/models/google.ts +154 -0
- package/src/core/ai/models/inception.ts +10 -0
- package/src/core/ai/models/index.ts +250 -0
- package/src/core/ai/models/mantle.ts +14 -0
- package/src/core/ai/models/models.test.ts +290 -0
- package/src/core/ai/models/openai.ts +409 -0
- package/src/core/ai/models/openrouter.ts +336 -0
- package/src/core/ai/models/pensar.ts +66 -0
- package/src/core/ai/native-rollout-evidence/capture.test.ts +1836 -0
- package/src/core/ai/native-rollout-evidence/capture.ts +1572 -0
- package/src/core/ai/native-rollout-evidence/content.test.ts +55 -0
- package/src/core/ai/native-rollout-evidence/content.ts +129 -0
- package/src/core/ai/native-rollout-evidence/index.ts +68 -0
- package/src/core/ai/native-rollout-evidence/provider-metadata.test.ts +85 -0
- package/src/core/ai/native-rollout-evidence/provider-metadata.ts +129 -0
- package/src/core/ai/native-rollout-evidence/recording.test.ts +398 -0
- package/src/core/ai/native-rollout-evidence/schema.test.ts +210 -0
- package/src/core/ai/native-rollout-evidence/schema.ts +353 -0
- package/src/core/ai/native-rollout-evidence/validate.ts +141 -0
- package/src/core/ai/providers/anthropic-models.test.ts +289 -0
- package/src/core/ai/providers/anthropic.ts +73 -0
- package/src/core/ai/providers/concentrate.live.test.ts +71 -0
- package/src/core/ai/providers/concentrate.test.ts +160 -0
- package/src/core/ai/providers/concentrate.ts +145 -0
- package/src/core/ai/providers/custom.live.test.ts +42 -0
- package/src/core/ai/providers/custom.test.ts +474 -0
- package/src/core/ai/providers/custom.ts +70 -0
- package/src/core/ai/providers/gateway-models.test.ts +638 -0
- package/src/core/ai/providers/hoonify.live.test.ts +72 -0
- package/src/core/ai/providers/hoonify.test.ts +284 -0
- package/src/core/ai/providers/hoonify.ts +32 -0
- package/src/core/ai/providers/openai-models.test.ts +356 -0
- package/src/core/ai/providers/openai-pro-fetch.test.ts +64 -0
- package/src/core/ai/providers/openai-pro-fetch.ts +32 -0
- package/src/core/ai/providers/pensar.ts +645 -0
- package/src/core/ai/providers/pensarFormatters.test.ts +272 -0
- package/src/core/ai/providers/pensarFormatters.ts +533 -0
- package/src/core/ai/providers/pensarResponsesStream.test.ts +191 -0
- package/src/core/ai/providers/pensarResponsesStream.ts +294 -0
- package/src/core/ai/providers/pensarSSE.test.ts +83 -0
- package/src/core/ai/providers/pensarSSE.ts +128 -0
- package/src/core/ai/providers/pensarSigning.ts +2 -0
- package/src/core/ai/providers/pensarStreamUsage.test.ts +79 -0
- package/src/core/ai/providers/pensarStreamUsage.ts +62 -0
- package/src/core/ai/stepContext.test.ts +61 -0
- package/src/core/ai/streamIdleTimeout.test.ts +390 -0
- package/src/core/ai/streamTelemetry.ts +90 -0
- package/src/core/ai/usage-callback.test.ts +511 -0
- package/src/core/ai/utils.native-rollout-evidence.test.ts +135 -0
- package/src/core/ai/utils.pensar.test.ts +59 -0
- package/src/core/ai/utils.ts +796 -0
- package/src/core/api/apiClient.test.ts +58 -0
- package/src/core/api/apiClient.ts +73 -0
- package/src/core/api/apps.test.ts +78 -0
- package/src/core/api/apps.ts +388 -0
- package/src/core/api/attackSurface.test.ts +24 -0
- package/src/core/api/attackSurface.ts +89 -0
- package/src/core/api/authentication.ts +8 -0
- package/src/core/api/benchmark.ts +35 -0
- package/src/core/api/blackboxPentest.test.ts +89 -0
- package/src/core/api/blackboxPentest.ts +64 -0
- package/src/core/api/clientIdentity.test.ts +61 -0
- package/src/core/api/clientIdentity.ts +57 -0
- package/src/core/api/comments.test.ts +69 -0
- package/src/core/api/constants.ts +15 -0
- package/src/core/api/domains.test.ts +35 -0
- package/src/core/api/domains.ts +32 -0
- package/src/core/api/environment.ts +47 -0
- package/src/core/api/index.ts +219 -0
- package/src/core/api/issues.test.ts +82 -0
- package/src/core/api/issues.ts +439 -0
- package/src/core/api/knowledge.ts +70 -0
- package/src/core/api/localWorker.ts +29 -0
- package/src/core/api/offesecAgent.test.ts +289 -0
- package/src/core/api/offesecAgent.ts +77 -0
- package/src/core/api/patching.ts +44 -0
- package/src/core/api/recordedRun.control.test.ts +830 -0
- package/src/core/api/recordedRun.inference.test.ts +529 -0
- package/src/core/api/recordedRun.loop.test.ts +290 -0
- package/src/core/api/recordedRun.recovery.test.ts +651 -0
- package/src/core/api/recordedRun.test.ts +646 -0
- package/src/core/api/recordedRun.ts +542 -0
- package/src/core/api/targetedPentest.test.ts +177 -0
- package/src/core/api/targetedPentest.ts +83 -0
- package/src/core/api/threatModel.ts +5 -0
- package/src/core/api/trajectoryExport.test.ts +299 -0
- package/src/core/api/trajectoryExport.ts +362 -0
- package/src/core/api/vulnerabilityReproduction.test.ts +56 -0
- package/src/core/api/vulnerabilityReproduction.ts +54 -0
- package/src/core/assets/wordlists.test.ts +85 -0
- package/src/core/assets/wordlists.ts +111 -0
- package/src/core/atif/compatibility.test.ts +107 -0
- package/src/core/atif/convert.test.ts +815 -0
- package/src/core/atif/convert.ts +1658 -0
- package/src/core/atif/fixtures/portable-bundle-v1.json +813 -0
- package/src/core/atif/index.ts +34 -0
- package/src/core/atif/schema.ts +345 -0
- package/src/core/atif/serialize.test.ts +244 -0
- package/src/core/atif/serialize.ts +419 -0
- package/src/core/atif/test-fixtures.ts +184 -0
- package/src/core/atif/validate.test.ts +188 -0
- package/src/core/atif/validate.ts +289 -0
- package/src/core/auth/connection.ts +26 -0
- package/src/core/auth/device-flow.ts +203 -0
- package/src/core/auth/gateway.ts +66 -0
- package/src/core/auth/index.ts +29 -0
- package/src/core/auth/signing.ts +25 -0
- package/src/core/auth/token.ts +140 -0
- package/src/core/auth/types.ts +106 -0
- package/src/core/auth/workspaces.ts +192 -0
- package/src/core/benchmark/index.ts +11 -0
- package/src/core/benchmark/report.ts +257 -0
- package/src/core/benchmark/runner.ts +698 -0
- package/src/core/benchmark/types.ts +80 -0
- package/src/core/cli/logLevelArgs.test.ts +83 -0
- package/src/core/cli/logLevelArgs.ts +62 -0
- package/src/core/cli/model.ts +35 -0
- package/src/core/cli/pentestMode.test.ts +24 -0
- package/src/core/cli/pentestMode.ts +23 -0
- package/src/core/cli/tuiArgs.test.ts +58 -0
- package/src/core/cli/tuiArgs.ts +28 -0
- package/src/core/config/config.test.ts +183 -0
- package/src/core/config/config.ts +201 -0
- package/src/core/config/customProviders.test.ts +183 -0
- package/src/core/config/customProviders.ts +190 -0
- package/src/core/config/index.ts +7 -0
- package/src/core/credentials/index.ts +6 -0
- package/src/core/credentials/manager.ts +313 -0
- package/src/core/credentials/types.ts +112 -0
- package/src/core/doctor.ts +138 -0
- package/src/core/eventBus.test.ts +374 -0
- package/src/core/eventBus.ts +410 -0
- package/src/core/findings/attackSurfaceRegistry.ts +294 -0
- package/src/core/findings/registry.test.ts +1680 -0
- package/src/core/findings/registry.ts +800 -0
- package/src/core/history.ts +82 -0
- package/src/core/hoonify.test.ts +250 -0
- package/src/core/hoonify.ts +163 -0
- package/src/core/http/headers.contract.test.ts +1161 -0
- package/src/core/http/parse.ts +257 -0
- package/src/core/http/redirects.test.ts +207 -0
- package/src/core/http/redirects.ts +145 -0
- package/src/core/http/targetHeaders.ts +604 -0
- package/src/core/http/targetScope.ts +52 -0
- package/src/core/http/types.ts +39 -0
- package/src/core/id/id.test.ts +88 -0
- package/src/core/id/id.ts +138 -0
- package/src/core/installation/index.ts +222 -0
- package/src/core/installation/installation.test.ts +415 -0
- package/src/core/integrations/herdr.test.ts +335 -0
- package/src/core/integrations/herdr.ts +163 -0
- package/src/core/integrations/surface/index.test.ts +534 -0
- package/src/core/integrations/surface/index.ts +224 -0
- package/src/core/integrations/surface/types.ts +29 -0
- package/src/core/integrations/wandb/client.ts +167 -0
- package/src/core/integrations/wandb/upload.test.ts +415 -0
- package/src/core/integrations/wandb/upload.ts +76 -0
- package/src/core/logger/errorLog.test.ts +98 -0
- package/src/core/logger/index.ts +214 -0
- package/src/core/logger/structured.test.ts +212 -0
- package/src/core/logger/structured.ts +207 -0
- package/src/core/memory/backend.test.ts +186 -0
- package/src/core/memory/index.ts +279 -0
- package/src/core/memory/memory.test.ts +362 -0
- package/src/core/messages/types.ts +141 -0
- package/src/core/obfuscation/engine.test.ts +314 -0
- package/src/core/obfuscation/engine.ts +647 -0
- package/src/core/obfuscation/index.ts +27 -0
- package/src/core/observability/active-root-spans.ts +30 -0
- package/src/core/observability/active-spans.ts +80 -0
- package/src/core/observability/index.ts +91 -0
- package/src/core/observability/log-correlation.test.ts +276 -0
- package/src/core/observability/payload-capture.test.ts +59 -0
- package/src/core/observability/runtime.test.ts +743 -0
- package/src/core/observability/runtime.ts +371 -0
- package/src/core/observability/shutdown.test.ts +551 -0
- package/src/core/observability/telemetry.test.ts +895 -0
- package/src/core/observability/telemetry.ts +220 -0
- package/src/core/observability/testkit.test.ts +66 -0
- package/src/core/observability/testkit.ts +97 -0
- package/src/core/observability/trace-contract.test.ts +1031 -0
- package/src/core/observability.test.ts +135 -0
- package/src/core/operator/approvalGate.test.ts +300 -0
- package/src/core/operator/approvalGate.ts +287 -0
- package/src/core/operator/index.ts +30 -0
- package/src/core/operator/types.ts +355 -0
- package/src/core/plan/index.ts +44 -0
- package/src/core/prompt-injections/index.test.ts +248 -0
- package/src/core/prompt-injections/index.ts +350 -0
- package/src/core/providers/index.ts +5 -0
- package/src/core/providers/types.ts +87 -0
- package/src/core/providers/utils.test.ts +189 -0
- package/src/core/providers/utils.ts +183 -0
- package/src/core/providers/verify.test.ts +49 -0
- package/src/core/providers/verify.ts +198 -0
- package/src/core/report/builder.test.ts +229 -0
- package/src/core/report/builder.ts +58 -0
- package/src/core/report/index.ts +13 -0
- package/src/core/report/renderers/json.test.ts +76 -0
- package/src/core/report/renderers/json.ts +5 -0
- package/src/core/report/renderers/markdown.test.ts +366 -0
- package/src/core/report/renderers/markdown.ts +133 -0
- package/src/core/report/schemas.ts +48 -0
- package/src/core/runtime/agentExecution.test.ts +94 -0
- package/src/core/runtime/agentExecution.ts +27 -0
- package/src/core/runtime/launchLocalWorker.test.ts +707 -0
- package/src/core/runtime/launchLocalWorker.ts +273 -0
- package/src/core/runtime/localRunLock.ts +118 -0
- package/src/core/runtime/localRunWorker.test.ts +381 -0
- package/src/core/runtime/localRunWorker.ts +287 -0
- package/src/core/runtime/localWorker.acceptance.test.ts +548 -0
- package/src/core/runtime/localWorkerEndpoint.test.ts +145 -0
- package/src/core/runtime/localWorkerEndpoint.ts +82 -0
- package/src/core/runtime/localWorkerProtocol.ts +176 -0
- package/src/core/runtime/localWorkerTransport.test.ts +841 -0
- package/src/core/runtime/localWorkerTransport.ts +434 -0
- package/src/core/runtime/persistenceError.ts +14 -0
- package/src/core/runtime/recordedExecution.ts +43 -0
- package/src/core/runtime/recordedRunClient.integration.test.ts +106 -0
- package/src/core/runtime/recordedRunClient.test.ts +677 -0
- package/src/core/runtime/recordedRunClient.ts +303 -0
- package/src/core/runtime/runCheckpointStore.ts +23 -0
- package/src/core/runtime/runContext.test.ts +445 -0
- package/src/core/runtime/runContext.ts +184 -0
- package/src/core/runtime/runControl.test.ts +923 -0
- package/src/core/runtime/runControl.ts +419 -0
- package/src/core/runtime/runControlStore.ts +106 -0
- package/src/core/runtime/runDeadline.test.ts +44 -0
- package/src/core/runtime/runDeadline.ts +28 -0
- package/src/core/runtime/runEvidence.test.ts +384 -0
- package/src/core/runtime/runEvidence.ts +267 -0
- package/src/core/runtime/runInference.test.ts +408 -0
- package/src/core/runtime/runInference.ts +125 -0
- package/src/core/runtime/runModelStore.ts +55 -0
- package/src/core/runtime/runObservation.ts +24 -0
- package/src/core/runtime/runRecoveryContext.test.ts +602 -0
- package/src/core/runtime/runRecoveryContext.ts +195 -0
- package/src/core/runtime/runRecoveryPlan.test.ts +851 -0
- package/src/core/runtime/runRecoveryPlan.ts +540 -0
- package/src/core/runtime/runRecoveryStore.ts +78 -0
- package/src/core/runtime/runStore.ts +148 -0
- package/src/core/runtime/runStorePath.ts +13 -0
- package/src/core/runtime/runToolStore.ts +66 -0
- package/src/core/runtime/runTools.crash.test.ts +414 -0
- package/src/core/runtime/runTools.test.ts +689 -0
- package/src/core/runtime/runTools.ts +208 -0
- package/src/core/runtime/sqliteControlStore.test.ts +917 -0
- package/src/core/runtime/sqliteControlStore.ts +555 -0
- package/src/core/runtime/sqliteModelStore.test.ts +619 -0
- package/src/core/runtime/sqliteModelStore.ts +286 -0
- package/src/core/runtime/sqliteRecoveryStore.public.test.ts +374 -0
- package/src/core/runtime/sqliteRecoveryStore.test.ts +836 -0
- package/src/core/runtime/sqliteRecoveryStore.ts +435 -0
- package/src/core/runtime/sqliteRunContext.test.ts +1000 -0
- package/src/core/runtime/sqliteRunObservation.test.ts +432 -0
- package/src/core/runtime/sqliteRunStore.test.ts +698 -0
- package/src/core/runtime/sqliteRunStore.ts +593 -0
- package/src/core/runtime/sqliteToolStore.test.ts +1231 -0
- package/src/core/runtime/sqliteToolStore.ts +419 -0
- package/src/core/runtime/testfixtures/localWorkerChild.ts +254 -0
- package/src/core/runtime/testfixtures/localWorkerLauncher.ts +15 -0
- package/src/core/runtime/testfixtures/recoveryChild.ts +159 -0
- package/src/core/services/rateLimiter/index.test.ts +106 -0
- package/src/core/services/rateLimiter/index.ts +157 -0
- package/src/core/services/rateLimiter/types.ts +10 -0
- package/src/core/session/admitted-config.test.ts +50 -0
- package/src/core/session/deprecated-headers-shim.test.ts +111 -0
- package/src/core/session/execution-metrics.test.ts +297 -0
- package/src/core/session/execution-metrics.ts +176 -0
- package/src/core/session/index.ts +1085 -0
- package/src/core/session/loader.ts +212 -0
- package/src/core/session/persistence.test.ts +1210 -0
- package/src/core/session/persistence.ts +1076 -0
- package/src/core/session/rehydrate.test.ts +393 -0
- package/src/core/session/types.ts +139 -0
- package/src/core/session/usage.test.ts +99 -0
- package/src/core/session/usage.ts +84 -0
- package/src/core/skills/builtins/index.ts +22 -0
- package/src/core/skills/builtins/pentest.ts +135 -0
- package/src/core/skills/builtins/promptInjection.ts +44 -0
- package/src/core/skills/builtins/threatModel.ts +336 -0
- package/src/core/skills/index.ts +15 -0
- package/src/core/skills/parser.test.ts +120 -0
- package/src/core/skills/parser.ts +106 -0
- package/src/core/skills/registry.test.ts +202 -0
- package/src/core/skills/registry.ts +109 -0
- package/src/core/skills/scanner.test.ts +157 -0
- package/src/core/skills/scanner.ts +115 -0
- package/src/core/skills/types.ts +45 -0
- package/src/core/skills/utils.ts +16 -0
- package/src/core/storage/index.ts +150 -0
- package/src/core/tasks/index.ts +242 -0
- package/src/core/tools/backends/capture.ts +38 -0
- package/src/core/tools/backends/collectCommand.test.ts +33 -0
- package/src/core/tools/backends/collectCommand.ts +28 -0
- package/src/core/tools/backends/helpers.ts +140 -0
- package/src/core/tools/backends/httpTransport.ts +534 -0
- package/src/core/tools/backends/index.ts +61 -0
- package/src/core/tools/backends/local.test.ts +307 -0
- package/src/core/tools/backends/local.ts +820 -0
- package/src/core/tools/backends/policy.test.ts +137 -0
- package/src/core/tools/backends/policy.ts +129 -0
- package/src/core/tools/backends/resolve.test.ts +309 -0
- package/src/core/tools/backends/resolve.ts +152 -0
- package/src/core/tools/backends/types.ts +279 -0
- package/src/core/tools/backends/whitebox.test.ts +275 -0
- package/src/core/tools/backends/whitebox.ts +14 -0
- package/src/core/tools/backends/whiteboxJobs.test.ts +375 -0
- package/src/core/tools/backends/whiteboxJobs.ts +157 -0
- package/src/core/tools/backends/windowsProgram.ts +36 -0
- package/src/core/tools/daytonaSandbox.test.ts +491 -0
- package/src/core/tools/daytonaSandbox.ts +232 -0
- package/src/core/toolset/index.ts +583 -0
- package/src/core/util/lazyLogger.ts +32 -0
- package/src/core/utils/concurrency.test.ts +204 -0
- package/src/core/utils/concurrency.ts +75 -0
- package/src/core/utils/prompt.ts +28 -0
- package/src/core/whitebox/adapters.ts +277 -0
- package/src/core/whitebox/artifacts.ts +128 -0
- package/src/core/whitebox/boundedProcess.ts +265 -0
- package/src/core/whitebox/candidates.ts +268 -0
- package/src/core/whitebox/catalog.ts +82 -0
- package/src/core/whitebox/index.ts +53 -0
- package/src/core/whitebox/jobKernel.test.ts +91 -0
- package/src/core/whitebox/jobKernel.ts +347 -0
- package/src/core/whitebox/jobSupervisor.ts +264 -0
- package/src/core/whitebox/jobs.ts +21 -0
- package/src/core/whitebox/paths.ts +94 -0
- package/src/core/whitebox/profileTransport.ts +225 -0
- package/src/core/whitebox/profiles.ts +294 -0
- package/src/core/whitebox/repoProfile.test.ts +217 -0
- package/src/core/whitebox/repoProfile.ts +256 -0
- package/src/core/whitebox/types.ts +189 -0
- package/src/core/whitebox/whitebox.test.ts +789 -0
- package/src/core/workflows/fastStrike.seams.test.ts +217 -0
- package/src/core/workflows/fastStrike.test.ts +29 -0
- package/src/core/workflows/fastStrike.ts +239 -0
- package/src/core/workflows/pentest.test.ts +575 -0
- package/src/core/workflows/pentest.ts +1022 -0
- package/src/core/workflows/seams.test.ts +386 -0
- package/src/core/workflows/seams.ts +276 -0
- package/src/core/workflows/threatModel.ts +108 -0
- package/src/core/workflows/usage-forwarding.test.ts +203 -0
- package/src/core/workflows/whiteboxAttackSurface.test.ts +695 -0
- package/src/core/workflows/whiteboxAttackSurface.ts +1740 -0
- package/src/index.ts +49 -0
- package/src/lib/attack-path/types.ts +13 -0
- package/src/lib/cvss/calculator.test.ts +2090 -0
- package/src/lib/cvss/calculator.ts +643 -0
- package/src/lib/cvss/index.ts +65 -0
- package/src/lib/cvss/macrovector-scores.ts +402 -0
- package/src/lib/cvss/types.ts +241 -0
- package/src/lib/cwe/cwe-catalog.ts +444 -0
- package/src/lib/cwe/types.test.ts +142 -0
- package/src/lib/cwe/types.ts +37 -0
- package/src/lib/cwe/validate.test.ts +110 -0
- package/src/lib/cwe/validate.ts +53 -0
- package/src/lib/evidence/types.ts +9 -0
- package/src/tests/agentWorkingDirectory.test.ts +175 -0
- package/src/tests/attackSurface.test.ts +35 -0
- package/src/tests/auth.test.ts +196 -0
- package/src/tests/authCookieExport.test.ts +143 -0
- package/src/tests/authPentestHandoff.test.ts +231 -0
- package/src/tests/browserCookies.test.ts +128 -0
- package/src/tests/credentialManager.test.ts +657 -0
- package/src/tests/data/console.openapi.json +1037 -0
- package/src/tests/data/console.sitemap.xml +348 -0
- package/src/tests/delegateAuthMerge.test.ts +48 -0
- package/src/tui/auto-copy.ts +36 -0
- package/src/tui/clipboard.ts +65 -0
- package/src/tui/command-registry.test.ts +124 -0
- package/src/tui/command-registry.ts +645 -0
- package/src/tui/command-router.ts +81 -0
- package/src/tui/components/agent-display.tsx +480 -0
- package/src/tui/components/ascii-art.tsx +225 -0
- package/src/tui/components/chat/approval-inline.tsx +51 -0
- package/src/tui/components/chat/config-view.tsx +279 -0
- package/src/tui/components/chat/home-view.tsx +288 -0
- package/src/tui/components/chat/index.tsx +161 -0
- package/src/tui/components/chat/input-area.tsx +529 -0
- package/src/tui/components/chat/lib/play-core/num.ts +102 -0
- package/src/tui/components/chat/lib/wave-simulation.ts +124 -0
- package/src/tui/components/chat/loading-indicator.test.ts +33 -0
- package/src/tui/components/chat/loading-indicator.tsx +115 -0
- package/src/tui/components/chat/message-list.tsx +264 -0
- package/src/tui/components/chat/petri-animation.tsx +175 -0
- package/src/tui/components/chat/plan-review-message.tsx +49 -0
- package/src/tui/components/chat/questions-form.tsx +756 -0
- package/src/tui/components/commands/__tests__/recorded-runs-lifecycle.tsx +907 -0
- package/src/tui/components/commands/advanced-settings.tsx +94 -0
- package/src/tui/components/commands/api-key-input.tsx +122 -0
- package/src/tui/components/commands/auth-flow-logic.test.ts +58 -0
- package/src/tui/components/commands/auth-flow-logic.ts +30 -0
- package/src/tui/components/commands/auth-flow.tsx +702 -0
- package/src/tui/components/commands/credits-flow.tsx +210 -0
- package/src/tui/components/commands/help-dialog.tsx +238 -0
- package/src/tui/components/commands/models-display.tsx +111 -0
- package/src/tui/components/commands/operator-wizard.tsx +328 -0
- package/src/tui/components/commands/provider-manager.tsx +241 -0
- package/src/tui/components/commands/provider-selection.tsx +129 -0
- package/src/tui/components/commands/recorded-runs.test.ts +40 -0
- package/src/tui/components/commands/recorded-runs.tsx +793 -0
- package/src/tui/components/commands/sessions-display.tsx +365 -0
- package/src/tui/components/commands/shortcuts-dialog.tsx +52 -0
- package/src/tui/components/commands/skills-dialog.tsx +308 -0
- package/src/tui/components/commands/theme-picker.tsx +177 -0
- package/src/tui/components/commands/web-wizard.tsx +965 -0
- package/src/tui/components/dialog-layout.tsx +73 -0
- package/src/tui/components/error-boundary.tsx +82 -0
- package/src/tui/components/footer.tsx +101 -0
- package/src/tui/components/input.tsx +43 -0
- package/src/tui/components/loaders.tsx +784 -0
- package/src/tui/components/model-picker/ModelPicker.tsx +907 -0
- package/src/tui/components/model-picker/ModelPickerDialog.tsx +75 -0
- package/src/tui/components/model-picker/index.ts +2 -0
- package/src/tui/components/model-picker/model-navigation.test.ts +102 -0
- package/src/tui/components/model-picker/model-navigation.ts +54 -0
- package/src/tui/components/model-picker/model-search.test.ts +62 -0
- package/src/tui/components/model-picker/model-search.ts +42 -0
- package/src/tui/components/model-picker/model-visibility.test.ts +65 -0
- package/src/tui/components/model-picker/model-visibility.ts +59 -0
- package/src/tui/components/operator-dashboard/conversation.test.ts +431 -0
- package/src/tui/components/operator-dashboard/conversation.ts +179 -0
- package/src/tui/components/operator-dashboard/display-state.test.ts +369 -0
- package/src/tui/components/operator-dashboard/display-state.ts +163 -0
- package/src/tui/components/operator-dashboard/herdr-state.test.ts +162 -0
- package/src/tui/components/operator-dashboard/herdr-state.ts +81 -0
- package/src/tui/components/operator-dashboard/index.tsx +2044 -0
- package/src/tui/components/operator-dashboard/logic.test.ts +753 -0
- package/src/tui/components/operator-dashboard/logic.ts +465 -0
- package/src/tui/components/operator-dashboard/queue.test.ts +147 -0
- package/src/tui/components/operator-dashboard/queue.ts +55 -0
- package/src/tui/components/operator-dashboard/queued-messages.tsx +50 -0
- package/src/tui/components/operator-dashboard/run-events.test.ts +913 -0
- package/src/tui/components/operator-dashboard/run-events.ts +507 -0
- package/src/tui/components/operator-dashboard/run-tracing.test.ts +206 -0
- package/src/tui/components/operator-dashboard/run-tracing.ts +105 -0
- package/src/tui/components/operator-dashboard/subagent-detail-view.tsx +51 -0
- package/src/tui/components/operator-dashboard/subagent-dialog.tsx +142 -0
- package/src/tui/components/operator-dashboard/subagent-hub.test.ts +162 -0
- package/src/tui/components/operator-dashboard/subagent-hub.tsx +266 -0
- package/src/tui/components/operator-dashboard/subagent-state.test.ts +431 -0
- package/src/tui/components/operator-dashboard/subagent-state.ts +404 -0
- package/src/tui/components/operator-dashboard/subagent-status-bar.tsx +80 -0
- package/src/tui/components/operator-dashboard/tool-argument-buffer.test.ts +317 -0
- package/src/tui/components/operator-dashboard/tool-arguments.perf.test.ts +121 -0
- package/src/tui/components/operator-dashboard/welcome-logo.tsx +79 -0
- package/src/tui/components/operator-dashboard/workflow-data.test.ts +291 -0
- package/src/tui/components/operator-dashboard/workflow-data.ts +130 -0
- package/src/tui/components/report-viewer-dialog.tsx +98 -0
- package/src/tui/components/responsible-use-disclosure.tsx +55 -0
- package/src/tui/components/screenshot-modal.tsx +204 -0
- package/src/tui/components/shared/__tests__/prompt-input-lifecycle.tsx +64 -0
- package/src/tui/components/shared/__tests__/tool-renderer-lifecycle.tsx +69 -0
- package/src/tui/components/shared/action-label.test.ts +133 -0
- package/src/tui/components/shared/action-label.ts +18 -0
- package/src/tui/components/shared/ascii-spinner.tsx +40 -0
- package/src/tui/components/shared/dialog-controls.tsx +76 -0
- package/src/tui/components/shared/index.ts +37 -0
- package/src/tui/components/shared/markdown-viewer.tsx +188 -0
- package/src/tui/components/shared/markdown.ts +239 -0
- package/src/tui/components/shared/message-renderer.tsx +178 -0
- package/src/tui/components/shared/message-utils.ts +175 -0
- package/src/tui/components/shared/pentest-workflow-display.tsx +330 -0
- package/src/tui/components/shared/prompt-input-lifecycle.test.ts +22 -0
- package/src/tui/components/shared/prompt-input-logic.test.ts +782 -0
- package/src/tui/components/shared/prompt-input-logic.ts +423 -0
- package/src/tui/components/shared/prompt-input.tsx +782 -0
- package/src/tui/components/shared/result-registry.test.ts +90 -0
- package/src/tui/components/shared/result-registry.ts +900 -0
- package/src/tui/components/shared/syntax-highlight.ts +242 -0
- package/src/tui/components/shared/tool-registry.test.ts +59 -0
- package/src/tui/components/shared/tool-registry.ts +279 -0
- package/src/tui/components/shared/tool-renderer.test.ts +13 -0
- package/src/tui/components/shared/tool-renderer.tsx +223 -0
- package/src/tui/components/shared/type-guards.ts +64 -0
- package/src/tui/components/shared/use-paste-extmarks.ts +109 -0
- package/src/tui/components/switch.tsx +81 -0
- package/src/tui/components/terminal-focus-handler.tsx +34 -0
- package/src/tui/components/toast.tsx +82 -0
- package/src/tui/components/usage-labels.test.ts +191 -0
- package/src/tui/components/usage-labels.ts +78 -0
- package/src/tui/console-theme.ts +59 -0
- package/src/tui/context/agent.tsx +251 -0
- package/src/tui/context/command.tsx +291 -0
- package/src/tui/context/config.tsx +59 -0
- package/src/tui/context/dialog.tsx +206 -0
- package/src/tui/context/dimensions.tsx +31 -0
- package/src/tui/context/focus-ownership.test.ts +26 -0
- package/src/tui/context/focus-ownership.ts +12 -0
- package/src/tui/context/focus.tsx +86 -0
- package/src/tui/context/herdr.tsx +28 -0
- package/src/tui/context/input.tsx +45 -0
- package/src/tui/context/keybinding.tsx +92 -0
- package/src/tui/context/obfuscation.tsx +114 -0
- package/src/tui/context/route.tsx +127 -0
- package/src/tui/context/session-usage.test.ts +295 -0
- package/src/tui/context/session-usage.ts +204 -0
- package/src/tui/context/session.tsx +62 -0
- package/src/tui/context/toast.tsx +66 -0
- package/src/tui/generated-ascii-art.json +1 -0
- package/src/tui/generated-ascii-art.json.d.ts +2 -0
- package/src/tui/herdr-startup.test.ts +157 -0
- package/src/tui/hooks/use-sessions-list.ts +165 -0
- package/src/tui/index.tsx +838 -0
- package/src/tui/keybindings/index.ts +126 -0
- package/src/tui/keybindings/registry.ts +146 -0
- package/src/tui/keybindings-registry.ts +43 -0
- package/src/tui/obfuscation/patch.ts +139 -0
- package/src/tui/terminal-focus.ts +218 -0
- package/src/tui/theme/colors.ts +43 -0
- package/src/tui/theme/context.tsx +137 -0
- package/src/tui/theme/detect-mode.ts +56 -0
- package/src/tui/theme/index.ts +75 -0
- package/src/tui/theme/registry.ts +29 -0
- package/src/tui/theme/themes/apex.ts +190 -0
- package/src/tui/theme/themes/ayu.ts +189 -0
- package/src/tui/theme/themes/catppuccin.ts +189 -0
- package/src/tui/theme/themes/dracula.ts +190 -0
- package/src/tui/theme/themes/everforest.ts +189 -0
- package/src/tui/theme/themes/flexoki.ts +190 -0
- package/src/tui/theme/themes/github.ts +189 -0
- package/src/tui/theme/themes/gruvbox.ts +189 -0
- package/src/tui/theme/themes/index.ts +54 -0
- package/src/tui/theme/themes/kanagawa.ts +189 -0
- package/src/tui/theme/themes/material.ts +190 -0
- package/src/tui/theme/themes/monokai.ts +190 -0
- package/src/tui/theme/themes/nightfox.ts +189 -0
- package/src/tui/theme/themes/nord.ts +190 -0
- package/src/tui/theme/themes/onedark.ts +190 -0
- package/src/tui/theme/themes/rose-pine.ts +189 -0
- package/src/tui/theme/themes/solarized.ts +189 -0
- package/src/tui/theme/themes/tokyonight.ts +189 -0
- package/src/tui/theme/themes/vesper.ts +191 -0
- package/src/tui/theme/types.ts +143 -0
- package/src/tui/utils/command-flags.test.ts +269 -0
- package/src/tui/utils/command-flags.ts +377 -0
- package/src/tui/utils/kitty-graphics.ts +76 -0
- package/src/tui/utils/open-file.ts +37 -0
- package/src/tui/utils/open-report.ts +34 -0
- package/src/tui/utils/open-url.ts +39 -0
- package/src/tui/utils/paste.ts +8 -0
- package/src/tui/utils/scroll.ts +81 -0
- package/src/util/errors.ts +58 -0
- package/src/util/lock.ts +100 -0
- package/src/util/name.ts +148 -0
- package/src/util/url.test.ts +162 -0
- package/src/util/url.ts +107 -0
- package/build/agent-13rrhp8d.js +0 -20
- package/build/agent-zbj2331s.js +0 -30
- package/build/authentication-f4j3w5vs.js +0 -20
- package/build/blackboxAgent-v2vx9ws4.js +0 -20
- package/build/blackboxPentest-w5nwzpvk.js +0 -70
- package/build/cli-5wemv37a.js +0 -194
- package/build/cli-7s062hr6.js +0 -22
- package/build/cli-9qbxkhye.js +0 -55
- package/build/cli-avmhkjtv.js +0 -22961
- package/build/cli-g3czc3jz.js +0 -204
- package/build/cli-ww7hbazg.js +0 -88
- package/build/index-18vyy6mj.js +0 -19
- package/build/index-5wh7gq37.js +0 -12858
- package/build/index-e23zc8g4.js +0 -34
- package/build/index-hnwhswqj.js +0 -213
- package/build/index-wkmnr4nm.js +0 -39
- package/build/index-ywmfnd30.js +0 -12
- package/build/offesecAgent-c97pqzcn.js +0 -27
- package/build/pentest-4p5jt7gj.js +0 -30
- package/build/pentests-v98eg8n3.js +0 -92
- package/build/threatModel-81d4rcbk.js +0 -29
- /package/build/{cli-c8131c4q.js → cli-0wsh8j2t.js} +0 -0
- /package/build/{cli-9pbk8m32.js → cli-ag6jtndp.js} +0 -0
- /package/build/{cli-e08r86zk.js → cli-b3dvxjgk.js} +0 -0
- /package/build/{cli-fw5r7pfj.js → cli-q126f6ef.js} +0 -0
- /package/build/{cli-9fsre5pt.js → cli-qba2x69h.js} +0 -0
- /package/build/{cli-7q3ae3ft.js → cli-z82n3qk1.js} +0 -0
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
export declare const EndpointTransportEnum: z.ZodEnum<{
|
|
3
|
+
http: "http";
|
|
4
|
+
grpc: "grpc";
|
|
5
|
+
grpc_web: "grpc_web";
|
|
6
|
+
connect: "connect";
|
|
7
|
+
}>;
|
|
8
|
+
export declare const GrpcStreamingTypeEnum: z.ZodEnum<{
|
|
9
|
+
unary: "unary";
|
|
10
|
+
server_stream: "server_stream";
|
|
11
|
+
client_stream: "client_stream";
|
|
12
|
+
bidi: "bidi";
|
|
13
|
+
}>;
|
|
14
|
+
export declare const GrpcEndpointMetadataSchema: z.ZodObject<{
|
|
15
|
+
serviceFqn: z.ZodString;
|
|
16
|
+
method: z.ZodString;
|
|
17
|
+
streamingType: z.ZodDefault<z.ZodEnum<{
|
|
18
|
+
unary: "unary";
|
|
19
|
+
server_stream: "server_stream";
|
|
20
|
+
client_stream: "client_stream";
|
|
21
|
+
bidi: "bidi";
|
|
22
|
+
}>>;
|
|
23
|
+
reflectionAvailable: z.ZodOptional<z.ZodBoolean>;
|
|
24
|
+
schemaSource: z.ZodOptional<z.ZodEnum<{
|
|
25
|
+
unknown: "unknown";
|
|
26
|
+
proto: "proto";
|
|
27
|
+
reflection: "reflection";
|
|
28
|
+
protoset: "protoset";
|
|
29
|
+
js_bundle: "js_bundle";
|
|
30
|
+
gateway_derived: "gateway_derived";
|
|
31
|
+
}>>;
|
|
32
|
+
host: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
33
|
+
frontingGatewayOperation: z.ZodOptional<z.ZodNullable<z.ZodObject<{
|
|
34
|
+
gatewayType: z.ZodEnum<{
|
|
35
|
+
rest: "rest";
|
|
36
|
+
connect: "connect";
|
|
37
|
+
graphql: "graphql";
|
|
38
|
+
}>;
|
|
39
|
+
operation: z.ZodString;
|
|
40
|
+
}, z.core.$strip>>>;
|
|
41
|
+
}, z.core.$strip>;
|
|
42
|
+
export type EndpointTransport = z.infer<typeof EndpointTransportEnum>;
|
|
43
|
+
export type GrpcEndpointMetadata = z.infer<typeof GrpcEndpointMetadataSchema>;
|
|
44
|
+
export declare const GrpcPentestContextSchema: z.ZodObject<{
|
|
45
|
+
transport: z.ZodEnum<{
|
|
46
|
+
grpc: "grpc";
|
|
47
|
+
grpc_web: "grpc_web";
|
|
48
|
+
connect: "connect";
|
|
49
|
+
}>;
|
|
50
|
+
serviceFqn: z.ZodString;
|
|
51
|
+
method: z.ZodString;
|
|
52
|
+
streamingType: z.ZodOptional<z.ZodEnum<{
|
|
53
|
+
unary: "unary";
|
|
54
|
+
server_stream: "server_stream";
|
|
55
|
+
client_stream: "client_stream";
|
|
56
|
+
bidi: "bidi";
|
|
57
|
+
}>>;
|
|
58
|
+
reflectionAvailable: z.ZodOptional<z.ZodBoolean>;
|
|
59
|
+
schemaSource: z.ZodOptional<z.ZodEnum<{
|
|
60
|
+
unknown: "unknown";
|
|
61
|
+
proto: "proto";
|
|
62
|
+
reflection: "reflection";
|
|
63
|
+
protoset: "protoset";
|
|
64
|
+
js_bundle: "js_bundle";
|
|
65
|
+
gateway_derived: "gateway_derived";
|
|
66
|
+
}>>;
|
|
67
|
+
host: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
68
|
+
frontingGatewayOperation: z.ZodOptional<z.ZodNullable<z.ZodObject<{
|
|
69
|
+
gatewayType: z.ZodEnum<{
|
|
70
|
+
rest: "rest";
|
|
71
|
+
connect: "connect";
|
|
72
|
+
graphql: "graphql";
|
|
73
|
+
}>;
|
|
74
|
+
operation: z.ZodString;
|
|
75
|
+
}, z.core.$strip>>>;
|
|
76
|
+
}, z.core.$strip>;
|
|
77
|
+
export type GrpcPentestContext = z.infer<typeof GrpcPentestContextSchema>;
|
|
78
|
+
/**
|
|
79
|
+
* Build a {@link GrpcPentestContext} from an endpoint's `transport` + `grpc`
|
|
80
|
+
* metadata (as produced by whitebox discovery / `document_endpoint`). Returns
|
|
81
|
+
* `undefined` for plain HTTP endpoints, so callers can attach the result to a
|
|
82
|
+
* target unconditionally. When `transport` is a gRPC variant but the `grpc`
|
|
83
|
+
* object is missing, `serviceFqn` / `method` are derived from the wire `path`
|
|
84
|
+
* so the target is still tested as gRPC.
|
|
85
|
+
*/
|
|
86
|
+
export declare function toGrpcPentestContext(transport: EndpointTransport | undefined, grpc: GrpcEndpointMetadata | undefined, path?: string): GrpcPentestContext | undefined;
|
|
87
|
+
/**
|
|
88
|
+
* When a gRPC method's authority (`grpc.host`) differs from the app domain,
|
|
89
|
+
* build the `grpc://<authority>/<wire-path>` target so the method's real
|
|
90
|
+
* authority reaches the pentest agent. Returns `undefined` when there is no
|
|
91
|
+
* host override, so callers fall back to their default target construction.
|
|
92
|
+
*/
|
|
93
|
+
export declare function grpcAuthorityTarget(grpc: GrpcPentestContext | undefined, path: string): string | undefined;
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* JavaScript endpoint extraction utilities
|
|
3
|
+
*/
|
|
4
|
+
import type { ToolContext } from "../../offSecAgent/tools/types";
|
|
5
|
+
export interface ExtractJavascriptEndpointsParams {
|
|
6
|
+
url: string;
|
|
7
|
+
sessionCookie?: string;
|
|
8
|
+
includeExternalJS?: boolean;
|
|
9
|
+
/** Routes the page fetch through the caller's tool backend — no bare `fetch`. */
|
|
10
|
+
ctx: ToolContext;
|
|
11
|
+
}
|
|
12
|
+
export interface EndpointInfo {
|
|
13
|
+
endpoint: string;
|
|
14
|
+
pattern: string;
|
|
15
|
+
source: string;
|
|
16
|
+
}
|
|
17
|
+
export interface ExtractJavascriptEndpointsResult {
|
|
18
|
+
success: boolean;
|
|
19
|
+
url?: string;
|
|
20
|
+
endpoints?: EndpointInfo[];
|
|
21
|
+
parameterizedPatterns?: string[];
|
|
22
|
+
totalAjaxCalls?: number;
|
|
23
|
+
externalJSFiles?: string[];
|
|
24
|
+
filesAnalyzed?: number;
|
|
25
|
+
message: string;
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Extract endpoint URLs from JavaScript code in a page using pattern matching.
|
|
29
|
+
*
|
|
30
|
+
* Uses regex patterns to find:
|
|
31
|
+
* - AJAX calls ($.ajax, $.get, $.post)
|
|
32
|
+
* - Fetch API calls
|
|
33
|
+
* - Axios requests
|
|
34
|
+
* - XMLHttpRequest calls
|
|
35
|
+
* - URL assignments
|
|
36
|
+
*/
|
|
37
|
+
export declare function extractJavascriptEndpoints(params: ExtractJavascriptEndpointsParams): Promise<ExtractJavascriptEndpointsResult>;
|
|
38
|
+
/**
|
|
39
|
+
* Pure HTML variant of {@link extractJavascriptEndpoints} for callers that
|
|
40
|
+
* already hold the page body — no second fetch of the page.
|
|
41
|
+
*/
|
|
42
|
+
export declare function extractJavascriptEndpointsFromHtml(html: string, url: string, includeExternalJS?: boolean): ExtractJavascriptEndpointsResult;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const SYSTEM = "You are an autonomous attack surface analysis agent. Your mission is to comprehensively map the attack surface of a target and produce a structured report of all discovered assets and pentest objectives.\n\nYou operate completely autonomously \u2014 never ask for permission, never wait for user input, never stop prematurely. Execute each phase below in order, make decisions based on findings, and explain your reasoning as you go.\n\n# \u26A0\uFE0F MANDATORY FIRST ACTION \u2014 READ THIS BEFORE DOING ANYTHING ELSE\n\n**If authentication credentials or login instructions are provided in the user prompt, your VERY FIRST tool call MUST be to start the login process. Do NOT run curl, nmap, dig, or any other reconnaissance command first. Log in FIRST, then do everything else.**\n\nThis is non-negotiable. Authenticated discovery reveals far more attack surface than unauthenticated probing. Every command you run before logging in wastes time and misses authenticated endpoints.\n\n# CORE PRINCIPLE\n\n**Discovery only. No exploitation.** You identify assets, endpoints, services, and authentication flows. You do NOT attempt to exploit vulnerabilities \u2014 that is delegated to pentest agents downstream. Focus entirely on breadth of discovery and accurate documentation.\n\n# TARGET SCOPE \u2014 WHAT TO DOCUMENT vs WHAT TO SKIP\n\nYour job is to map the attack surface of the **target application**, not the entire internet. Only document assets that are part of the target's own infrastructure.\n\n**DO document:**\n- The target web application itself and its pages/routes\n- API endpoints served by the target (e.g., /api/users, /api/auth, /graphql)\n- Admin panels or dashboards that are part of the target\n- Subdomains that host the target's own services (if subdomain enumeration is enabled)\n\n**DO NOT document as separate applications or endpoints:**\n- Third-party authentication providers (e.g., WorkOS, Auth0, Okta, Cognito, Firebase Auth) \u2014 these are external services, not part of the target's attack surface\n- CDN or reverse proxy infrastructure (e.g., CloudFront distributions, Cloudflare, Akamai, Fastly) \u2014 these serve the target but are not separate applications\n- Third-party SaaS dependencies (e.g., Stripe, Sentry, Datadog, Analytics)\n- OAuth/OIDC provider endpoints (e.g., authkit.app, accounts.google.com)\n\nWhen you encounter these external services during recon, note them in `keyFindings` as observations (e.g., \"[LOW] Application uses WorkOS for authentication via OAuth/OIDC\") but do NOT call `document_app` or `document_endpoint` for them.\n\n**Two-step documentation:** Use `document_app` first to register each discovered application (web app, API, admin panel), then use `document_endpoint` for each individual endpoint within that application. This enables incremental creation of apps and endpoints.\n\n**Endpoint format:** When documenting endpoints with `document_endpoint`, the `routePath` field should be the HTTP route (e.g., `/api/users`, `/auth/login`, `/dashboard`), NOT a full URL or a source-file path. The target domain is already known. If you discover an endpoint at `https://example.com/api/users`, document it as `/api/users`.\n\n**Method consolidation:** Do NOT create separate endpoints for different HTTP methods on the same path. If `/api/users` accepts GET, POST, and DELETE, document it as ONE endpoint with `method: [\"GET\", \"POST\", \"DELETE\"]` and include pentest objectives that cover all methods. This prevents inflated endpoint counts and ensures pentest agents test the endpoint holistically rather than treating each method as isolated.\n\n# EVIDENCE-BASED FINDINGS \u2014 NO HALLUCINATIONS\n\nEvery discovery MUST come from actual tool output:\n- NEVER report endpoints, subdomains, or status codes without running a command to verify them\n- NEVER infer technology stacks without direct evidence (headers, error pages, fingerprints)\n- If a command returns 404 or no results, do NOT fabricate findings\n- ALWAYS follow ALL redirects (HTTP and client-side) \u2014 document only final destinations\n- If a page returns 200, check for client-side redirects (NEXT_REDIRECT, window.location, meta refresh) before documenting\n\n# PHASE 1 \u2014 AUTHENTICATION (MUST BE FIRST WHEN CREDENTIALS ARE PROVIDED)\n\n**Goal:** Establish an authenticated session so all subsequent discovery sees the full attack surface.\n\n**CRITICAL: When credentials are provided, this phase is your FIRST action. Do not skip ahead to recon.**\n\n## Step 1: Follow provided authentication instructions\n\nIf the user prompt contains `<authentication_instructions>`, follow those instructions exactly. They may specify a custom login flow (API call, specific URL, token exchange, etc.). Execute them now.\n\n## Step 2: If no explicit instructions exist but credentials are provided, perform browser login\n\nYour first tool calls should be exactly this sequence:\n1. `browser_navigate` \u2192 go to the target URL (or the login URL if one was provided in credentials)\n2. `browser_snapshot` \u2192 identify the login form fields and submit button\n3. `browser_screenshot` \u2192 capture the login page before filling credentials\n4. `browser_fill` \u2192 fill the username/email field with the provided username\n5. `browser_fill` \u2192 fill the password field with the provided password\n6. `browser_click` \u2192 click the login/submit button\n7. `browser_snapshot` \u2192 confirm login succeeded (look for dashboard content, user menu, redirect away from /login)\n8. `browser_screenshot` \u2192 capture the post-login state for evidence\n\n## Step 3: After login, extract and save session state\n\n7. `browser_get_cookies` \u2192 capture all session cookies\n8. `browser_evaluate` with `document.cookie` \u2192 backup cookie extraction\n9. Save the cookie values \u2014 you will need to include them as `-b \"cookie=value\"` in curl commands for authenticated recon later\n\n**Only after completing login do you proceed to Phase 2 (or Phase 3 if subdomains are disabled).**\n\n## If NO credentials are provided:\n\n- Skip this phase entirely\n- Proceed directly to Phase 2 (or Phase 3 if subdomains are disabled)\n- Note any login pages you find during discovery as assets and flag them for pentest agents\n\n## Session expiry:\n\nIf you start getting 401/403 on endpoints that previously returned 200, re-authenticate using the same browser login flow. If re-authentication fails on the same endpoint immediately, it is a permissions issue \u2014 document it and move on.\n\n# PHASE 2 \u2014 SUBDOMAIN ENUMERATION\n\n**This phase only runs if subdomain enumeration is ENABLED in the session config.** If disabled, skip entirely and move to Phase 3.\n\n**Goal:** Discover all subdomains of the target domain using command-line techniques.\n\nUse `execute_command` for each technique below:\n\n## 2a. DNS brute-force with dig\n\nQuery common subdomain prefixes against the target domain:\n\n```bash\n# Test subdomains in batch \u2014 verify each resolves\nfor sub in www api admin dev staging test app portal login mail ftp vpn cdn static assets blog docs wiki help support status monitor grafana jenkins git gitlab ci cd beta alpha demo sandbox internal intranet partner shop store api-v1 api-v2 m mobile sso oauth auth accounts dashboard panel manage backup old legacy archive v1 v2 v3 db mysql postgres redis elastic search; do\n result=$(dig +short \"$sub.DOMAIN\" A 2>/dev/null)\n if [ -n \"$result\" ]; then\n echo \"[FOUND] $sub.DOMAIN -> $result\"\n fi\ndone\n```\n\nSplit into multiple `execute_command` calls if the list is long to avoid timeouts.\n\n## 2b. Certificate transparency logs\n\n```bash\n# Query crt.sh for certificate transparency records\ncurl -s \"https://crt.sh/?q=%25.DOMAIN&output=json\" | jq -r '.[].name_value' 2>/dev/null | sort -u\n```\n\n## 2c. Reverse DNS on discovered IPs\n\n```bash\ndig -x IP_ADDRESS\n```\n\n## 2d. DNS zone transfer attempt\n\n```bash\n# Get nameservers then attempt zone transfer\ndig NS DOMAIN +short | while read ns; do dig axfr @\"$ns\" DOMAIN; done\n```\n\n**For every discovered subdomain:**\n- Resolve it to an IP with `dig +short SUBDOMAIN A`\n- Check if it serves HTTP(S) with `curl -L -I --max-time 5 https://SUBDOMAIN` and `curl -L -I --max-time 5 http://SUBDOMAIN`\n- Document it using `document_app` (for the subdomain as an application)\n\n# PHASE 3 \u2014 ENDPOINT EXTRACTION FROM JAVASCRIPT\n\n**Goal:** Systematically extract API endpoints, routes, and URLs from JavaScript source code.\n\n## 3a. Find JavaScript files\n\n```bash\n# Download the page and extract all JS file URLs\ncurl -s TARGET_URL | grep -oE 'src=\"[^\"]*\\.js[^\"]*\"' | sed 's/src=\"//;s/\"//'\n```\n\nAlso use the browser:\n- `browser_navigate` to the target URL\n- `browser_evaluate` with: `Array.from(document.querySelectorAll('script[src]')).map(s => s.src)`\n\n## 3b. Download and analyze each JS bundle\n\nFor each discovered JS file:\n\n```bash\n# Download the JS file and extract endpoint patterns\ncurl -s JS_FILE_URL | grep -oE '\"(/[a-zA-Z0-9_/-]+)\"' | sort -u\ncurl -s JS_FILE_URL | grep -oE \"'(/[a-zA-Z0-9_/-]+)'\" | sort -u\ncurl -s JS_FILE_URL | grep -oE 'fetch\\(\"[^\"]*\"\\)' | sort -u\ncurl -s JS_FILE_URL | grep -oE 'axios\\.[a-z]+\\(\"[^\"]*\"' | sort -u\ncurl -s JS_FILE_URL | grep -oE '\\$\\.ajax\\({[^}]*url:[^}]*}' | sort -u\n```\n\n## 3c. Extract framework-specific routes via browser\n\nUse `browser_evaluate` to check for:\n\n```javascript\n// Next.js (very common)\nJSON.stringify(window.__NEXT_DATA__)\n\n// React/Redux state\nJSON.stringify(window.__INITIAL_STATE__ || window.__PRELOADED_STATE__)\n\n// Generic API config\nJSON.stringify(window.API_URL || window.API_BASE_URL || window.config || window.ENV)\n\n// All links on the page (including JS-generated)\nArray.from(document.querySelectorAll('a[href]')).map(a => a.href)\n\n// All form actions\nArray.from(document.querySelectorAll('form[action]')).map(f => f.action)\n```\n\n## 3d. Check for API documentation endpoints\n\n```bash\nfor path in /swagger.json /swagger.yaml /openapi.json /openapi.yaml /api-docs /api/docs /docs /swagger-ui /redoc /graphql; do\n status=$(curl -o /dev/null -s -w \"%{http_code}\" -L --max-time 5 \"TARGET_URL$path\")\n if [ \"$status\" != \"404\" ] && [ \"$status\" != \"000\" ]; then\n echo \"[FOUND] $path -> HTTP $status\"\n fi\ndone\n```\n\nIf swagger/openapi is found, download and parse it for all endpoint paths.\n\n# PHASE 4 \u2014 BROWSER-BASED ATTACK SURFACE DISCOVERY\n\n**Goal:** Use the browser to explore the application as a real user would, discovering attack surface that curl and static analysis miss.\n\n## 4a. Initial page exploration\n\n1. `browser_navigate` to the target URL\n2. `browser_snapshot` to understand the page structure\n3. `browser_screenshot` to document what the main page looks like\n\n## 4b. Navigate key areas\n\nFor each discovered link, admin panel, dashboard, or functional area:\n1. `browser_navigate` to the URL\n2. `browser_snapshot` to identify interactive elements (forms, buttons, inputs)\n3. `browser_screenshot` to capture the page \u2014 a human will review your run, so screenshots provide essential visual evidence of what you found\n4. Look for:\n - Forms with URL/file/redirect input parameters (SSRF candidates)\n - File upload forms\n - Search forms\n - User profile / settings pages\n - Admin or management interfaces\n - API playground or GraphQL explorer pages\n\n## 4c. Extract hidden data from the browser context\n\nUse `browser_evaluate` to probe for:\n```javascript\n// Service worker routes\nnavigator.serviceWorker?.controller ? 'SW active' : 'No SW'\n\n// WebSocket endpoints\nperformance.getEntriesByType('resource').filter(r => r.name.includes('ws://')).map(r => r.name)\n\n// Embedded JSON data (common in SSR apps)\nArray.from(document.querySelectorAll('script[type=\"application/json\"]')).map(s => s.textContent?.substring(0, 200))\n```\n\n## 4d. Check console for leaked information\n\nUse `browser_console` to look for:\n- Leaked API keys or tokens\n- Debug messages referencing internal endpoints\n- Error messages revealing stack traces or internal URLs\n\n## 4e. Collect cookies\n\nUse `browser_get_cookies` to document all cookies set by the application \u2014 note HttpOnly, Secure, and SameSite flags for each.\n\n# PHASE 5 \u2014 ASSET IDENTIFICATION & PENTEST OBJECTIVES\n\n**Goal:** Consolidate all discoveries into documented assets and define pentest objectives for each.\n\n## 5a. Document applications first, then endpoints\n\n**Step 1: Document each application** using `document_app`:\n- `web_application` \u2014 the target web application (usually one per target domain)\n- `api` \u2014 API services hosted by the target (REST, GraphQL, WebSocket)\n- `full_stack` \u2014 applications serving both UI and API (e.g. Next.js, Django with templates)\n- `domain` / `subdomain` \u2014 only subdomains that host the target's own services\n- `database` / `cloud_resource` / `storage` \u2014 owned infrastructure (databases, S3 buckets, etc.)\n\n**Step 2: Document each endpoint** using `document_endpoint`:\n- `api-endpoint` \u2014 individual API routes (e.g., /api/users, /auth/login, /graphql)\n- `web-endpoint` \u2014 web pages and views (e.g., /dashboard, /settings)\n- `asset` \u2014 other discoverable resources\n\nEach `document_endpoint` call MUST specify the `appName` of the parent application.\n\n**DO NOT document external/third-party services** \u2014 only target-owned apps and endpoints.\n\nFor each endpoint, include:\n- HTTP route in `routePath` (e.g., `/api/users`, `/dashboard`) \u2014 this is the URL path, NOT a file path\n- HTTP method(s) in `method` (e.g., `[\"GET\", \"POST\"]`; use `\"PAGE\"` for web pages)\n- Authentication requirements in `authRequired`\n- Risk level (LOW / MEDIUM / HIGH / CRITICAL)\n## 5b. Include authentication info with every target\n\nIf credentials or auth cookies were obtained, include them with every target that requires authentication:\n```\nauthenticationInfo: {\n method: \"cookie-based session after browser login\",\n details: \"Navigate to /login, fill username+password, submit form\",\n credentials: \"user:pass\",\n cookies: \"session=abc123...\",\n headers: \"Authorization: Bearer xyz...\"\n}\n```\n\n# PHASE 6 \u2014 GENERATE THE REPORT\n\n**Goal:** Produce the final attack surface report using the `create_attack_surface_report` tool.\n\nBefore calling the tool, verify:\n- [ ] All discovered target-owned subdomains are documented\n- [ ] All discovered target-owned endpoints are documented\n- [ ] All discovered target-owned services and ports are documented\n- [ ] Every target has a specific pentest objective\n- [ ] Authentication info is included with authenticated targets\n- [ ] External/third-party services are NOT documented as assets (mentioned in keyFindings only)\n\nCall `create_attack_surface_report` with:\n\n- **summary**: `{ totalAssets, totalDomains, analysisComplete: true }`\n- **discoveredAssets**: Array of strings, one per asset. Format: `\"asset.example.com - Description (technology) - Ports/services\"`\n- **targets**: Array of objects, each with:\n - `target`: The URL or host\n - `objective`: Specific vulnerability classes to test (see table above)\n - `rationale`: Why this target warrants testing\n- **keyFindings**: Array of strings. Format: `\"[SEVERITY] Description\"`\n\nInclude every target-owned asset and target. Do not summarize or skip assets that belong to the target \u2014 the orchestrator needs the full picture. Do NOT include external/third-party services as assets or targets (mention them in keyFindings instead).\n\nThis tool call MUST be the final action you take.\n\n# TOOL REFERENCE\n\n## execute_command\nRun shell commands for reconnaissance. Use for: dig, curl, nmap, whois, and all command-line recon.\n\n## document_app\nRecord a discovered target-owned application (web app, API, admin panel, subdomain service). Use for top-level application entities.\n\n## document_endpoint\nRecord a discovered endpoint within an application. Must specify `appName` to link to the parent app. For API endpoints, consolidate all HTTP methods on the same path into a single entry using `method` (e.g., `[\"GET\", \"POST\"]`).\n\n## create_attack_surface_report\nSubmit the final structured report. Call this ONCE at the very end with complete results. This ends the run.\n\n## Browser tools\n- `browser_navigate` \u2014 Load a URL in the browser\n- `browser_snapshot` \u2014 Get the page's accessibility tree (structure and interactive elements)\n- `browser_screenshot` \u2014 Capture a screenshot for evidence\n- `browser_click` \u2014 Click an element on the page\n- `browser_fill` \u2014 Fill a form field with a value\n- `browser_evaluate` \u2014 Execute JavaScript in the browser context and return the result\n- `browser_console` \u2014 Retrieve console messages (errors, warnings, debug info)\n- `browser_get_cookies` \u2014 Get all cookies for the current page\n\n# IMPORTANT RULES\n\n1. **Act, don't ask.** Never say \"Would you like me to...\" \u2014 just do it.\n2. **Verify everything.** Every finding must have a command and output backing it.\n3. **Follow redirects.** Use `curl -L -I` and check for client-side redirects before documenting any endpoint.\n4. **Breadth over depth.** Find everything; test nothing deeply.\n5. **Document as you go.** Call `document_app` / `document_endpoint` after every verified target-owned discovery, not in bulk at the end.\n6. **End with the report.** Your final action must be `create_attack_surface_report`.\n7. **No follow-up requests.** The user cannot respond. Do not end with questions or suggestions.\n8. **Screenshot liberally.** A human reviews your run after it completes. Every time you navigate to a new page, submit a form, complete a login step, or discover something notable in the browser, call `browser_screenshot` so the reviewer can see exactly what you saw. Aim for at least one screenshot per distinct page or state change. Screenshots are cheap \u2014 missing visual context is not.\n\nIf resuming from a previous run, review the assets already in the session assets folder and continue where you left off.";
|
|
@@ -0,0 +1,284 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
import { RiskScoreBreakdownSchema, RiskScoreSchema } from "../whiteboxAttackSurface";
|
|
3
|
+
export type { RiskScore, RiskScoreBreakdown } from "../whiteboxAttackSurface";
|
|
4
|
+
export { RiskScoreBreakdownSchema, RiskScoreSchema };
|
|
5
|
+
/**
|
|
6
|
+
* Shared schemas for attack surface agent tools.
|
|
7
|
+
* These schemas are exported for use by external consumers (e.g., Console integration)
|
|
8
|
+
* to validate and type persistence callbacks without duplicating schema definitions.
|
|
9
|
+
*/
|
|
10
|
+
/**
|
|
11
|
+
* Risk level enum
|
|
12
|
+
*/
|
|
13
|
+
export declare const RiskLevelEnum: z.ZodEnum<{
|
|
14
|
+
CRITICAL: "CRITICAL";
|
|
15
|
+
HIGH: "HIGH";
|
|
16
|
+
MEDIUM: "MEDIUM";
|
|
17
|
+
LOW: "LOW";
|
|
18
|
+
}>;
|
|
19
|
+
/**
|
|
20
|
+
* Schema for pentest target in attack surface report
|
|
21
|
+
*/
|
|
22
|
+
export declare const PentestTargetSchema: z.ZodObject<{
|
|
23
|
+
target: z.ZodString;
|
|
24
|
+
objective: z.ZodString;
|
|
25
|
+
rationale: z.ZodString;
|
|
26
|
+
authenticationInfo: z.ZodOptional<z.ZodObject<{
|
|
27
|
+
method: z.ZodString;
|
|
28
|
+
details: z.ZodString;
|
|
29
|
+
credentials: z.ZodOptional<z.ZodString>;
|
|
30
|
+
cookies: z.ZodOptional<z.ZodString>;
|
|
31
|
+
headers: z.ZodOptional<z.ZodString>;
|
|
32
|
+
}, z.core.$strip>>;
|
|
33
|
+
}, z.core.$strip>;
|
|
34
|
+
/**
|
|
35
|
+
* Schema for attack surface summary
|
|
36
|
+
*/
|
|
37
|
+
export declare const AttackSurfaceSummarySchema: z.ZodObject<{
|
|
38
|
+
totalAssets: z.ZodNumber;
|
|
39
|
+
totalDomains: z.ZodNumber;
|
|
40
|
+
analysisComplete: z.ZodBoolean;
|
|
41
|
+
}, z.core.$strip>;
|
|
42
|
+
/**
|
|
43
|
+
* Schema for create_attack_surface_report tool input
|
|
44
|
+
*/
|
|
45
|
+
export declare const AttackSurfaceReportSchema: z.ZodObject<{
|
|
46
|
+
summary: z.ZodObject<{
|
|
47
|
+
totalAssets: z.ZodNumber;
|
|
48
|
+
totalDomains: z.ZodNumber;
|
|
49
|
+
analysisComplete: z.ZodBoolean;
|
|
50
|
+
}, z.core.$strip>;
|
|
51
|
+
discoveredAssets: z.ZodArray<z.ZodString>;
|
|
52
|
+
targets: z.ZodArray<z.ZodObject<{
|
|
53
|
+
target: z.ZodString;
|
|
54
|
+
objective: z.ZodString;
|
|
55
|
+
rationale: z.ZodString;
|
|
56
|
+
authenticationInfo: z.ZodOptional<z.ZodObject<{
|
|
57
|
+
method: z.ZodString;
|
|
58
|
+
details: z.ZodString;
|
|
59
|
+
credentials: z.ZodOptional<z.ZodString>;
|
|
60
|
+
cookies: z.ZodOptional<z.ZodString>;
|
|
61
|
+
headers: z.ZodOptional<z.ZodString>;
|
|
62
|
+
}, z.core.$strip>>;
|
|
63
|
+
}, z.core.$strip>>;
|
|
64
|
+
keyFindings: z.ZodPreprocess<z.ZodArray<z.ZodString>>;
|
|
65
|
+
}, z.core.$strip>;
|
|
66
|
+
/**
|
|
67
|
+
* Application types for document_app tool
|
|
68
|
+
*/
|
|
69
|
+
export declare const AppTypeEnum: z.ZodEnum<{
|
|
70
|
+
web_application: "web_application";
|
|
71
|
+
api: "api";
|
|
72
|
+
full_stack: "full_stack";
|
|
73
|
+
database: "database";
|
|
74
|
+
cloud_resource: "cloud_resource";
|
|
75
|
+
storage: "storage";
|
|
76
|
+
domain: "domain";
|
|
77
|
+
subdomain: "subdomain";
|
|
78
|
+
}>;
|
|
79
|
+
/**
|
|
80
|
+
* Endpoint types for document_endpoint tool
|
|
81
|
+
*/
|
|
82
|
+
export declare const EndpointTypeEnum: z.ZodEnum<{
|
|
83
|
+
"api-endpoint": "api-endpoint";
|
|
84
|
+
"web-endpoint": "web-endpoint";
|
|
85
|
+
asset: "asset";
|
|
86
|
+
}>;
|
|
87
|
+
export type { EndpointTransport, GrpcEndpointMetadata, } from "./grpcSchema";
|
|
88
|
+
export { EndpointTransportEnum, GrpcEndpointMetadataSchema, GrpcStreamingTypeEnum, } from "./grpcSchema";
|
|
89
|
+
/**
|
|
90
|
+
* Schema for document_app tool input
|
|
91
|
+
*/
|
|
92
|
+
export declare const DocumentAppSchema: z.ZodObject<{
|
|
93
|
+
appName: z.ZodString;
|
|
94
|
+
appType: z.ZodEnum<{
|
|
95
|
+
web_application: "web_application";
|
|
96
|
+
api: "api";
|
|
97
|
+
full_stack: "full_stack";
|
|
98
|
+
database: "database";
|
|
99
|
+
cloud_resource: "cloud_resource";
|
|
100
|
+
storage: "storage";
|
|
101
|
+
domain: "domain";
|
|
102
|
+
subdomain: "subdomain";
|
|
103
|
+
}>;
|
|
104
|
+
description: z.ZodString;
|
|
105
|
+
framework: z.ZodOptional<z.ZodString>;
|
|
106
|
+
technology: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
107
|
+
authentication: z.ZodOptional<z.ZodString>;
|
|
108
|
+
notes: z.ZodOptional<z.ZodString>;
|
|
109
|
+
domain: z.ZodOptional<z.ZodString>;
|
|
110
|
+
}, z.core.$strip>;
|
|
111
|
+
/**
|
|
112
|
+
* Schema for document_app record (includes metadata added during documentation)
|
|
113
|
+
*/
|
|
114
|
+
export declare const DocumentedAppRecordSchema: z.ZodObject<{
|
|
115
|
+
appName: z.ZodString;
|
|
116
|
+
appType: z.ZodEnum<{
|
|
117
|
+
web_application: "web_application";
|
|
118
|
+
api: "api";
|
|
119
|
+
full_stack: "full_stack";
|
|
120
|
+
database: "database";
|
|
121
|
+
cloud_resource: "cloud_resource";
|
|
122
|
+
storage: "storage";
|
|
123
|
+
domain: "domain";
|
|
124
|
+
subdomain: "subdomain";
|
|
125
|
+
}>;
|
|
126
|
+
description: z.ZodString;
|
|
127
|
+
framework: z.ZodOptional<z.ZodString>;
|
|
128
|
+
technology: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
129
|
+
authentication: z.ZodOptional<z.ZodString>;
|
|
130
|
+
notes: z.ZodOptional<z.ZodString>;
|
|
131
|
+
domain: z.ZodOptional<z.ZodString>;
|
|
132
|
+
discoveredAt: z.ZodString;
|
|
133
|
+
sessionId: z.ZodString;
|
|
134
|
+
target: z.ZodString;
|
|
135
|
+
}, z.core.$strip>;
|
|
136
|
+
/**
|
|
137
|
+
* Schema for document_endpoint tool input
|
|
138
|
+
*/
|
|
139
|
+
export declare const DocumentEndpointSchema: z.ZodObject<{
|
|
140
|
+
appName: z.ZodString;
|
|
141
|
+
routePath: z.ZodString;
|
|
142
|
+
endpointType: z.ZodEnum<{
|
|
143
|
+
"api-endpoint": "api-endpoint";
|
|
144
|
+
"web-endpoint": "web-endpoint";
|
|
145
|
+
asset: "asset";
|
|
146
|
+
}>;
|
|
147
|
+
transport: z.ZodOptional<z.ZodEnum<{
|
|
148
|
+
http: "http";
|
|
149
|
+
grpc: "grpc";
|
|
150
|
+
grpc_web: "grpc_web";
|
|
151
|
+
connect: "connect";
|
|
152
|
+
}>>;
|
|
153
|
+
grpc: z.ZodOptional<z.ZodObject<{
|
|
154
|
+
serviceFqn: z.ZodString;
|
|
155
|
+
method: z.ZodString;
|
|
156
|
+
streamingType: z.ZodDefault<z.ZodEnum<{
|
|
157
|
+
unary: "unary";
|
|
158
|
+
server_stream: "server_stream";
|
|
159
|
+
client_stream: "client_stream";
|
|
160
|
+
bidi: "bidi";
|
|
161
|
+
}>>;
|
|
162
|
+
reflectionAvailable: z.ZodOptional<z.ZodBoolean>;
|
|
163
|
+
schemaSource: z.ZodOptional<z.ZodEnum<{
|
|
164
|
+
unknown: "unknown";
|
|
165
|
+
proto: "proto";
|
|
166
|
+
reflection: "reflection";
|
|
167
|
+
protoset: "protoset";
|
|
168
|
+
js_bundle: "js_bundle";
|
|
169
|
+
gateway_derived: "gateway_derived";
|
|
170
|
+
}>>;
|
|
171
|
+
host: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
172
|
+
frontingGatewayOperation: z.ZodOptional<z.ZodNullable<z.ZodObject<{
|
|
173
|
+
gatewayType: z.ZodEnum<{
|
|
174
|
+
rest: "rest";
|
|
175
|
+
connect: "connect";
|
|
176
|
+
graphql: "graphql";
|
|
177
|
+
}>;
|
|
178
|
+
operation: z.ZodString;
|
|
179
|
+
}, z.core.$strip>>>;
|
|
180
|
+
}, z.core.$strip>>;
|
|
181
|
+
description: z.ZodString;
|
|
182
|
+
method: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodArray<z.ZodString>]>>;
|
|
183
|
+
handler: z.ZodOptional<z.ZodString>;
|
|
184
|
+
file: z.ZodOptional<z.ZodString>;
|
|
185
|
+
line: z.ZodOptional<z.ZodNumber>;
|
|
186
|
+
authRequired: z.ZodOptional<z.ZodBoolean>;
|
|
187
|
+
authentication: z.ZodOptional<z.ZodString>;
|
|
188
|
+
riskLevel: z.ZodPreprocess<z.ZodEnum<{
|
|
189
|
+
CRITICAL: "CRITICAL";
|
|
190
|
+
HIGH: "HIGH";
|
|
191
|
+
MEDIUM: "MEDIUM";
|
|
192
|
+
LOW: "LOW";
|
|
193
|
+
}>>;
|
|
194
|
+
notes: z.ZodOptional<z.ZodString>;
|
|
195
|
+
pentestObjectives: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
196
|
+
businessLogic: z.ZodOptional<z.ZodString>;
|
|
197
|
+
threatModel: z.ZodOptional<z.ZodString>;
|
|
198
|
+
}, z.core.$strip>;
|
|
199
|
+
/**
|
|
200
|
+
* Schema for document_endpoint record (includes metadata added during documentation)
|
|
201
|
+
*/
|
|
202
|
+
export declare const DocumentedEndpointRecordSchema: z.ZodObject<{
|
|
203
|
+
appName: z.ZodString;
|
|
204
|
+
routePath: z.ZodString;
|
|
205
|
+
endpointType: z.ZodEnum<{
|
|
206
|
+
"api-endpoint": "api-endpoint";
|
|
207
|
+
"web-endpoint": "web-endpoint";
|
|
208
|
+
asset: "asset";
|
|
209
|
+
}>;
|
|
210
|
+
transport: z.ZodOptional<z.ZodEnum<{
|
|
211
|
+
http: "http";
|
|
212
|
+
grpc: "grpc";
|
|
213
|
+
grpc_web: "grpc_web";
|
|
214
|
+
connect: "connect";
|
|
215
|
+
}>>;
|
|
216
|
+
grpc: z.ZodOptional<z.ZodObject<{
|
|
217
|
+
serviceFqn: z.ZodString;
|
|
218
|
+
method: z.ZodString;
|
|
219
|
+
streamingType: z.ZodDefault<z.ZodEnum<{
|
|
220
|
+
unary: "unary";
|
|
221
|
+
server_stream: "server_stream";
|
|
222
|
+
client_stream: "client_stream";
|
|
223
|
+
bidi: "bidi";
|
|
224
|
+
}>>;
|
|
225
|
+
reflectionAvailable: z.ZodOptional<z.ZodBoolean>;
|
|
226
|
+
schemaSource: z.ZodOptional<z.ZodEnum<{
|
|
227
|
+
unknown: "unknown";
|
|
228
|
+
proto: "proto";
|
|
229
|
+
reflection: "reflection";
|
|
230
|
+
protoset: "protoset";
|
|
231
|
+
js_bundle: "js_bundle";
|
|
232
|
+
gateway_derived: "gateway_derived";
|
|
233
|
+
}>>;
|
|
234
|
+
host: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
235
|
+
frontingGatewayOperation: z.ZodOptional<z.ZodNullable<z.ZodObject<{
|
|
236
|
+
gatewayType: z.ZodEnum<{
|
|
237
|
+
rest: "rest";
|
|
238
|
+
connect: "connect";
|
|
239
|
+
graphql: "graphql";
|
|
240
|
+
}>;
|
|
241
|
+
operation: z.ZodString;
|
|
242
|
+
}, z.core.$strip>>>;
|
|
243
|
+
}, z.core.$strip>>;
|
|
244
|
+
description: z.ZodString;
|
|
245
|
+
method: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodArray<z.ZodString>]>>;
|
|
246
|
+
handler: z.ZodOptional<z.ZodString>;
|
|
247
|
+
file: z.ZodOptional<z.ZodString>;
|
|
248
|
+
line: z.ZodOptional<z.ZodNumber>;
|
|
249
|
+
authRequired: z.ZodOptional<z.ZodBoolean>;
|
|
250
|
+
authentication: z.ZodOptional<z.ZodString>;
|
|
251
|
+
riskLevel: z.ZodPreprocess<z.ZodEnum<{
|
|
252
|
+
CRITICAL: "CRITICAL";
|
|
253
|
+
HIGH: "HIGH";
|
|
254
|
+
MEDIUM: "MEDIUM";
|
|
255
|
+
LOW: "LOW";
|
|
256
|
+
}>>;
|
|
257
|
+
notes: z.ZodOptional<z.ZodString>;
|
|
258
|
+
pentestObjectives: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
259
|
+
businessLogic: z.ZodOptional<z.ZodString>;
|
|
260
|
+
threatModel: z.ZodOptional<z.ZodString>;
|
|
261
|
+
discoveredAt: z.ZodString;
|
|
262
|
+
sessionId: z.ZodString;
|
|
263
|
+
target: z.ZodString;
|
|
264
|
+
riskScore: z.ZodOptional<z.ZodObject<{
|
|
265
|
+
score: z.ZodNumber;
|
|
266
|
+
explanation: z.ZodString;
|
|
267
|
+
breakdown: z.ZodObject<{
|
|
268
|
+
exposure: z.ZodNumber;
|
|
269
|
+
dataSensitivity: z.ZodNumber;
|
|
270
|
+
functionCriticality: z.ZodNumber;
|
|
271
|
+
securityIndicators: z.ZodNumber;
|
|
272
|
+
}, z.core.$strip>;
|
|
273
|
+
}, z.core.$strip>>;
|
|
274
|
+
}, z.core.$strip>;
|
|
275
|
+
export type AppType = z.infer<typeof AppTypeEnum>;
|
|
276
|
+
export type EndpointType = z.infer<typeof EndpointTypeEnum>;
|
|
277
|
+
export type RiskLevel = z.infer<typeof RiskLevelEnum>;
|
|
278
|
+
export type DocumentAppInput = z.infer<typeof DocumentAppSchema>;
|
|
279
|
+
export type DocumentedAppRecord = z.infer<typeof DocumentedAppRecordSchema>;
|
|
280
|
+
export type DocumentEndpointInput = z.infer<typeof DocumentEndpointSchema>;
|
|
281
|
+
export type DocumentedEndpointRecord = z.infer<typeof DocumentedEndpointRecordSchema>;
|
|
282
|
+
export type PentestTarget = z.infer<typeof PentestTargetSchema>;
|
|
283
|
+
export type AttackSurfaceSummary = z.infer<typeof AttackSurfaceSummarySchema>;
|
|
284
|
+
export type AttackSurfaceReport = z.infer<typeof AttackSurfaceReportSchema>;
|
|
@@ -0,0 +1,144 @@
|
|
|
1
|
+
import"../../../../chunk-7gjdygcx.js";
|
|
2
|
+
import"../../../../chunk-3w05jmk6.js";
|
|
3
|
+
import"../../../../chunk-jdjagvgr.js";
|
|
4
|
+
import"../../../../chunk-2njv7wz3.js";
|
|
5
|
+
import"../../../../chunk-3502z798.js";
|
|
6
|
+
import"../../../../chunk-8vhr65w3.js";
|
|
7
|
+
import"../../../../chunk-g8d2x00m.js";
|
|
8
|
+
import"../../../../chunk-fy3bbbqy.js";
|
|
9
|
+
import"../../../../chunk-mv74mq5n.js";
|
|
10
|
+
import"../../../../chunk-517rf135.js";
|
|
11
|
+
import"../../../../chunk-b8eq85d2.js";
|
|
12
|
+
import"../../../../chunk-02awpt3c.js";
|
|
13
|
+
import"../../../../chunk-f04pr76h.js";
|
|
14
|
+
import"../../../../chunk-t5bt5vn1.js";
|
|
15
|
+
import"../../../../chunk-wr6ke041.js";
|
|
16
|
+
import"../../../../chunk-eb4h4k1f.js";
|
|
17
|
+
import {
|
|
18
|
+
EndpointTransportEnum2,
|
|
19
|
+
GrpcStreamingTypeEnum2,
|
|
20
|
+
GrpcEndpointMetadataSchema2
|
|
21
|
+
} from "../../../../chunk-vx228eeq.js";
|
|
22
|
+
import"../../../../chunk-bx94rwt5.js";
|
|
23
|
+
import"../../../../chunk-ja7j565c.js";
|
|
24
|
+
import"../../../../chunk-3q89v4xv.js";
|
|
25
|
+
import"../../../../chunk-zrbqn62x.js";
|
|
26
|
+
import"../../../../chunk-q5e23acz.js";
|
|
27
|
+
import"../../../../chunk-k5m5rasy.js";
|
|
28
|
+
import {
|
|
29
|
+
RiskScoreBreakdownSchema2,
|
|
30
|
+
RiskScoreSchema2
|
|
31
|
+
} from "../../../../chunk-xpfg2fbk.js";
|
|
32
|
+
import"../../../../chunk-vt9spgd1.js";
|
|
33
|
+
|
|
34
|
+
// src/core/agents/specialized/attackSurface/schemas.ts
|
|
35
|
+
import { z } from "zod";
|
|
36
|
+
var RiskLevelEnum = z.enum(["LOW", "MEDIUM", "HIGH", "CRITICAL"]);
|
|
37
|
+
var PentestTargetSchema = z.object({
|
|
38
|
+
target: z.string().describe("Target URL, IP, or domain"),
|
|
39
|
+
objective: z.string().describe("Pentest objective for this target"),
|
|
40
|
+
rationale: z.string().describe("Why this target needs deep testing"),
|
|
41
|
+
authenticationInfo: z.object({
|
|
42
|
+
method: z.string(),
|
|
43
|
+
details: z.string(),
|
|
44
|
+
credentials: z.string().optional(),
|
|
45
|
+
cookies: z.string().optional(),
|
|
46
|
+
headers: z.string().optional()
|
|
47
|
+
}).optional()
|
|
48
|
+
});
|
|
49
|
+
var AttackSurfaceSummarySchema = z.object({
|
|
50
|
+
totalAssets: z.number(),
|
|
51
|
+
totalDomains: z.number(),
|
|
52
|
+
analysisComplete: z.boolean()
|
|
53
|
+
});
|
|
54
|
+
var AttackSurfaceReportSchema = z.object({
|
|
55
|
+
summary: AttackSurfaceSummarySchema.describe("Summary statistics"),
|
|
56
|
+
discoveredAssets: z.array(z.string()).describe("List of discovered assets with descriptions. Format: 'example.com - Web server (nginx) - Ports 80,443'"),
|
|
57
|
+
targets: z.array(PentestTargetSchema).describe("ALL targets for deep penetration testing"),
|
|
58
|
+
keyFindings: z.preprocess((val) => Array.isArray(val) ? val : [val], z.array(z.string()).describe("Key findings from reconnaissance. Format: '[SEVERITY] Finding description'"))
|
|
59
|
+
});
|
|
60
|
+
var AppTypeEnum = z.enum([
|
|
61
|
+
"web_application",
|
|
62
|
+
"api",
|
|
63
|
+
"full_stack",
|
|
64
|
+
"domain",
|
|
65
|
+
"subdomain",
|
|
66
|
+
"database",
|
|
67
|
+
"cloud_resource",
|
|
68
|
+
"storage"
|
|
69
|
+
]);
|
|
70
|
+
var EndpointTypeEnum = z.enum([
|
|
71
|
+
"api-endpoint",
|
|
72
|
+
"web-endpoint",
|
|
73
|
+
"asset"
|
|
74
|
+
]);
|
|
75
|
+
var DocumentAppSchema = z.object({
|
|
76
|
+
appName: z.string().describe("Unique name for the application (e.g., 'Main Web App', 'Admin API', 'api.example.com')"),
|
|
77
|
+
appType: AppTypeEnum.describe("Type of application discovered"),
|
|
78
|
+
description: z.string().describe("Detailed description of the application including what it is and why it's relevant"),
|
|
79
|
+
framework: z.string().optional().describe("Technology framework or stack (e.g., 'Next.js', 'Express + React', 'Django')"),
|
|
80
|
+
technology: z.array(z.string()).optional().describe("Technology stack (e.g., ['Node.js', 'Express', 'MongoDB'])"),
|
|
81
|
+
authentication: z.string().optional().describe("Authentication type if known"),
|
|
82
|
+
notes: z.string().optional().describe("Additional notes or observations"),
|
|
83
|
+
domain: z.string().optional().describe("Base URL / domain this application is associated with (e.g., 'https://example.com'). " + "Used to map applications to monitored domains. " + "For cloud resources set this to the canonical resource URL " + "(e.g., 'https://bucket-name.s3.amazonaws.com').")
|
|
84
|
+
});
|
|
85
|
+
var DocumentedAppRecordSchema = DocumentAppSchema.extend({
|
|
86
|
+
discoveredAt: z.string().describe("ISO timestamp when app was discovered"),
|
|
87
|
+
sessionId: z.string().describe("Session ID where app was discovered"),
|
|
88
|
+
target: z.string().describe("Target being analyzed when app was found")
|
|
89
|
+
});
|
|
90
|
+
var DocumentEndpointSchema = z.object({
|
|
91
|
+
appName: z.string().describe("Name of the parent application this endpoint belongs to. " + "Must match the appName used in a prior document_app call."),
|
|
92
|
+
routePath: z.string().describe("The endpoint's unique identity — its HTTP route or access pattern. " + "This is the URL path a client requests, NOT a source-file path. " + "Examples: '/api/users', '/dashboard', '/auth/login', " + "'/{objectKey}?X-Amz-Signature=...', 'arn:aws:s3:::bucket-name'. " + "For cloud-resource endpoints (endpointType 'asset') use the specific " + "access pattern, not the base domain URL (which is stored on the parent " + "application). The route path is the endpoint's display identity — there " + "is no separate name field."),
|
|
93
|
+
endpointType: EndpointTypeEnum.describe("Type of endpoint: 'api-endpoint' for REST/GraphQL APIs, " + "'web-endpoint' for pages/views, 'asset' for other resources. " + "A gRPC method is still 'api-endpoint' — set `transport` to mark it gRPC."),
|
|
94
|
+
transport: EndpointTransportEnum2.optional().describe("Wire transport. Omit or 'http' for normal endpoints. Set 'grpc' " + "(or 'grpc_web' / 'connect') for a gRPC method and populate `grpc`."),
|
|
95
|
+
grpc: GrpcEndpointMetadataSchema2.optional().describe("gRPC attributes — required when transport is a gRPC variant. Put the " + "wire path '/package.Service/Method' in `routePath`; do not glue on a host."),
|
|
96
|
+
description: z.string().describe("Detailed description of the endpoint including what it does"),
|
|
97
|
+
method: z.union([z.string(), z.array(z.string())]).optional().describe("HTTP method(s) supported (e.g., 'GET', 'POST', or ['GET', 'POST', 'DELETE']). " + "Use 'PAGE' for web pages/views."),
|
|
98
|
+
handler: z.string().optional().describe("Handler function or component name (whitebox analysis)"),
|
|
99
|
+
file: z.string().optional().describe("Source-code file where this endpoint is defined, e.g. 'src/routes/users.ts'. " + "This is the source-code location, NOT the HTTP route — the HTTP route " + "belongs in 'routePath'."),
|
|
100
|
+
line: z.number().optional().describe("Line number in the source file (whitebox analysis)"),
|
|
101
|
+
authRequired: z.boolean().optional().describe("Whether authentication appears to be required"),
|
|
102
|
+
authentication: z.string().optional().describe("Authentication details if known"),
|
|
103
|
+
riskLevel: z.preprocess((val) => {
|
|
104
|
+
if (typeof val === "string") {
|
|
105
|
+
const upper = val.toUpperCase();
|
|
106
|
+
if (upper.includes("CRITICAL"))
|
|
107
|
+
return "CRITICAL";
|
|
108
|
+
if (upper.includes("HIGH"))
|
|
109
|
+
return "HIGH";
|
|
110
|
+
if (upper.includes("MEDIUM"))
|
|
111
|
+
return "MEDIUM";
|
|
112
|
+
if (upper.includes("LOW"))
|
|
113
|
+
return "LOW";
|
|
114
|
+
}
|
|
115
|
+
return val;
|
|
116
|
+
}, RiskLevelEnum).describe("Risk level: LOW-CRITICAL (exposed/sensitive)"),
|
|
117
|
+
notes: z.string().optional().describe("Additional notes or observations about the endpoint"),
|
|
118
|
+
pentestObjectives: z.array(z.string()).optional().describe("Flattened markdown strings — one per adversarial test objective — derived from the " + "endpoint analysis. Each objective embeds title, hypothesis, prerequisites, setup, " + "procedure, and success signal in a single block."),
|
|
119
|
+
businessLogic: z.string().optional().describe("Comprehensive business-logic model describing what the endpoint does, its actors, " + "data flow, invariants, trust boundaries, and analysis gaps."),
|
|
120
|
+
threatModel: z.string().optional().describe("Comprehensive threat model grounded in the business logic, covering attacker profiles, " + "attack vectors (with entry points, mechanisms, signals, likelihood, and impact), and " + "risk assessment.")
|
|
121
|
+
});
|
|
122
|
+
var DocumentedEndpointRecordSchema = DocumentEndpointSchema.extend({
|
|
123
|
+
discoveredAt: z.string().describe("ISO timestamp when endpoint was discovered"),
|
|
124
|
+
sessionId: z.string().describe("Session ID where endpoint was discovered"),
|
|
125
|
+
target: z.string().describe("Target being analyzed when endpoint was found"),
|
|
126
|
+
riskScore: RiskScoreSchema2.optional().describe("Computed risk score with breakdown")
|
|
127
|
+
});
|
|
128
|
+
export {
|
|
129
|
+
AppTypeEnum,
|
|
130
|
+
AttackSurfaceReportSchema,
|
|
131
|
+
AttackSurfaceSummarySchema,
|
|
132
|
+
DocumentAppSchema,
|
|
133
|
+
DocumentEndpointSchema,
|
|
134
|
+
DocumentedAppRecordSchema,
|
|
135
|
+
DocumentedEndpointRecordSchema,
|
|
136
|
+
EndpointTransportEnum2 as EndpointTransportEnum,
|
|
137
|
+
EndpointTypeEnum,
|
|
138
|
+
GrpcEndpointMetadataSchema2 as GrpcEndpointMetadataSchema,
|
|
139
|
+
GrpcStreamingTypeEnum2 as GrpcStreamingTypeEnum,
|
|
140
|
+
PentestTargetSchema,
|
|
141
|
+
RiskLevelEnum,
|
|
142
|
+
RiskScoreBreakdownSchema2 as RiskScoreBreakdownSchema,
|
|
143
|
+
RiskScoreSchema2 as RiskScoreSchema
|
|
144
|
+
};
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Type definitions for Attack Surface Analysis results
|
|
3
|
+
* These types match the simplified answer tool schema
|
|
4
|
+
*/
|
|
5
|
+
export interface AttackSurfaceAnalysisResults {
|
|
6
|
+
summary: AttackSurfaceSummary;
|
|
7
|
+
discoveredAssets: string[];
|
|
8
|
+
targets: PentestTarget[];
|
|
9
|
+
keyFindings: string[];
|
|
10
|
+
}
|
|
11
|
+
export interface AttackSurfaceSummary {
|
|
12
|
+
totalAssets: number;
|
|
13
|
+
totalDomains: number;
|
|
14
|
+
highValueTargets: number;
|
|
15
|
+
analysisComplete: boolean;
|
|
16
|
+
}
|
|
17
|
+
export interface PentestTarget {
|
|
18
|
+
target: string;
|
|
19
|
+
objective: string;
|
|
20
|
+
rationale: string;
|
|
21
|
+
authenticationInfo?: {
|
|
22
|
+
method: string;
|
|
23
|
+
details: string;
|
|
24
|
+
credentials?: string;
|
|
25
|
+
cookies?: string;
|
|
26
|
+
headers?: string;
|
|
27
|
+
};
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* Helper function to load attack surface results from a session
|
|
31
|
+
*/
|
|
32
|
+
export declare function loadAttackSurfaceResults(resultsPath: string): AttackSurfaceAnalysisResults;
|