@numa-tech/numa 1.14.52 → 1.15.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.
Files changed (51) hide show
  1. package/README.md +109 -21
  2. package/dist/ai-registry/commands.js.map +1 -1
  3. package/dist/ai-registry/mcp-installer.d.ts +1 -1
  4. package/dist/ai-registry/mcp-installer.js +9 -0
  5. package/dist/ai-registry/mcp-installer.js.map +1 -1
  6. package/dist/cli.js +19 -3
  7. package/dist/cli.js.map +1 -1
  8. package/dist/command-catalog.js +22 -1
  9. package/dist/command-catalog.js.map +1 -1
  10. package/dist/mcp/commands.d.ts +7 -0
  11. package/dist/mcp/commands.js +54 -0
  12. package/dist/mcp/commands.js.map +1 -0
  13. package/dist/mcp/install.d.ts +48 -0
  14. package/dist/mcp/install.js +138 -0
  15. package/dist/mcp/install.js.map +1 -0
  16. package/dist/mcp/modules.d.ts +4 -0
  17. package/dist/mcp/modules.js +11 -0
  18. package/dist/mcp/modules.js.map +1 -0
  19. package/dist/oss/commands.d.ts +3 -0
  20. package/dist/oss/commands.js +74 -7
  21. package/dist/oss/commands.js.map +1 -1
  22. package/dist/oss/search.d.ts +70 -0
  23. package/dist/oss/search.js +172 -0
  24. package/dist/oss/search.js.map +1 -0
  25. package/dist/oss/tools.d.ts +8 -0
  26. package/dist/oss/tools.js +69 -0
  27. package/dist/oss/tools.js.map +1 -0
  28. package/dist/oss/transfers.d.ts +17 -2
  29. package/dist/oss/transfers.js +29 -7
  30. package/dist/oss/transfers.js.map +1 -1
  31. package/dist/server.d.ts +4 -0
  32. package/dist/server.js +175 -164
  33. package/dist/server.js.map +1 -1
  34. package/dist/wecom/tools.js +15 -4
  35. package/dist/wecom/tools.js.map +1 -1
  36. package/package.json +4 -4
  37. package/skills/numa-cli/SKILL.md +3 -2
  38. package/skills/numa-cli/agents/openai.yaml +1 -1
  39. package/skills/numa-cli/evals/evals.json +19 -1
  40. package/skills/numa-cli/numa-skill.json +1 -1
  41. package/skills/numa-cli/references/cli-mcp.md +74 -0
  42. package/skills/numa-oss-access/SKILL.md +7 -3
  43. package/skills/numa-oss-access/agents/openai.yaml +1 -1
  44. package/skills/numa-oss-access/evals/evals.json +18 -0
  45. package/skills/numa-oss-access/numa-skill.json +2 -2
  46. package/skills/numa-oss-access/references/cli-bootstrap.md +2 -2
  47. package/skills/numa-oss-access/references/search-and-mcp.md +63 -0
  48. package/skills/numa-wecom/SKILL.md +7 -3
  49. package/skills/numa-wecom/numa-skill.json +2 -2
  50. package/skills/numa-wecom/references/cli-bootstrap.md +2 -2
  51. package/skills/numa-wecom/references/mcp.md +12 -0
@@ -9,18 +9,33 @@ export interface OssObjectSummary {
9
9
  lastModified?: string;
10
10
  etag?: string;
11
11
  type?: string;
12
+ storageClass?: string;
13
+ }
14
+ export interface OssListOptions {
15
+ marker?: string;
16
+ delimiter?: string;
17
+ }
18
+ export interface OssObjectMetadata {
19
+ key: string;
20
+ status: number;
21
+ contentType?: string;
22
+ contentLength?: number;
23
+ etag?: string;
24
+ lastModified?: string;
25
+ metadata: Record<string, string>;
12
26
  }
13
27
  export declare class OssTransferClient {
14
28
  private readonly clientFactory;
15
29
  constructor(dependencies?: OssTransferDependencies);
16
30
  private client;
17
- list(session: AccessSession, requestedPrefix?: string, limit?: number): Promise<{
31
+ list(session: AccessSession, requestedPrefix?: string, limit?: number, options?: OssListOptions): Promise<{
18
32
  prefix: string;
19
33
  objects: OssObjectSummary[];
20
34
  truncated: boolean;
21
35
  nextMarker?: string;
36
+ directories: string[];
22
37
  }>;
23
- stat(session: AccessSession, key: string): Promise<Record<string, unknown>>;
38
+ stat(session: AccessSession, key: string): Promise<OssObjectMetadata>;
24
39
  download(session: AccessSession, key: string, outputPath: string): Promise<{
25
40
  key: string;
26
41
  outputPath: string;
@@ -133,7 +133,7 @@ export class OssTransferClient {
133
133
  client(session) {
134
134
  return this.clientFactory(clientOptions(session));
135
135
  }
136
- async list(session, requestedPrefix, limit = 100) {
136
+ async list(session, requestedPrefix, limit = 100, options = {}) {
137
137
  requirePermission(session, "list");
138
138
  if (!Number.isSafeInteger(limit) || limit < 1 || limit > 1000) {
139
139
  throw new OssError("List limit must be an integer between 1 and 1000.", "oss_input_invalid");
@@ -143,8 +143,24 @@ export class OssTransferClient {
143
143
  ? prefix
144
144
  : validateKey(requestedPrefix, prefix, "prefix", true);
145
145
  const listPrefix = prefix && requested === prefix ? `${prefix}/` : requested;
146
+ if (options.delimiter !== undefined && options.delimiter !== "/") {
147
+ throw new OssError("Only / is supported as a directory delimiter.", "oss_input_invalid");
148
+ }
149
+ if (options.marker !== undefined) {
150
+ validateKey(options.marker, prefix, "marker");
151
+ if (!options.marker.startsWith(listPrefix))
152
+ throw new OssError("Marker must stay inside the requested prefix.", "oss_scope_violation");
153
+ }
146
154
  try {
147
- const result = await this.client(session).list({ prefix: listPrefix, "max-keys": limit }, {});
155
+ const result = await this.client(session).list({ prefix: listPrefix, "max-keys": limit,
156
+ ...(options.marker !== undefined ? { marker: options.marker } : {}),
157
+ ...(options.delimiter ? { delimiter: options.delimiter } : {}) }, {});
158
+ // Never let a malformed upstream listing feed out-of-scope keys into HEAD requests.
159
+ for (const key of [...(result.objects ?? []).map(object => object.name), ...(result.prefixes ?? [])]) {
160
+ validateKey(key, prefix, "returned key");
161
+ if (!key.startsWith(listPrefix))
162
+ throw new OssError("OSS returned a key outside the requested prefix.", "oss_scope_violation");
163
+ }
148
164
  return {
149
165
  prefix: listPrefix,
150
166
  objects: (result.objects ?? []).map((object) => ({
@@ -152,8 +168,10 @@ export class OssTransferClient {
152
168
  sizeBytes: Number(object.size ?? 0),
153
169
  lastModified: object.lastModified,
154
170
  etag: object.etag,
155
- type: object.type
171
+ type: object.type,
172
+ storageClass: object.storageClass
156
173
  })),
174
+ directories: result.prefixes ?? [],
157
175
  truncated: Boolean(result.isTruncated),
158
176
  ...(result.nextMarker ? { nextMarker: result.nextMarker } : {})
159
177
  };
@@ -168,13 +186,17 @@ export class OssTransferClient {
168
186
  try {
169
187
  const result = await this.client(session).head(objectKey);
170
188
  const meta = result.meta ?? {};
189
+ // ali-oss puts user metadata in meta, and standard HTTP metadata in res.headers.
190
+ const headers = Object.fromEntries(Object.entries(result.res?.headers ?? {}).map(([key, value]) => [key.toLowerCase(), value]));
191
+ const header = (name) => typeof headers[name] === "string" ? headers[name] : undefined;
171
192
  return {
172
193
  key: objectKey,
173
194
  status: result.status,
174
- contentType: typeof meta["content-type"] === "string" ? meta["content-type"] : undefined,
175
- contentLength: typeof meta["content-length"] === "string" ? Number(meta["content-length"]) : undefined,
176
- etag: typeof meta.etag === "string" ? meta.etag : undefined,
177
- lastModified: typeof meta["last-modified"] === "string" ? meta["last-modified"] : undefined
195
+ contentType: header("content-type"),
196
+ contentLength: header("content-length") === undefined ? undefined : Number(header("content-length")),
197
+ etag: header("etag"),
198
+ lastModified: header("last-modified"),
199
+ metadata: Object.fromEntries(Object.entries(meta).filter((entry) => typeof entry[1] === "string"))
178
200
  };
179
201
  }
180
202
  catch (error) {
@@ -1 +1 @@
1
- {"version":3,"file":"transfers.js","sourceRoot":"","sources":["../../src/oss/transfers.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"transfers.js","sourceRoot":"","sources":["../../src/oss/transfers.ts"],"names":[],"mappings":"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"}
package/dist/server.d.ts CHANGED
@@ -1,5 +1,9 @@
1
1
  import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
2
2
  import { type WecomToolDependencies } from "./wecom/tools.js";
3
+ import { type OssToolDependencies } from "./oss/tools.js";
4
+ import { type McpModule } from "./mcp/modules.js";
3
5
  export declare function createServer(dependencies?: {
4
6
  wecom?: WecomToolDependencies;
7
+ oss?: OssToolDependencies;
8
+ modules?: McpModule[];
5
9
  }): McpServer;
package/dist/server.js CHANGED
@@ -9,6 +9,8 @@ import { currentIdentity, requireAnyRole, RoleRequiredError } from "./identity.j
9
9
  import { AuthError, completeBrowserLogin, deleteTokenCache, readTokenCache, startBrowserLogin } from "./oauth.js";
10
10
  import { registerWecomTools } from "./wecom/tools.js";
11
11
  import { registerNotionTools } from "./notion/tools.js";
12
+ import { registerOssTools } from "./oss/tools.js";
13
+ import { MCP_MODULES } from "./mcp/modules.js";
12
14
  const sessions = new Map();
13
15
  function textResult(text, structuredContent, isError = false) {
14
16
  return {
@@ -30,7 +32,9 @@ export function createServer(dependencies = {}) {
30
32
  name: `${CLI_NAME}-platform-cli`,
31
33
  version: PACKAGE_VERSION
32
34
  });
33
- registerNotionTools(server);
35
+ const modules = new Set(dependencies.modules ?? MCP_MODULES);
36
+ if (modules.has("notion"))
37
+ registerNotionTools(server);
34
38
  server.registerTool("numa_command_catalog", {
35
39
  title: `Get ${PRODUCT_NAME} CLI Command Catalog`,
36
40
  description: "List CLI commands, authentication requirements, required roles, and examples for AI clients.",
@@ -42,169 +46,176 @@ export function createServer(dependencies = {}) {
42
46
  openWorldHint: false
43
47
  }
44
48
  }, async () => jsonResult({ schema_version: 1, commands: COMMAND_CATALOG }));
45
- server.registerTool("numa_auth_status", {
46
- title: `Get ${PRODUCT_NAME} Auth Status`,
47
- description: "Inspect local Keycloak authentication cache status without exposing tokens.",
48
- inputSchema: {},
49
- annotations: {
50
- readOnlyHint: true,
51
- destructiveHint: false,
52
- idempotentHint: true,
53
- openWorldHint: false
54
- }
55
- }, async () => {
56
- try {
57
- const config = loadConfig();
58
- const cache = await readTokenCache(config);
59
- return jsonResult({
60
- authentication_mode: config.authenticationMode ?? "browser",
61
- ...(config.authenticationMode === "client_credentials" ? { credential_configured: Boolean(config.clientSecret), token_storage: "memory_only" } : {}),
62
- logged_in: config.authenticationMode === "client_credentials" ? null : Boolean(cache),
63
- token_file: config.authenticationMode === "client_credentials" ? null : config.tokenFile,
64
- discovery_url: config.discoveryUrl,
65
- client_id: config.clientId,
66
- expires_at: cache?.expiresAt,
67
- refresh_expires_at: cache?.refreshExpiresAt,
68
- cached_user: cache?.userinfo
69
- });
70
- }
71
- catch (error) {
72
- return errorResult(error);
73
- }
74
- });
75
- server.registerTool("numa_auth_start_login", {
76
- title: `Start ${PRODUCT_NAME} Keycloak Login`,
77
- description: "Start local browser-based Keycloak PKCE login. Returns an authorization URL and login_session_id; never returns tokens.",
78
- inputSchema: {},
79
- annotations: {
80
- readOnlyHint: false,
81
- destructiveHint: false,
82
- idempotentHint: false,
83
- openWorldHint: true
84
- }
85
- }, async () => {
86
- try {
87
- const config = loadConfig();
88
- const session = await startBrowserLogin(config);
89
- sessions.set(session.id, { session, config });
90
- return jsonResult({
91
- login_session_id: session.id,
92
- authorization_url: session.authorizationUrl,
93
- redirect_uri: session.redirectUri,
94
- expires_at: session.expiresAt,
95
- instruction: "Open authorization_url in a browser, complete login, then call numa_auth_complete_login."
96
- });
97
- }
98
- catch (error) {
99
- return errorResult(error);
100
- }
101
- });
102
- server.registerTool("numa_auth_complete_login", {
103
- title: `Complete ${PRODUCT_NAME} Keycloak Login`,
104
- description: "Complete a browser login after the local callback is received and save the token cache. Returns user identity, not tokens.",
105
- inputSchema: {
106
- login_session_id: z.string().min(1).describe("Session ID returned by numa_auth_start_login")
107
- },
108
- annotations: {
109
- readOnlyHint: false,
110
- destructiveHint: false,
111
- idempotentHint: true,
112
- openWorldHint: true
113
- }
114
- }, async ({ login_session_id }) => {
115
- try {
116
- const pending = sessions.get(login_session_id);
117
- if (!pending)
118
- throw new AuthError("Unknown login_session_id.", "unknown_login_session");
119
- const info = await completeBrowserLogin(pending.config, pending.session);
120
- sessions.delete(login_session_id);
121
- const enrollment = await initializeApplicationMembership(pending.config, {
122
- expectedSubject: typeof info.sub === "string" ? info.sub : undefined
123
- });
124
- return jsonResult({ ok: true, user: info, application_enrollment: enrollment });
125
- }
126
- catch (error) {
127
- return errorResult(error);
128
- }
129
- });
130
- server.registerTool("numa_auth_whoami", {
131
- title: `Get Current ${PRODUCT_NAME} User`,
132
- description: "Return the current Keycloak user identity from the userinfo endpoint. Refreshes saved access token if needed; never returns tokens.",
133
- inputSchema: {
134
- force_refresh: z.boolean().default(false).describe("Force refresh before reading userinfo")
135
- },
136
- annotations: {
137
- readOnlyHint: true,
138
- destructiveHint: false,
139
- idempotentHint: true,
140
- openWorldHint: true
141
- }
142
- }, async ({ force_refresh }) => {
143
- try {
144
- const identity = await currentIdentity(loadConfig(), force_refresh);
145
- const { raw: _raw, ...safeIdentity } = identity;
146
- return jsonResult({ user: safeIdentity });
147
- }
148
- catch (error) {
149
- return errorResult(error);
150
- }
151
- });
152
- server.registerTool("numa_auth_logout", {
153
- title: `Clear Local ${PRODUCT_NAME} Login`,
154
- description: "Delete the local Keycloak token cache. This does not revoke server-side Keycloak sessions.",
155
- inputSchema: {},
156
- annotations: {
157
- readOnlyHint: false,
158
- destructiveHint: true,
159
- idempotentHint: true,
160
- openWorldHint: false
161
- }
162
- }, async () => {
163
- try {
164
- const config = loadConfig();
165
- await deleteTokenCache(config);
166
- return jsonResult(config.authenticationMode === "client_credentials"
167
- ? { ok: true, token_file: null, authentication_mode: "client_credentials", instruction: "Remove the machine credential environment variables and restart the MCP process to stop machine access. No PKCE cache was deleted." }
168
- : { ok: true, token_file: config.tokenFile });
169
- }
170
- catch (error) {
171
- return errorResult(error);
172
- }
173
- });
174
- server.registerTool("numa_backend_request", {
175
- title: `Call ${PRODUCT_NAME} Backend With Keycloak Auth`,
176
- description: "Proxy an HTTP request to a configured Numa backend and inject the saved Keycloak bearer token internally. Does not expose tokens.",
177
- inputSchema: {
178
- method: z.enum(["GET", "POST", "PUT", "PATCH", "DELETE"]).default("GET"),
179
- path: z.string().optional().describe("Backend path resolved against NUMA_BACKEND_BASE_URL"),
180
- url: z.string().url().optional().describe("Absolute URL; disabled unless NUMA_BACKEND_ALLOW_ABSOLUTE_URLS=true"),
181
- headers: z.record(z.string(), z.string()).optional().describe("Extra headers except Authorization"),
182
- body: z.unknown().optional().describe("JSON-serializable request body or string"),
183
- required_roles: z
184
- .array(z.string().min(1))
185
- .optional()
186
- .describe("Require at least one Keycloak realm/client role before the request")
187
- },
188
- annotations: {
189
- readOnlyHint: false,
190
- destructiveHint: true,
191
- idempotentHint: false,
192
- openWorldHint: true
193
- }
194
- }, async (input) => {
195
- try {
196
- const { headers, required_roles, ...rest } = input;
197
- if (required_roles?.length)
198
- await requireAnyRole(loadConfig(), required_roles);
199
- const safeHeaders = Object.fromEntries(Object.entries(headers ?? {}).filter(([key]) => key.toLowerCase() !== "authorization"));
200
- const response = await authenticatedBackendRequest(loadConfig(), { ...rest, headers: safeHeaders });
201
- return jsonResult({ ok: response.status >= 200 && response.status < 300, response });
202
- }
203
- catch (error) {
204
- return errorResult(error);
205
- }
206
- });
207
- registerWecomTools(server, dependencies.wecom);
49
+ if (modules.has("auth")) {
50
+ server.registerTool("numa_auth_status", {
51
+ title: `Get ${PRODUCT_NAME} Auth Status`,
52
+ description: "Inspect local Keycloak authentication cache status without exposing tokens.",
53
+ inputSchema: {},
54
+ annotations: {
55
+ readOnlyHint: true,
56
+ destructiveHint: false,
57
+ idempotentHint: true,
58
+ openWorldHint: false
59
+ }
60
+ }, async () => {
61
+ try {
62
+ const config = loadConfig();
63
+ const cache = await readTokenCache(config);
64
+ return jsonResult({
65
+ authentication_mode: config.authenticationMode ?? "browser",
66
+ ...(config.authenticationMode === "client_credentials" ? { credential_configured: Boolean(config.clientSecret || config.clientSecretFile), token_storage: "memory_only" } : {}),
67
+ logged_in: config.authenticationMode === "client_credentials" ? null : Boolean(cache),
68
+ token_file: config.authenticationMode === "client_credentials" ? null : config.tokenFile,
69
+ discovery_url: config.discoveryUrl,
70
+ client_id: config.clientId,
71
+ expires_at: cache?.expiresAt,
72
+ refresh_expires_at: cache?.refreshExpiresAt,
73
+ cached_user: cache?.userinfo
74
+ });
75
+ }
76
+ catch (error) {
77
+ return errorResult(error);
78
+ }
79
+ });
80
+ server.registerTool("numa_auth_start_login", {
81
+ title: `Start ${PRODUCT_NAME} Keycloak Login`,
82
+ description: "Start local browser-based Keycloak PKCE login. Returns an authorization URL and login_session_id; never returns tokens.",
83
+ inputSchema: {},
84
+ annotations: {
85
+ readOnlyHint: false,
86
+ destructiveHint: false,
87
+ idempotentHint: false,
88
+ openWorldHint: true
89
+ }
90
+ }, async () => {
91
+ try {
92
+ const config = loadConfig();
93
+ const session = await startBrowserLogin(config);
94
+ sessions.set(session.id, { session, config });
95
+ return jsonResult({
96
+ login_session_id: session.id,
97
+ authorization_url: session.authorizationUrl,
98
+ redirect_uri: session.redirectUri,
99
+ expires_at: session.expiresAt,
100
+ instruction: "Open authorization_url in a browser, complete login, then call numa_auth_complete_login."
101
+ });
102
+ }
103
+ catch (error) {
104
+ return errorResult(error);
105
+ }
106
+ });
107
+ server.registerTool("numa_auth_complete_login", {
108
+ title: `Complete ${PRODUCT_NAME} Keycloak Login`,
109
+ description: "Complete a browser login after the local callback is received and save the token cache. Returns user identity, not tokens.",
110
+ inputSchema: {
111
+ login_session_id: z.string().min(1).describe("Session ID returned by numa_auth_start_login")
112
+ },
113
+ annotations: {
114
+ readOnlyHint: false,
115
+ destructiveHint: false,
116
+ idempotentHint: true,
117
+ openWorldHint: true
118
+ }
119
+ }, async ({ login_session_id }) => {
120
+ try {
121
+ const pending = sessions.get(login_session_id);
122
+ if (!pending)
123
+ throw new AuthError("Unknown login_session_id.", "unknown_login_session");
124
+ const info = await completeBrowserLogin(pending.config, pending.session);
125
+ sessions.delete(login_session_id);
126
+ const enrollment = await initializeApplicationMembership(pending.config, {
127
+ expectedSubject: typeof info.sub === "string" ? info.sub : undefined
128
+ });
129
+ return jsonResult({ ok: true, user: info, application_enrollment: enrollment });
130
+ }
131
+ catch (error) {
132
+ return errorResult(error);
133
+ }
134
+ });
135
+ server.registerTool("numa_auth_whoami", {
136
+ title: `Get Current ${PRODUCT_NAME} User`,
137
+ description: "Return the current Keycloak user identity from the userinfo endpoint. Refreshes saved access token if needed; never returns tokens.",
138
+ inputSchema: {
139
+ force_refresh: z.boolean().default(false).describe("Force refresh before reading userinfo")
140
+ },
141
+ annotations: {
142
+ readOnlyHint: true,
143
+ destructiveHint: false,
144
+ idempotentHint: true,
145
+ openWorldHint: true
146
+ }
147
+ }, async ({ force_refresh }) => {
148
+ try {
149
+ const identity = await currentIdentity(loadConfig(), force_refresh);
150
+ const { raw: _raw, ...safeIdentity } = identity;
151
+ return jsonResult({ user: safeIdentity });
152
+ }
153
+ catch (error) {
154
+ return errorResult(error);
155
+ }
156
+ });
157
+ server.registerTool("numa_auth_logout", {
158
+ title: `Clear Local ${PRODUCT_NAME} Login`,
159
+ description: "Delete the local Keycloak token cache. This does not revoke server-side Keycloak sessions.",
160
+ inputSchema: {},
161
+ annotations: {
162
+ readOnlyHint: false,
163
+ destructiveHint: true,
164
+ idempotentHint: true,
165
+ openWorldHint: false
166
+ }
167
+ }, async () => {
168
+ try {
169
+ const config = loadConfig();
170
+ await deleteTokenCache(config);
171
+ return jsonResult(config.authenticationMode === "client_credentials"
172
+ ? { ok: true, token_file: null, authentication_mode: "client_credentials", instruction: "Remove the machine credential environment variables and restart the MCP process to stop machine access. No PKCE cache was deleted." }
173
+ : { ok: true, token_file: config.tokenFile });
174
+ }
175
+ catch (error) {
176
+ return errorResult(error);
177
+ }
178
+ });
179
+ }
180
+ if (modules.has("platform")) {
181
+ server.registerTool("numa_backend_request", {
182
+ title: `Call ${PRODUCT_NAME} Backend With Keycloak Auth`,
183
+ description: "Proxy an HTTP request to a configured Numa backend and inject the saved Keycloak bearer token internally. Does not expose tokens.",
184
+ inputSchema: {
185
+ method: z.enum(["GET", "POST", "PUT", "PATCH", "DELETE"]).default("GET"),
186
+ path: z.string().optional().describe("Backend path resolved against NUMA_BACKEND_BASE_URL"),
187
+ url: z.string().url().optional().describe("Absolute URL; disabled unless NUMA_BACKEND_ALLOW_ABSOLUTE_URLS=true"),
188
+ headers: z.record(z.string(), z.string()).optional().describe("Extra headers except Authorization"),
189
+ body: z.unknown().optional().describe("JSON-serializable request body or string"),
190
+ required_roles: z
191
+ .array(z.string().min(1))
192
+ .optional()
193
+ .describe("Require at least one Keycloak realm/client role before the request")
194
+ },
195
+ annotations: {
196
+ readOnlyHint: false,
197
+ destructiveHint: true,
198
+ idempotentHint: false,
199
+ openWorldHint: true
200
+ }
201
+ }, async (input) => {
202
+ try {
203
+ const { headers, required_roles, ...rest } = input;
204
+ if (required_roles?.length)
205
+ await requireAnyRole(loadConfig(), required_roles);
206
+ const safeHeaders = Object.fromEntries(Object.entries(headers ?? {}).filter(([key]) => key.toLowerCase() !== "authorization"));
207
+ const response = await authenticatedBackendRequest(loadConfig(), { ...rest, headers: safeHeaders });
208
+ return jsonResult({ ok: response.status >= 200 && response.status < 300, response });
209
+ }
210
+ catch (error) {
211
+ return errorResult(error);
212
+ }
213
+ });
214
+ }
215
+ if (modules.has("wecom"))
216
+ registerWecomTools(server, dependencies.wecom);
217
+ if (modules.has("oss"))
218
+ registerOssTools(server, dependencies.oss);
208
219
  return server;
209
220
  }
210
221
  //# sourceMappingURL=server.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}