@pensar/apex 2.4.0 → 2.5.0-canary.2bbb0f6f

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 (68) hide show
  1. package/build/agent-20hb6mg7.js +20 -0
  2. package/build/{agent-5ejt5vpz.js → agent-71sn1cjn.js} +9 -8
  3. package/build/{agent-nhs1w5w0.js → agent-xnrz4bhp.js} +11 -10
  4. package/build/{apps-17wvz1d7.js → apps-ghf7kp1s.js} +72 -31
  5. package/build/{auth-z3h9859n.js → auth-p1nrv7re.js} +25 -20
  6. package/build/authentication-m1vj2f0s.js +20 -0
  7. package/build/blackboxAgent-hjfzgk93.js +20 -0
  8. package/build/blackboxPentest-9snp9gvp.js +70 -0
  9. package/build/{cli-0n4r54hq.js → cli-08fcc6d8.js} +1 -1
  10. package/build/{cli-gq40s5b3.js → cli-14j00zfh.js} +5 -3
  11. package/build/{cli-vnynf0js.js → cli-3bmqdcfh.js} +10 -4
  12. package/build/{cli-mavved45.js → cli-3ew5fs3f.js} +46 -25
  13. package/build/{cli-xshasbwe.js → cli-4mgj070h.js} +30 -4
  14. package/build/{cli-repbyhkk.js → cli-4vwnsyep.js} +1141 -525
  15. package/build/cli-53rm0rrz.js +15 -0
  16. package/build/cli-68260ckj.js +12136 -0
  17. package/build/cli-7q3ae3ft.js +6 -0
  18. package/build/{cli-5k33webc.js → cli-7sqb16dd.js} +45 -43
  19. package/build/{cli-9rhzhgx2.js → cli-8pk8znhw.js} +1 -1
  20. package/build/cli-9pbk8m32.js +32 -0
  21. package/build/{cli-72cvcqhg.js → cli-9ya3yktn.js} +1 -1
  22. package/build/{cli-vq52kp7j.js → cli-a8n64cef.js} +23 -5
  23. package/build/{cli-qqt4gj1w.js → cli-a9vq54sx.js} +5 -3
  24. package/build/{cli-swpbx60z.js → cli-avmhkjtv.js} +1 -1481
  25. package/build/{cli-tkc598ey.js → cli-f47dgye3.js} +411 -280
  26. package/build/{cli-k8kc47pq.js → cli-fw7sp0fp.js} +3 -3
  27. package/build/{cli-32z0017y.js → cli-g3cb8pj5.js} +2 -2
  28. package/build/{cli-tznv8pf1.js → cli-gbch9xmy.js} +1 -1
  29. package/build/cli-knd276ed.js +1485 -0
  30. package/build/{cli-2cbwdk78.js → cli-t7rhyqx5.js} +1 -1
  31. package/build/{cli-b1adytsy.js → cli-yge44bmk.js} +28 -5
  32. package/build/cli.js +641 -95
  33. package/build/{config-f1mj4nhd.js → config-cqw98n5y.js} +18 -15
  34. package/build/{doctor-ekneewa3.js → doctor-vzh1wmfa.js} +8 -7
  35. package/build/{fastStrike-8zka43xs.js → fastStrike-f441e9nr.js} +13 -10
  36. package/build/{fixes-b89s5haw.js → fixes-xxz52cf2.js} +25 -20
  37. package/build/getMachineId-bsd-xj3bn2fv.js +36 -0
  38. package/build/getMachineId-darwin-07jzjcx6.js +36 -0
  39. package/build/getMachineId-linux-ahngynxd.js +29 -0
  40. package/build/getMachineId-unsupported-vy43b44z.js +19 -0
  41. package/build/getMachineId-win-8x66cynz.js +38 -0
  42. package/build/{index-ghwf5z3v.js → index-23jj0234.js} +3 -3
  43. package/build/{index-6d22pyxt.js → index-3gavwzay.js} +1756 -1213
  44. package/build/{index-4ad3sdwk.js → index-4v5jc2td.js} +4 -4
  45. package/build/{index-mtq7kmxz.js → index-5wh7gq37.js} +4 -2
  46. package/build/{index-sf16jm0m.js → index-e7kq5rrd.js} +9 -7
  47. package/build/{index-rbzhk712.js → index-fxx38nc9.js} +11 -10
  48. package/build/{index-hqjdg6fg.js → index-j3dc7dks.js} +17 -9
  49. package/build/{index-y5w6n3tb.js → index-yc1dnj3n.js} +2 -2
  50. package/build/{issues-xx5bs4md.js → issues-zdag9ayw.js} +82 -26
  51. package/build/{logs-qtxe51w2.js → logs-f492cjgt.js} +25 -20
  52. package/build/{offesecAgent-b9e2xm6v.js → offesecAgent-pr0cmrqb.js} +10 -9
  53. package/build/pentest-1g3fzah5.js +30 -0
  54. package/build/{pentests-6ks3szc4.js → pentests-vstpzh9j.js} +26 -21
  55. package/build/{targetedPentest-s1ptvq8e.js → targetedPentest-wj3ae355.js} +11 -10
  56. package/build/{targets-sxygyj87.js → targets-806zxf1n.js} +27 -22
  57. package/build/threatModel-dc4jbhkf.js +29 -0
  58. package/build/{uninstall-tvsh81v8.js → uninstall-58ak2e2v.js} +6 -3
  59. package/build/{upload-7wdyyqmr.js → upload-kkktzh83.js} +8 -7
  60. package/build/{utils-7fwdkqk6.js → utils-1sawtwbj.js} +7 -6
  61. package/package.json +8 -2
  62. package/build/agent-mvpgvgks.js +0 -19
  63. package/build/authentication-3s97cpk4.js +0 -19
  64. package/build/blackboxAgent-gw0a1ca4.js +0 -19
  65. package/build/blackboxPentest-44333zss.js +0 -37
  66. package/build/main-mmjp338j.js +0 -324
  67. package/build/pentest-xtc1sjdw.js +0 -29
  68. package/build/threatModel-xsm6fwk5.js +0 -27
@@ -14,10 +14,10 @@ import {
14
14
  signGatewayRequest,
15
15
  startDeviceFlow,
16
16
  validateGateway
17
- } from "./cli-0n4r54hq.js";
18
- import"./cli-72cvcqhg.js";
19
- import"./cli-9rhzhgx2.js";
20
- import"./cli-vnynf0js.js";
17
+ } from "./cli-08fcc6d8.js";
18
+ import"./cli-9ya3yktn.js";
19
+ import"./cli-8pk8znhw.js";
20
+ import"./cli-3bmqdcfh.js";
21
21
  import"./cli-bc05qbss.js";
22
22
  init_auth();
23
23
 
@@ -48,7 +48,6 @@ import {
48
48
  normalizeHeaders,
49
49
  parseJsonEventStream,
50
50
  readResponseWithSizeLimit,
51
- require_src,
52
51
  resolve,
53
52
  safeParseJSON,
54
53
  safeValidateTypes,
@@ -56,8 +55,11 @@ import {
56
55
  validateTypes,
57
56
  withUserAgentSuffix,
58
57
  zodSchema
59
- } from "./cli-swpbx60z.js";
58
+ } from "./cli-avmhkjtv.js";
60
59
  import"./cli-j54qa6tm.js";
60
+ import {
61
+ require_src
62
+ } from "./cli-knd276ed.js";
61
63
  import {
62
64
  __toESM
63
65
  } from "./cli-bc05qbss.js";
@@ -17,19 +17,20 @@ import {
17
17
  update,
18
18
  write,
19
19
  writeRaw
20
- } from "./cli-tkc598ey.js";
21
- import"./cli-0n4r54hq.js";
20
+ } from "./cli-f47dgye3.js";
21
+ import"./cli-08fcc6d8.js";
22
22
  import {
23
23
  init_zod,
24
24
  zod_default
25
- } from "./cli-swpbx60z.js";
25
+ } from "./cli-avmhkjtv.js";
26
26
  import"./cli-j54qa6tm.js";
27
- import"./cli-72cvcqhg.js";
28
- import"./cli-9rhzhgx2.js";
27
+ import"./cli-9ya3yktn.js";
28
+ import"./cli-8pk8znhw.js";
29
29
  import {
30
30
  getCurrentVersion,
31
31
  init_installation
32
- } from "./cli-vnynf0js.js";
32
+ } from "./cli-3bmqdcfh.js";
33
+ import"./cli-knd276ed.js";
33
34
  import {
34
35
  __require
35
36
  } from "./cli-bc05qbss.js";
@@ -190,6 +191,7 @@ var SessionConfigObject = zod_default.object({
190
191
  prompt: zod_default.string().optional(),
191
192
  taskDriven: zod_default.boolean().optional(),
192
193
  requirePlan: zod_default.boolean().optional(),
194
+ disableSubagents: zod_default.boolean().optional(),
193
195
  promptInjectionLibrarySource: zod_default.string().optional()
194
196
  });
195
197
  function getPensarDir() {
@@ -314,7 +316,7 @@ async function create(input) {
314
316
  if (normalizedConfig?.headers !== undefined) {
315
317
  snapshotHeaders = { ...normalizedConfig.headers };
316
318
  } else {
317
- const { config: appConfig } = await import("./index-ghwf5z3v.js");
319
+ const { config: appConfig } = await import("./index-23jj0234.js");
318
320
  const cfg = await appConfig.get();
319
321
  snapshotHeaders = cfg.defaultHeaders ? { ...cfg.defaultHeaders } : { ...DEFAULT_HEADER_RECORD };
320
322
  }
@@ -7,19 +7,20 @@ import {
7
7
  WHITEBOX_APPS_DISCOVERY_SYSTEM_PROMPT,
8
8
  WHITEBOX_DISCOVERY_SYSTEM_PROMPT,
9
9
  WhiteboxAttackSurfaceAgent
10
- } from "./cli-k8kc47pq.js";
10
+ } from "./cli-fw7sp0fp.js";
11
11
  import"./cli-9fsre5pt.js";
12
- import"./cli-qqt4gj1w.js";
13
- import"./cli-repbyhkk.js";
14
- import"./cli-tznv8pf1.js";
12
+ import"./cli-a9vq54sx.js";
13
+ import"./cli-4vwnsyep.js";
14
+ import"./cli-gbch9xmy.js";
15
15
  import"./cli-c8131c4q.js";
16
- import"./cli-tkc598ey.js";
17
- import"./cli-0n4r54hq.js";
18
- import"./cli-swpbx60z.js";
16
+ import"./cli-f47dgye3.js";
17
+ import"./cli-08fcc6d8.js";
18
+ import"./cli-avmhkjtv.js";
19
19
  import"./cli-j54qa6tm.js";
20
- import"./cli-72cvcqhg.js";
21
- import"./cli-9rhzhgx2.js";
22
- import"./cli-vnynf0js.js";
20
+ import"./cli-9ya3yktn.js";
21
+ import"./cli-8pk8znhw.js";
22
+ import"./cli-3bmqdcfh.js";
23
+ import"./cli-knd276ed.js";
23
24
  import"./cli-bc05qbss.js";
24
25
  export {
25
26
  AppsDiscoveryResultSchema,
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  ApexFindingObject
3
- } from "./cli-qqt4gj1w.js";
3
+ } from "./cli-a9vq54sx.js";
4
4
  import {
5
5
  ALL_TOOL_NAMES,
6
6
  ASK_USER_QUESTIONS_TOOL_NAME,
@@ -20,6 +20,8 @@ import {
20
20
  ReportErrorReasonSchema,
21
21
  SEND_EMAIL_TOOL_NAME,
22
22
  SKILL_TOOL_NAMES,
23
+ SMS_LIST_MESSAGES_TOOL_NAME,
24
+ SMS_TOOL_NAMES,
23
25
  ScopeViolationError,
24
26
  StepTraceWriter,
25
27
  addMemory,
@@ -79,6 +81,7 @@ import {
79
81
  readTempfileCapped,
80
82
  runAttackSurface,
81
83
  runPentestWorkflow,
84
+ sessionHasSmsPasswordless,
82
85
  setHeadlessMode,
83
86
  setUserAgent,
84
87
  setViewportSize,
@@ -95,16 +98,17 @@ import {
95
98
  validateDiscovery,
96
99
  webSearch,
97
100
  writePlan
98
- } from "./cli-repbyhkk.js";
99
- import"./cli-tznv8pf1.js";
101
+ } from "./cli-4vwnsyep.js";
102
+ import"./cli-gbch9xmy.js";
100
103
  import"./cli-c8131c4q.js";
101
- import"./cli-tkc598ey.js";
102
- import"./cli-0n4r54hq.js";
103
- import"./cli-swpbx60z.js";
104
+ import"./cli-f47dgye3.js";
105
+ import"./cli-08fcc6d8.js";
106
+ import"./cli-avmhkjtv.js";
104
107
  import"./cli-j54qa6tm.js";
105
- import"./cli-72cvcqhg.js";
106
- import"./cli-9rhzhgx2.js";
107
- import"./cli-vnynf0js.js";
108
+ import"./cli-9ya3yktn.js";
109
+ import"./cli-8pk8znhw.js";
110
+ import"./cli-3bmqdcfh.js";
111
+ import"./cli-knd276ed.js";
108
112
  import"./cli-bc05qbss.js";
109
113
  export {
110
114
  ALL_TOOL_NAMES,
@@ -127,6 +131,9 @@ export {
127
131
  ReportErrorReasonSchema,
128
132
  SEND_EMAIL_TOOL_NAME,
129
133
  SKILL_TOOL_NAMES,
134
+ SMS_LIST_MESSAGES_TOOL_NAME,
135
+ SMS_TOOL_NAMES,
136
+ SMS_TOOL_NAMES as SMS_TOOL_NAMES_ACTIVE,
130
137
  ScopeViolationError,
131
138
  StepTraceWriter,
132
139
  addMemory,
@@ -186,6 +193,7 @@ export {
186
193
  readTempfileCapped,
187
194
  runAttackSurface,
188
195
  runPentestWorkflow,
196
+ sessionHasSmsPasswordless,
189
197
  setHeadlessMode,
190
198
  setUserAgent,
191
199
  setViewportSize,
@@ -3,8 +3,8 @@ import {
3
3
  init,
4
4
  init_config,
5
5
  update
6
- } from "./cli-9rhzhgx2.js";
7
- import"./cli-vnynf0js.js";
6
+ } from "./cli-8pk8znhw.js";
7
+ import"./cli-3bmqdcfh.js";
8
8
  import"./cli-bc05qbss.js";
9
9
 
10
10
  // src/core/config/index.ts
@@ -1,32 +1,40 @@
1
1
  #!/usr/bin/env bun
2
2
  import {
3
+ markCommandFailed
4
+ } from "./cli-7q3ae3ft.js";
5
+ import {
6
+ CLOSED_DISPOSITIONS,
7
+ createIssueComment,
3
8
  getIssue,
4
9
  linkPullRequest,
10
+ listIssueComments,
5
11
  listIssuePullRequests,
6
12
  listIssues,
7
13
  retestIssue,
8
14
  updateIssue
9
- } from "./cli-vq52kp7j.js";
10
- import"./cli-5k33webc.js";
11
- import"./cli-gq40s5b3.js";
12
- import"./cli-b1adytsy.js";
13
- import"./cli-mavved45.js";
14
- import"./cli-xshasbwe.js";
15
- import"./cli-32z0017y.js";
16
- import"./cli-k8kc47pq.js";
15
+ } from "./cli-a8n64cef.js";
16
+ import"./cli-9pbk8m32.js";
17
+ import"./cli-7sqb16dd.js";
18
+ import"./cli-fw7sp0fp.js";
19
+ import"./cli-14j00zfh.js";
20
+ import"./cli-3ew5fs3f.js";
21
+ import"./cli-yge44bmk.js";
22
+ import"./cli-4mgj070h.js";
23
+ import"./cli-g3cb8pj5.js";
17
24
  import"./cli-9fsre5pt.js";
18
- import"./cli-qqt4gj1w.js";
19
- import"./cli-repbyhkk.js";
20
- import"./cli-tznv8pf1.js";
25
+ import"./cli-a9vq54sx.js";
26
+ import"./cli-4vwnsyep.js";
27
+ import"./cli-gbch9xmy.js";
21
28
  import"./cli-fw5r7pfj.js";
22
29
  import"./cli-c8131c4q.js";
23
- import"./cli-tkc598ey.js";
24
- import"./cli-0n4r54hq.js";
25
- import"./cli-swpbx60z.js";
30
+ import"./cli-f47dgye3.js";
31
+ import"./cli-08fcc6d8.js";
32
+ import"./cli-avmhkjtv.js";
26
33
  import"./cli-j54qa6tm.js";
27
- import"./cli-72cvcqhg.js";
28
- import"./cli-9rhzhgx2.js";
29
- import"./cli-vnynf0js.js";
34
+ import"./cli-9ya3yktn.js";
35
+ import"./cli-8pk8znhw.js";
36
+ import"./cli-3bmqdcfh.js";
37
+ import"./cli-knd276ed.js";
30
38
  import"./cli-bc05qbss.js";
31
39
 
32
40
  // src/cli/issues.ts
@@ -46,9 +54,14 @@ Usage:
46
54
  pensar issues retest <issueId> Retest an issue
47
55
  pensar issues link-pr <issueId> --url <url> Link a pull request to an issue
48
56
  pensar issues prs <issueId> List pull requests linked to an issue
57
+ pensar issues comments <issueId> List review comments on an issue
58
+ pensar issues comment <issueId> --body <text> Post a comment on an issue
49
59
 
50
60
  <issueId> accepts the issue UUID or its label (e.g. VULN-000123).
51
61
 
62
+ Issue responses include "issueLabel" (e.g. VULN-000123, null for issues created
63
+ before labels existed) and "url", a deep link to the issue in the Console.
64
+
52
65
  List filters:
53
66
  --status <status> Filter: open, closed, false-positive, in-review
54
67
  --severity <sev> Filter: critical, high, medium, low
@@ -59,19 +72,31 @@ Update options:
59
72
  --status <status> New status
60
73
  --closed-reason <reason> Reason for closing
61
74
  --closed-comments <text> Additional comments
75
+ --disposition <value> Why it is closed: resolved, wont-fix, out-of-scope,
76
+ risk-accepted
62
77
  --false-positive Flag as false positive
63
78
  --fp-reason <reason> Reason for false positive flag
64
79
 
65
80
  Link-pr options:
66
81
  --url <url> URL of the pull request to link (required)
67
82
 
83
+ Comments options:
84
+ --page <n> Page number (default 1)
85
+ --page-size <n> Comments per page (default 50, max 200)
86
+
87
+ Comment options:
88
+ --body <text> Comment text (required)
89
+
90
+ Comments are returned oldest first. Posting requires a user login; a workspace
91
+ API key has no author to attribute a comment to.
92
+
68
93
  Options:
69
94
  -h, --help Show this help message`);
70
95
  }
71
96
  async function main() {
72
97
  const args = process.argv.slice(2);
73
98
  const sub = args[0];
74
- if (sub === "--help" || sub === "-h" || sub === "help") {
99
+ if (sub === "help" || args.includes("--help") || args.includes("-h")) {
75
100
  showHelp();
76
101
  return;
77
102
  }
@@ -81,7 +106,7 @@ async function main() {
81
106
  if (!issueId) {
82
107
  console.error("Error: issue ID is required");
83
108
  console.error("Usage: pensar issues get <issueId>");
84
- process.exit(1);
109
+ return markCommandFailed();
85
110
  }
86
111
  const issue = await getIssue(issueId);
87
112
  console.log(JSON.stringify(issue, null, 2));
@@ -90,17 +115,24 @@ async function main() {
90
115
  if (!issueId) {
91
116
  console.error("Error: issue ID is required");
92
117
  console.error("Usage: pensar issues update <issueId> [--status <status>] ...");
93
- process.exit(1);
118
+ return markCommandFailed();
94
119
  }
95
120
  const status = getFlag("--status", args);
96
121
  const closedReason = getFlag("--closed-reason", args);
97
122
  const closedComments = getFlag("--closed-comments", args);
123
+ const dispositionFlag = getFlag("--disposition", args);
124
+ if (dispositionFlag !== undefined && !CLOSED_DISPOSITIONS.includes(dispositionFlag)) {
125
+ console.error(`Error: invalid --disposition "${dispositionFlag}". Accepted: ${CLOSED_DISPOSITIONS.join(", ")}`);
126
+ return markCommandFailed();
127
+ }
128
+ const closedDisposition = dispositionFlag;
98
129
  const userFlaggedFalsePositive = args.includes("--false-positive") ? true : undefined;
99
130
  const userFlaggedFalsePositiveReason = getFlag("--fp-reason", args);
100
131
  const result = await updateIssue(issueId, {
101
132
  status,
102
133
  closedReason,
103
134
  closedComments,
135
+ closedDisposition,
104
136
  userFlaggedFalsePositive,
105
137
  userFlaggedFalsePositiveReason
106
138
  });
@@ -110,7 +142,7 @@ async function main() {
110
142
  if (!issueId) {
111
143
  console.error("Error: issue ID is required");
112
144
  console.error("Usage: pensar issues retest <issueId>");
113
- process.exit(1);
145
+ return markCommandFailed();
114
146
  }
115
147
  const result = await retestIssue(issueId);
116
148
  console.log(JSON.stringify(result, null, 2));
@@ -120,16 +152,40 @@ async function main() {
120
152
  if (!issueId || issueId.startsWith("--") || !url) {
121
153
  console.error("Error: issue ID and --url are required");
122
154
  console.error("Usage: pensar issues link-pr <issueId> --url <prUrl>");
123
- process.exit(1);
155
+ return markCommandFailed();
124
156
  }
125
157
  const result = await linkPullRequest(issueId, url);
126
158
  console.log(JSON.stringify(result, null, 2));
159
+ } else if (sub === "comments") {
160
+ const issueId = args[1];
161
+ if (!issueId || issueId.startsWith("--")) {
162
+ console.error("Error: issue ID is required");
163
+ console.error("Usage: pensar issues comments <issueId>");
164
+ return markCommandFailed();
165
+ }
166
+ const page = getFlag("--page", args);
167
+ const pageSize = getFlag("--page-size", args);
168
+ const result = await listIssueComments(issueId, {
169
+ page: page ? Number(page) : undefined,
170
+ pageSize: pageSize ? Number(pageSize) : undefined
171
+ });
172
+ console.log(JSON.stringify(result, null, 2));
173
+ } else if (sub === "comment") {
174
+ const issueId = args[1];
175
+ const body = getFlag("--body", args);
176
+ if (!issueId || issueId.startsWith("--") || !body) {
177
+ console.error("Error: issue ID and --body are required");
178
+ console.error('Usage: pensar issues comment <issueId> --body "<text>"');
179
+ return markCommandFailed();
180
+ }
181
+ const result = await createIssueComment(issueId, body);
182
+ console.log(JSON.stringify(result, null, 2));
127
183
  } else if (sub === "prs") {
128
184
  const issueId = args[1];
129
185
  if (!issueId) {
130
186
  console.error("Error: issue ID is required");
131
187
  console.error("Usage: pensar issues prs <issueId>");
132
- process.exit(1);
188
+ return markCommandFailed();
133
189
  }
134
190
  const result = await listIssuePullRequests(issueId);
135
191
  console.log(JSON.stringify(result, null, 2));
@@ -144,12 +200,12 @@ async function main() {
144
200
  } else {
145
201
  console.error(`Error: Unknown subcommand "${sub}"`);
146
202
  showHelp();
147
- process.exit(1);
203
+ return markCommandFailed();
148
204
  }
149
205
  } catch (err) {
150
206
  console.error(`
151
207
  Error: ${err instanceof Error ? err.message : String(err)}`);
152
- process.exit(1);
208
+ return markCommandFailed();
153
209
  }
154
210
  }
155
- main();
211
+ await main();
@@ -1,28 +1,33 @@
1
1
  #!/usr/bin/env bun
2
+ import {
3
+ markCommandFailed
4
+ } from "./cli-7q3ae3ft.js";
2
5
  import {
3
6
  listAgentLogs,
4
7
  searchAgentLogs
5
- } from "./cli-vq52kp7j.js";
6
- import"./cli-5k33webc.js";
7
- import"./cli-gq40s5b3.js";
8
- import"./cli-b1adytsy.js";
9
- import"./cli-mavved45.js";
10
- import"./cli-xshasbwe.js";
11
- import"./cli-32z0017y.js";
12
- import"./cli-k8kc47pq.js";
8
+ } from "./cli-a8n64cef.js";
9
+ import"./cli-9pbk8m32.js";
10
+ import"./cli-7sqb16dd.js";
11
+ import"./cli-fw7sp0fp.js";
12
+ import"./cli-14j00zfh.js";
13
+ import"./cli-3ew5fs3f.js";
14
+ import"./cli-yge44bmk.js";
15
+ import"./cli-4mgj070h.js";
16
+ import"./cli-g3cb8pj5.js";
13
17
  import"./cli-9fsre5pt.js";
14
- import"./cli-qqt4gj1w.js";
15
- import"./cli-repbyhkk.js";
16
- import"./cli-tznv8pf1.js";
18
+ import"./cli-a9vq54sx.js";
19
+ import"./cli-4vwnsyep.js";
20
+ import"./cli-gbch9xmy.js";
17
21
  import"./cli-fw5r7pfj.js";
18
22
  import"./cli-c8131c4q.js";
19
- import"./cli-tkc598ey.js";
20
- import"./cli-0n4r54hq.js";
21
- import"./cli-swpbx60z.js";
23
+ import"./cli-f47dgye3.js";
24
+ import"./cli-08fcc6d8.js";
25
+ import"./cli-avmhkjtv.js";
22
26
  import"./cli-j54qa6tm.js";
23
- import"./cli-72cvcqhg.js";
24
- import"./cli-9rhzhgx2.js";
25
- import"./cli-vnynf0js.js";
27
+ import"./cli-9ya3yktn.js";
28
+ import"./cli-8pk8znhw.js";
29
+ import"./cli-3bmqdcfh.js";
30
+ import"./cli-knd276ed.js";
26
31
  import"./cli-bc05qbss.js";
27
32
 
28
33
  // src/cli/logs.ts
@@ -64,7 +69,7 @@ async function main() {
64
69
  if (!issueId || !query) {
65
70
  console.error("Error: issue ID and query are required");
66
71
  console.error("Usage: pensar logs search <issueId> <query> [--level <level>] [--role <role>] [--context <n>]");
67
- process.exit(1);
72
+ return markCommandFailed();
68
73
  }
69
74
  const level = getFlag("--level", args);
70
75
  const role = getFlag("--role", args);
@@ -88,7 +93,7 @@ async function main() {
88
93
  } catch (err) {
89
94
  console.error(`
90
95
  Error: ${err instanceof Error ? err.message : String(err)}`);
91
- process.exit(1);
96
+ return markCommandFailed();
92
97
  }
93
98
  }
94
- main();
99
+ await main();
@@ -1,17 +1,18 @@
1
1
  import"./cli-9fsre5pt.js";
2
- import"./cli-qqt4gj1w.js";
2
+ import"./cli-a9vq54sx.js";
3
3
  import {
4
4
  OffensiveSecurityAgent
5
- } from "./cli-repbyhkk.js";
6
- import"./cli-tznv8pf1.js";
5
+ } from "./cli-4vwnsyep.js";
6
+ import"./cli-gbch9xmy.js";
7
7
  import"./cli-c8131c4q.js";
8
- import"./cli-tkc598ey.js";
9
- import"./cli-0n4r54hq.js";
10
- import"./cli-swpbx60z.js";
8
+ import"./cli-f47dgye3.js";
9
+ import"./cli-08fcc6d8.js";
10
+ import"./cli-avmhkjtv.js";
11
11
  import"./cli-j54qa6tm.js";
12
- import"./cli-72cvcqhg.js";
13
- import"./cli-9rhzhgx2.js";
14
- import"./cli-vnynf0js.js";
12
+ import"./cli-9ya3yktn.js";
13
+ import"./cli-8pk8znhw.js";
14
+ import"./cli-3bmqdcfh.js";
15
+ import"./cli-knd276ed.js";
15
16
  import"./cli-bc05qbss.js";
16
17
 
17
18
  // src/core/api/offesecAgent.ts
@@ -0,0 +1,30 @@
1
+ import {
2
+ DEFAULT_CONCURRENCY,
3
+ runPentestSwarm,
4
+ runPentestWorkflow
5
+ } from "./cli-7sqb16dd.js";
6
+ import"./cli-fw7sp0fp.js";
7
+ import"./cli-14j00zfh.js";
8
+ import"./cli-3ew5fs3f.js";
9
+ import"./cli-yge44bmk.js";
10
+ import"./cli-g3cb8pj5.js";
11
+ import"./cli-9fsre5pt.js";
12
+ import"./cli-a9vq54sx.js";
13
+ import"./cli-4vwnsyep.js";
14
+ import"./cli-gbch9xmy.js";
15
+ import"./cli-fw5r7pfj.js";
16
+ import"./cli-c8131c4q.js";
17
+ import"./cli-f47dgye3.js";
18
+ import"./cli-08fcc6d8.js";
19
+ import"./cli-avmhkjtv.js";
20
+ import"./cli-j54qa6tm.js";
21
+ import"./cli-9ya3yktn.js";
22
+ import"./cli-8pk8znhw.js";
23
+ import"./cli-3bmqdcfh.js";
24
+ import"./cli-knd276ed.js";
25
+ import"./cli-bc05qbss.js";
26
+ export {
27
+ DEFAULT_CONCURRENCY,
28
+ runPentestSwarm,
29
+ runPentestWorkflow
30
+ };
@@ -1,29 +1,34 @@
1
1
  #!/usr/bin/env bun
2
+ import {
3
+ markCommandFailed
4
+ } from "./cli-7q3ae3ft.js";
2
5
  import {
3
6
  dispatchPentest,
4
7
  getScan,
5
8
  listScans
6
- } from "./cli-vq52kp7j.js";
7
- import"./cli-5k33webc.js";
8
- import"./cli-gq40s5b3.js";
9
- import"./cli-b1adytsy.js";
10
- import"./cli-mavved45.js";
11
- import"./cli-xshasbwe.js";
12
- import"./cli-32z0017y.js";
13
- import"./cli-k8kc47pq.js";
9
+ } from "./cli-a8n64cef.js";
10
+ import"./cli-9pbk8m32.js";
11
+ import"./cli-7sqb16dd.js";
12
+ import"./cli-fw7sp0fp.js";
13
+ import"./cli-14j00zfh.js";
14
+ import"./cli-3ew5fs3f.js";
15
+ import"./cli-yge44bmk.js";
16
+ import"./cli-4mgj070h.js";
17
+ import"./cli-g3cb8pj5.js";
14
18
  import"./cli-9fsre5pt.js";
15
- import"./cli-qqt4gj1w.js";
16
- import"./cli-repbyhkk.js";
17
- import"./cli-tznv8pf1.js";
19
+ import"./cli-a9vq54sx.js";
20
+ import"./cli-4vwnsyep.js";
21
+ import"./cli-gbch9xmy.js";
18
22
  import"./cli-fw5r7pfj.js";
19
23
  import"./cli-c8131c4q.js";
20
- import"./cli-tkc598ey.js";
21
- import"./cli-0n4r54hq.js";
22
- import"./cli-swpbx60z.js";
24
+ import"./cli-f47dgye3.js";
25
+ import"./cli-08fcc6d8.js";
26
+ import"./cli-avmhkjtv.js";
23
27
  import"./cli-j54qa6tm.js";
24
- import"./cli-72cvcqhg.js";
25
- import"./cli-9rhzhgx2.js";
26
- import"./cli-vnynf0js.js";
28
+ import"./cli-9ya3yktn.js";
29
+ import"./cli-8pk8znhw.js";
30
+ import"./cli-3bmqdcfh.js";
31
+ import"./cli-knd276ed.js";
27
32
  import"./cli-bc05qbss.js";
28
33
 
29
34
  // src/cli/pentests.ts
@@ -61,7 +66,7 @@ async function main() {
61
66
  if (!pentestId) {
62
67
  console.error("Error: pentest ID is required");
63
68
  console.error("Usage: pensar pentests get <pentestId>");
64
- process.exit(1);
69
+ return markCommandFailed();
65
70
  }
66
71
  const scan = await getScan(pentestId);
67
72
  console.log(JSON.stringify(scan, null, 2));
@@ -76,12 +81,12 @@ async function main() {
76
81
  } else {
77
82
  console.error(`Error: Unknown subcommand "${sub}"`);
78
83
  showHelp();
79
- process.exit(1);
84
+ return markCommandFailed();
80
85
  }
81
86
  } catch (err) {
82
87
  console.error(`
83
88
  Error: ${err instanceof Error ? err.message : String(err)}`);
84
- process.exit(1);
89
+ return markCommandFailed();
85
90
  }
86
91
  }
87
- main();
92
+ await main();
@@ -1,18 +1,19 @@
1
1
  import {
2
2
  TargetedPentestAgent
3
- } from "./cli-mavved45.js";
3
+ } from "./cli-3ew5fs3f.js";
4
4
  import"./cli-9fsre5pt.js";
5
- import"./cli-qqt4gj1w.js";
6
- import"./cli-repbyhkk.js";
7
- import"./cli-tznv8pf1.js";
5
+ import"./cli-a9vq54sx.js";
6
+ import"./cli-4vwnsyep.js";
7
+ import"./cli-gbch9xmy.js";
8
8
  import"./cli-c8131c4q.js";
9
- import"./cli-tkc598ey.js";
10
- import"./cli-0n4r54hq.js";
11
- import"./cli-swpbx60z.js";
9
+ import"./cli-f47dgye3.js";
10
+ import"./cli-08fcc6d8.js";
11
+ import"./cli-avmhkjtv.js";
12
12
  import"./cli-j54qa6tm.js";
13
- import"./cli-72cvcqhg.js";
14
- import"./cli-9rhzhgx2.js";
15
- import"./cli-vnynf0js.js";
13
+ import"./cli-9ya3yktn.js";
14
+ import"./cli-8pk8znhw.js";
15
+ import"./cli-3bmqdcfh.js";
16
+ import"./cli-knd276ed.js";
16
17
  import"./cli-bc05qbss.js";
17
18
 
18
19
  // src/core/api/targetedPentest.ts