@pensar/apex 2.1.3-canary.a2e99e97 → 2.1.3-canary.a5cb8acd

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (54) hide show
  1. package/build/{agent-4vm9m2ft.js → agent-54x487zg.js} +7 -7
  2. package/build/{agent-tk933cmw.js → agent-reg9f778.js} +9 -9
  3. package/build/agent-xa8apgss.js +19 -0
  4. package/build/{apps-4ydk4b5z.js → apps-4y0a12m7.js} +16 -16
  5. package/build/{auth-9wbcvarq.js → auth-zsxfecae.js} +16 -16
  6. package/build/authentication-36ac0897.js +19 -0
  7. package/build/blackboxAgent-drdxaq73.js +19 -0
  8. package/build/{blackboxPentest-52ed5674.js → blackboxPentest-an279yvd.js} +14 -14
  9. package/build/{cli-jx3sh6sh.js → cli-2f4jnxqt.js} +1 -1
  10. package/build/{cli-2yqc0vnm.js → cli-2zvg99t3.js} +1 -1
  11. package/build/{cli-84kpy9q6.js → cli-3v951d59.js} +38 -5
  12. package/build/{cli-3x9ygtbv.js → cli-4vej2x2z.js} +1 -1
  13. package/build/{cli-86hen4re.js → cli-5mqrms9z.js} +32 -7
  14. package/build/{cli-192yezw4.js → cli-6vc9rqa0.js} +3 -3
  15. package/build/{cli-f2bq20gj.js → cli-b857c2t8.js} +2 -2
  16. package/build/{cli-pmf3g5b8.js → cli-e4qd6ak2.js} +2 -2
  17. package/build/{cli-hzw5gtyt.js → cli-eaxc6gjs.js} +1 -1
  18. package/build/{cli-r0rzk777.js → cli-g3t5c539.js} +1061 -122
  19. package/build/{cli-t4276f9k.js → cli-hmjrxmrm.js} +1 -1
  20. package/build/{cli-z43s0k01.js → cli-je9z9d62.js} +3 -3
  21. package/build/{cli-8fx3r1dj.js → cli-jyehjpkn.js} +4 -4
  22. package/build/{cli-b0jq621d.js → cli-qbz3dfr8.js} +2 -2
  23. package/build/{cli-tdgq36q1.js → cli-r58r36mr.js} +1 -1
  24. package/build/{cli-gpvaz7xr.js → cli-ww1t5xec.js} +131 -23
  25. package/build/{cli-rsv7cf68.js → cli-zrrvpkb7.js} +11 -5
  26. package/build/cli.js +34 -34
  27. package/build/{config-hfjj9ezh.js → config-3hsxw442.js} +3 -3
  28. package/build/{doctor-7kct1dej.js → doctor-ssjgac86.js} +6 -6
  29. package/build/{fastStrike-1zd4mz1b.js → fastStrike-684ckcm1.js} +9 -9
  30. package/build/{fixes-qe5rdb3d.js → fixes-wt582myy.js} +16 -16
  31. package/build/{index-q9c8pjd9.js → index-ak4sh73z.js} +6 -6
  32. package/build/{index-4vc4m36f.js → index-fz49534d.js} +4 -4
  33. package/build/{index-3bv2yd2r.js → index-k9gy8903.js} +9 -9
  34. package/build/{index-vx40h3qp.js → index-np421yhh.js} +22 -21
  35. package/build/{index-1trvqqeg.js → index-rztngs07.js} +3 -3
  36. package/build/{index-vzzeev14.js → index-txgcngtp.js} +8 -8
  37. package/build/{index-t0292j04.js → index-v4jtegsw.js} +2 -2
  38. package/build/{issues-6d8b9w7f.js → issues-mp0fv7m6.js} +16 -16
  39. package/build/{logs-cfbd2jyf.js → logs-x4mdycy8.js} +16 -16
  40. package/build/{offesecAgent-956zqy2c.js → offesecAgent-nj94gmdp.js} +8 -8
  41. package/build/pentest-feqt1erk.js +29 -0
  42. package/build/{pentests-sg9ewjha.js → pentests-z1ptrn9e.js} +16 -16
  43. package/build/{targetedPentest-8nnwew21.js → targetedPentest-exbp20em.js} +9 -9
  44. package/build/{targets-es8w9353.js → targets-5b5pp178.js} +16 -16
  45. package/build/threatModel-va84cay6.js +27 -0
  46. package/build/{uninstall-3t8hjepr.js → uninstall-xd6wpvwp.js} +1 -1
  47. package/build/{upload-0te23vjs.js → upload-r76dzx68.js} +6 -6
  48. package/build/{utils-cpcmtj0f.js → utils-2fvct61t.js} +6 -6
  49. package/package.json +2 -2
  50. package/build/agent-rt8h17s3.js +0 -19
  51. package/build/authentication-vah7w9pm.js +0 -19
  52. package/build/blackboxAgent-sr2bfe3s.js +0 -19
  53. package/build/pentest-5677aybe.js +0 -29
  54. package/build/threatModel-hb40ht6h.js +0 -27
@@ -1,23 +1,23 @@
1
1
  import {
2
2
  OffensiveSecurityAgent
3
- } from "./cli-gpvaz7xr.js";
3
+ } from "./cli-ww1t5xec.js";
4
4
  import {
5
5
  detectOSAndEnhancePrompt
6
- } from "./cli-jx3sh6sh.js";
6
+ } from "./cli-2f4jnxqt.js";
7
7
  import"./cli-c8131c4q.js";
8
8
  import {
9
9
  init_dist,
10
10
  stepCountIs
11
- } from "./cli-86hen4re.js";
12
- import"./cli-3x9ygtbv.js";
11
+ } from "./cli-5mqrms9z.js";
12
+ import"./cli-4vej2x2z.js";
13
13
  import {
14
14
  exports_external,
15
15
  init_zod
16
16
  } from "./cli-3k1x5rn3.js";
17
17
  import"./cli-gpnb45ck.js";
18
- import"./cli-hzw5gtyt.js";
19
- import"./cli-2yqc0vnm.js";
20
- import"./cli-f2bq20gj.js";
18
+ import"./cli-eaxc6gjs.js";
19
+ import"./cli-2zvg99t3.js";
20
+ import"./cli-b857c2t8.js";
21
21
  import"./cli-8rxa073f.js";
22
22
 
23
23
  // src/core/agents/specialized/findingJudge/agent.ts
@@ -4,19 +4,19 @@ import {
4
4
  buildPentestActiveTools,
5
5
  buildPentestPrompt,
6
6
  buildPentestSystemPrompt
7
- } from "./cli-84kpy9q6.js";
7
+ } from "./cli-3v951d59.js";
8
8
  import"./cli-9fsre5pt.js";
9
- import"./cli-tdgq36q1.js";
10
- import"./cli-gpvaz7xr.js";
11
- import"./cli-jx3sh6sh.js";
9
+ import"./cli-r58r36mr.js";
10
+ import"./cli-ww1t5xec.js";
11
+ import"./cli-2f4jnxqt.js";
12
12
  import"./cli-c8131c4q.js";
13
- import"./cli-86hen4re.js";
14
- import"./cli-3x9ygtbv.js";
13
+ import"./cli-5mqrms9z.js";
14
+ import"./cli-4vej2x2z.js";
15
15
  import"./cli-3k1x5rn3.js";
16
16
  import"./cli-gpnb45ck.js";
17
- import"./cli-hzw5gtyt.js";
18
- import"./cli-2yqc0vnm.js";
19
- import"./cli-f2bq20gj.js";
17
+ import"./cli-eaxc6gjs.js";
18
+ import"./cli-2zvg99t3.js";
19
+ import"./cli-b857c2t8.js";
20
20
  import"./cli-8rxa073f.js";
21
21
  export {
22
22
  buildPentestSystemPrompt,
@@ -0,0 +1,19 @@
1
+ import {
2
+ CodeAgent
3
+ } from "./cli-qbz3dfr8.js";
4
+ import"./cli-9fsre5pt.js";
5
+ import"./cli-r58r36mr.js";
6
+ import"./cli-ww1t5xec.js";
7
+ import"./cli-2f4jnxqt.js";
8
+ import"./cli-c8131c4q.js";
9
+ import"./cli-5mqrms9z.js";
10
+ import"./cli-4vej2x2z.js";
11
+ import"./cli-3k1x5rn3.js";
12
+ import"./cli-gpnb45ck.js";
13
+ import"./cli-eaxc6gjs.js";
14
+ import"./cli-2zvg99t3.js";
15
+ import"./cli-b857c2t8.js";
16
+ import"./cli-8rxa073f.js";
17
+ export {
18
+ CodeAgent
19
+ };
@@ -12,27 +12,27 @@ import {
12
12
  searchEndpoints,
13
13
  updateApp,
14
14
  updateEndpoint
15
- } from "./cli-8fx3r1dj.js";
16
- import"./cli-r0rzk777.js";
17
- import"./cli-z43s0k01.js";
18
- import"./cli-pmf3g5b8.js";
19
- import"./cli-84kpy9q6.js";
20
- import"./cli-192yezw4.js";
21
- import"./cli-b0jq621d.js";
22
- import"./cli-rsv7cf68.js";
15
+ } from "./cli-jyehjpkn.js";
16
+ import"./cli-g3t5c539.js";
17
+ import"./cli-je9z9d62.js";
18
+ import"./cli-e4qd6ak2.js";
19
+ import"./cli-3v951d59.js";
20
+ import"./cli-6vc9rqa0.js";
21
+ import"./cli-qbz3dfr8.js";
22
+ import"./cli-zrrvpkb7.js";
23
23
  import"./cli-9fsre5pt.js";
24
- import"./cli-tdgq36q1.js";
25
- import"./cli-gpvaz7xr.js";
26
- import"./cli-jx3sh6sh.js";
24
+ import"./cli-r58r36mr.js";
25
+ import"./cli-ww1t5xec.js";
26
+ import"./cli-2f4jnxqt.js";
27
27
  import"./cli-fw5r7pfj.js";
28
28
  import"./cli-c8131c4q.js";
29
- import"./cli-86hen4re.js";
30
- import"./cli-3x9ygtbv.js";
29
+ import"./cli-5mqrms9z.js";
30
+ import"./cli-4vej2x2z.js";
31
31
  import"./cli-3k1x5rn3.js";
32
32
  import"./cli-gpnb45ck.js";
33
- import"./cli-hzw5gtyt.js";
34
- import"./cli-2yqc0vnm.js";
35
- import"./cli-f2bq20gj.js";
33
+ import"./cli-eaxc6gjs.js";
34
+ import"./cli-2zvg99t3.js";
35
+ import"./cli-b857c2t8.js";
36
36
  import"./cli-8rxa073f.js";
37
37
 
38
38
  // src/cli/apps.ts
@@ -1,19 +1,19 @@
1
1
  #!/usr/bin/env bun
2
- import"./cli-8fx3r1dj.js";
3
- import"./cli-r0rzk777.js";
4
- import"./cli-z43s0k01.js";
5
- import"./cli-pmf3g5b8.js";
6
- import"./cli-84kpy9q6.js";
7
- import"./cli-192yezw4.js";
8
- import"./cli-b0jq621d.js";
9
- import"./cli-rsv7cf68.js";
2
+ import"./cli-jyehjpkn.js";
3
+ import"./cli-g3t5c539.js";
4
+ import"./cli-je9z9d62.js";
5
+ import"./cli-e4qd6ak2.js";
6
+ import"./cli-3v951d59.js";
7
+ import"./cli-6vc9rqa0.js";
8
+ import"./cli-qbz3dfr8.js";
9
+ import"./cli-zrrvpkb7.js";
10
10
  import"./cli-9fsre5pt.js";
11
- import"./cli-tdgq36q1.js";
12
- import"./cli-gpvaz7xr.js";
13
- import"./cli-jx3sh6sh.js";
11
+ import"./cli-r58r36mr.js";
12
+ import"./cli-ww1t5xec.js";
13
+ import"./cli-2f4jnxqt.js";
14
14
  import"./cli-fw5r7pfj.js";
15
15
  import"./cli-c8131c4q.js";
16
- import"./cli-86hen4re.js";
16
+ import"./cli-5mqrms9z.js";
17
17
  import {
18
18
  disconnect,
19
19
  fetchWorkspaces,
@@ -26,15 +26,15 @@ import {
26
26
  pollWorkOSToken,
27
27
  selectWorkspace,
28
28
  startDeviceFlow
29
- } from "./cli-3x9ygtbv.js";
29
+ } from "./cli-4vej2x2z.js";
30
30
  import"./cli-3k1x5rn3.js";
31
31
  import"./cli-gpnb45ck.js";
32
32
  import {
33
33
  config,
34
34
  init_config
35
- } from "./cli-hzw5gtyt.js";
36
- import"./cli-2yqc0vnm.js";
37
- import"./cli-f2bq20gj.js";
35
+ } from "./cli-eaxc6gjs.js";
36
+ import"./cli-2zvg99t3.js";
37
+ import"./cli-b857c2t8.js";
38
38
  import {
39
39
  __require
40
40
  } from "./cli-8rxa073f.js";
@@ -0,0 +1,19 @@
1
+ import {
2
+ runAuthenticationAgent
3
+ } from "./cli-6vc9rqa0.js";
4
+ import"./cli-9fsre5pt.js";
5
+ import"./cli-r58r36mr.js";
6
+ import"./cli-ww1t5xec.js";
7
+ import"./cli-2f4jnxqt.js";
8
+ import"./cli-c8131c4q.js";
9
+ import"./cli-5mqrms9z.js";
10
+ import"./cli-4vej2x2z.js";
11
+ import"./cli-3k1x5rn3.js";
12
+ import"./cli-gpnb45ck.js";
13
+ import"./cli-eaxc6gjs.js";
14
+ import"./cli-2zvg99t3.js";
15
+ import"./cli-b857c2t8.js";
16
+ import"./cli-8rxa073f.js";
17
+ export {
18
+ runAuthenticationAgent
19
+ };
@@ -0,0 +1,19 @@
1
+ import {
2
+ BlackboxAttackSurfaceAgent
3
+ } from "./cli-je9z9d62.js";
4
+ import"./cli-9fsre5pt.js";
5
+ import"./cli-r58r36mr.js";
6
+ import"./cli-ww1t5xec.js";
7
+ import"./cli-2f4jnxqt.js";
8
+ import"./cli-c8131c4q.js";
9
+ import"./cli-5mqrms9z.js";
10
+ import"./cli-4vej2x2z.js";
11
+ import"./cli-3k1x5rn3.js";
12
+ import"./cli-gpnb45ck.js";
13
+ import"./cli-eaxc6gjs.js";
14
+ import"./cli-2zvg99t3.js";
15
+ import"./cli-b857c2t8.js";
16
+ import"./cli-8rxa073f.js";
17
+ export {
18
+ BlackboxAttackSurfaceAgent
19
+ };
@@ -1,24 +1,24 @@
1
1
  import {
2
2
  runPentestWorkflow
3
- } from "./cli-r0rzk777.js";
4
- import"./cli-z43s0k01.js";
5
- import"./cli-pmf3g5b8.js";
6
- import"./cli-84kpy9q6.js";
7
- import"./cli-b0jq621d.js";
8
- import"./cli-rsv7cf68.js";
3
+ } from "./cli-g3t5c539.js";
4
+ import"./cli-je9z9d62.js";
5
+ import"./cli-e4qd6ak2.js";
6
+ import"./cli-3v951d59.js";
7
+ import"./cli-qbz3dfr8.js";
8
+ import"./cli-zrrvpkb7.js";
9
9
  import"./cli-9fsre5pt.js";
10
- import"./cli-tdgq36q1.js";
11
- import"./cli-gpvaz7xr.js";
12
- import"./cli-jx3sh6sh.js";
10
+ import"./cli-r58r36mr.js";
11
+ import"./cli-ww1t5xec.js";
12
+ import"./cli-2f4jnxqt.js";
13
13
  import"./cli-fw5r7pfj.js";
14
14
  import"./cli-c8131c4q.js";
15
- import"./cli-86hen4re.js";
16
- import"./cli-3x9ygtbv.js";
15
+ import"./cli-5mqrms9z.js";
16
+ import"./cli-4vej2x2z.js";
17
17
  import"./cli-3k1x5rn3.js";
18
18
  import"./cli-gpnb45ck.js";
19
- import"./cli-hzw5gtyt.js";
20
- import"./cli-2yqc0vnm.js";
21
- import"./cli-f2bq20gj.js";
19
+ import"./cli-eaxc6gjs.js";
20
+ import"./cli-2zvg99t3.js";
21
+ import"./cli-b857c2t8.js";
22
22
  import"./cli-8rxa073f.js";
23
23
 
24
24
  // src/core/api/blackboxPentest.ts
@@ -3,7 +3,7 @@ import {
3
3
  init_lazyLogger,
4
4
  init_structured,
5
5
  scopedLogger
6
- } from "./cli-86hen4re.js";
6
+ } from "./cli-5mqrms9z.js";
7
7
 
8
8
  // src/core/agents/specialized/utils.ts
9
9
  import { execSync } from "node:child_process";
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  getCurrentVersion,
3
3
  init_installation
4
- } from "./cli-f2bq20gj.js";
4
+ } from "./cli-b857c2t8.js";
5
5
  import {
6
6
  __esm
7
7
  } from "./cli-8rxa073f.js";
@@ -5,7 +5,7 @@ import {
5
5
  createReportErrorTool,
6
6
  isMemoryEnabled,
7
7
  readPlan
8
- } from "./cli-gpvaz7xr.js";
8
+ } from "./cli-ww1t5xec.js";
9
9
  import {
10
10
  createLogger,
11
11
  hasToolCall,
@@ -13,7 +13,7 @@ import {
13
13
  init_lazyLogger,
14
14
  init_structured,
15
15
  scopedLogger
16
- } from "./cli-86hen4re.js";
16
+ } from "./cli-5mqrms9z.js";
17
17
  import {
18
18
  exports_external,
19
19
  init_zod
@@ -46,6 +46,7 @@ class TargetedPentestAgent extends OffensiveSecurityAgent {
46
46
  const {
47
47
  model,
48
48
  target,
49
+ grpc,
49
50
  objectives,
50
51
  session,
51
52
  authConfig,
@@ -69,10 +70,11 @@ class TargetedPentestAgent extends OffensiveSecurityAgent {
69
70
  let reportedError = null;
70
71
  super({
71
72
  system: buildPentestSystemPrompt(session, role),
72
- prompt: buildPentestPrompt(target, objectives, session, findingsRegistry, context, environmentVariables ? Object.keys(environmentVariables) : undefined, subagentId, role, session.credentialManager?.formatForPrompt()),
73
+ prompt: buildPentestPrompt(target, objectives, session, findingsRegistry, context, environmentVariables ? Object.keys(environmentVariables) : undefined, subagentId, role, session.credentialManager?.formatForPrompt(), grpc),
73
74
  model,
74
75
  session,
75
76
  target,
77
+ grpc,
76
78
  authConfig,
77
79
  onStepFinish,
78
80
  onCacheMetrics,
@@ -489,7 +491,7 @@ ${SECTION_MATERIALITY_GUIDANCE}
489
491
  ${SECTION_BROWSER_INTERACTION}
490
492
 
491
493
  ${SECTION_STATE_CHECKPOINTING}`;
492
- function buildPentestPrompt(target, objectives, session, findingsRegistry, context, envVarNames, subagentId, role = "orchestrator", credentialContext) {
494
+ function buildPentestPrompt(target, objectives, session, findingsRegistry, context, envVarNames, subagentId, role = "orchestrator", credentialContext, grpc) {
493
495
  const sessionRootPath = session.rootPath;
494
496
  const exfilMode = session.config?.exfilMode ?? false;
495
497
  const taskDriven = role === "orchestrator" ? false : session.config?.taskDriven ?? false;
@@ -656,6 +658,37 @@ The following is context specific to the application under test. If it contains
656
658
 
657
659
  ${context}
658
660
  ` : "";
661
+ let grpcSection = "";
662
+ if (grpc) {
663
+ const lines = [
664
+ `
665
+ ## gRPC Target`,
666
+ `This target is a gRPC method, not a plain HTTP endpoint. It rides HTTP/2 with binary protobuf and uses the path \`/package.Service/Method\`.`,
667
+ `- **Transport:** ${grpc.transport}`,
668
+ `- **Service:** ${grpc.serviceFqn}`,
669
+ `- **Method:** ${grpc.method}`
670
+ ];
671
+ if (grpc.host)
672
+ lines.push(`- **Authority (host):** \`${grpc.host}\` — the method's gRPC authority; it differs from the app domain, so use this host directly as \`<authority>\` in the commands below.`);
673
+ if (grpc.streamingType)
674
+ lines.push(`- **Streaming:** ${grpc.streamingType}`);
675
+ if (grpc.schemaSource)
676
+ lines.push(`- **Schema source:** ${grpc.schemaSource}`);
677
+ if (grpc.reflectionAvailable !== undefined) {
678
+ lines.push(`- **Reflection available:** ${grpc.reflectionAvailable}`);
679
+ }
680
+ if (grpc.frontingGatewayOperation) {
681
+ lines.push(`- **Fronting gateway:** ${grpc.frontingGatewayOperation.gatewayType} operation \`${grpc.frontingGatewayOperation.operation}\` — if the direct gRPC authority is unreachable, test through this gateway operation instead.`);
682
+ } else {
683
+ lines.push(`- **Fronting gateway:** none — this method is reachable directly but is NOT exposed through the REST/GraphQL gateway. Treat it as a PRIME missing-authorization target: gateway-fronted methods usually get their authz enforced at the gateway, so a shadow method that bypasses the gateway may bypass that authz entirely.`);
684
+ }
685
+ lines.push(`
686
+ ### gRPC Test Battery (OWASP gRPC Security Cheat Sheet)`, `Use \`grpcurl\`, \`buf\`, and \`protoc\` via \`execute_command\`. Work through this battery for the method above:`, `1. **Schema recovery.** Try reflection first: \`grpcurl -plaintext <authority> list\` / \`describe <service>\`. If reflection is disabled, recover the schema from a \`.proto\` file or protoset (e.g. via \`buf\` or \`protoc\`) before giving up on schema-dependent tests.`, `2. **Transport/content-type fallback.** Native gRPC, grpc-web, and Connect use different content-types over the same or adjacent paths. If one transport looks dead, retry as grpc-web (\`application/grpc-web\`) and Connect (\`application/connect+...\` or JSON) before declaring the endpoint unreachable.`, `3. **Status-code oracle.** Treat gRPC status codes as signal, not noise: 16 UNAUTHENTICATED, 7 PERMISSION_DENIED, 3 INVALID_ARGUMENT, 12 UNIMPLEMENTED. A flip from UNAUTHENTICATED to a data response after adding/removing metadata is a finding.`, `4. **Missing auth per method.** Call the method with valid credentials/metadata, then again with none and with garbage metadata. A successful response without auth is a critical finding.`, `5. **BOLA / IDOR.** Manipulate ID fields inside the request message (account/user/resource IDs) to access another principal's data.`, `6. **Metadata trust.** Test whether the service trusts client-supplied metadata it shouldn't (e.g. \`x-user-id\`, forwarded auth headers) instead of deriving identity server-side.`, `7. **Non-canonical \`:path\` authz bypass.** If authz is enforced by a proxy matching on \`:path\`, try case variants, trailing slashes, or alternate casing of the service/method path to see if the gRPC path parsing bypasses it.`, `8. **Protobuf/message fuzzing.** Send malformed, truncated, and type-mismatched field values; unknown field numbers; and deeply nested/repeated fields to probe deserialization handling.`, `9. **Streaming IDOR.** For client/server/bidi streaming methods, probe whether a stream opened for one principal's resource can be redirected mid-stream to another's.`, `10. **Decompression / size DoS.** Send oversized or highly compressible payloads to check for missing message-size limits or decompression bombs.`, `11. **Transport security.** Confirm whether the channel is plaintext or TLS/mTLS-enforced; plaintext gRPC in production is a finding on its own.`, `
687
+ If the method is unreachable from your network position (common for internal/in-cluster services), a finding is still valid via whitebox reasoning — schema plus routing/config evidence — even without an executed POC.`);
688
+ grpcSection = `${lines.join(`
689
+ `)}
690
+ `;
691
+ }
659
692
  const envVarSection = envVarNames && envVarNames.length > 0 ? `
660
693
  ## Environment Variables
661
694
  The following environment variables are pre-loaded in your shell and available in every \`execute_command\` call. Use them in scripts or commands (e.g. \`$${envVarNames[0]}\`) — do NOT hardcode their values.
@@ -666,7 +699,7 @@ ${envVarNames.map((n) => `- \`${n}\``).join(`
666
699
 
667
700
  ## Target
668
701
  - **URL:** ${target}
669
- ${authSection}${credentialSection}
702
+ ${grpcSection}${authSection}${credentialSection}
670
703
  ${knownFindingsSection}
671
704
  ${knowledgeBaseSection}
672
705
  ${planSection}${contextSection}${envVarSection}
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  config,
3
3
  init_config
4
- } from "./cli-hzw5gtyt.js";
4
+ } from "./cli-eaxc6gjs.js";
5
5
  import {
6
6
  __esm
7
7
  } from "./cli-8rxa073f.js";
@@ -4,7 +4,7 @@ import {
4
4
  init_auth,
5
5
  init_constants,
6
6
  signGatewayRequest
7
- } from "./cli-3x9ygtbv.js";
7
+ } from "./cli-4vej2x2z.js";
8
8
  import {
9
9
  AISDKError,
10
10
  APICallError,
@@ -87,11 +87,11 @@ import {
87
87
  import {
88
88
  config,
89
89
  init_config
90
- } from "./cli-hzw5gtyt.js";
90
+ } from "./cli-eaxc6gjs.js";
91
91
  import {
92
92
  getCurrentVersion,
93
93
  init_installation
94
- } from "./cli-f2bq20gj.js";
94
+ } from "./cli-b857c2t8.js";
95
95
  import {
96
96
  __callDispose,
97
97
  __commonJS,
@@ -8583,6 +8583,24 @@ var init_mantle2 = __esm(() => {
8583
8583
  var OPENAI_MODELS;
8584
8584
  var init_openai = __esm(() => {
8585
8585
  OPENAI_MODELS = [
8586
+ {
8587
+ id: "gpt-5.6-sol",
8588
+ name: "GPT-5.6-sol",
8589
+ provider: "openai",
8590
+ contextLength: 1050000
8591
+ },
8592
+ {
8593
+ id: "gpt-5.6-terra",
8594
+ name: "GPT-5.6-terra",
8595
+ provider: "openai",
8596
+ contextLength: 1050000
8597
+ },
8598
+ {
8599
+ id: "gpt-5.6-luna",
8600
+ name: "GPT-5.6-luna",
8601
+ provider: "openai",
8602
+ contextLength: 1050000
8603
+ },
8586
8604
  {
8587
8605
  id: "gpt-5.5",
8588
8606
  name: "GPT-5.5",
@@ -45853,6 +45871,9 @@ function modelSupportsOpenAIReasoning(modelId) {
45853
45871
  function getOpenAIReasoningEfforts(modelId) {
45854
45872
  if (!modelSupportsOpenAIReasoning(modelId))
45855
45873
  return [];
45874
+ if (/^gpt-5\.6(?:\b|-)/.test(modelId)) {
45875
+ return ["low", "medium", "high", "xhigh", "max", "ultra"];
45876
+ }
45856
45877
  if (/^gpt-5\.5(?:\b|-)/.test(modelId)) {
45857
45878
  return ["none", "low", "medium", "high", "xhigh"];
45858
45879
  }
@@ -45862,8 +45883,9 @@ function normalizeOpenAIReasoningEffort(modelId, effort) {
45862
45883
  const efforts = getOpenAIReasoningEfforts(modelId);
45863
45884
  if (efforts.length === 0)
45864
45885
  return;
45865
- if (effort && efforts.includes(effort))
45866
- return effort;
45886
+ if (effort && efforts.includes(effort)) {
45887
+ return effort === "ultra" ? "max" : effort;
45888
+ }
45867
45889
  return DEFAULT_OPENAI_REASONING_EFFORT;
45868
45890
  }
45869
45891
  function buildReasoningProviderOptions(model, opts) {
@@ -46243,7 +46265,10 @@ var init_ai = __esm(() => {
46243
46265
  "gpt-5.4-pro",
46244
46266
  "gpt-5.4-pro-2026-03-05",
46245
46267
  "gpt-5.5",
46246
- "gpt-5.5-2026-04-23"
46268
+ "gpt-5.5-2026-04-23",
46269
+ "gpt-5.6-sol",
46270
+ "gpt-5.6-terra",
46271
+ "gpt-5.6-luna"
46247
46272
  ]);
46248
46273
  stepContextStore = new AsyncLocalStorage;
46249
46274
  SEQUENTIAL_TOOL_CALL_INSTRUCTION = "CRITICAL TOOL-CALLING RULE: Emit EXACTLY ONE tool call per response. " + "Never emit more than one tool call in a single turn. After each tool call, " + "wait for its result before making the next one. Emitting multiple tool " + "calls in one turn corrupts their arguments.";
@@ -47096,7 +47121,7 @@ async function create2(input) {
47096
47121
  if (normalizedConfig?.headers !== undefined) {
47097
47122
  snapshotHeaders = { ...normalizedConfig.headers };
47098
47123
  } else {
47099
- const { config: appConfig } = await import("./index-1trvqqeg.js");
47124
+ const { config: appConfig } = await import("./index-rztngs07.js");
47100
47125
  const cfg = await appConfig.get();
47101
47126
  snapshotHeaders = cfg.defaultHeaders ? { ...cfg.defaultHeaders } : { ...DEFAULT_HEADER_RECORD };
47102
47127
  }
@@ -1,9 +1,9 @@
1
1
  import {
2
2
  OffensiveSecurityAgent
3
- } from "./cli-gpvaz7xr.js";
3
+ } from "./cli-ww1t5xec.js";
4
4
  import {
5
5
  detectOSAndEnhancePrompt
6
- } from "./cli-jx3sh6sh.js";
6
+ } from "./cli-2f4jnxqt.js";
7
7
  import {
8
8
  createLogger,
9
9
  hasToolCall,
@@ -11,7 +11,7 @@ import {
11
11
  init_lazyLogger,
12
12
  init_structured,
13
13
  scopedLogger
14
- } from "./cli-86hen4re.js";
14
+ } from "./cli-5mqrms9z.js";
15
15
 
16
16
  // src/core/agents/specialized/authenticationAgent/agent.ts
17
17
  init_dist();
@@ -25,7 +25,7 @@ var init_package = __esm(() => {
25
25
  "@opentelemetry/api": "^1.9.1",
26
26
  "@opentui/core": "^0.1.107",
27
27
  "@opentui/react": "^0.1.107",
28
- "@pensar/surface": "0.2.2",
28
+ "@pensar/surface": "0.3.0",
29
29
  "@playwright/mcp": "^0.0.54",
30
30
  ai: "^6.0.208",
31
31
  "camoufox-js": "^0.11.1",
@@ -120,7 +120,7 @@ var init_package = __esm(() => {
120
120
  tsc: "tsc --noEmit"
121
121
  },
122
122
  type: "module",
123
- version: "2.1.3-canary.a2e99e97"
123
+ version: "2.1.3-canary.a5cb8acd"
124
124
  };
125
125
  });
126
126
 
@@ -1,11 +1,11 @@
1
1
  import {
2
2
  EvidenceFileEntrySchema
3
- } from "./cli-tdgq36q1.js";
3
+ } from "./cli-r58r36mr.js";
4
4
  import {
5
5
  CweEntrySchema,
6
6
  ValidatedCweEntrySchema,
7
7
  hasCanonicalName
8
- } from "./cli-gpvaz7xr.js";
8
+ } from "./cli-ww1t5xec.js";
9
9
  import {
10
10
  exports_external,
11
11
  init_zod
@@ -3,7 +3,7 @@ import {
3
3
  init,
4
4
  init_config,
5
5
  update
6
- } from "./cli-2yqc0vnm.js";
6
+ } from "./cli-2zvg99t3.js";
7
7
  import {
8
8
  __esm
9
9
  } from "./cli-8rxa073f.js";