@pensar/apex 2.4.0 → 2.5.0-canary.c20fe7ed

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-nhs1w5w0.js → agent-1e2wj9z8.js} +11 -10
  2. package/build/agent-45hqpjke.js +20 -0
  3. package/build/{agent-5ejt5vpz.js → agent-6z92j5sh.js} +9 -8
  4. package/build/{apps-17wvz1d7.js → apps-ndg4qp8t.js} +72 -31
  5. package/build/{auth-z3h9859n.js → auth-z6emgx61.js} +25 -20
  6. package/build/authentication-gqmrgkqt.js +20 -0
  7. package/build/blackboxAgent-sg4gt9t9.js +20 -0
  8. package/build/blackboxPentest-0nr9742k.js +70 -0
  9. package/build/{cli-xshasbwe.js → cli-1hkxhyef.js} +30 -4
  10. package/build/{cli-tznv8pf1.js → cli-1q3vervd.js} +1 -1
  11. package/build/{cli-5k33webc.js → cli-3a5hy1r3.js} +45 -43
  12. package/build/{cli-0n4r54hq.js → cli-3b3teb1m.js} +1 -1
  13. package/build/{cli-qqt4gj1w.js → cli-3x1y9yk0.js} +5 -3
  14. package/build/{cli-b1adytsy.js → cli-4zm8sx6f.js} +28 -5
  15. package/build/cli-53rm0rrz.js +15 -0
  16. package/build/{cli-vnynf0js.js → cli-5ynht461.js} +10 -4
  17. package/build/cli-68260ckj.js +12136 -0
  18. package/build/{cli-repbyhkk.js → cli-6grv9k35.js} +1141 -525
  19. package/build/cli-7q3ae3ft.js +6 -0
  20. package/build/cli-9pbk8m32.js +32 -0
  21. package/build/{cli-swpbx60z.js → cli-avmhkjtv.js} +1 -1481
  22. package/build/{cli-tkc598ey.js → cli-bxhaqp8w.js} +388 -275
  23. package/build/{cli-mavved45.js → cli-cg3s2en9.js} +46 -25
  24. package/build/{cli-2cbwdk78.js → cli-d6r1rfde.js} +1 -1
  25. package/build/{cli-32z0017y.js → cli-jgd1gxnf.js} +2 -2
  26. package/build/{cli-9rhzhgx2.js → cli-jq2yh557.js} +1 -1
  27. package/build/cli-knd276ed.js +1485 -0
  28. package/build/{cli-gq40s5b3.js → cli-whyqn949.js} +5 -3
  29. package/build/{cli-72cvcqhg.js → cli-y9mjgfsd.js} +1 -1
  30. package/build/{cli-k8kc47pq.js → cli-ygm0ygzg.js} +3 -3
  31. package/build/{cli-vq52kp7j.js → cli-zgda61x2.js} +23 -5
  32. package/build/cli.js +641 -95
  33. package/build/{config-f1mj4nhd.js → config-rqdae6vq.js} +18 -15
  34. package/build/{doctor-ekneewa3.js → doctor-kqe55h5e.js} +8 -7
  35. package/build/{fastStrike-8zka43xs.js → fastStrike-0e8b4ghw.js} +13 -10
  36. package/build/{fixes-b89s5haw.js → fixes-x4f12cf3.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-208mcw9a.js} +3 -3
  43. package/build/{index-mtq7kmxz.js → index-5wh7gq37.js} +4 -2
  44. package/build/{index-4ad3sdwk.js → index-8cr4w2bp.js} +4 -4
  45. package/build/{index-y5w6n3tb.js → index-e3x6d0hy.js} +2 -2
  46. package/build/{index-rbzhk712.js → index-qh7c3nbg.js} +11 -10
  47. package/build/{index-sf16jm0m.js → index-rvb8b0hh.js} +9 -7
  48. package/build/{index-6d22pyxt.js → index-tb06da9e.js} +1756 -1213
  49. package/build/{index-hqjdg6fg.js → index-xb71f7d3.js} +17 -9
  50. package/build/{issues-xx5bs4md.js → issues-jj265r5t.js} +82 -26
  51. package/build/{logs-qtxe51w2.js → logs-sbb23gj9.js} +25 -20
  52. package/build/{offesecAgent-b9e2xm6v.js → offesecAgent-vzbv0qbm.js} +10 -9
  53. package/build/pentest-3qtct2r2.js +30 -0
  54. package/build/{pentests-6ks3szc4.js → pentests-411n0vfk.js} +26 -21
  55. package/build/{targetedPentest-s1ptvq8e.js → targetedPentest-t1rw5cdc.js} +11 -10
  56. package/build/{targets-sxygyj87.js → targets-d8d0z2f8.js} +27 -22
  57. package/build/threatModel-qwmbj242.js +29 -0
  58. package/build/{uninstall-tvsh81v8.js → uninstall-65bc2d02.js} +6 -3
  59. package/build/{upload-7wdyyqmr.js → upload-52x1r3py.js} +8 -7
  60. package/build/{utils-7fwdkqk6.js → utils-cye50fn6.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
@@ -1,28 +1,28 @@
1
+ import {
2
+ AppsDiscoveryResultSchema,
3
+ DiscoverySummarySchema,
4
+ EndpointSchema,
5
+ WHITEBOX_APPS_DISCOVERY_SYSTEM_PROMPT,
6
+ WHITEBOX_DISCOVERY_SYSTEM_PROMPT,
7
+ WHITEBOX_ENDPOINT_DOCUMENTATION_SYSTEM_PROMPT
8
+ } from "./cli-ygm0ygzg.js";
1
9
  import {
2
10
  BlackboxAttackSurfaceAgent
3
- } from "./cli-gq40s5b3.js";
11
+ } from "./cli-whyqn949.js";
12
+ import {
13
+ TargetedPentestAgent,
14
+ buildPentestSystemPrompt
15
+ } from "./cli-cg3s2en9.js";
4
16
  import {
5
17
  REPORT_FILENAME_JSON,
6
18
  REPORT_FILENAME_MD,
7
19
  buildPentestReport,
8
20
  renderJson,
9
21
  renderMarkdown
10
- } from "./cli-b1adytsy.js";
11
- import {
12
- TargetedPentestAgent,
13
- buildPentestSystemPrompt
14
- } from "./cli-mavved45.js";
22
+ } from "./cli-4zm8sx6f.js";
15
23
  import {
16
24
  CodeAgent
17
- } from "./cli-32z0017y.js";
18
- import {
19
- AppsDiscoveryResultSchema,
20
- DiscoverySummarySchema,
21
- EndpointSchema,
22
- WHITEBOX_APPS_DISCOVERY_SYSTEM_PROMPT,
23
- WHITEBOX_DISCOVERY_SYSTEM_PROMPT,
24
- WHITEBOX_ENDPOINT_DOCUMENTATION_SYSTEM_PROMPT
25
- } from "./cli-k8kc47pq.js";
25
+ } from "./cli-jgd1gxnf.js";
26
26
  import {
27
27
  FindingsRegistry,
28
28
  OffensiveSecurityAgent,
@@ -31,7 +31,7 @@ import {
31
31
  pLimit,
32
32
  runWithBoundedConcurrency,
33
33
  toGrpcPentestContext
34
- } from "./cli-repbyhkk.js";
34
+ } from "./cli-6grv9k35.js";
35
35
  import {
36
36
  createThreatModelPrompt
37
37
  } from "./cli-fw5r7pfj.js";
@@ -45,7 +45,7 @@ import {
45
45
  init_structured,
46
46
  newSessionId,
47
47
  scopedLogger
48
- } from "./cli-tkc598ey.js";
48
+ } from "./cli-bxhaqp8w.js";
49
49
  import {
50
50
  __require
51
51
  } from "./cli-bc05qbss.js";
@@ -126,9 +126,23 @@ function normalizeTokenUsage(value) {
126
126
  return {
127
127
  inputTokens,
128
128
  outputTokens,
129
+ cacheReadTokens: toNonNegativeInteger(value?.cacheReadTokens),
130
+ cacheWriteTokens: toNonNegativeInteger(value?.cacheWriteTokens),
129
131
  totalTokens: explicitTotal > 0 ? explicitTotal : derivedTotal
130
132
  };
131
133
  }
134
+ function normalizeContextUsage(value) {
135
+ if (typeof value !== "object" || value === null)
136
+ return;
137
+ const v = value;
138
+ if (typeof v.modelId !== "string" || v.modelId.length === 0)
139
+ return;
140
+ return {
141
+ modelId: v.modelId,
142
+ usedTokens: toNonNegativeInteger(v.usedTokens),
143
+ contextLimit: toNonNegativeInteger(v.contextLimit)
144
+ };
145
+ }
132
146
  function metricsPath(sessionRootPath) {
133
147
  return join(sessionRootPath, EXECUTION_METRICS_FILENAME);
134
148
  }
@@ -143,6 +157,7 @@ function readExecutionMetrics(sessionRootPath) {
143
157
  const parsed = JSON.parse(readFileSync(path, "utf-8"));
144
158
  return {
145
159
  tokenUsage: normalizeTokenUsage(parsed.tokenUsage),
160
+ contextUsage: normalizeContextUsage(parsed.contextUsage),
146
161
  runtime: typeof parsed.runtime === "string" ? parsed.runtime : undefined,
147
162
  elapsedSeconds: toNonNegativeInteger(parsed.elapsedSeconds) || undefined,
148
163
  updatedAt: typeof parsed.updatedAt === "string" ? parsed.updatedAt : new Date().toISOString()
@@ -167,10 +182,13 @@ function writeExecutionMetrics(input) {
167
182
  const nextTokenUsage = input.tokenUsage ? normalizeTokenUsage(input.tokenUsage) : existing?.tokenUsage ?? {
168
183
  inputTokens: 0,
169
184
  outputTokens: 0,
185
+ cacheReadTokens: 0,
186
+ cacheWriteTokens: 0,
170
187
  totalTokens: 0
171
188
  };
172
189
  const next = {
173
190
  tokenUsage: nextTokenUsage,
191
+ contextUsage: input.contextUsage ?? existing?.contextUsage,
174
192
  runtime: input.runtime ?? existing?.runtime,
175
193
  elapsedSeconds: input.elapsedSeconds ?? existing?.elapsedSeconds,
176
194
  updatedAt: new Date().toISOString()
@@ -7639,16 +7657,6 @@ When finished, call \`response\` with a summary of how many entry points you doc
7639
7657
  // src/core/workflows/pentest.ts
7640
7658
  var log5 = scopedLogger(() => createLogger("pentest-swarm"));
7641
7659
  var DEFAULT_CONCURRENCY2 = 10;
7642
- function addUsageTotals(totals, usage) {
7643
- if (!usage)
7644
- return;
7645
- const inputTokens = usage.inputTokens ?? 0;
7646
- const outputTokens = usage.outputTokens ?? 0;
7647
- const totalTokens = usage.totalTokens ?? inputTokens + outputTokens;
7648
- totals.inputTokens += inputTokens;
7649
- totals.outputTokens += outputTokens;
7650
- totals.totalTokens += totalTokens;
7651
- }
7652
7660
  async function runPentestSwarm(input) {
7653
7661
  const {
7654
7662
  targets,
@@ -7661,6 +7669,7 @@ async function runPentestSwarm(input) {
7661
7669
  onError,
7662
7670
  concurrency = DEFAULT_CONCURRENCY2,
7663
7671
  onStepFinish,
7672
+ onCacheMetrics,
7664
7673
  enableThinking,
7665
7674
  thinkingEffort,
7666
7675
  openAIReasoningEffort,
@@ -7717,6 +7726,8 @@ async function runPentestSwarm(input) {
7717
7726
  tasksDir: executionTasksDir,
7718
7727
  planSubagentId: subagentId,
7719
7728
  eventBus,
7729
+ onStepFinish,
7730
+ onCacheMetrics,
7720
7731
  enableThinking,
7721
7732
  thinkingEffort,
7722
7733
  openAIReasoningEffort,
@@ -7750,6 +7761,8 @@ async function runPentestSwarm(input) {
7750
7761
  abortSignal,
7751
7762
  findingsRegistry,
7752
7763
  onStepFinish: handleStepFinish,
7764
+ onCacheMetrics,
7765
+ forwardUsageCallbacksToSpawnedAgents: true,
7753
7766
  messages: previousMessages.length > 0 ? previousMessages : undefined,
7754
7767
  eventBus,
7755
7768
  subagentId,
@@ -7802,7 +7815,7 @@ async function runPentestSwarm(input) {
7802
7815
  }
7803
7816
  async function runPentestWorkflow(input) {
7804
7817
  if (input.fastStrike) {
7805
- const { runFastStrike } = await import("./fastStrike-8zka43xs.js");
7818
+ const { runFastStrike } = await import("./fastStrike-0e8b4ghw.js");
7806
7819
  return runFastStrike(input);
7807
7820
  }
7808
7821
  const {
@@ -7839,17 +7852,6 @@ async function runPentestWorkflow(input) {
7839
7852
  ${combined}` : combined;
7840
7853
  }
7841
7854
  const startedAt = Date.now();
7842
- const tokenUsageTotals = {
7843
- inputTokens: 0,
7844
- outputTokens: 0,
7845
- totalTokens: 0
7846
- };
7847
- const wrappedOnStepFinish = (event) => {
7848
- addUsageTotals(tokenUsageTotals, event.usage);
7849
- if (onStepFinish) {
7850
- onStepFinish(event);
7851
- }
7852
- };
7853
7855
  try {
7854
7856
  const mode = cwd ? "whitebox" : "blackbox";
7855
7857
  let swarmTargets;
@@ -7886,7 +7888,7 @@ ${combined}` : combined;
7886
7888
  authConfig,
7887
7889
  abortSignal,
7888
7890
  eventBus,
7889
- onStepFinish: wrappedOnStepFinish,
7891
+ onStepFinish,
7890
7892
  onCacheMetrics,
7891
7893
  openAIReasoningEffort,
7892
7894
  surfaceIntegrationEnabled
@@ -7899,7 +7901,7 @@ ${combined}` : combined;
7899
7901
  authConfig,
7900
7902
  abortSignal,
7901
7903
  eventBus,
7902
- onStepFinish: wrappedOnStepFinish,
7904
+ onStepFinish,
7903
7905
  onCacheMetrics,
7904
7906
  openAIReasoningEffort
7905
7907
  });
@@ -7952,7 +7954,8 @@ ${combined}` : combined;
7952
7954
  abortSignal,
7953
7955
  findingsRegistry,
7954
7956
  eventBus,
7955
- onStepFinish: wrappedOnStepFinish,
7957
+ onStepFinish,
7958
+ onCacheMetrics,
7956
7959
  enableThinking,
7957
7960
  thinkingEffort,
7958
7961
  openAIReasoningEffort
@@ -8000,7 +8003,6 @@ ${combined}` : combined;
8000
8003
  const runtime = formatDurationHmsFromMs(Date.now() - startedAt);
8001
8004
  writeExecutionMetrics({
8002
8005
  sessionRootPath: session.rootPath,
8003
- tokenUsage: tokenUsageTotals,
8004
8006
  runtime
8005
8007
  });
8006
8008
  }
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  config,
3
3
  init_config
4
- } from "./cli-72cvcqhg.js";
4
+ } from "./cli-y9mjgfsd.js";
5
5
  import {
6
6
  __esm
7
7
  } from "./cli-bc05qbss.js";
@@ -1,11 +1,12 @@
1
1
  import {
2
+ AttackPathSchema,
2
3
  CweEntrySchema,
3
4
  ValidatedCweEntrySchema
4
- } from "./cli-repbyhkk.js";
5
+ } from "./cli-6grv9k35.js";
5
6
  import {
6
7
  exports_external,
7
8
  init_zod
8
- } from "./cli-swpbx60z.js";
9
+ } from "./cli-avmhkjtv.js";
9
10
 
10
11
  // src/core/agents/offSecAgent/types.ts
11
12
  init_zod();
@@ -47,7 +48,8 @@ var ApexFindingObject = exports_external.object({
47
48
  rootCauseGroup: exports_external.string().optional(),
48
49
  relatedFindings: exports_external.array(exports_external.string()).optional(),
49
50
  rootCauseLead: exports_external.boolean().optional(),
50
- evidenceFiles: exports_external.array(EvidenceFileEntrySchema).optional()
51
+ evidenceFiles: exports_external.array(EvidenceFileEntrySchema).optional(),
52
+ attackPath: AttackPathSchema.optional()
51
53
  });
52
54
 
53
55
  export { EvidenceFileEntrySchema, ApexFindingObject };
@@ -1,15 +1,16 @@
1
1
  import {
2
2
  EvidenceFileEntrySchema
3
- } from "./cli-qqt4gj1w.js";
3
+ } from "./cli-3x1y9yk0.js";
4
4
  import {
5
+ AttackPathSchema,
5
6
  CweEntrySchema,
6
7
  ValidatedCweEntrySchema,
7
8
  hasCanonicalName
8
- } from "./cli-repbyhkk.js";
9
+ } from "./cli-6grv9k35.js";
9
10
  import {
10
11
  exports_external,
11
12
  init_zod
12
- } from "./cli-swpbx60z.js";
13
+ } from "./cli-avmhkjtv.js";
13
14
 
14
15
  // src/core/report/schemas.ts
15
16
  init_zod();
@@ -27,7 +28,8 @@ var PentestReportFindingSchema = exports_external.object({
27
28
  rootCauseGroup: exports_external.string().optional(),
28
29
  relatedFindings: exports_external.array(exports_external.string()).optional(),
29
30
  rootCauseLead: exports_external.boolean().optional(),
30
- evidenceFiles: exports_external.array(EvidenceFileEntrySchema).optional()
31
+ evidenceFiles: exports_external.array(EvidenceFileEntrySchema).optional(),
32
+ attackPath: AttackPathSchema.optional()
31
33
  });
32
34
  var PentestReportSchema = exports_external.object({
33
35
  version: exports_external.string().regex(/^1\.\d+$/),
@@ -86,7 +88,8 @@ function buildPentestReport(findings, context) {
86
88
  rootCauseGroup: f.rootCauseGroup,
87
89
  relatedFindings: f.relatedFindings,
88
90
  rootCauseLead: f.rootCauseLead,
89
- evidenceFiles: f.evidenceFiles
91
+ evidenceFiles: f.evidenceFiles,
92
+ attackPath: f.attackPath
90
93
  }))
91
94
  };
92
95
  }
@@ -141,6 +144,12 @@ function renderFinding(finding, metadata) {
141
144
  "",
142
145
  finding.impact,
143
146
  "",
147
+ ...finding.attackPath?.length ? [
148
+ "## Attack Path",
149
+ "",
150
+ ...finding.attackPath.map(renderAttackPathHop),
151
+ ""
152
+ ] : [],
144
153
  "## Evidence",
145
154
  "",
146
155
  "```",
@@ -187,6 +196,20 @@ function renderFinding(finding, metadata) {
187
196
  return lines.join(`
188
197
  `);
189
198
  }
199
+ function renderAttackPathHop(hop, index) {
200
+ const parts = [];
201
+ if (hop.applicationName)
202
+ parts.push(`**${hop.applicationName}**`);
203
+ if (hop.applicationId)
204
+ parts.push(`(\`${hop.applicationId}\`)`);
205
+ if (hop.host)
206
+ parts.push(`host \`${hop.host}\``);
207
+ if (hop.relationshipType)
208
+ parts.push(`via ${hop.relationshipType}`);
209
+ if (hop.notes)
210
+ parts.push(`— ${hop.notes}`);
211
+ return `${index + 1}. ${parts.join(" ") || "Unspecified system member"}`;
212
+ }
190
213
 
191
214
  // src/core/report/index.ts
192
215
  var REPORT_FILENAME_MD = "pentest-report.md";
@@ -0,0 +1,15 @@
1
+ import {
2
+ __commonJS,
3
+ __require
4
+ } from "./cli-bc05qbss.js";
5
+
6
+ // node_modules/@opentelemetry/resources/build/src/detectors/platform/node/machine-id/execAsync.js
7
+ var require_execAsync = __commonJS(function(exports) {
8
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ exports.execAsync = undefined;
10
+ var child_process = __require("child_process");
11
+ var util = __require("util");
12
+ exports.execAsync = util.promisify(child_process.exec);
13
+ });
14
+
15
+ export { require_execAsync };
@@ -3,7 +3,7 @@ import {
3
3
  } from "./cli-bc05qbss.js";
4
4
 
5
5
  // package.json
6
- var package_default;
6
+ var version = "2.5.0-canary.c20fe7ed", package_default;
7
7
  var init_package = __esm(() => {
8
8
  package_default = {
9
9
  author: "Pensar",
@@ -23,6 +23,10 @@ var init_package = __esm(() => {
23
23
  "@modelcontextprotocol/sdk": "^1.29.0",
24
24
  "@openrouter/ai-sdk-provider": "^2.9.1",
25
25
  "@opentelemetry/api": "^1.9.1",
26
+ "@opentelemetry/exporter-trace-otlp-http": "^0.221.0",
27
+ "@opentelemetry/otlp-exporter-base": "^0.221.0",
28
+ "@opentelemetry/otlp-transformer": "^0.221.0",
29
+ "@opentelemetry/resources": "^2.10.0",
26
30
  "@opentui/core": "^0.1.107",
27
31
  "@opentui/react": "^0.1.107",
28
32
  "@pensar/surface": "0.3.0",
@@ -46,6 +50,8 @@ var init_package = __esm(() => {
46
50
  description: "AI-powered penetration testing CLI tool with terminal UI",
47
51
  devDependencies: {
48
52
  "@biomejs/biome": "2.4.14",
53
+ "@opentelemetry/context-async-hooks": "^2.10.0",
54
+ "@opentelemetry/sdk-trace-base": "^2.10.0",
49
55
  "@types/bun": "^1.3.14",
50
56
  "@types/mailparser": "^3.4.6",
51
57
  "@types/mime-types": "^3.0.1",
@@ -92,7 +98,7 @@ var init_package = __esm(() => {
92
98
  url: "https://github.com/pensarai/apex.git"
93
99
  },
94
100
  scripts: {
95
- build: "bun build src/cli.ts --outdir build --target node --format esm --splitting --external @opentui/core --external @opentui/react --external @opentui/react/* --external react --external react/jsx-runtime --external react/jsx-dev-runtime --external react-reconciler --external weave --external electron --external chromium-bidi --external camoufox-js",
101
+ build: "rm -rf build && bun build src/cli.ts --outdir build --target node --format esm --splitting --external @opentui/core --external @opentui/react --external @opentui/react/* --external react --external react/jsx-runtime --external react/jsx-dev-runtime --external react-reconciler --external weave --external electron --external chromium-bidi --external camoufox-js",
96
102
  "build:binaries": "bun run generate:ascii && mkdir -p dist && bun run build:binary:macos-arm64 && bun run build:binary:macos-x64 && bun run build:binary:linux-x64 && bun run build:binary:linux-arm64",
97
103
  "build:binary": "bun run generate:ascii && bun build src/cli.ts --compile --external electron --external chromium-bidi --external camoufox-js --outfile pensar",
98
104
  "build:binary:linux-arm64": "bun build src/cli.ts --compile --external electron --external chromium-bidi --external camoufox-js --target=bun-linux-arm64 --outfile dist/pensar-linux-arm64",
@@ -120,7 +126,7 @@ var init_package = __esm(() => {
120
126
  tsc: "tsc --noEmit"
121
127
  },
122
128
  type: "module",
123
- version: "2.4.0"
129
+ version
124
130
  };
125
131
  });
126
132
 
@@ -195,4 +201,4 @@ var init_installation = __esm(() => {
195
201
  init_package();
196
202
  });
197
203
 
198
- export { init_package, package_default, getCurrentVersion, detectInstallMethod, checkForUpdate, init_installation };
204
+ export { init_package, version, package_default, getCurrentVersion, detectInstallMethod, checkForUpdate, init_installation };