@chainpatrol/cli 1.10.0 → 1.11.0
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/CHANGELOG.md +21 -0
- package/dist/{breakdown-2HAZ2MX5.js → breakdown-BLCYJP7O.js} +4 -3
- package/dist/{check-5LJI7N5I.js → check-2IFMTAIU.js} +4 -3
- package/dist/chunk-4QZ7KD2Y.js +18 -0
- package/dist/{chunk-GGBG2R63.js → chunk-BSWGLZDK.js} +1 -1
- package/dist/{chunk-FPCN4SNK.js → chunk-CABRZEYB.js} +1 -1
- package/dist/chunk-K4RAUZSD.js +32 -0
- package/dist/{chunk-322AVMUH.js → chunk-NSRQ62C4.js} +3 -16
- package/dist/chunk-OKIUEBUK.js +61 -0
- package/dist/{chunk-EGWK6SRQ.js → chunk-ORAY4KMA.js} +1 -1
- package/dist/{chunk-LE5ZOOUI.js → chunk-TGIVCSKT.js} +6 -62
- package/dist/cli.js +81 -50
- package/dist/{config-Z3TASRME.js → config-IKTL6KVW.js} +3 -1
- package/dist/{configs-update-N7ZIWWKQ.js → configs-update-XUN4X4T2.js} +4 -3
- package/dist/{create-4ZJ7DXHX.js → create-ILSWAUVI.js} +4 -3
- package/dist/{drift-BGWNH6QE.js → drift-DPYW7LYN.js} +4 -3
- package/dist/{found-QOARB5G2.js → found-YLTMVPBZ.js} +4 -3
- package/dist/{get-ON5JOCV7.js → get-NDEY54AO.js} +4 -3
- package/dist/{healthcheck-34LQTSVZ.js → healthcheck-SYZQ2ILK.js} +4 -3
- package/dist/{list-AG6LWNMN.js → list-2H2CV3JJ.js} +4 -3
- package/dist/{list-XV3G2AX6.js → list-4THJBDSU.js} +4 -3
- package/dist/{list-JG5ARDTR.js → list-FUQK3TIN.js} +5 -4
- package/dist/{list-UXYGISAK.js → list-GTN2HNGZ.js} +4 -3
- package/dist/{list-DJFIKDY6.js → list-H4RCDI6Q.js} +4 -3
- package/dist/{list-PAJBOVN2.js → list-LWB5JQAY.js} +4 -3
- package/dist/{list-6CAKS43I.js → list-PV5GY2DY.js} +4 -3
- package/dist/{list-W6CF25ZS.js → list-Q5K4RMM4.js} +4 -3
- package/dist/{list-UPY6PHY4.js → list-RUIQIVEA.js} +4 -3
- package/dist/{list-5TKOWBC4.js → list-VHDU3XMN.js} +4 -3
- package/dist/{list-SJFJT4V3.js → list-WYC4ZP7X.js} +4 -3
- package/dist/{list-IVFZGLKN.js → list-YFBZVQWK.js} +4 -3
- package/dist/{list-json-ZR3XOQPJ.js → list-json-B4X74BTZ.js} +4 -3
- package/dist/{login-2NRI3ECY.js → login-H2G6RBLL.js} +3 -3
- package/dist/{login-json-HOCNSQQ7.js → login-json-5DVIMAO2.js} +3 -3
- package/dist/{login-plain-6ZJF5KA7.js → login-plain-PUWGRRYT.js} +3 -3
- package/dist/{logout-T6Q4IVPU.js → logout-332KFFNS.js} +2 -2
- package/dist/{logout-json-ACXBI6PN.js → logout-json-VMGXQQS2.js} +2 -2
- package/dist/mcp-ITEWOAOR.js +46 -0
- package/dist/{organization-SSCPM7XN.js → organization-KANXTARX.js} +4 -3
- package/dist/{review-7A7WV73T.js → review-5J3EQRCB.js} +4 -3
- package/dist/{run-LZZOV4HG.js → run-FDZWPY4W.js} +4 -3
- package/dist/{run-AIYPHWFJ.js → run-JBQ43OW6.js} +4 -3
- package/dist/{run-YP4O5VXZ.js → run-XWM67MBV.js} +5 -4
- package/dist/{search-OGGKNPUJ.js → search-A75YUJFI.js} +4 -3
- package/dist/{search-IWS42COG.js → search-DRTTZJJP.js} +4 -3
- package/dist/{setup-skill-ESJ4HIKR.js → setup-skill-TVJJD6NC.js} +2 -1
- package/dist/{snapshot-TLSOPK7C.js → snapshot-2IT4KG4F.js} +4 -3
- package/dist/{summary-XA3PVJIW.js → summary-A24TNQNR.js} +4 -3
- package/dist/{takedown-time-ARGVSPL6.js → takedown-time-HB3J2FTZ.js} +4 -3
- package/dist/{takedown-time-trend-LL3ZCCSD.js → takedown-time-trend-KYPA3W3U.js} +4 -3
- package/dist/{validate-WB5367QN.js → validate-FOZCI7HX.js} +4 -3
- package/dist/{whoami-YE3V6I65.js → whoami-DSXNLG3B.js} +4 -3
- package/package.json +3 -1
- package/dist/chunk-U73SABXK.js +0 -46
|
@@ -4,13 +4,14 @@ import {
|
|
|
4
4
|
} from "./chunk-JCMWDZYY.js";
|
|
5
5
|
import {
|
|
6
6
|
createApiClient
|
|
7
|
-
} from "./chunk-
|
|
7
|
+
} from "./chunk-NSRQ62C4.js";
|
|
8
|
+
import "./chunk-4QZ7KD2Y.js";
|
|
8
9
|
import {
|
|
9
10
|
AuthCorruptedError,
|
|
10
11
|
AuthExpiredError,
|
|
11
12
|
AuthNotLoggedInError
|
|
12
|
-
} from "./chunk-
|
|
13
|
-
import "./chunk-
|
|
13
|
+
} from "./chunk-ORAY4KMA.js";
|
|
14
|
+
import "./chunk-K4RAUZSD.js";
|
|
14
15
|
|
|
15
16
|
// src/commands/configs/list.tsx
|
|
16
17
|
import { useState, useEffect } from "react";
|
|
@@ -4,9 +4,10 @@ import {
|
|
|
4
4
|
} from "./chunk-VFT3TD3E.js";
|
|
5
5
|
import {
|
|
6
6
|
createApiClient
|
|
7
|
-
} from "./chunk-
|
|
8
|
-
import "./chunk-
|
|
9
|
-
import "./chunk-
|
|
7
|
+
} from "./chunk-NSRQ62C4.js";
|
|
8
|
+
import "./chunk-4QZ7KD2Y.js";
|
|
9
|
+
import "./chunk-ORAY4KMA.js";
|
|
10
|
+
import "./chunk-K4RAUZSD.js";
|
|
10
11
|
|
|
11
12
|
// src/commands/healthchecks/list.ts
|
|
12
13
|
async function runHealthchecksList(options) {
|
|
@@ -8,9 +8,10 @@ import {
|
|
|
8
8
|
} from "./chunk-VFT3TD3E.js";
|
|
9
9
|
import {
|
|
10
10
|
createApiClient
|
|
11
|
-
} from "./chunk-
|
|
12
|
-
import "./chunk-
|
|
13
|
-
import "./chunk-
|
|
11
|
+
} from "./chunk-NSRQ62C4.js";
|
|
12
|
+
import "./chunk-4QZ7KD2Y.js";
|
|
13
|
+
import "./chunk-ORAY4KMA.js";
|
|
14
|
+
import "./chunk-K4RAUZSD.js";
|
|
14
15
|
|
|
15
16
|
// src/commands/threats/list.ts
|
|
16
17
|
function toRow(threat) {
|
|
@@ -8,9 +8,10 @@ import {
|
|
|
8
8
|
} from "./chunk-VFT3TD3E.js";
|
|
9
9
|
import {
|
|
10
10
|
createApiClient
|
|
11
|
-
} from "./chunk-
|
|
12
|
-
import "./chunk-
|
|
13
|
-
import "./chunk-
|
|
11
|
+
} from "./chunk-NSRQ62C4.js";
|
|
12
|
+
import "./chunk-4QZ7KD2Y.js";
|
|
13
|
+
import "./chunk-ORAY4KMA.js";
|
|
14
|
+
import "./chunk-K4RAUZSD.js";
|
|
14
15
|
|
|
15
16
|
// src/commands/orgs/assets/list.ts
|
|
16
17
|
function toRow(asset) {
|
|
@@ -4,9 +4,10 @@ import {
|
|
|
4
4
|
} from "./chunk-VFT3TD3E.js";
|
|
5
5
|
import {
|
|
6
6
|
createApiClient
|
|
7
|
-
} from "./chunk-
|
|
8
|
-
import "./chunk-
|
|
9
|
-
import "./chunk-
|
|
7
|
+
} from "./chunk-NSRQ62C4.js";
|
|
8
|
+
import "./chunk-4QZ7KD2Y.js";
|
|
9
|
+
import "./chunk-ORAY4KMA.js";
|
|
10
|
+
import "./chunk-K4RAUZSD.js";
|
|
10
11
|
|
|
11
12
|
// src/commands/orgs/asset-groups/list.ts
|
|
12
13
|
function toRow(group) {
|
|
@@ -4,9 +4,10 @@ import {
|
|
|
4
4
|
} from "./chunk-VFT3TD3E.js";
|
|
5
5
|
import {
|
|
6
6
|
createApiClient
|
|
7
|
-
} from "./chunk-
|
|
8
|
-
import "./chunk-
|
|
9
|
-
import "./chunk-
|
|
7
|
+
} from "./chunk-NSRQ62C4.js";
|
|
8
|
+
import "./chunk-4QZ7KD2Y.js";
|
|
9
|
+
import "./chunk-ORAY4KMA.js";
|
|
10
|
+
import "./chunk-K4RAUZSD.js";
|
|
10
11
|
|
|
11
12
|
// src/commands/brands/list.ts
|
|
12
13
|
function summarizeLegalDocs(brand) {
|
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
import {
|
|
2
2
|
createApiClient
|
|
3
|
-
} from "./chunk-
|
|
4
|
-
import "./chunk-
|
|
5
|
-
import "./chunk-
|
|
3
|
+
} from "./chunk-NSRQ62C4.js";
|
|
4
|
+
import "./chunk-4QZ7KD2Y.js";
|
|
5
|
+
import "./chunk-ORAY4KMA.js";
|
|
6
|
+
import "./chunk-K4RAUZSD.js";
|
|
6
7
|
|
|
7
8
|
// src/commands/configs/list-json.ts
|
|
8
9
|
async function listConfigsJson({
|
|
@@ -5,7 +5,7 @@ import {
|
|
|
5
5
|
import {
|
|
6
6
|
formatUserCode,
|
|
7
7
|
isHeadlessEnv
|
|
8
|
-
} from "./chunk-
|
|
8
|
+
} from "./chunk-BSWGLZDK.js";
|
|
9
9
|
import "./chunk-TFCNKBRC.js";
|
|
10
10
|
import {
|
|
11
11
|
fetchUserEmail,
|
|
@@ -15,8 +15,8 @@ import {
|
|
|
15
15
|
pollForToken,
|
|
16
16
|
requestDeviceCode,
|
|
17
17
|
storeCredentials
|
|
18
|
-
} from "./chunk-
|
|
19
|
-
import "./chunk-
|
|
18
|
+
} from "./chunk-ORAY4KMA.js";
|
|
19
|
+
import "./chunk-K4RAUZSD.js";
|
|
20
20
|
|
|
21
21
|
// src/commands/login.tsx
|
|
22
22
|
import { useState, useEffect } from "react";
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import {
|
|
2
2
|
isHeadlessEnv,
|
|
3
3
|
runLoginFlow
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-BSWGLZDK.js";
|
|
5
5
|
import "./chunk-TFCNKBRC.js";
|
|
6
|
-
import "./chunk-
|
|
7
|
-
import "./chunk-
|
|
6
|
+
import "./chunk-ORAY4KMA.js";
|
|
7
|
+
import "./chunk-K4RAUZSD.js";
|
|
8
8
|
|
|
9
9
|
// src/commands/login-json.ts
|
|
10
10
|
async function loginJson() {
|
|
@@ -2,10 +2,10 @@ import {
|
|
|
2
2
|
formatUserCode,
|
|
3
3
|
isHeadlessEnv,
|
|
4
4
|
runLoginFlow
|
|
5
|
-
} from "./chunk-
|
|
5
|
+
} from "./chunk-BSWGLZDK.js";
|
|
6
6
|
import "./chunk-TFCNKBRC.js";
|
|
7
|
-
import "./chunk-
|
|
8
|
-
import "./chunk-
|
|
7
|
+
import "./chunk-ORAY4KMA.js";
|
|
8
|
+
import "./chunk-K4RAUZSD.js";
|
|
9
9
|
|
|
10
10
|
// src/commands/login-plain.ts
|
|
11
11
|
async function loginPlain() {
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import {
|
|
2
|
+
CliExitError,
|
|
3
|
+
ExitCode
|
|
4
|
+
} from "./chunk-E2LAMILJ.js";
|
|
5
|
+
import {
|
|
6
|
+
getCliVersion
|
|
7
|
+
} from "./chunk-OKIUEBUK.js";
|
|
8
|
+
import {
|
|
9
|
+
createCliCredentialProvider
|
|
10
|
+
} from "./chunk-4QZ7KD2Y.js";
|
|
11
|
+
import "./chunk-ORAY4KMA.js";
|
|
12
|
+
import {
|
|
13
|
+
getConfig
|
|
14
|
+
} from "./chunk-K4RAUZSD.js";
|
|
15
|
+
|
|
16
|
+
// src/commands/mcp.ts
|
|
17
|
+
import {
|
|
18
|
+
createChainPatrolMcpServer,
|
|
19
|
+
createHttpInvoker,
|
|
20
|
+
toolsFromEnvironment
|
|
21
|
+
} from "@chainpatrol/mcp";
|
|
22
|
+
import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
|
|
23
|
+
async function runMcpServe(options = {}, deps = {}) {
|
|
24
|
+
const createServer = deps.createServer ?? createChainPatrolMcpServer;
|
|
25
|
+
const createTransport = deps.createTransport ?? (() => new StdioServerTransport());
|
|
26
|
+
const only = options.only ?? toolsFromEnvironment(deps.env);
|
|
27
|
+
const server = createServer({
|
|
28
|
+
invoker: createHttpInvoker({
|
|
29
|
+
baseUrl: options.apiUrl ?? getConfig().apiUrl,
|
|
30
|
+
credential: createCliCredentialProvider()
|
|
31
|
+
}),
|
|
32
|
+
only,
|
|
33
|
+
version: getCliVersion()
|
|
34
|
+
});
|
|
35
|
+
try {
|
|
36
|
+
await server.connect(createTransport());
|
|
37
|
+
} catch (error) {
|
|
38
|
+
throw new CliExitError(
|
|
39
|
+
`Failed to start the MCP server: ${error instanceof Error ? error.message : String(error)}`,
|
|
40
|
+
ExitCode.UNKNOWN
|
|
41
|
+
);
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
export {
|
|
45
|
+
runMcpServe
|
|
46
|
+
};
|
|
@@ -8,10 +8,11 @@ import {
|
|
|
8
8
|
import {
|
|
9
9
|
ORGANIZATION_METRICS_INCLUDE_FIELDS,
|
|
10
10
|
createApiClient
|
|
11
|
-
} from "./chunk-
|
|
11
|
+
} from "./chunk-NSRQ62C4.js";
|
|
12
|
+
import "./chunk-4QZ7KD2Y.js";
|
|
12
13
|
import "./chunk-TFCNKBRC.js";
|
|
13
|
-
import "./chunk-
|
|
14
|
-
import "./chunk-
|
|
14
|
+
import "./chunk-ORAY4KMA.js";
|
|
15
|
+
import "./chunk-K4RAUZSD.js";
|
|
15
16
|
|
|
16
17
|
// src/commands/metrics/organization.ts
|
|
17
18
|
var SERVICE_KEYS = [
|
|
@@ -10,9 +10,10 @@ import {
|
|
|
10
10
|
PROPOSAL_REJECT_REASONS,
|
|
11
11
|
PROPOSAL_WATCHLIST_REASONS,
|
|
12
12
|
createApiClient
|
|
13
|
-
} from "./chunk-
|
|
14
|
-
import "./chunk-
|
|
15
|
-
import "./chunk-
|
|
13
|
+
} from "./chunk-NSRQ62C4.js";
|
|
14
|
+
import "./chunk-4QZ7KD2Y.js";
|
|
15
|
+
import "./chunk-ORAY4KMA.js";
|
|
16
|
+
import "./chunk-K4RAUZSD.js";
|
|
16
17
|
|
|
17
18
|
// src/commands/proposals/review.ts
|
|
18
19
|
var BRAND_REQUIRED_LABELS = ["brand impersonation", "employee impersonation"];
|
|
@@ -8,9 +8,10 @@ import {
|
|
|
8
8
|
} from "./chunk-VFT3TD3E.js";
|
|
9
9
|
import {
|
|
10
10
|
createApiClient
|
|
11
|
-
} from "./chunk-
|
|
12
|
-
import "./chunk-
|
|
13
|
-
import "./chunk-
|
|
11
|
+
} from "./chunk-NSRQ62C4.js";
|
|
12
|
+
import "./chunk-4QZ7KD2Y.js";
|
|
13
|
+
import "./chunk-ORAY4KMA.js";
|
|
14
|
+
import "./chunk-K4RAUZSD.js";
|
|
14
15
|
|
|
15
16
|
// src/commands/detections/run.ts
|
|
16
17
|
async function runDetectionsRun(options) {
|
|
@@ -8,9 +8,10 @@ import {
|
|
|
8
8
|
} from "./chunk-VFT3TD3E.js";
|
|
9
9
|
import {
|
|
10
10
|
createApiClient
|
|
11
|
-
} from "./chunk-
|
|
12
|
-
import "./chunk-
|
|
13
|
-
import "./chunk-
|
|
11
|
+
} from "./chunk-NSRQ62C4.js";
|
|
12
|
+
import "./chunk-4QZ7KD2Y.js";
|
|
13
|
+
import "./chunk-ORAY4KMA.js";
|
|
14
|
+
import "./chunk-K4RAUZSD.js";
|
|
14
15
|
|
|
15
16
|
// src/commands/healthchecks/run.ts
|
|
16
17
|
function buildPayload(entry, org, thresholds) {
|
|
@@ -1,16 +1,17 @@
|
|
|
1
1
|
import {
|
|
2
2
|
getPresetDefinition,
|
|
3
3
|
runPreset
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-CABRZEYB.js";
|
|
5
5
|
import {
|
|
6
6
|
CliExitError,
|
|
7
7
|
ExitCode
|
|
8
8
|
} from "./chunk-E2LAMILJ.js";
|
|
9
9
|
import "./chunk-VFT3TD3E.js";
|
|
10
|
-
import "./chunk-
|
|
10
|
+
import "./chunk-NSRQ62C4.js";
|
|
11
|
+
import "./chunk-4QZ7KD2Y.js";
|
|
11
12
|
import "./chunk-TFCNKBRC.js";
|
|
12
|
-
import "./chunk-
|
|
13
|
-
import "./chunk-
|
|
13
|
+
import "./chunk-ORAY4KMA.js";
|
|
14
|
+
import "./chunk-K4RAUZSD.js";
|
|
14
15
|
|
|
15
16
|
// src/commands/presets/run.ts
|
|
16
17
|
async function runPresetsRun({
|
|
@@ -8,9 +8,10 @@ import {
|
|
|
8
8
|
} from "./chunk-VFT3TD3E.js";
|
|
9
9
|
import {
|
|
10
10
|
createApiClient
|
|
11
|
-
} from "./chunk-
|
|
12
|
-
import "./chunk-
|
|
13
|
-
import "./chunk-
|
|
11
|
+
} from "./chunk-NSRQ62C4.js";
|
|
12
|
+
import "./chunk-4QZ7KD2Y.js";
|
|
13
|
+
import "./chunk-ORAY4KMA.js";
|
|
14
|
+
import "./chunk-K4RAUZSD.js";
|
|
14
15
|
|
|
15
16
|
// src/commands/reports/search.ts
|
|
16
17
|
function toRow(report) {
|
|
@@ -8,9 +8,10 @@ import {
|
|
|
8
8
|
} from "./chunk-VFT3TD3E.js";
|
|
9
9
|
import {
|
|
10
10
|
createApiClient
|
|
11
|
-
} from "./chunk-
|
|
12
|
-
import "./chunk-
|
|
13
|
-
import "./chunk-
|
|
11
|
+
} from "./chunk-NSRQ62C4.js";
|
|
12
|
+
import "./chunk-4QZ7KD2Y.js";
|
|
13
|
+
import "./chunk-ORAY4KMA.js";
|
|
14
|
+
import "./chunk-K4RAUZSD.js";
|
|
14
15
|
|
|
15
16
|
// src/commands/asset/search.ts
|
|
16
17
|
function formatAssetRow(item) {
|
|
@@ -8,9 +8,10 @@ import {
|
|
|
8
8
|
} from "./chunk-VFT3TD3E.js";
|
|
9
9
|
import {
|
|
10
10
|
createApiClient
|
|
11
|
-
} from "./chunk-
|
|
12
|
-
import "./chunk-
|
|
13
|
-
import "./chunk-
|
|
11
|
+
} from "./chunk-NSRQ62C4.js";
|
|
12
|
+
import "./chunk-4QZ7KD2Y.js";
|
|
13
|
+
import "./chunk-ORAY4KMA.js";
|
|
14
|
+
import "./chunk-K4RAUZSD.js";
|
|
14
15
|
|
|
15
16
|
// src/commands/queues/snapshot.ts
|
|
16
17
|
async function runQueuesSnapshot(options) {
|
|
@@ -7,10 +7,11 @@ import {
|
|
|
7
7
|
} from "./chunk-VFT3TD3E.js";
|
|
8
8
|
import {
|
|
9
9
|
createApiClient
|
|
10
|
-
} from "./chunk-
|
|
10
|
+
} from "./chunk-NSRQ62C4.js";
|
|
11
|
+
import "./chunk-4QZ7KD2Y.js";
|
|
11
12
|
import "./chunk-TFCNKBRC.js";
|
|
12
|
-
import "./chunk-
|
|
13
|
-
import "./chunk-
|
|
13
|
+
import "./chunk-ORAY4KMA.js";
|
|
14
|
+
import "./chunk-K4RAUZSD.js";
|
|
14
15
|
|
|
15
16
|
// src/commands/metrics/summary.ts
|
|
16
17
|
async function runMetricsSummary(options) {
|
|
@@ -7,10 +7,11 @@ import {
|
|
|
7
7
|
} from "./chunk-VFT3TD3E.js";
|
|
8
8
|
import {
|
|
9
9
|
createApiClient
|
|
10
|
-
} from "./chunk-
|
|
10
|
+
} from "./chunk-NSRQ62C4.js";
|
|
11
|
+
import "./chunk-4QZ7KD2Y.js";
|
|
11
12
|
import "./chunk-TFCNKBRC.js";
|
|
12
|
-
import "./chunk-
|
|
13
|
-
import "./chunk-
|
|
13
|
+
import "./chunk-ORAY4KMA.js";
|
|
14
|
+
import "./chunk-K4RAUZSD.js";
|
|
14
15
|
|
|
15
16
|
// src/commands/metrics/takedown-time.ts
|
|
16
17
|
function formatDuration(hours) {
|
|
@@ -4,9 +4,10 @@ import {
|
|
|
4
4
|
} from "./chunk-VFT3TD3E.js";
|
|
5
5
|
import {
|
|
6
6
|
createApiClient
|
|
7
|
-
} from "./chunk-
|
|
8
|
-
import "./chunk-
|
|
9
|
-
import "./chunk-
|
|
7
|
+
} from "./chunk-NSRQ62C4.js";
|
|
8
|
+
import "./chunk-4QZ7KD2Y.js";
|
|
9
|
+
import "./chunk-ORAY4KMA.js";
|
|
10
|
+
import "./chunk-K4RAUZSD.js";
|
|
10
11
|
|
|
11
12
|
// src/commands/metrics/takedown-time-trend.ts
|
|
12
13
|
function formatDuration(hours) {
|
|
@@ -8,9 +8,10 @@ import {
|
|
|
8
8
|
} from "./chunk-VFT3TD3E.js";
|
|
9
9
|
import {
|
|
10
10
|
createApiClient
|
|
11
|
-
} from "./chunk-
|
|
12
|
-
import "./chunk-
|
|
13
|
-
import "./chunk-
|
|
11
|
+
} from "./chunk-NSRQ62C4.js";
|
|
12
|
+
import "./chunk-4QZ7KD2Y.js";
|
|
13
|
+
import "./chunk-ORAY4KMA.js";
|
|
14
|
+
import "./chunk-K4RAUZSD.js";
|
|
14
15
|
|
|
15
16
|
// src/commands/detections/validate.ts
|
|
16
17
|
async function runDetectionsValidate(options) {
|
|
@@ -3,9 +3,10 @@ import {
|
|
|
3
3
|
} from "./chunk-VFT3TD3E.js";
|
|
4
4
|
import {
|
|
5
5
|
createApiClient
|
|
6
|
-
} from "./chunk-
|
|
7
|
-
import "./chunk-
|
|
8
|
-
import "./chunk-
|
|
6
|
+
} from "./chunk-NSRQ62C4.js";
|
|
7
|
+
import "./chunk-4QZ7KD2Y.js";
|
|
8
|
+
import "./chunk-ORAY4KMA.js";
|
|
9
|
+
import "./chunk-K4RAUZSD.js";
|
|
9
10
|
|
|
10
11
|
// src/commands/whoami.ts
|
|
11
12
|
function detectAuthKind() {
|
package/package.json
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"name": "@chainpatrol/cli",
|
|
3
3
|
"description": "The official ChainPatrol CLI — terminal interface for threat detection",
|
|
4
4
|
"author": "Umar Ahmed <umar@chainpatrol.io>",
|
|
5
|
-
"version": "1.
|
|
5
|
+
"version": "1.11.0",
|
|
6
6
|
"license": "UNLICENSED",
|
|
7
7
|
"homepage": "https://chainpatrol.com/docs/cli",
|
|
8
8
|
"keywords": [
|
|
@@ -33,7 +33,9 @@
|
|
|
33
33
|
"lint": "npx oxlint ."
|
|
34
34
|
},
|
|
35
35
|
"dependencies": {
|
|
36
|
+
"@chainpatrol/mcp": "1.10.0",
|
|
36
37
|
"@chainpatrol/sdk": "1.10.0",
|
|
38
|
+
"@modelcontextprotocol/sdk": "^1.30.0",
|
|
37
39
|
"ink": "^7.0.1",
|
|
38
40
|
"meow": "^14.1.0",
|
|
39
41
|
"open": "^11.0.0",
|
package/dist/chunk-U73SABXK.js
DELETED
|
@@ -1,46 +0,0 @@
|
|
|
1
|
-
// src/lib/config.ts
|
|
2
|
-
import { readFileSync, writeFileSync, mkdirSync, existsSync } from "fs";
|
|
3
|
-
import { join } from "path";
|
|
4
|
-
import { homedir } from "os";
|
|
5
|
-
var DEFAULTS = {
|
|
6
|
-
apiUrl: process.env.CHAINPATROL_API_URL ?? "https://app.chainpatrol.io"
|
|
7
|
-
};
|
|
8
|
-
function getConfigDir() {
|
|
9
|
-
if (process.env.CHAINPATROL_CONFIG_DIR) {
|
|
10
|
-
return process.env.CHAINPATROL_CONFIG_DIR;
|
|
11
|
-
}
|
|
12
|
-
const legacy = join(homedir(), ".chainpatrol");
|
|
13
|
-
const xdg = join(
|
|
14
|
-
process.env.XDG_CONFIG_HOME ?? join(homedir(), ".config"),
|
|
15
|
-
"chainpatrol"
|
|
16
|
-
);
|
|
17
|
-
if (existsSync(legacy) && !existsSync(xdg)) {
|
|
18
|
-
return legacy;
|
|
19
|
-
}
|
|
20
|
-
return xdg;
|
|
21
|
-
}
|
|
22
|
-
function getConfig() {
|
|
23
|
-
const configFile = join(getConfigDir(), "config.json");
|
|
24
|
-
if (!existsSync(configFile)) {
|
|
25
|
-
return { ...DEFAULTS };
|
|
26
|
-
}
|
|
27
|
-
try {
|
|
28
|
-
const raw = readFileSync(configFile, "utf-8");
|
|
29
|
-
return { ...DEFAULTS, ...JSON.parse(raw) };
|
|
30
|
-
} catch {
|
|
31
|
-
return { ...DEFAULTS };
|
|
32
|
-
}
|
|
33
|
-
}
|
|
34
|
-
function saveConfig(config) {
|
|
35
|
-
const configDir = getConfigDir();
|
|
36
|
-
mkdirSync(configDir, { recursive: true });
|
|
37
|
-
writeFileSync(join(configDir, "config.json"), JSON.stringify(config, null, 2), {
|
|
38
|
-
mode: 420
|
|
39
|
-
});
|
|
40
|
-
}
|
|
41
|
-
|
|
42
|
-
export {
|
|
43
|
-
getConfigDir,
|
|
44
|
-
getConfig,
|
|
45
|
-
saveConfig
|
|
46
|
-
};
|