@tokamohsen/sentry-mcp 0.29.7 → 0.29.10
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 +189 -0
- package/dist/index.cjs +33696 -34
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +33706 -45
- package/dist/index.js.map +1 -1
- package/dist/{token-GX19_oyM.cjs → token-B5HKFZKz.cjs} +2 -2
- package/dist/{token-GX19_oyM.cjs.map → token-B5HKFZKz.cjs.map} +1 -1
- package/dist/{token-CO5Bq1Ct.js → token-JvPeoopD.js} +2 -2
- package/dist/{token-CO5Bq1Ct.js.map → token-JvPeoopD.js.map} +1 -1
- package/dist/{token-util-Cw83HNFN.cjs → token-util-BNYjqouU.cjs} +1 -1
- package/dist/{token-util-Cw83HNFN.cjs.map → token-util-BNYjqouU.cjs.map} +1 -1
- package/dist/{token-util-1O_mwf8r.js → token-util-CqB8j8br.js} +2 -2
- package/dist/{token-util-1O_mwf8r.js.map → token-util-CqB8j8br.js.map} +1 -1
- package/dist/transports/{stdio-DeWUp4RP.d.cts → stdio-BoqvAN3P.d.cts} +1 -1
- package/dist/transports/{stdio-DeWUp4RP.d.cts.map → stdio-BoqvAN3P.d.cts.map} +1 -1
- package/dist/transports/{stdio-DKQR8J7l.d.ts → stdio-BvNog4wx.d.ts} +1 -1
- package/dist/transports/{stdio-DKQR8J7l.d.ts.map → stdio-BvNog4wx.d.ts.map} +1 -1
- package/dist/transports/stdio.cjs +1 -1
- package/dist/transports/stdio.js +1 -1
- package/dist/{version-BD4r13ze.cjs → version-BN5g2FHt.cjs} +1 -1
- package/dist/{version-BD4r13ze.cjs.map → version-BN5g2FHt.cjs.map} +1 -1
- package/dist/{version-4iOZzjiD.js → version-CV6JJx_P.js} +1 -1
- package/dist/{version-4iOZzjiD.js.map → version-CV6JJx_P.js.map} +1 -1
- package/package.json +19 -18
- package/LICENSE.md +0 -105
- package/dist/cli/parse-CX7Bcldr.d.ts +0 -11
- package/dist/cli/parse-CX7Bcldr.d.ts.map +0 -1
- package/dist/cli/parse-EvLqDjN2.d.cts +0 -11
- package/dist/cli/parse-EvLqDjN2.d.cts.map +0 -1
- package/dist/cli/parse.cjs +0 -107
- package/dist/cli/parse.cjs.map +0 -1
- package/dist/cli/parse.js +0 -103
- package/dist/cli/parse.js.map +0 -1
- package/dist/cli/resolve-BVtyZcQM.d.ts +0 -10
- package/dist/cli/resolve-BVtyZcQM.d.ts.map +0 -1
- package/dist/cli/resolve-C3hwH129.d.cts +0 -10
- package/dist/cli/resolve-C3hwH129.d.cts.map +0 -1
- package/dist/cli/resolve.cjs +0 -56
- package/dist/cli/resolve.cjs.map +0 -1
- package/dist/cli/resolve.js +0 -54
- package/dist/cli/resolve.js.map +0 -1
- package/dist/cli/types-CnTkIHzd.d.ts +0 -73
- package/dist/cli/types-CnTkIHzd.d.ts.map +0 -1
- package/dist/cli/types-VWgo1wm6.d.cts +0 -73
- package/dist/cli/types-VWgo1wm6.d.cts.map +0 -1
- package/dist/cli/types.cjs +0 -0
- package/dist/cli/types.js +0 -1
- package/dist/cli/usage-B0gAPy4S.d.cts +0 -9
- package/dist/cli/usage-B0gAPy4S.d.cts.map +0 -1
- package/dist/cli/usage-BhCVaC5j.d.ts +0 -9
- package/dist/cli/usage-BhCVaC5j.d.ts.map +0 -1
- package/dist/cli/usage.cjs +0 -47
- package/dist/cli/usage.cjs.map +0 -1
- package/dist/cli/usage.js +0 -45
- package/dist/cli/usage.js.map +0 -1
- package/dist/config-CzqCJmB9.js +0 -613
- package/dist/config-CzqCJmB9.js.map +0 -1
- package/dist/config-DMt6phB6.cjs +0 -630
- package/dist/config-DMt6phB6.cjs.map +0 -1
- package/dist/constants-BrEVt86y.js +0 -194
- package/dist/constants-BrEVt86y.js.map +0 -1
- package/dist/constants-C14tQf_s.cjs +0 -217
- package/dist/constants-C14tQf_s.cjs.map +0 -1
- package/dist/server-DduxvXpe.js +0 -32499
- package/dist/server-DduxvXpe.js.map +0 -1
- package/dist/server-lur5iSHk.cjs +0 -32530
- package/dist/server-lur5iSHk.cjs.map +0 -1
- package/dist/skills-DOgs9MAy.cjs +0 -96
- package/dist/skills-DOgs9MAy.cjs.map +0 -1
- package/dist/skills-DfqlqYXj.js +0 -72
- package/dist/skills-DfqlqYXj.js.map +0 -1
- package/dist/url-utils-BHhxlntO.js +0 -119
- package/dist/url-utils-BHhxlntO.js.map +0 -1
- package/dist/url-utils-N2ExJl9F.cjs +0 -161
- package/dist/url-utils-N2ExJl9F.cjs.map +0 -1
- /package/dist/{index-16fTC-hT.d.cts → index-Cxeq9ZuA.d.ts} +0 -0
- /package/dist/{index-UKPmYT-S.d.ts → index-XTv1ki6h.d.cts} +0 -0
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"parse-EvLqDjN2.d.cts","names":[],"sources":["../../src/cli/parse.ts"],"sourcesContent":[],"mappings":";;;iBAGgB,SAAA,kBAA2B;iBAuE3B,QAAA,MAAc,MAAA,CAAO,aAAa;AAvElC,iBAwFA,KAAA,CAxF2B,GAAA,EAwFhB,OAxFuB,EAAA,GAAA,EAwFT,OAxFS,CAAA,EAwFC,UAxFD;AAuElD"}
|
package/dist/cli/parse.cjs
DELETED
|
@@ -1,107 +0,0 @@
|
|
|
1
|
-
Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
|
|
2
|
-
const require_chunk = require('../chunk-rXqPaSPc.cjs');
|
|
3
|
-
let node_util = require("node:util");
|
|
4
|
-
|
|
5
|
-
//#region src/cli/parse.ts
|
|
6
|
-
function parseArgv(argv) {
|
|
7
|
-
const options = {
|
|
8
|
-
"access-token": { type: "string" },
|
|
9
|
-
host: { type: "string" },
|
|
10
|
-
url: { type: "string" },
|
|
11
|
-
"mcp-url": { type: "string" },
|
|
12
|
-
"sentry-dsn": { type: "string" },
|
|
13
|
-
"openai-base-url": { type: "string" },
|
|
14
|
-
"openai-model": { type: "string" },
|
|
15
|
-
"anthropic-base-url": { type: "string" },
|
|
16
|
-
"anthropic-model": { type: "string" },
|
|
17
|
-
"agent-provider": { type: "string" },
|
|
18
|
-
"organization-slug": { type: "string" },
|
|
19
|
-
"project-slug": { type: "string" },
|
|
20
|
-
skills: { type: "string" },
|
|
21
|
-
agent: { type: "boolean" },
|
|
22
|
-
experimental: { type: "boolean" },
|
|
23
|
-
help: {
|
|
24
|
-
type: "boolean",
|
|
25
|
-
short: "h"
|
|
26
|
-
},
|
|
27
|
-
version: {
|
|
28
|
-
type: "boolean",
|
|
29
|
-
short: "v"
|
|
30
|
-
}
|
|
31
|
-
};
|
|
32
|
-
const { values, positionals, tokens } = (0, node_util.parseArgs)({
|
|
33
|
-
args: argv,
|
|
34
|
-
options,
|
|
35
|
-
allowPositionals: false,
|
|
36
|
-
strict: false,
|
|
37
|
-
tokens: true
|
|
38
|
-
});
|
|
39
|
-
const knownLong = new Set(Object.keys(options));
|
|
40
|
-
const knownShort = new Set([...Object.values(options).map((o) => "short" in o ? o.short : void 0).filter(Boolean)]);
|
|
41
|
-
const unknownArgs = [];
|
|
42
|
-
for (const t of tokens || []) if (t.kind === "option") {
|
|
43
|
-
const name = t.name;
|
|
44
|
-
if (name && !(knownLong.has(name) || knownShort.has(name))) unknownArgs.push(t.raw ?? `--${name}`);
|
|
45
|
-
} else if (t.kind === "positional") unknownArgs.push(t.raw ?? String(t.value ?? ""));
|
|
46
|
-
return {
|
|
47
|
-
accessToken: values["access-token"],
|
|
48
|
-
host: values.host,
|
|
49
|
-
url: values.url,
|
|
50
|
-
mcpUrl: values["mcp-url"],
|
|
51
|
-
sentryDsn: values["sentry-dsn"],
|
|
52
|
-
openaiBaseUrl: values["openai-base-url"],
|
|
53
|
-
openaiModel: values["openai-model"],
|
|
54
|
-
anthropicBaseUrl: values["anthropic-base-url"],
|
|
55
|
-
anthropicModel: values["anthropic-model"],
|
|
56
|
-
agentProvider: values["agent-provider"],
|
|
57
|
-
organizationSlug: values["organization-slug"],
|
|
58
|
-
projectSlug: values["project-slug"],
|
|
59
|
-
skills: values.skills,
|
|
60
|
-
agent: values.agent === true,
|
|
61
|
-
experimental: values.experimental === true,
|
|
62
|
-
help: values.help === true,
|
|
63
|
-
version: values.version === true,
|
|
64
|
-
unknownArgs: unknownArgs.length > 0 ? unknownArgs : positionals || []
|
|
65
|
-
};
|
|
66
|
-
}
|
|
67
|
-
function parseEnv(env) {
|
|
68
|
-
const fromEnv = {};
|
|
69
|
-
if (env.SENTRY_ACCESS_TOKEN) fromEnv.accessToken = env.SENTRY_ACCESS_TOKEN;
|
|
70
|
-
if (env.SENTRY_URL) fromEnv.url = env.SENTRY_URL;
|
|
71
|
-
if (env.SENTRY_HOST) fromEnv.host = env.SENTRY_HOST;
|
|
72
|
-
if (env.MCP_URL) fromEnv.mcpUrl = env.MCP_URL;
|
|
73
|
-
if (env.SENTRY_DSN || env.DEFAULT_SENTRY_DSN) fromEnv.sentryDsn = env.SENTRY_DSN || env.DEFAULT_SENTRY_DSN;
|
|
74
|
-
if (env.OPENAI_MODEL) fromEnv.openaiModel = env.OPENAI_MODEL;
|
|
75
|
-
if (env.ANTHROPIC_MODEL) fromEnv.anthropicModel = env.ANTHROPIC_MODEL;
|
|
76
|
-
if (env.EMBEDDED_AGENT_PROVIDER) fromEnv.agentProvider = env.EMBEDDED_AGENT_PROVIDER;
|
|
77
|
-
if (env.MCP_SKILLS) fromEnv.skills = env.MCP_SKILLS;
|
|
78
|
-
return fromEnv;
|
|
79
|
-
}
|
|
80
|
-
function merge(cli, env) {
|
|
81
|
-
return {
|
|
82
|
-
accessToken: cli.accessToken ?? env.accessToken,
|
|
83
|
-
url: cli.url ?? env.url,
|
|
84
|
-
host: cli.host ?? env.host,
|
|
85
|
-
mcpUrl: cli.mcpUrl ?? env.mcpUrl,
|
|
86
|
-
sentryDsn: cli.sentryDsn ?? env.sentryDsn,
|
|
87
|
-
openaiBaseUrl: cli.openaiBaseUrl,
|
|
88
|
-
openaiModel: cli.openaiModel ?? env.openaiModel,
|
|
89
|
-
anthropicBaseUrl: cli.anthropicBaseUrl,
|
|
90
|
-
anthropicModel: cli.anthropicModel ?? env.anthropicModel,
|
|
91
|
-
agentProvider: cli.agentProvider ?? env.agentProvider,
|
|
92
|
-
skills: cli.skills ?? env.skills,
|
|
93
|
-
agent: cli.agent === true,
|
|
94
|
-
experimental: cli.experimental === true,
|
|
95
|
-
organizationSlug: cli.organizationSlug,
|
|
96
|
-
projectSlug: cli.projectSlug,
|
|
97
|
-
help: cli.help === true,
|
|
98
|
-
version: cli.version === true,
|
|
99
|
-
unknownArgs: cli.unknownArgs
|
|
100
|
-
};
|
|
101
|
-
}
|
|
102
|
-
|
|
103
|
-
//#endregion
|
|
104
|
-
exports.merge = merge;
|
|
105
|
-
exports.parseArgv = parseArgv;
|
|
106
|
-
exports.parseEnv = parseEnv;
|
|
107
|
-
//# sourceMappingURL=parse.cjs.map
|
package/dist/cli/parse.cjs.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"parse.cjs","names":[],"sources":["../../src/cli/parse.ts"],"sourcesContent":["import { parseArgs } from \"node:util\";\nimport type { CliArgs, EnvArgs, MergedArgs } from \"./types\";\n\nexport function parseArgv(argv: string[]): CliArgs {\n const options = {\n \"access-token\": { type: \"string\" as const },\n host: { type: \"string\" as const },\n url: { type: \"string\" as const },\n \"mcp-url\": { type: \"string\" as const },\n \"sentry-dsn\": { type: \"string\" as const },\n \"openai-base-url\": { type: \"string\" as const },\n \"openai-model\": { type: \"string\" as const },\n \"anthropic-base-url\": { type: \"string\" as const },\n \"anthropic-model\": { type: \"string\" as const },\n \"agent-provider\": { type: \"string\" as const },\n \"organization-slug\": { type: \"string\" as const },\n \"project-slug\": { type: \"string\" as const },\n skills: { type: \"string\" as const },\n agent: { type: \"boolean\" as const },\n experimental: { type: \"boolean\" as const },\n help: { type: \"boolean\" as const, short: \"h\" as const },\n version: { type: \"boolean\" as const, short: \"v\" as const },\n };\n\n const { values, positionals, tokens } = parseArgs({\n args: argv,\n options,\n allowPositionals: false,\n strict: false,\n tokens: true,\n });\n\n const knownLong = new Set(Object.keys(options));\n const knownShort = new Set([\n ...(Object.values(options)\n .map((o) => (\"short\" in o ? (o.short as string | undefined) : undefined))\n .filter(Boolean) as string[]),\n ]);\n\n const unknownArgs: string[] = [];\n for (const t of (tokens as any[]) || []) {\n if (t.kind === \"option\") {\n const name = t.name as string | undefined;\n if (name && !(knownLong.has(name) || knownShort.has(name))) {\n unknownArgs.push((t.raw as string) ?? `--${name}`);\n }\n } else if (t.kind === \"positional\") {\n unknownArgs.push((t.raw as string) ?? String(t.value ?? \"\"));\n }\n }\n\n return {\n accessToken: values[\"access-token\"] as string | undefined,\n host: values.host as string | undefined,\n url: values.url as string | undefined,\n mcpUrl: values[\"mcp-url\"] as string | undefined,\n sentryDsn: values[\"sentry-dsn\"] as string | undefined,\n openaiBaseUrl: values[\"openai-base-url\"] as string | undefined,\n openaiModel: values[\"openai-model\"] as string | undefined,\n anthropicBaseUrl: values[\"anthropic-base-url\"] as string | undefined,\n anthropicModel: values[\"anthropic-model\"] as string | undefined,\n agentProvider: values[\"agent-provider\"] as string | undefined,\n organizationSlug: values[\"organization-slug\"] as string | undefined,\n projectSlug: values[\"project-slug\"] as string | undefined,\n skills: values.skills as string | undefined,\n agent: values.agent === true,\n experimental: values.experimental === true,\n help: (values.help as boolean | undefined) === true,\n version: (values.version as boolean | undefined) === true,\n unknownArgs:\n unknownArgs.length > 0 ? unknownArgs : (positionals as string[]) || [],\n };\n}\n\nexport function parseEnv(env: NodeJS.ProcessEnv): EnvArgs {\n const fromEnv: EnvArgs = {};\n if (env.SENTRY_ACCESS_TOKEN) fromEnv.accessToken = env.SENTRY_ACCESS_TOKEN;\n if (env.SENTRY_URL) fromEnv.url = env.SENTRY_URL;\n if (env.SENTRY_HOST) fromEnv.host = env.SENTRY_HOST;\n if (env.MCP_URL) fromEnv.mcpUrl = env.MCP_URL;\n if (env.SENTRY_DSN || env.DEFAULT_SENTRY_DSN)\n fromEnv.sentryDsn = env.SENTRY_DSN || env.DEFAULT_SENTRY_DSN;\n\n if (env.OPENAI_MODEL) fromEnv.openaiModel = env.OPENAI_MODEL;\n if (env.ANTHROPIC_MODEL) fromEnv.anthropicModel = env.ANTHROPIC_MODEL;\n if (env.EMBEDDED_AGENT_PROVIDER)\n fromEnv.agentProvider = env.EMBEDDED_AGENT_PROVIDER;\n if (env.MCP_SKILLS) fromEnv.skills = env.MCP_SKILLS;\n return fromEnv;\n}\n\nexport function merge(cli: CliArgs, env: EnvArgs): MergedArgs {\n // CLI wins over env\n return {\n accessToken: cli.accessToken ?? env.accessToken,\n // If CLI provided url/host, prefer those; else fall back to env\n url: cli.url ?? env.url,\n host: cli.host ?? env.host,\n mcpUrl: cli.mcpUrl ?? env.mcpUrl,\n sentryDsn: cli.sentryDsn ?? env.sentryDsn,\n openaiBaseUrl: cli.openaiBaseUrl,\n openaiModel: cli.openaiModel ?? env.openaiModel,\n anthropicBaseUrl: cli.anthropicBaseUrl,\n anthropicModel: cli.anthropicModel ?? env.anthropicModel,\n agentProvider: cli.agentProvider ?? env.agentProvider,\n // Skills precedence: CLI skills override env\n skills: cli.skills ?? env.skills,\n agent: cli.agent === true,\n experimental: cli.experimental === true,\n organizationSlug: cli.organizationSlug,\n projectSlug: cli.projectSlug,\n help: cli.help === true,\n version: cli.version === true,\n unknownArgs: cli.unknownArgs,\n };\n}\n"],"mappings":"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"}
|
package/dist/cli/parse.js
DELETED
|
@@ -1,103 +0,0 @@
|
|
|
1
|
-
import { parseArgs } from "node:util";
|
|
2
|
-
|
|
3
|
-
//#region src/cli/parse.ts
|
|
4
|
-
function parseArgv(argv) {
|
|
5
|
-
const options = {
|
|
6
|
-
"access-token": { type: "string" },
|
|
7
|
-
host: { type: "string" },
|
|
8
|
-
url: { type: "string" },
|
|
9
|
-
"mcp-url": { type: "string" },
|
|
10
|
-
"sentry-dsn": { type: "string" },
|
|
11
|
-
"openai-base-url": { type: "string" },
|
|
12
|
-
"openai-model": { type: "string" },
|
|
13
|
-
"anthropic-base-url": { type: "string" },
|
|
14
|
-
"anthropic-model": { type: "string" },
|
|
15
|
-
"agent-provider": { type: "string" },
|
|
16
|
-
"organization-slug": { type: "string" },
|
|
17
|
-
"project-slug": { type: "string" },
|
|
18
|
-
skills: { type: "string" },
|
|
19
|
-
agent: { type: "boolean" },
|
|
20
|
-
experimental: { type: "boolean" },
|
|
21
|
-
help: {
|
|
22
|
-
type: "boolean",
|
|
23
|
-
short: "h"
|
|
24
|
-
},
|
|
25
|
-
version: {
|
|
26
|
-
type: "boolean",
|
|
27
|
-
short: "v"
|
|
28
|
-
}
|
|
29
|
-
};
|
|
30
|
-
const { values, positionals, tokens } = parseArgs({
|
|
31
|
-
args: argv,
|
|
32
|
-
options,
|
|
33
|
-
allowPositionals: false,
|
|
34
|
-
strict: false,
|
|
35
|
-
tokens: true
|
|
36
|
-
});
|
|
37
|
-
const knownLong = new Set(Object.keys(options));
|
|
38
|
-
const knownShort = new Set([...Object.values(options).map((o) => "short" in o ? o.short : void 0).filter(Boolean)]);
|
|
39
|
-
const unknownArgs = [];
|
|
40
|
-
for (const t of tokens || []) if (t.kind === "option") {
|
|
41
|
-
const name = t.name;
|
|
42
|
-
if (name && !(knownLong.has(name) || knownShort.has(name))) unknownArgs.push(t.raw ?? `--${name}`);
|
|
43
|
-
} else if (t.kind === "positional") unknownArgs.push(t.raw ?? String(t.value ?? ""));
|
|
44
|
-
return {
|
|
45
|
-
accessToken: values["access-token"],
|
|
46
|
-
host: values.host,
|
|
47
|
-
url: values.url,
|
|
48
|
-
mcpUrl: values["mcp-url"],
|
|
49
|
-
sentryDsn: values["sentry-dsn"],
|
|
50
|
-
openaiBaseUrl: values["openai-base-url"],
|
|
51
|
-
openaiModel: values["openai-model"],
|
|
52
|
-
anthropicBaseUrl: values["anthropic-base-url"],
|
|
53
|
-
anthropicModel: values["anthropic-model"],
|
|
54
|
-
agentProvider: values["agent-provider"],
|
|
55
|
-
organizationSlug: values["organization-slug"],
|
|
56
|
-
projectSlug: values["project-slug"],
|
|
57
|
-
skills: values.skills,
|
|
58
|
-
agent: values.agent === true,
|
|
59
|
-
experimental: values.experimental === true,
|
|
60
|
-
help: values.help === true,
|
|
61
|
-
version: values.version === true,
|
|
62
|
-
unknownArgs: unknownArgs.length > 0 ? unknownArgs : positionals || []
|
|
63
|
-
};
|
|
64
|
-
}
|
|
65
|
-
function parseEnv(env) {
|
|
66
|
-
const fromEnv = {};
|
|
67
|
-
if (env.SENTRY_ACCESS_TOKEN) fromEnv.accessToken = env.SENTRY_ACCESS_TOKEN;
|
|
68
|
-
if (env.SENTRY_URL) fromEnv.url = env.SENTRY_URL;
|
|
69
|
-
if (env.SENTRY_HOST) fromEnv.host = env.SENTRY_HOST;
|
|
70
|
-
if (env.MCP_URL) fromEnv.mcpUrl = env.MCP_URL;
|
|
71
|
-
if (env.SENTRY_DSN || env.DEFAULT_SENTRY_DSN) fromEnv.sentryDsn = env.SENTRY_DSN || env.DEFAULT_SENTRY_DSN;
|
|
72
|
-
if (env.OPENAI_MODEL) fromEnv.openaiModel = env.OPENAI_MODEL;
|
|
73
|
-
if (env.ANTHROPIC_MODEL) fromEnv.anthropicModel = env.ANTHROPIC_MODEL;
|
|
74
|
-
if (env.EMBEDDED_AGENT_PROVIDER) fromEnv.agentProvider = env.EMBEDDED_AGENT_PROVIDER;
|
|
75
|
-
if (env.MCP_SKILLS) fromEnv.skills = env.MCP_SKILLS;
|
|
76
|
-
return fromEnv;
|
|
77
|
-
}
|
|
78
|
-
function merge(cli, env) {
|
|
79
|
-
return {
|
|
80
|
-
accessToken: cli.accessToken ?? env.accessToken,
|
|
81
|
-
url: cli.url ?? env.url,
|
|
82
|
-
host: cli.host ?? env.host,
|
|
83
|
-
mcpUrl: cli.mcpUrl ?? env.mcpUrl,
|
|
84
|
-
sentryDsn: cli.sentryDsn ?? env.sentryDsn,
|
|
85
|
-
openaiBaseUrl: cli.openaiBaseUrl,
|
|
86
|
-
openaiModel: cli.openaiModel ?? env.openaiModel,
|
|
87
|
-
anthropicBaseUrl: cli.anthropicBaseUrl,
|
|
88
|
-
anthropicModel: cli.anthropicModel ?? env.anthropicModel,
|
|
89
|
-
agentProvider: cli.agentProvider ?? env.agentProvider,
|
|
90
|
-
skills: cli.skills ?? env.skills,
|
|
91
|
-
agent: cli.agent === true,
|
|
92
|
-
experimental: cli.experimental === true,
|
|
93
|
-
organizationSlug: cli.organizationSlug,
|
|
94
|
-
projectSlug: cli.projectSlug,
|
|
95
|
-
help: cli.help === true,
|
|
96
|
-
version: cli.version === true,
|
|
97
|
-
unknownArgs: cli.unknownArgs
|
|
98
|
-
};
|
|
99
|
-
}
|
|
100
|
-
|
|
101
|
-
//#endregion
|
|
102
|
-
export { merge, parseArgv, parseEnv };
|
|
103
|
-
//# sourceMappingURL=parse.js.map
|
package/dist/cli/parse.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"parse.js","names":[],"sources":["../../src/cli/parse.ts"],"sourcesContent":["import { parseArgs } from \"node:util\";\nimport type { CliArgs, EnvArgs, MergedArgs } from \"./types\";\n\nexport function parseArgv(argv: string[]): CliArgs {\n const options = {\n \"access-token\": { type: \"string\" as const },\n host: { type: \"string\" as const },\n url: { type: \"string\" as const },\n \"mcp-url\": { type: \"string\" as const },\n \"sentry-dsn\": { type: \"string\" as const },\n \"openai-base-url\": { type: \"string\" as const },\n \"openai-model\": { type: \"string\" as const },\n \"anthropic-base-url\": { type: \"string\" as const },\n \"anthropic-model\": { type: \"string\" as const },\n \"agent-provider\": { type: \"string\" as const },\n \"organization-slug\": { type: \"string\" as const },\n \"project-slug\": { type: \"string\" as const },\n skills: { type: \"string\" as const },\n agent: { type: \"boolean\" as const },\n experimental: { type: \"boolean\" as const },\n help: { type: \"boolean\" as const, short: \"h\" as const },\n version: { type: \"boolean\" as const, short: \"v\" as const },\n };\n\n const { values, positionals, tokens } = parseArgs({\n args: argv,\n options,\n allowPositionals: false,\n strict: false,\n tokens: true,\n });\n\n const knownLong = new Set(Object.keys(options));\n const knownShort = new Set([\n ...(Object.values(options)\n .map((o) => (\"short\" in o ? (o.short as string | undefined) : undefined))\n .filter(Boolean) as string[]),\n ]);\n\n const unknownArgs: string[] = [];\n for (const t of (tokens as any[]) || []) {\n if (t.kind === \"option\") {\n const name = t.name as string | undefined;\n if (name && !(knownLong.has(name) || knownShort.has(name))) {\n unknownArgs.push((t.raw as string) ?? `--${name}`);\n }\n } else if (t.kind === \"positional\") {\n unknownArgs.push((t.raw as string) ?? String(t.value ?? \"\"));\n }\n }\n\n return {\n accessToken: values[\"access-token\"] as string | undefined,\n host: values.host as string | undefined,\n url: values.url as string | undefined,\n mcpUrl: values[\"mcp-url\"] as string | undefined,\n sentryDsn: values[\"sentry-dsn\"] as string | undefined,\n openaiBaseUrl: values[\"openai-base-url\"] as string | undefined,\n openaiModel: values[\"openai-model\"] as string | undefined,\n anthropicBaseUrl: values[\"anthropic-base-url\"] as string | undefined,\n anthropicModel: values[\"anthropic-model\"] as string | undefined,\n agentProvider: values[\"agent-provider\"] as string | undefined,\n organizationSlug: values[\"organization-slug\"] as string | undefined,\n projectSlug: values[\"project-slug\"] as string | undefined,\n skills: values.skills as string | undefined,\n agent: values.agent === true,\n experimental: values.experimental === true,\n help: (values.help as boolean | undefined) === true,\n version: (values.version as boolean | undefined) === true,\n unknownArgs:\n unknownArgs.length > 0 ? unknownArgs : (positionals as string[]) || [],\n };\n}\n\nexport function parseEnv(env: NodeJS.ProcessEnv): EnvArgs {\n const fromEnv: EnvArgs = {};\n if (env.SENTRY_ACCESS_TOKEN) fromEnv.accessToken = env.SENTRY_ACCESS_TOKEN;\n if (env.SENTRY_URL) fromEnv.url = env.SENTRY_URL;\n if (env.SENTRY_HOST) fromEnv.host = env.SENTRY_HOST;\n if (env.MCP_URL) fromEnv.mcpUrl = env.MCP_URL;\n if (env.SENTRY_DSN || env.DEFAULT_SENTRY_DSN)\n fromEnv.sentryDsn = env.SENTRY_DSN || env.DEFAULT_SENTRY_DSN;\n\n if (env.OPENAI_MODEL) fromEnv.openaiModel = env.OPENAI_MODEL;\n if (env.ANTHROPIC_MODEL) fromEnv.anthropicModel = env.ANTHROPIC_MODEL;\n if (env.EMBEDDED_AGENT_PROVIDER)\n fromEnv.agentProvider = env.EMBEDDED_AGENT_PROVIDER;\n if (env.MCP_SKILLS) fromEnv.skills = env.MCP_SKILLS;\n return fromEnv;\n}\n\nexport function merge(cli: CliArgs, env: EnvArgs): MergedArgs {\n // CLI wins over env\n return {\n accessToken: cli.accessToken ?? env.accessToken,\n // If CLI provided url/host, prefer those; else fall back to env\n url: cli.url ?? env.url,\n host: cli.host ?? env.host,\n mcpUrl: cli.mcpUrl ?? env.mcpUrl,\n sentryDsn: cli.sentryDsn ?? env.sentryDsn,\n openaiBaseUrl: cli.openaiBaseUrl,\n openaiModel: cli.openaiModel ?? env.openaiModel,\n anthropicBaseUrl: cli.anthropicBaseUrl,\n anthropicModel: cli.anthropicModel ?? env.anthropicModel,\n agentProvider: cli.agentProvider ?? env.agentProvider,\n // Skills precedence: CLI skills override env\n skills: cli.skills ?? env.skills,\n agent: cli.agent === true,\n experimental: cli.experimental === true,\n organizationSlug: cli.organizationSlug,\n projectSlug: cli.projectSlug,\n help: cli.help === true,\n version: cli.version === true,\n unknownArgs: cli.unknownArgs,\n };\n}\n"],"mappings":"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"}
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
import { MergedArgs, ResolvedConfig } from "./types-CnTkIHzd.js";
|
|
2
|
-
|
|
3
|
-
//#region src/cli/resolve.d.ts
|
|
4
|
-
declare function formatInvalidSkills(invalid: string[], envName?: string): string;
|
|
5
|
-
declare function finalize(input: MergedArgs): ResolvedConfig;
|
|
6
|
-
//# sourceMappingURL=resolve.d.ts.map
|
|
7
|
-
|
|
8
|
-
//#endregion
|
|
9
|
-
export { finalize, formatInvalidSkills };
|
|
10
|
-
//# sourceMappingURL=resolve-BVtyZcQM.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"resolve-BVtyZcQM.d.ts","names":[],"sources":["../../src/cli/resolve.ts"],"sourcesContent":[],"mappings":";;;iBAQgB,mBAAA;iBASA,QAAA,QAAgB,aAAa;AAT7C"}
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
import { MergedArgs, ResolvedConfig } from "./types-VWgo1wm6.cjs";
|
|
2
|
-
|
|
3
|
-
//#region src/cli/resolve.d.ts
|
|
4
|
-
declare function formatInvalidSkills(invalid: string[], envName?: string): string;
|
|
5
|
-
declare function finalize(input: MergedArgs): ResolvedConfig;
|
|
6
|
-
//# sourceMappingURL=resolve.d.ts.map
|
|
7
|
-
|
|
8
|
-
//#endregion
|
|
9
|
-
export { finalize, formatInvalidSkills };
|
|
10
|
-
//# sourceMappingURL=resolve-C3hwH129.d.cts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"resolve-C3hwH129.d.cts","names":[],"sources":["../../src/cli/resolve.ts"],"sourcesContent":[],"mappings":";;;iBAQgB,mBAAA;iBASA,QAAA,QAAgB,aAAa;AAT7C"}
|
package/dist/cli/resolve.cjs
DELETED
|
@@ -1,56 +0,0 @@
|
|
|
1
|
-
Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
|
|
2
|
-
const require_skills = require('../skills-DOgs9MAy.cjs');
|
|
3
|
-
const require_url_utils = require('../url-utils-N2ExJl9F.cjs');
|
|
4
|
-
|
|
5
|
-
//#region src/cli/resolve.ts
|
|
6
|
-
function formatInvalidSkills(invalid, envName) {
|
|
7
|
-
const where = envName ? `${envName} provided` : "Invalid skills provided";
|
|
8
|
-
const allSkills = Object.keys(require_skills.SKILLS).join(", ");
|
|
9
|
-
return `Error: ${where}: ${invalid.join(", ")}\nAvailable skills: ${allSkills}`;
|
|
10
|
-
}
|
|
11
|
-
function finalize(input) {
|
|
12
|
-
if (!input.accessToken) throw new Error("Error: No access token was provided. Pass one with `--access-token` or via `SENTRY_ACCESS_TOKEN`.");
|
|
13
|
-
let sentryHost = "sentry.io";
|
|
14
|
-
if (input.url) sentryHost = require_url_utils.validateAndParseSentryUrlThrows(input.url);
|
|
15
|
-
else if (input.host) {
|
|
16
|
-
require_url_utils.validateSentryHostThrows(input.host);
|
|
17
|
-
sentryHost = input.host;
|
|
18
|
-
}
|
|
19
|
-
let finalSkills = void 0;
|
|
20
|
-
if (input.skills) {
|
|
21
|
-
const { valid, invalid } = require_skills.parseSkills(input.skills);
|
|
22
|
-
if (invalid.length > 0) throw new Error(formatInvalidSkills(invalid));
|
|
23
|
-
if (valid.size === 0) throw new Error("Error: Invalid skills provided. No valid skills found.");
|
|
24
|
-
finalSkills = valid;
|
|
25
|
-
} else {
|
|
26
|
-
const allSkills = Object.keys(require_skills.SKILLS);
|
|
27
|
-
finalSkills = new Set(allSkills);
|
|
28
|
-
}
|
|
29
|
-
const resolvedOpenAiBaseUrl = input.openaiBaseUrl ? require_url_utils.validateOpenAiBaseUrlThrows(input.openaiBaseUrl) : void 0;
|
|
30
|
-
const resolvedAnthropicBaseUrl = input.anthropicBaseUrl ? require_url_utils.validateOpenAiBaseUrlThrows(input.anthropicBaseUrl) : void 0;
|
|
31
|
-
let agentProvider = void 0;
|
|
32
|
-
if (input.agentProvider) {
|
|
33
|
-
const provider = input.agentProvider.toLowerCase();
|
|
34
|
-
if (provider !== "openai" && provider !== "anthropic") throw new Error(`Error: Invalid agent provider "${input.agentProvider}". Must be "openai" or "anthropic".`);
|
|
35
|
-
agentProvider = provider;
|
|
36
|
-
}
|
|
37
|
-
return {
|
|
38
|
-
accessToken: input.accessToken,
|
|
39
|
-
sentryHost,
|
|
40
|
-
mcpUrl: input.mcpUrl,
|
|
41
|
-
sentryDsn: input.sentryDsn,
|
|
42
|
-
openaiBaseUrl: resolvedOpenAiBaseUrl,
|
|
43
|
-
openaiModel: input.openaiModel,
|
|
44
|
-
anthropicBaseUrl: resolvedAnthropicBaseUrl,
|
|
45
|
-
anthropicModel: input.anthropicModel,
|
|
46
|
-
agentProvider,
|
|
47
|
-
finalSkills,
|
|
48
|
-
organizationSlug: input.organizationSlug,
|
|
49
|
-
projectSlug: input.projectSlug
|
|
50
|
-
};
|
|
51
|
-
}
|
|
52
|
-
|
|
53
|
-
//#endregion
|
|
54
|
-
exports.finalize = finalize;
|
|
55
|
-
exports.formatInvalidSkills = formatInvalidSkills;
|
|
56
|
-
//# sourceMappingURL=resolve.cjs.map
|
package/dist/cli/resolve.cjs.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"resolve.cjs","names":["SKILLS","validateAndParseSentryUrlThrows","parseSkills","validateOpenAiBaseUrlThrows"],"sources":["../../src/cli/resolve.ts"],"sourcesContent":["import { parseSkills, SKILLS, type Skill } from \"@sentry/mcp-core/skills\";\nimport {\n validateAndParseSentryUrlThrows,\n validateOpenAiBaseUrlThrows,\n validateSentryHostThrows,\n} from \"@sentry/mcp-core/utils/url-utils\";\nimport type { MergedArgs, ResolvedConfig } from \"./types\";\n\nexport function formatInvalidSkills(\n invalid: string[],\n envName?: string,\n): string {\n const where = envName ? `${envName} provided` : \"Invalid skills provided\";\n const allSkills = Object.keys(SKILLS).join(\", \");\n return `Error: ${where}: ${invalid.join(\", \")}\\nAvailable skills: ${allSkills}`;\n}\n\nexport function finalize(input: MergedArgs): ResolvedConfig {\n // Access token required\n if (!input.accessToken) {\n throw new Error(\n \"Error: No access token was provided. Pass one with `--access-token` or via `SENTRY_ACCESS_TOKEN`.\",\n );\n }\n\n // Determine host from url/host with validation\n let sentryHost = \"sentry.io\";\n if (input.url) {\n sentryHost = validateAndParseSentryUrlThrows(input.url);\n } else if (input.host) {\n validateSentryHostThrows(input.host);\n sentryHost = input.host;\n }\n\n // Skills resolution\n //\n // IMPORTANT: stdio (CLI) intentionally defaults to ALL skills when no --skills flag is provided\n //\n // This differs from the OAuth flow, which requires explicit user selection:\n // - stdio/CLI: Non-interactive, defaults to ALL skills (inspect, docs, seer, triage, project-management)\n // - OAuth: Interactive, requires user to explicitly select skills (with sensible defaults pre-checked)\n //\n // Rationale:\n // We don't want the MCP to break if users don't specify skills. stdio is typically used in\n // local development and CI/CD environments where maximum access by default is expected.\n // OAuth is used in multi-tenant hosted environments where users should consciously grant\n // permissions on a per-app basis.\n //\n // For OAuth validation that enforces minimum 1 skill selection, see:\n // packages/mcp-cloudflare/src/server/oauth/routes/callback.ts (lines 234-248)\n //\n let finalSkills: Set<Skill> | undefined = undefined;\n if (input.skills) {\n // Override: use only the specified skills\n const { valid, invalid } = parseSkills(input.skills);\n if (invalid.length > 0) {\n throw new Error(formatInvalidSkills(invalid));\n }\n if (valid.size === 0) {\n throw new Error(\"Error: Invalid skills provided. No valid skills found.\");\n }\n finalSkills = valid;\n } else {\n // Default: grant ALL skills when no flag is provided (see comment block above for rationale)\n const allSkills = Object.keys(SKILLS) as Skill[];\n finalSkills = new Set<Skill>(allSkills);\n }\n\n const resolvedOpenAiBaseUrl = input.openaiBaseUrl\n ? validateOpenAiBaseUrlThrows(input.openaiBaseUrl)\n : undefined;\n\n // Validate anthropic base URL if provided (same validation as OpenAI)\n const resolvedAnthropicBaseUrl = input.anthropicBaseUrl\n ? validateOpenAiBaseUrlThrows(input.anthropicBaseUrl)\n : undefined;\n\n // Validate agent provider if explicitly set\n let agentProvider: \"openai\" | \"anthropic\" | undefined = undefined;\n if (input.agentProvider) {\n const provider = input.agentProvider.toLowerCase();\n if (provider !== \"openai\" && provider !== \"anthropic\") {\n throw new Error(\n `Error: Invalid agent provider \"${input.agentProvider}\". Must be \"openai\" or \"anthropic\".`,\n );\n }\n agentProvider = provider;\n }\n\n return {\n accessToken: input.accessToken,\n sentryHost,\n mcpUrl: input.mcpUrl,\n sentryDsn: input.sentryDsn,\n openaiBaseUrl: resolvedOpenAiBaseUrl,\n openaiModel: input.openaiModel,\n anthropicBaseUrl: resolvedAnthropicBaseUrl,\n anthropicModel: input.anthropicModel,\n agentProvider,\n finalSkills,\n organizationSlug: input.organizationSlug,\n projectSlug: input.projectSlug,\n };\n}\n"],"mappings":";;;;;AAQA,SAAgB,oBACd,SACA,SACQ;CACR,MAAM,QAAQ,UAAU,GAAG,QAAQ,aAAa;CAChD,MAAM,YAAY,OAAO,KAAKA,sBAAO,CAAC,KAAK,KAAK;AAChD,QAAO,UAAU,MAAM,IAAI,QAAQ,KAAK,KAAK,CAAC,sBAAsB;;AAGtE,SAAgB,SAAS,OAAmC;AAE1D,KAAI,CAAC,MAAM,YACT,OAAM,IAAI,MACR,oGACD;CAIH,IAAI,aAAa;AACjB,KAAI,MAAM,IACR,cAAaC,kDAAgC,MAAM,IAAI;UAC9C,MAAM,MAAM;AACrB,6CAAyB,MAAM,KAAK;AACpC,eAAa,MAAM;;CAoBrB,IAAI,cAAsC;AAC1C,KAAI,MAAM,QAAQ;EAEhB,MAAM,EAAE,OAAO,YAAYC,2BAAY,MAAM,OAAO;AACpD,MAAI,QAAQ,SAAS,EACnB,OAAM,IAAI,MAAM,oBAAoB,QAAQ,CAAC;AAE/C,MAAI,MAAM,SAAS,EACjB,OAAM,IAAI,MAAM,yDAAyD;AAE3E,gBAAc;QACT;EAEL,MAAM,YAAY,OAAO,KAAKF,sBAAO;AACrC,gBAAc,IAAI,IAAW,UAAU;;CAGzC,MAAM,wBAAwB,MAAM,gBAChCG,8CAA4B,MAAM,cAAc,GAChD;CAGJ,MAAM,2BAA2B,MAAM,mBACnCA,8CAA4B,MAAM,iBAAiB,GACnD;CAGJ,IAAI,gBAAoD;AACxD,KAAI,MAAM,eAAe;EACvB,MAAM,WAAW,MAAM,cAAc,aAAa;AAClD,MAAI,aAAa,YAAY,aAAa,YACxC,OAAM,IAAI,MACR,kCAAkC,MAAM,cAAc,qCACvD;AAEH,kBAAgB;;AAGlB,QAAO;EACL,aAAa,MAAM;EACnB;EACA,QAAQ,MAAM;EACd,WAAW,MAAM;EACjB,eAAe;EACf,aAAa,MAAM;EACnB,kBAAkB;EAClB,gBAAgB,MAAM;EACtB;EACA;EACA,kBAAkB,MAAM;EACxB,aAAa,MAAM;EACpB"}
|
package/dist/cli/resolve.js
DELETED
|
@@ -1,54 +0,0 @@
|
|
|
1
|
-
import { i as parseSkills, n as SKILLS } from "../skills-DfqlqYXj.js";
|
|
2
|
-
import { a as validateAndParseSentryUrlThrows, o as validateOpenAiBaseUrlThrows, s as validateSentryHostThrows } from "../url-utils-BHhxlntO.js";
|
|
3
|
-
|
|
4
|
-
//#region src/cli/resolve.ts
|
|
5
|
-
function formatInvalidSkills(invalid, envName) {
|
|
6
|
-
const where = envName ? `${envName} provided` : "Invalid skills provided";
|
|
7
|
-
const allSkills = Object.keys(SKILLS).join(", ");
|
|
8
|
-
return `Error: ${where}: ${invalid.join(", ")}\nAvailable skills: ${allSkills}`;
|
|
9
|
-
}
|
|
10
|
-
function finalize(input) {
|
|
11
|
-
if (!input.accessToken) throw new Error("Error: No access token was provided. Pass one with `--access-token` or via `SENTRY_ACCESS_TOKEN`.");
|
|
12
|
-
let sentryHost = "sentry.io";
|
|
13
|
-
if (input.url) sentryHost = validateAndParseSentryUrlThrows(input.url);
|
|
14
|
-
else if (input.host) {
|
|
15
|
-
validateSentryHostThrows(input.host);
|
|
16
|
-
sentryHost = input.host;
|
|
17
|
-
}
|
|
18
|
-
let finalSkills = void 0;
|
|
19
|
-
if (input.skills) {
|
|
20
|
-
const { valid, invalid } = parseSkills(input.skills);
|
|
21
|
-
if (invalid.length > 0) throw new Error(formatInvalidSkills(invalid));
|
|
22
|
-
if (valid.size === 0) throw new Error("Error: Invalid skills provided. No valid skills found.");
|
|
23
|
-
finalSkills = valid;
|
|
24
|
-
} else {
|
|
25
|
-
const allSkills = Object.keys(SKILLS);
|
|
26
|
-
finalSkills = new Set(allSkills);
|
|
27
|
-
}
|
|
28
|
-
const resolvedOpenAiBaseUrl = input.openaiBaseUrl ? validateOpenAiBaseUrlThrows(input.openaiBaseUrl) : void 0;
|
|
29
|
-
const resolvedAnthropicBaseUrl = input.anthropicBaseUrl ? validateOpenAiBaseUrlThrows(input.anthropicBaseUrl) : void 0;
|
|
30
|
-
let agentProvider = void 0;
|
|
31
|
-
if (input.agentProvider) {
|
|
32
|
-
const provider = input.agentProvider.toLowerCase();
|
|
33
|
-
if (provider !== "openai" && provider !== "anthropic") throw new Error(`Error: Invalid agent provider "${input.agentProvider}". Must be "openai" or "anthropic".`);
|
|
34
|
-
agentProvider = provider;
|
|
35
|
-
}
|
|
36
|
-
return {
|
|
37
|
-
accessToken: input.accessToken,
|
|
38
|
-
sentryHost,
|
|
39
|
-
mcpUrl: input.mcpUrl,
|
|
40
|
-
sentryDsn: input.sentryDsn,
|
|
41
|
-
openaiBaseUrl: resolvedOpenAiBaseUrl,
|
|
42
|
-
openaiModel: input.openaiModel,
|
|
43
|
-
anthropicBaseUrl: resolvedAnthropicBaseUrl,
|
|
44
|
-
anthropicModel: input.anthropicModel,
|
|
45
|
-
agentProvider,
|
|
46
|
-
finalSkills,
|
|
47
|
-
organizationSlug: input.organizationSlug,
|
|
48
|
-
projectSlug: input.projectSlug
|
|
49
|
-
};
|
|
50
|
-
}
|
|
51
|
-
|
|
52
|
-
//#endregion
|
|
53
|
-
export { finalize, formatInvalidSkills };
|
|
54
|
-
//# sourceMappingURL=resolve.js.map
|
package/dist/cli/resolve.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"resolve.js","names":[],"sources":["../../src/cli/resolve.ts"],"sourcesContent":["import { parseSkills, SKILLS, type Skill } from \"@sentry/mcp-core/skills\";\nimport {\n validateAndParseSentryUrlThrows,\n validateOpenAiBaseUrlThrows,\n validateSentryHostThrows,\n} from \"@sentry/mcp-core/utils/url-utils\";\nimport type { MergedArgs, ResolvedConfig } from \"./types\";\n\nexport function formatInvalidSkills(\n invalid: string[],\n envName?: string,\n): string {\n const where = envName ? `${envName} provided` : \"Invalid skills provided\";\n const allSkills = Object.keys(SKILLS).join(\", \");\n return `Error: ${where}: ${invalid.join(\", \")}\\nAvailable skills: ${allSkills}`;\n}\n\nexport function finalize(input: MergedArgs): ResolvedConfig {\n // Access token required\n if (!input.accessToken) {\n throw new Error(\n \"Error: No access token was provided. Pass one with `--access-token` or via `SENTRY_ACCESS_TOKEN`.\",\n );\n }\n\n // Determine host from url/host with validation\n let sentryHost = \"sentry.io\";\n if (input.url) {\n sentryHost = validateAndParseSentryUrlThrows(input.url);\n } else if (input.host) {\n validateSentryHostThrows(input.host);\n sentryHost = input.host;\n }\n\n // Skills resolution\n //\n // IMPORTANT: stdio (CLI) intentionally defaults to ALL skills when no --skills flag is provided\n //\n // This differs from the OAuth flow, which requires explicit user selection:\n // - stdio/CLI: Non-interactive, defaults to ALL skills (inspect, docs, seer, triage, project-management)\n // - OAuth: Interactive, requires user to explicitly select skills (with sensible defaults pre-checked)\n //\n // Rationale:\n // We don't want the MCP to break if users don't specify skills. stdio is typically used in\n // local development and CI/CD environments where maximum access by default is expected.\n // OAuth is used in multi-tenant hosted environments where users should consciously grant\n // permissions on a per-app basis.\n //\n // For OAuth validation that enforces minimum 1 skill selection, see:\n // packages/mcp-cloudflare/src/server/oauth/routes/callback.ts (lines 234-248)\n //\n let finalSkills: Set<Skill> | undefined = undefined;\n if (input.skills) {\n // Override: use only the specified skills\n const { valid, invalid } = parseSkills(input.skills);\n if (invalid.length > 0) {\n throw new Error(formatInvalidSkills(invalid));\n }\n if (valid.size === 0) {\n throw new Error(\"Error: Invalid skills provided. No valid skills found.\");\n }\n finalSkills = valid;\n } else {\n // Default: grant ALL skills when no flag is provided (see comment block above for rationale)\n const allSkills = Object.keys(SKILLS) as Skill[];\n finalSkills = new Set<Skill>(allSkills);\n }\n\n const resolvedOpenAiBaseUrl = input.openaiBaseUrl\n ? validateOpenAiBaseUrlThrows(input.openaiBaseUrl)\n : undefined;\n\n // Validate anthropic base URL if provided (same validation as OpenAI)\n const resolvedAnthropicBaseUrl = input.anthropicBaseUrl\n ? validateOpenAiBaseUrlThrows(input.anthropicBaseUrl)\n : undefined;\n\n // Validate agent provider if explicitly set\n let agentProvider: \"openai\" | \"anthropic\" | undefined = undefined;\n if (input.agentProvider) {\n const provider = input.agentProvider.toLowerCase();\n if (provider !== \"openai\" && provider !== \"anthropic\") {\n throw new Error(\n `Error: Invalid agent provider \"${input.agentProvider}\". Must be \"openai\" or \"anthropic\".`,\n );\n }\n agentProvider = provider;\n }\n\n return {\n accessToken: input.accessToken,\n sentryHost,\n mcpUrl: input.mcpUrl,\n sentryDsn: input.sentryDsn,\n openaiBaseUrl: resolvedOpenAiBaseUrl,\n openaiModel: input.openaiModel,\n anthropicBaseUrl: resolvedAnthropicBaseUrl,\n anthropicModel: input.anthropicModel,\n agentProvider,\n finalSkills,\n organizationSlug: input.organizationSlug,\n projectSlug: input.projectSlug,\n };\n}\n"],"mappings":";;;;AAQA,SAAgB,oBACd,SACA,SACQ;CACR,MAAM,QAAQ,UAAU,GAAG,QAAQ,aAAa;CAChD,MAAM,YAAY,OAAO,KAAK,OAAO,CAAC,KAAK,KAAK;AAChD,QAAO,UAAU,MAAM,IAAI,QAAQ,KAAK,KAAK,CAAC,sBAAsB;;AAGtE,SAAgB,SAAS,OAAmC;AAE1D,KAAI,CAAC,MAAM,YACT,OAAM,IAAI,MACR,oGACD;CAIH,IAAI,aAAa;AACjB,KAAI,MAAM,IACR,cAAa,gCAAgC,MAAM,IAAI;UAC9C,MAAM,MAAM;AACrB,2BAAyB,MAAM,KAAK;AACpC,eAAa,MAAM;;CAoBrB,IAAI,cAAsC;AAC1C,KAAI,MAAM,QAAQ;EAEhB,MAAM,EAAE,OAAO,YAAY,YAAY,MAAM,OAAO;AACpD,MAAI,QAAQ,SAAS,EACnB,OAAM,IAAI,MAAM,oBAAoB,QAAQ,CAAC;AAE/C,MAAI,MAAM,SAAS,EACjB,OAAM,IAAI,MAAM,yDAAyD;AAE3E,gBAAc;QACT;EAEL,MAAM,YAAY,OAAO,KAAK,OAAO;AACrC,gBAAc,IAAI,IAAW,UAAU;;CAGzC,MAAM,wBAAwB,MAAM,gBAChC,4BAA4B,MAAM,cAAc,GAChD;CAGJ,MAAM,2BAA2B,MAAM,mBACnC,4BAA4B,MAAM,iBAAiB,GACnD;CAGJ,IAAI,gBAAoD;AACxD,KAAI,MAAM,eAAe;EACvB,MAAM,WAAW,MAAM,cAAc,aAAa;AAClD,MAAI,aAAa,YAAY,aAAa,YACxC,OAAM,IAAI,MACR,kCAAkC,MAAM,cAAc,qCACvD;AAEH,kBAAgB;;AAGlB,QAAO;EACL,aAAa,MAAM;EACnB;EACA,QAAQ,MAAM;EACd,WAAW,MAAM;EACjB,eAAe;EACf,aAAa,MAAM;EACnB,kBAAkB;EAClB,gBAAgB,MAAM;EACtB;EACA;EACA,kBAAkB,MAAM;EACxB,aAAa,MAAM;EACpB"}
|
|
@@ -1,73 +0,0 @@
|
|
|
1
|
-
import { Skill } from "@sentry/mcp-core/skills";
|
|
2
|
-
|
|
3
|
-
//#region src/cli/types.d.ts
|
|
4
|
-
type CliArgs = {
|
|
5
|
-
accessToken?: string;
|
|
6
|
-
host?: string;
|
|
7
|
-
url?: string;
|
|
8
|
-
mcpUrl?: string;
|
|
9
|
-
sentryDsn?: string;
|
|
10
|
-
openaiBaseUrl?: string;
|
|
11
|
-
openaiModel?: string;
|
|
12
|
-
anthropicBaseUrl?: string;
|
|
13
|
-
anthropicModel?: string;
|
|
14
|
-
agentProvider?: string;
|
|
15
|
-
skills?: string;
|
|
16
|
-
agent?: boolean;
|
|
17
|
-
experimental?: boolean;
|
|
18
|
-
organizationSlug?: string;
|
|
19
|
-
projectSlug?: string;
|
|
20
|
-
help?: boolean;
|
|
21
|
-
version?: boolean;
|
|
22
|
-
unknownArgs: string[];
|
|
23
|
-
};
|
|
24
|
-
type EnvArgs = {
|
|
25
|
-
accessToken?: string;
|
|
26
|
-
host?: string;
|
|
27
|
-
url?: string;
|
|
28
|
-
mcpUrl?: string;
|
|
29
|
-
sentryDsn?: string;
|
|
30
|
-
openaiModel?: string;
|
|
31
|
-
anthropicModel?: string;
|
|
32
|
-
agentProvider?: string;
|
|
33
|
-
skills?: string;
|
|
34
|
-
};
|
|
35
|
-
type MergedArgs = {
|
|
36
|
-
accessToken?: string;
|
|
37
|
-
host?: string;
|
|
38
|
-
url?: string;
|
|
39
|
-
mcpUrl?: string;
|
|
40
|
-
sentryDsn?: string;
|
|
41
|
-
openaiBaseUrl?: string;
|
|
42
|
-
openaiModel?: string;
|
|
43
|
-
anthropicBaseUrl?: string;
|
|
44
|
-
anthropicModel?: string;
|
|
45
|
-
agentProvider?: string;
|
|
46
|
-
skills?: string;
|
|
47
|
-
agent?: boolean;
|
|
48
|
-
experimental?: boolean;
|
|
49
|
-
organizationSlug?: string;
|
|
50
|
-
projectSlug?: string;
|
|
51
|
-
help?: boolean;
|
|
52
|
-
version?: boolean;
|
|
53
|
-
unknownArgs: string[];
|
|
54
|
-
};
|
|
55
|
-
type ResolvedConfig = {
|
|
56
|
-
accessToken: string;
|
|
57
|
-
sentryHost: string;
|
|
58
|
-
mcpUrl?: string;
|
|
59
|
-
sentryDsn?: string;
|
|
60
|
-
openaiBaseUrl?: string;
|
|
61
|
-
openaiModel?: string;
|
|
62
|
-
anthropicBaseUrl?: string;
|
|
63
|
-
anthropicModel?: string;
|
|
64
|
-
agentProvider?: "openai" | "anthropic";
|
|
65
|
-
/** Primary authorization method */
|
|
66
|
-
finalSkills?: Set<Skill>;
|
|
67
|
-
organizationSlug?: string;
|
|
68
|
-
projectSlug?: string;
|
|
69
|
-
};
|
|
70
|
-
//# sourceMappingURL=types.d.ts.map
|
|
71
|
-
//#endregion
|
|
72
|
-
export { CliArgs, EnvArgs, MergedArgs, ResolvedConfig };
|
|
73
|
-
//# sourceMappingURL=types-CnTkIHzd.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"types-CnTkIHzd.d.ts","names":[],"sources":["../../src/cli/types.ts"],"sourcesContent":[],"mappings":";;;KAEY,OAAA;;EAAA,IAAA,CAAA,EAAA,MAAO;EAqBP,GAAA,CAAA,EAAA,MAAO;EAYP,MAAA,CAAA,EAAA,MAAU;EAqBV,SAAA,CAAA,EAAA,MAAc;EAAA,aAAA,CAAA,EAAA,MAAA;aAWN,CAAA,EAAA,MAAA;kBAAJ,CAAA,EAAA,MAAA;EAAG,cAAA,CAAA,EAAA,MAAA;;;;;;;;;;;KA5CP,OAAA;;;;;;;;;;;KAYA,UAAA;;;;;;;;;;;;;;;;;;;;KAqBA,cAAA;;;;;;;;;;;gBAWI,IAAI"}
|
|
@@ -1,73 +0,0 @@
|
|
|
1
|
-
import { Skill } from "@sentry/mcp-core/skills";
|
|
2
|
-
|
|
3
|
-
//#region src/cli/types.d.ts
|
|
4
|
-
type CliArgs = {
|
|
5
|
-
accessToken?: string;
|
|
6
|
-
host?: string;
|
|
7
|
-
url?: string;
|
|
8
|
-
mcpUrl?: string;
|
|
9
|
-
sentryDsn?: string;
|
|
10
|
-
openaiBaseUrl?: string;
|
|
11
|
-
openaiModel?: string;
|
|
12
|
-
anthropicBaseUrl?: string;
|
|
13
|
-
anthropicModel?: string;
|
|
14
|
-
agentProvider?: string;
|
|
15
|
-
skills?: string;
|
|
16
|
-
agent?: boolean;
|
|
17
|
-
experimental?: boolean;
|
|
18
|
-
organizationSlug?: string;
|
|
19
|
-
projectSlug?: string;
|
|
20
|
-
help?: boolean;
|
|
21
|
-
version?: boolean;
|
|
22
|
-
unknownArgs: string[];
|
|
23
|
-
};
|
|
24
|
-
type EnvArgs = {
|
|
25
|
-
accessToken?: string;
|
|
26
|
-
host?: string;
|
|
27
|
-
url?: string;
|
|
28
|
-
mcpUrl?: string;
|
|
29
|
-
sentryDsn?: string;
|
|
30
|
-
openaiModel?: string;
|
|
31
|
-
anthropicModel?: string;
|
|
32
|
-
agentProvider?: string;
|
|
33
|
-
skills?: string;
|
|
34
|
-
};
|
|
35
|
-
type MergedArgs = {
|
|
36
|
-
accessToken?: string;
|
|
37
|
-
host?: string;
|
|
38
|
-
url?: string;
|
|
39
|
-
mcpUrl?: string;
|
|
40
|
-
sentryDsn?: string;
|
|
41
|
-
openaiBaseUrl?: string;
|
|
42
|
-
openaiModel?: string;
|
|
43
|
-
anthropicBaseUrl?: string;
|
|
44
|
-
anthropicModel?: string;
|
|
45
|
-
agentProvider?: string;
|
|
46
|
-
skills?: string;
|
|
47
|
-
agent?: boolean;
|
|
48
|
-
experimental?: boolean;
|
|
49
|
-
organizationSlug?: string;
|
|
50
|
-
projectSlug?: string;
|
|
51
|
-
help?: boolean;
|
|
52
|
-
version?: boolean;
|
|
53
|
-
unknownArgs: string[];
|
|
54
|
-
};
|
|
55
|
-
type ResolvedConfig = {
|
|
56
|
-
accessToken: string;
|
|
57
|
-
sentryHost: string;
|
|
58
|
-
mcpUrl?: string;
|
|
59
|
-
sentryDsn?: string;
|
|
60
|
-
openaiBaseUrl?: string;
|
|
61
|
-
openaiModel?: string;
|
|
62
|
-
anthropicBaseUrl?: string;
|
|
63
|
-
anthropicModel?: string;
|
|
64
|
-
agentProvider?: "openai" | "anthropic";
|
|
65
|
-
/** Primary authorization method */
|
|
66
|
-
finalSkills?: Set<Skill>;
|
|
67
|
-
organizationSlug?: string;
|
|
68
|
-
projectSlug?: string;
|
|
69
|
-
};
|
|
70
|
-
//# sourceMappingURL=types.d.ts.map
|
|
71
|
-
//#endregion
|
|
72
|
-
export { CliArgs, EnvArgs, MergedArgs, ResolvedConfig };
|
|
73
|
-
//# sourceMappingURL=types-VWgo1wm6.d.cts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"types-VWgo1wm6.d.cts","names":[],"sources":["../../src/cli/types.ts"],"sourcesContent":[],"mappings":";;;KAEY,OAAA;;EAAA,IAAA,CAAA,EAAA,MAAO;EAqBP,GAAA,CAAA,EAAA,MAAO;EAYP,MAAA,CAAA,EAAA,MAAU;EAqBV,SAAA,CAAA,EAAA,MAAc;EAAA,aAAA,CAAA,EAAA,MAAA;aAWN,CAAA,EAAA,MAAA;kBAAJ,CAAA,EAAA,MAAA;EAAG,cAAA,CAAA,EAAA,MAAA;;;;;;;;;;;KA5CP,OAAA;;;;;;;;;;;KAYA,UAAA;;;;;;;;;;;;;;;;;;;;KAqBA,cAAA;;;;;;;;;;;gBAWI,IAAI"}
|
package/dist/cli/types.cjs
DELETED
|
File without changes
|
package/dist/cli/types.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export { };
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
import { Skill } from "@sentry/mcp-core/skills";
|
|
2
|
-
|
|
3
|
-
//#region src/cli/usage.d.ts
|
|
4
|
-
declare function buildUsage(packageName: string, allSkills: ReadonlyArray<Skill>): string;
|
|
5
|
-
//# sourceMappingURL=usage.d.ts.map
|
|
6
|
-
|
|
7
|
-
//#endregion
|
|
8
|
-
export { buildUsage };
|
|
9
|
-
//# sourceMappingURL=usage-B0gAPy4S.d.cts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"usage-B0gAPy4S.d.cts","names":[],"sources":["../../src/cli/usage.ts"],"sourcesContent":[],"mappings":";;;iBAEgB,UAAA,iCAEH,cAAc"}
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
import { Skill } from "@sentry/mcp-core/skills";
|
|
2
|
-
|
|
3
|
-
//#region src/cli/usage.d.ts
|
|
4
|
-
declare function buildUsage(packageName: string, allSkills: ReadonlyArray<Skill>): string;
|
|
5
|
-
//# sourceMappingURL=usage.d.ts.map
|
|
6
|
-
|
|
7
|
-
//#endregion
|
|
8
|
-
export { buildUsage };
|
|
9
|
-
//# sourceMappingURL=usage-BhCVaC5j.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"usage-BhCVaC5j.d.ts","names":[],"sources":["../../src/cli/usage.ts"],"sourcesContent":[],"mappings":";;;iBAEgB,UAAA,iCAEH,cAAc"}
|
package/dist/cli/usage.cjs
DELETED
|
@@ -1,47 +0,0 @@
|
|
|
1
|
-
Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
|
|
2
|
-
|
|
3
|
-
//#region src/cli/usage.ts
|
|
4
|
-
function buildUsage(packageName, allSkills) {
|
|
5
|
-
return `Usage: ${packageName} --access-token=<token> [--host=<host>]
|
|
6
|
-
|
|
7
|
-
Required:
|
|
8
|
-
--access-token <token> Sentry User Auth Token with API access
|
|
9
|
-
|
|
10
|
-
Common optional flags:
|
|
11
|
-
--host <host> Change Sentry host (self-hosted)
|
|
12
|
-
--sentry-dsn <dsn> Override DSN used for telemetry reporting
|
|
13
|
-
--agent Agent mode: only expose use_sentry tool (for AI agents)
|
|
14
|
-
--experimental Enable experimental tools (hidden by default)
|
|
15
|
-
|
|
16
|
-
Embedded agent configuration:
|
|
17
|
-
--agent-provider <provider> LLM provider: openai or anthropic (auto-detects from API keys)
|
|
18
|
-
--openai-base-url <url> Override OpenAI API base URL
|
|
19
|
-
--openai-model <model> Override OpenAI model (default: gpt-5)
|
|
20
|
-
--anthropic-base-url <url> Override Anthropic API base URL
|
|
21
|
-
--anthropic-model <model> Override Anthropic model (default: claude-sonnet-4-5)
|
|
22
|
-
|
|
23
|
-
Session constraints:
|
|
24
|
-
--organization-slug <slug> Force all calls to an organization
|
|
25
|
-
--project-slug <slug> Optional project constraint
|
|
26
|
-
|
|
27
|
-
Skill controls:
|
|
28
|
-
--skills <list> Specify which skills to grant (default: all skills)
|
|
29
|
-
|
|
30
|
-
All skills: ${allSkills.join(", ")}
|
|
31
|
-
|
|
32
|
-
Environment variables:
|
|
33
|
-
SENTRY_ACCESS_TOKEN Sentry auth token (alternative to --access-token)
|
|
34
|
-
OPENAI_API_KEY OpenAI API key for AI-powered search tools
|
|
35
|
-
ANTHROPIC_API_KEY Anthropic API key for AI-powered search tools
|
|
36
|
-
EMBEDDED_AGENT_PROVIDER Provider override: openai or anthropic
|
|
37
|
-
|
|
38
|
-
Examples:
|
|
39
|
-
${packageName} --access-token=TOKEN
|
|
40
|
-
${packageName} --access-token=TOKEN --skills=inspect,triage
|
|
41
|
-
${packageName} --access-token=TOKEN --host=sentry.example.com
|
|
42
|
-
${packageName} --access-token=TOKEN --agent-provider=anthropic`;
|
|
43
|
-
}
|
|
44
|
-
|
|
45
|
-
//#endregion
|
|
46
|
-
exports.buildUsage = buildUsage;
|
|
47
|
-
//# sourceMappingURL=usage.cjs.map
|