@runpod/mcp-server 4.6.0 → 4.8.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.
@@ -0,0 +1,163 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: true });
9
+ };
10
+ var __copyProps = (to, from, except, desc) => {
11
+ if (from && typeof from === "object" || typeof from === "function") {
12
+ for (let key of __getOwnPropNames(from))
13
+ if (!__hasOwnProp.call(to, key) && key !== except)
14
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
+ }
16
+ return to;
17
+ };
18
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
+
20
+ // src/specgen/profile.ts
21
+ var profile_exports = {};
22
+ __export(profile_exports, {
23
+ DIRECTORY_PATH: () => DIRECTORY_PATH,
24
+ DIRECTORY_TOOLS: () => DIRECTORY_TOOLS,
25
+ directoryIncludes: () => directoryIncludes,
26
+ directoryOmittedInputs: () => directoryOmittedInputs,
27
+ profileForPath: () => profileForPath
28
+ });
29
+ module.exports = __toCommonJS(profile_exports);
30
+ var DIRECTORY_PATH = "/directory";
31
+ var IN = { include: true };
32
+ var CREDENTIAL_MANAGEMENT = "Manages stored credentials; OpenAI restricts plugins that handle access credentials, so the directory leaves the whole credential family out.";
33
+ var CREDENTIAL_INPUT = "Takes a secret or password as input; directories forbid collecting credentials.";
34
+ var ALP = "Collects conversation-derived data beyond the task; the directory profile never serves it.";
35
+ var DIRECTORY_TOOLS = {
36
+ "cancel-job": IN,
37
+ "create-cluster": IN,
38
+ "create-delegation": IN,
39
+ "create-endpoint": IN,
40
+ "create-global-volume": IN,
41
+ "create-network-volume": IN,
42
+ "create-pod": IN,
43
+ "create-template": IN,
44
+ "delete-cluster": IN,
45
+ "delete-endpoint": IN,
46
+ "delete-global-volume": IN,
47
+ "delete-network-volume": IN,
48
+ "delete-pod": IN,
49
+ "delete-template": IN,
50
+ "deploy-hub-repo": IN,
51
+ "endpoint-health": IN,
52
+ "get-capacity": IN,
53
+ "get-cluster": IN,
54
+ "get-cpu-type": IN,
55
+ "get-data-center": IN,
56
+ "get-endpoint": IN,
57
+ "get-endpoint-build": IN,
58
+ "get-global-volume": IN,
59
+ "get-gpu-type": IN,
60
+ "get-job-status": IN,
61
+ "get-network-volume": IN,
62
+ "get-organization": IN,
63
+ "get-organization-user": IN,
64
+ "get-pod": IN,
65
+ "get-ssh-keys": IN,
66
+ "get-template": IN,
67
+ "list-audit-logs": IN,
68
+ "list-billing": IN,
69
+ "list-cluster-billing": IN,
70
+ "list-cluster-pods": IN,
71
+ "list-clusters": IN,
72
+ "list-cpu-types": IN,
73
+ "list-data-centers": IN,
74
+ "list-delegations": IN,
75
+ "list-endpoint-billing": IN,
76
+ "list-endpoint-builds": IN,
77
+ "list-endpoint-releases": IN,
78
+ "list-endpoint-workers": IN,
79
+ "list-endpoints": IN,
80
+ "list-global-volumes": IN,
81
+ "list-gpu-types": IN,
82
+ "list-hub-repos": IN,
83
+ "list-network-volume-billing": IN,
84
+ "list-network-volumes": IN,
85
+ "list-organization-users": IN,
86
+ "list-pod-billing": IN,
87
+ "list-pods": IN,
88
+ "list-public-endpoints": IN,
89
+ "list-public-templates": IN,
90
+ "list-serverless-billing": IN,
91
+ "list-templates": IN,
92
+ "lookup-concept": IN,
93
+ "purge-endpoint-queue": IN,
94
+ "retry-job": IN,
95
+ "revoke-delegation": IN,
96
+ "search-concepts": IN,
97
+ "search-docs": IN,
98
+ "set-endpoint-gpus": IN,
99
+ "stream-job": IN,
100
+ "stream-pod-logs": IN,
101
+ "stream-worker-logs": IN,
102
+ "update-cluster": IN,
103
+ "update-endpoint": IN,
104
+ "update-global-volume": IN,
105
+ "update-network-volume": IN,
106
+ "update-pod": IN,
107
+ "update-ssh-keys": IN,
108
+ "update-template": IN,
109
+ "run-endpoint": { include: true, omitInputs: ["s3Config"] },
110
+ "runsync-endpoint": { include: true, omitInputs: ["s3Config"] },
111
+ "pod-action": {
112
+ include: false,
113
+ reason: "Takes the transition as an argument; OpenAI asks for one tool per operation, so the directory serves start-pod, stop-pod and restart-pod (terminate is delete-pod)."
114
+ },
115
+ "start-pod": IN,
116
+ "stop-pod": IN,
117
+ "restart-pod": IN,
118
+ "list-guides": {
119
+ include: false,
120
+ reason: "Serves playbooks that instruct the model how to behave."
121
+ },
122
+ "read-guide": {
123
+ include: false,
124
+ reason: "Serves playbooks that instruct the model how to behave."
125
+ },
126
+ "describe-tool": {
127
+ include: false,
128
+ reason: "Fetches schemas the directory already lists in full; directories reject schema fetching."
129
+ },
130
+ "create-secret": { include: false, reason: CREDENTIAL_INPUT },
131
+ "get-secret": { include: false, reason: CREDENTIAL_MANAGEMENT },
132
+ "list-secrets": { include: false, reason: CREDENTIAL_MANAGEMENT },
133
+ "delete-secret": { include: false, reason: CREDENTIAL_MANAGEMENT },
134
+ "get-registry": { include: false, reason: CREDENTIAL_MANAGEMENT },
135
+ "list-registries": { include: false, reason: CREDENTIAL_MANAGEMENT },
136
+ "delete-registry": { include: false, reason: CREDENTIAL_MANAGEMENT },
137
+ "update-secret": { include: false, reason: CREDENTIAL_INPUT },
138
+ "create-registry": { include: false, reason: CREDENTIAL_INPUT },
139
+ report_feedback: { include: false, reason: ALP },
140
+ report_how_user_found_runpod: { include: false, reason: ALP },
141
+ save_to_journal: { include: false, reason: ALP },
142
+ read_journal: { include: false, reason: ALP },
143
+ ask_question: { include: false, reason: ALP }
144
+ };
145
+ function directoryIncludes(name) {
146
+ return DIRECTORY_TOOLS[name]?.include === true;
147
+ }
148
+ function directoryOmittedInputs(name) {
149
+ const decision = DIRECTORY_TOOLS[name];
150
+ return decision?.include ? decision.omitInputs ?? [] : [];
151
+ }
152
+ function profileForPath(pathname) {
153
+ return pathname.replace(/\/+$/, "") === DIRECTORY_PATH ? "directory" : "default";
154
+ }
155
+ // Annotate the CommonJS export names for ESM import in node:
156
+ 0 && (module.exports = {
157
+ DIRECTORY_PATH,
158
+ DIRECTORY_TOOLS,
159
+ directoryIncludes,
160
+ directoryOmittedInputs,
161
+ profileForPath
162
+ });
163
+ //# sourceMappingURL=profile.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/specgen/profile.ts"],"sourcesContent":["// Which tool surface a connection gets. `default` is the full surface every\n// client has always had. `directory` is what app directories (Anthropic's\n// connector directory, OpenAI's plugin directory) list: their policies forbid\n// tool descriptions that instruct the model, steer it toward other tools or\n// external instructions, or collect conversation data beyond the tool's job.\n// The directory profile is served only at DIRECTORY_PATH; nothing about the\n// default surface changes.\nexport type ServerProfile = 'default' | 'directory';\n\nexport const DIRECTORY_PATH = '/directory';\n\n/** Whether a tool is listed on the directory profile. Every tool the server\n * can serve must have an entry, so a new tool (a spec regeneration, a new\n * curated tool) fails tests/specgen-directory.test.ts until someone decides.\n * The rules for deciding are in specgen/DIRECTORY_POLICY.md.\n * `omitInputs` hides top-level arguments the directory must not ask for (a\n * credential, for example); a call that passes one is refused. */\nexport type DirectoryDecision =\n | { include: true; omitInputs?: readonly string[] }\n | { include: false; reason: string };\n\nconst IN = { include: true } as const;\nconst CREDENTIAL_MANAGEMENT =\n 'Manages stored credentials; OpenAI restricts plugins that handle access credentials, so the directory leaves the whole credential family out.';\nconst CREDENTIAL_INPUT =\n 'Takes a secret or password as input; directories forbid collecting credentials.';\nconst ALP =\n 'Collects conversation-derived data beyond the task; the directory profile never serves it.';\n\nexport const DIRECTORY_TOOLS: Readonly<Record<string, DirectoryDecision>> = {\n 'cancel-job': IN,\n 'create-cluster': IN,\n 'create-delegation': IN,\n 'create-endpoint': IN,\n 'create-global-volume': IN,\n 'create-network-volume': IN,\n 'create-pod': IN,\n 'create-template': IN,\n 'delete-cluster': IN,\n 'delete-endpoint': IN,\n 'delete-global-volume': IN,\n 'delete-network-volume': IN,\n 'delete-pod': IN,\n 'delete-template': IN,\n 'deploy-hub-repo': IN,\n 'endpoint-health': IN,\n 'get-capacity': IN,\n 'get-cluster': IN,\n 'get-cpu-type': IN,\n 'get-data-center': IN,\n 'get-endpoint': IN,\n 'get-endpoint-build': IN,\n 'get-global-volume': IN,\n 'get-gpu-type': IN,\n 'get-job-status': IN,\n 'get-network-volume': IN,\n 'get-organization': IN,\n 'get-organization-user': IN,\n 'get-pod': IN,\n 'get-ssh-keys': IN,\n 'get-template': IN,\n 'list-audit-logs': IN,\n 'list-billing': IN,\n 'list-cluster-billing': IN,\n 'list-cluster-pods': IN,\n 'list-clusters': IN,\n 'list-cpu-types': IN,\n 'list-data-centers': IN,\n 'list-delegations': IN,\n 'list-endpoint-billing': IN,\n 'list-endpoint-builds': IN,\n 'list-endpoint-releases': IN,\n 'list-endpoint-workers': IN,\n 'list-endpoints': IN,\n 'list-global-volumes': IN,\n 'list-gpu-types': IN,\n 'list-hub-repos': IN,\n 'list-network-volume-billing': IN,\n 'list-network-volumes': IN,\n 'list-organization-users': IN,\n 'list-pod-billing': IN,\n 'list-pods': IN,\n 'list-public-endpoints': IN,\n 'list-public-templates': IN,\n 'list-serverless-billing': IN,\n 'list-templates': IN,\n 'lookup-concept': IN,\n 'purge-endpoint-queue': IN,\n 'retry-job': IN,\n 'revoke-delegation': IN,\n 'search-concepts': IN,\n 'search-docs': IN,\n 'set-endpoint-gpus': IN,\n 'stream-job': IN,\n 'stream-pod-logs': IN,\n 'stream-worker-logs': IN,\n 'update-cluster': IN,\n 'update-endpoint': IN,\n 'update-global-volume': IN,\n 'update-network-volume': IN,\n 'update-pod': IN,\n 'update-ssh-keys': IN,\n 'update-template': IN,\n 'run-endpoint': { include: true, omitInputs: ['s3Config'] },\n 'runsync-endpoint': { include: true, omitInputs: ['s3Config'] },\n 'pod-action': {\n include: false,\n reason:\n 'Takes the transition as an argument; OpenAI asks for one tool per operation, so the directory serves start-pod, stop-pod and restart-pod (terminate is delete-pod).',\n },\n 'start-pod': IN,\n 'stop-pod': IN,\n 'restart-pod': IN,\n 'list-guides': {\n include: false,\n reason: 'Serves playbooks that instruct the model how to behave.',\n },\n 'read-guide': {\n include: false,\n reason: 'Serves playbooks that instruct the model how to behave.',\n },\n 'describe-tool': {\n include: false,\n reason:\n 'Fetches schemas the directory already lists in full; directories reject schema fetching.',\n },\n 'create-secret': { include: false, reason: CREDENTIAL_INPUT },\n 'get-secret': { include: false, reason: CREDENTIAL_MANAGEMENT },\n 'list-secrets': { include: false, reason: CREDENTIAL_MANAGEMENT },\n 'delete-secret': { include: false, reason: CREDENTIAL_MANAGEMENT },\n 'get-registry': { include: false, reason: CREDENTIAL_MANAGEMENT },\n 'list-registries': { include: false, reason: CREDENTIAL_MANAGEMENT },\n 'delete-registry': { include: false, reason: CREDENTIAL_MANAGEMENT },\n 'update-secret': { include: false, reason: CREDENTIAL_INPUT },\n 'create-registry': { include: false, reason: CREDENTIAL_INPUT },\n report_feedback: { include: false, reason: ALP },\n report_how_user_found_runpod: { include: false, reason: ALP },\n save_to_journal: { include: false, reason: ALP },\n read_journal: { include: false, reason: ALP },\n ask_question: { include: false, reason: ALP },\n};\n\n/** Served on the directory profile only with an explicit include. */\nexport function directoryIncludes(name: string): boolean {\n return DIRECTORY_TOOLS[name]?.include === true;\n}\n\nexport function directoryOmittedInputs(name: string): readonly string[] {\n const decision = DIRECTORY_TOOLS[name];\n return decision?.include ? (decision.omitInputs ?? []) : [];\n}\n\nexport function profileForPath(pathname: string): ServerProfile {\n return pathname.replace(/\\/+$/, '') === DIRECTORY_PATH\n ? 'directory'\n : 'default';\n}\n"],"mappings":"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","names":[]}
@@ -0,0 +1,22 @@
1
+ type ServerProfile = 'default' | 'directory';
2
+ declare const DIRECTORY_PATH = "/directory";
3
+ /** Whether a tool is listed on the directory profile. Every tool the server
4
+ * can serve must have an entry, so a new tool (a spec regeneration, a new
5
+ * curated tool) fails tests/specgen-directory.test.ts until someone decides.
6
+ * The rules for deciding are in specgen/DIRECTORY_POLICY.md.
7
+ * `omitInputs` hides top-level arguments the directory must not ask for (a
8
+ * credential, for example); a call that passes one is refused. */
9
+ type DirectoryDecision = {
10
+ include: true;
11
+ omitInputs?: readonly string[];
12
+ } | {
13
+ include: false;
14
+ reason: string;
15
+ };
16
+ declare const DIRECTORY_TOOLS: Readonly<Record<string, DirectoryDecision>>;
17
+ /** Served on the directory profile only with an explicit include. */
18
+ declare function directoryIncludes(name: string): boolean;
19
+ declare function directoryOmittedInputs(name: string): readonly string[];
20
+ declare function profileForPath(pathname: string): ServerProfile;
21
+
22
+ export { DIRECTORY_PATH, DIRECTORY_TOOLS, type DirectoryDecision, type ServerProfile, directoryIncludes, directoryOmittedInputs, profileForPath };
@@ -0,0 +1,22 @@
1
+ type ServerProfile = 'default' | 'directory';
2
+ declare const DIRECTORY_PATH = "/directory";
3
+ /** Whether a tool is listed on the directory profile. Every tool the server
4
+ * can serve must have an entry, so a new tool (a spec regeneration, a new
5
+ * curated tool) fails tests/specgen-directory.test.ts until someone decides.
6
+ * The rules for deciding are in specgen/DIRECTORY_POLICY.md.
7
+ * `omitInputs` hides top-level arguments the directory must not ask for (a
8
+ * credential, for example); a call that passes one is refused. */
9
+ type DirectoryDecision = {
10
+ include: true;
11
+ omitInputs?: readonly string[];
12
+ } | {
13
+ include: false;
14
+ reason: string;
15
+ };
16
+ declare const DIRECTORY_TOOLS: Readonly<Record<string, DirectoryDecision>>;
17
+ /** Served on the directory profile only with an explicit include. */
18
+ declare function directoryIncludes(name: string): boolean;
19
+ declare function directoryOmittedInputs(name: string): readonly string[];
20
+ declare function profileForPath(pathname: string): ServerProfile;
21
+
22
+ export { DIRECTORY_PATH, DIRECTORY_TOOLS, type DirectoryDecision, type ServerProfile, directoryIncludes, directoryOmittedInputs, profileForPath };
@@ -0,0 +1,15 @@
1
+ import {
2
+ DIRECTORY_PATH,
3
+ DIRECTORY_TOOLS,
4
+ directoryIncludes,
5
+ directoryOmittedInputs,
6
+ profileForPath
7
+ } from "../chunk-6IETGSON.mjs";
8
+ export {
9
+ DIRECTORY_PATH,
10
+ DIRECTORY_TOOLS,
11
+ directoryIncludes,
12
+ directoryOmittedInputs,
13
+ profileForPath
14
+ };
15
+ //# sourceMappingURL=profile.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}