@numa-tech/numa 1.14.32 → 1.14.34
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 +61 -1
- package/dist/cli.js +58 -24
- package/dist/cli.js.map +1 -1
- package/dist/command-catalog.js +53 -2
- package/dist/command-catalog.js.map +1 -1
- package/dist/config.d.ts +2 -0
- package/dist/config.js +15 -1
- package/dist/config.js.map +1 -1
- package/dist/oss/client.d.ts +18 -0
- package/dist/oss/client.js +90 -0
- package/dist/oss/client.js.map +1 -0
- package/dist/oss/commands.d.ts +2 -0
- package/dist/oss/commands.js +137 -0
- package/dist/oss/commands.js.map +1 -0
- package/dist/oss/errors.d.ts +15 -0
- package/dist/oss/errors.js +42 -0
- package/dist/oss/errors.js.map +1 -0
- package/dist/oss/schemas.d.ts +74 -0
- package/dist/oss/schemas.js +53 -0
- package/dist/oss/schemas.js.map +1 -0
- package/dist/oss/transfers.d.ts +36 -0
- package/dist/oss/transfers.js +261 -0
- package/dist/oss/transfers.js.map +1 -0
- package/dist/wecom/client.d.ts +5 -0
- package/dist/wecom/client.js +16 -2
- package/dist/wecom/client.js.map +1 -1
- package/dist/wecom/commands.js +22 -2
- package/dist/wecom/commands.js.map +1 -1
- package/dist/wecom/schemas.d.ts +9 -0
- package/dist/wecom/schemas.js +7 -1
- package/dist/wecom/schemas.js.map +1 -1
- package/docs/wecom-messaging.md +31 -0
- package/package.json +6 -4
- package/skills/numa-cli/SKILL.md +1 -0
- package/skills/numa-oss-access/SKILL.md +86 -0
- package/skills/numa-oss-access/agents/openai.yaml +4 -0
- package/skills/numa-oss-access/evals/evals.json +35 -0
- package/skills/numa-oss-access/references/local-development.md +40 -0
|
@@ -0,0 +1,261 @@
|
|
|
1
|
+
import { randomUUID } from "node:crypto";
|
|
2
|
+
import { createWriteStream } from "node:fs";
|
|
3
|
+
import { access, link, mkdir, rm, stat } from "node:fs/promises";
|
|
4
|
+
import { dirname, resolve } from "node:path";
|
|
5
|
+
import { pipeline } from "node:stream/promises";
|
|
6
|
+
import OSS from "ali-oss";
|
|
7
|
+
import { OssError } from "./errors.js";
|
|
8
|
+
function normalizedPrefix(prefix) {
|
|
9
|
+
let value = prefix?.trim() ?? "";
|
|
10
|
+
// The platform policy service canonicalizes prefixes by removing leading
|
|
11
|
+
// and trailing slashes. Mirror that representation so a malformed or
|
|
12
|
+
// legacy session cannot accidentally widen a prefix check.
|
|
13
|
+
while (value.startsWith("/"))
|
|
14
|
+
value = value.slice(1);
|
|
15
|
+
while (value.endsWith("/"))
|
|
16
|
+
value = value.slice(0, -1);
|
|
17
|
+
return value;
|
|
18
|
+
}
|
|
19
|
+
function validateKey(key, prefix, label, allowExactPrefix = false) {
|
|
20
|
+
const value = key.trim();
|
|
21
|
+
if (!value || value.length > 1024 || /[\\\u0000-\u001f\u007f]/u.test(value)) {
|
|
22
|
+
throw new OssError(`${label} is empty or contains invalid path characters.`, "oss_input_invalid");
|
|
23
|
+
}
|
|
24
|
+
const segments = value.split("/");
|
|
25
|
+
if (segments.some((segment) => segment === "." || segment === "..")) {
|
|
26
|
+
throw new OssError(`${label} must not contain path traversal segments.`, "oss_input_invalid");
|
|
27
|
+
}
|
|
28
|
+
if (prefix && !(allowExactPrefix && value === prefix)
|
|
29
|
+
&& !value.startsWith(prefix.endsWith("/") ? prefix : `${prefix}/`)) {
|
|
30
|
+
throw new OssError(`${label} must stay inside the authorized prefix ${prefix}.`, "oss_scope_violation");
|
|
31
|
+
}
|
|
32
|
+
return value;
|
|
33
|
+
}
|
|
34
|
+
function requirePermission(session, operation) {
|
|
35
|
+
if (typeof session.permissionLevel !== "string" || !session.permissionLevel.trim()) {
|
|
36
|
+
throw new OssError("The OSS session has no permission level.", "oss_session_invalid", 502);
|
|
37
|
+
}
|
|
38
|
+
const permission = session.permissionLevel.trim().toUpperCase();
|
|
39
|
+
const allowed = operation === "read"
|
|
40
|
+
? ["ADMIN", "READ_ONLY", "READ_WRITE", "READ_WRITE_NO_DELETE"].includes(permission)
|
|
41
|
+
: operation === "write"
|
|
42
|
+
? ["ADMIN", "WRITE_ONLY", "READ_WRITE", "READ_WRITE_NO_DELETE"].includes(permission)
|
|
43
|
+
: ["ADMIN", "READ_WRITE"].includes(permission);
|
|
44
|
+
if (!allowed)
|
|
45
|
+
throw new OssError(`The OSS policy does not allow ${operation}.`, "oss_operation_forbidden", 403);
|
|
46
|
+
}
|
|
47
|
+
function effectivePrefix(session) {
|
|
48
|
+
if (typeof session.scopeType !== "string" || !session.scopeType.trim()) {
|
|
49
|
+
throw new OssError("The OSS session has no scope type.", "oss_session_invalid", 502);
|
|
50
|
+
}
|
|
51
|
+
const scopeType = session.scopeType.trim().toUpperCase().replace(/^OSS_/u, "");
|
|
52
|
+
const prefix = normalizedPrefix(session.objectPrefix);
|
|
53
|
+
if (scopeType !== "BUCKET" && scopeType !== "PREFIX") {
|
|
54
|
+
throw new OssError(`Unsupported OSS scope type: ${session.scopeType}`, "oss_scope_invalid", 502);
|
|
55
|
+
}
|
|
56
|
+
if (scopeType === "PREFIX" && !prefix) {
|
|
57
|
+
throw new OssError("The OSS session has an empty authorized prefix.", "oss_scope_invalid", 502);
|
|
58
|
+
}
|
|
59
|
+
if (prefix && prefix.split("/").some((segment) => segment === "." || segment === "..")) {
|
|
60
|
+
throw new OssError("The OSS session contains an invalid authorized prefix.", "oss_scope_invalid", 502);
|
|
61
|
+
}
|
|
62
|
+
return prefix;
|
|
63
|
+
}
|
|
64
|
+
function clientOptions(session) {
|
|
65
|
+
if (typeof session.region !== "string" || !session.region.trim()) {
|
|
66
|
+
throw new OssError("The OSS session has no region.", "oss_session_invalid", 502);
|
|
67
|
+
}
|
|
68
|
+
if (typeof session.bucketName !== "string" || !session.bucketName.trim()) {
|
|
69
|
+
throw new OssError("The OSS session has no bucket.", "oss_session_invalid", 502);
|
|
70
|
+
}
|
|
71
|
+
if (!session.credentials || typeof session.credentials.accessKeyId !== "string"
|
|
72
|
+
|| typeof session.credentials.accessKeySecret !== "string"
|
|
73
|
+
|| typeof session.credentials.securityToken !== "string"
|
|
74
|
+
|| !session.credentials.accessKeyId
|
|
75
|
+
|| !session.credentials.accessKeySecret
|
|
76
|
+
|| !session.credentials.securityToken) {
|
|
77
|
+
throw new OssError("The OSS session has invalid temporary credentials.", "oss_session_invalid", 502);
|
|
78
|
+
}
|
|
79
|
+
const rawRegion = session.region.trim().toLowerCase();
|
|
80
|
+
const region = rawRegion.startsWith("oss-") ? rawRegion : `oss-${rawRegion}`;
|
|
81
|
+
if (!/^oss-[a-z0-9][a-z0-9-]*$/u.test(region)) {
|
|
82
|
+
throw new OssError("The OSS session has an invalid region.", "oss_session_invalid", 502);
|
|
83
|
+
}
|
|
84
|
+
const bucket = session.bucketName.trim();
|
|
85
|
+
if (!/^[a-z0-9][a-z0-9-]{1,61}[a-z0-9]$/u.test(bucket)) {
|
|
86
|
+
throw new OssError("The OSS session has an invalid bucket.", "oss_session_invalid", 502);
|
|
87
|
+
}
|
|
88
|
+
return {
|
|
89
|
+
region,
|
|
90
|
+
endpoint: `https://${region}.aliyuncs.com`,
|
|
91
|
+
secure: true,
|
|
92
|
+
bucket,
|
|
93
|
+
accessKeyId: session.credentials.accessKeyId,
|
|
94
|
+
accessKeySecret: session.credentials.accessKeySecret,
|
|
95
|
+
stsToken: session.credentials.securityToken,
|
|
96
|
+
timeout: 60_000
|
|
97
|
+
};
|
|
98
|
+
}
|
|
99
|
+
function defaultClientFactory(options) {
|
|
100
|
+
return new OSS(options);
|
|
101
|
+
}
|
|
102
|
+
async function pathExists(path) {
|
|
103
|
+
try {
|
|
104
|
+
await access(path);
|
|
105
|
+
return true;
|
|
106
|
+
}
|
|
107
|
+
catch {
|
|
108
|
+
return false;
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
function transferError(operation, error) {
|
|
112
|
+
const message = error instanceof Error ? error.message : String(error);
|
|
113
|
+
const status = typeof error === "object" && error !== null && "status" in error && typeof error.status === "number"
|
|
114
|
+
? error.status : undefined;
|
|
115
|
+
const requestId = typeof error === "object" && error !== null && "requestId" in error && typeof error.requestId === "string"
|
|
116
|
+
? error.requestId : undefined;
|
|
117
|
+
return new OssError(`OSS ${operation} failed: ${message}`, "oss_transfer_failed", status, requestId);
|
|
118
|
+
}
|
|
119
|
+
export class OssTransferClient {
|
|
120
|
+
clientFactory;
|
|
121
|
+
constructor(dependencies = {}) {
|
|
122
|
+
this.clientFactory = dependencies.clientFactory ?? defaultClientFactory;
|
|
123
|
+
}
|
|
124
|
+
client(session) {
|
|
125
|
+
return this.clientFactory(clientOptions(session));
|
|
126
|
+
}
|
|
127
|
+
async list(session, requestedPrefix, limit = 100) {
|
|
128
|
+
requirePermission(session, "read");
|
|
129
|
+
if (!Number.isSafeInteger(limit) || limit < 1 || limit > 1000) {
|
|
130
|
+
throw new OssError("List limit must be an integer between 1 and 1000.", "oss_input_invalid");
|
|
131
|
+
}
|
|
132
|
+
const prefix = effectivePrefix(session);
|
|
133
|
+
const listPrefix = requestedPrefix == null || requestedPrefix.trim() === ""
|
|
134
|
+
? prefix
|
|
135
|
+
: validateKey(requestedPrefix, prefix, "prefix", true);
|
|
136
|
+
try {
|
|
137
|
+
const result = await this.client(session).list({ prefix: listPrefix, "max-keys": limit }, {});
|
|
138
|
+
return {
|
|
139
|
+
prefix: listPrefix,
|
|
140
|
+
objects: (result.objects ?? []).map((object) => ({
|
|
141
|
+
key: object.name,
|
|
142
|
+
sizeBytes: Number(object.size ?? 0),
|
|
143
|
+
lastModified: object.lastModified,
|
|
144
|
+
etag: object.etag,
|
|
145
|
+
type: object.type
|
|
146
|
+
})),
|
|
147
|
+
truncated: Boolean(result.isTruncated),
|
|
148
|
+
...(result.nextMarker ? { nextMarker: result.nextMarker } : {})
|
|
149
|
+
};
|
|
150
|
+
}
|
|
151
|
+
catch (error) {
|
|
152
|
+
throw transferError("list", error);
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
async stat(session, key) {
|
|
156
|
+
requirePermission(session, "read");
|
|
157
|
+
const objectKey = validateKey(key, effectivePrefix(session), "object key");
|
|
158
|
+
try {
|
|
159
|
+
const result = await this.client(session).head(objectKey);
|
|
160
|
+
const meta = result.meta ?? {};
|
|
161
|
+
return {
|
|
162
|
+
key: objectKey,
|
|
163
|
+
status: result.status,
|
|
164
|
+
contentType: typeof meta["content-type"] === "string" ? meta["content-type"] : undefined,
|
|
165
|
+
contentLength: typeof meta["content-length"] === "string" ? Number(meta["content-length"]) : undefined,
|
|
166
|
+
etag: typeof meta.etag === "string" ? meta.etag : undefined,
|
|
167
|
+
lastModified: typeof meta["last-modified"] === "string" ? meta["last-modified"] : undefined
|
|
168
|
+
};
|
|
169
|
+
}
|
|
170
|
+
catch (error) {
|
|
171
|
+
throw transferError("stat", error);
|
|
172
|
+
}
|
|
173
|
+
}
|
|
174
|
+
async download(session, key, outputPath) {
|
|
175
|
+
requirePermission(session, "read");
|
|
176
|
+
const objectKey = validateKey(key, effectivePrefix(session), "object key");
|
|
177
|
+
if (!outputPath.trim())
|
|
178
|
+
throw new OssError("Download output path is required.", "oss_input_invalid");
|
|
179
|
+
const destination = resolve(outputPath);
|
|
180
|
+
if (await pathExists(destination))
|
|
181
|
+
throw new OssError(`Output already exists: ${destination}`, "oss_output_exists");
|
|
182
|
+
await mkdir(dirname(destination), { recursive: true });
|
|
183
|
+
const temporaryPath = `${destination}.${randomUUID()}.part`;
|
|
184
|
+
let linking = false;
|
|
185
|
+
try {
|
|
186
|
+
const result = await this.client(session).getStream(objectKey);
|
|
187
|
+
if (!result.stream)
|
|
188
|
+
throw new OssError("OSS returned no object stream.", "oss_download_failed");
|
|
189
|
+
await pipeline(result.stream, createWriteStream(temporaryPath, { flags: "wx", mode: 0o600 }));
|
|
190
|
+
// `rename` replaces an existing destination on POSIX. Check-then-rename
|
|
191
|
+
// would therefore still permit a concurrent invocation to overwrite a
|
|
192
|
+
// file. Linking the completed temporary file into place is atomic and
|
|
193
|
+
// fails with EEXIST if another process won the destination race.
|
|
194
|
+
linking = true;
|
|
195
|
+
await link(temporaryPath, destination);
|
|
196
|
+
await rm(temporaryPath, { force: true }).catch(() => undefined);
|
|
197
|
+
return { key: objectKey, outputPath: destination };
|
|
198
|
+
}
|
|
199
|
+
catch (error) {
|
|
200
|
+
await rm(temporaryPath, { force: true }).catch(() => undefined);
|
|
201
|
+
if (linking && typeof error === "object" && error !== null
|
|
202
|
+
&& "code" in error && error.code === "EEXIST") {
|
|
203
|
+
throw new OssError(`Output already exists: ${destination}`, "oss_output_exists");
|
|
204
|
+
}
|
|
205
|
+
if (error instanceof OssError)
|
|
206
|
+
throw error;
|
|
207
|
+
throw transferError("download", error);
|
|
208
|
+
}
|
|
209
|
+
}
|
|
210
|
+
async upload(session, key, inputPath, overwrite = false) {
|
|
211
|
+
requirePermission(session, "write");
|
|
212
|
+
const objectKey = validateKey(key, effectivePrefix(session), "object key");
|
|
213
|
+
const source = resolve(inputPath);
|
|
214
|
+
let sourceStat;
|
|
215
|
+
try {
|
|
216
|
+
sourceStat = await stat(source);
|
|
217
|
+
}
|
|
218
|
+
catch (error) {
|
|
219
|
+
throw new OssError(`Cannot read upload file ${source}: ${error instanceof Error ? error.message : String(error)}`, "oss_input_invalid");
|
|
220
|
+
}
|
|
221
|
+
if (!sourceStat.isFile())
|
|
222
|
+
throw new OssError(`Upload source is not a regular file: ${source}`, "oss_input_invalid");
|
|
223
|
+
try {
|
|
224
|
+
await this.client(session).put(objectKey, source, overwrite ? undefined : { headers: { "x-oss-forbid-overwrite": "true" } });
|
|
225
|
+
return { key: objectKey, sizeBytes: sourceStat.size };
|
|
226
|
+
}
|
|
227
|
+
catch (error) {
|
|
228
|
+
throw transferError("upload", error);
|
|
229
|
+
}
|
|
230
|
+
}
|
|
231
|
+
async remove(session, key) {
|
|
232
|
+
requirePermission(session, "delete");
|
|
233
|
+
const objectKey = validateKey(key, effectivePrefix(session), "object key");
|
|
234
|
+
try {
|
|
235
|
+
await this.client(session).delete(objectKey);
|
|
236
|
+
return { key: objectKey };
|
|
237
|
+
}
|
|
238
|
+
catch (error) {
|
|
239
|
+
throw transferError("delete", error);
|
|
240
|
+
}
|
|
241
|
+
}
|
|
242
|
+
}
|
|
243
|
+
export function sessionMetadata(session) {
|
|
244
|
+
return {
|
|
245
|
+
session_id: session.sessionId,
|
|
246
|
+
grant_id: session.grantId,
|
|
247
|
+
account_code: session.accountCode,
|
|
248
|
+
role_name: session.roleName,
|
|
249
|
+
role_arn: session.roleArn,
|
|
250
|
+
policy_code: session.policyCode,
|
|
251
|
+
region: session.region,
|
|
252
|
+
bucket: session.bucketName,
|
|
253
|
+
scope_type: session.scopeType,
|
|
254
|
+
object_prefix: session.objectPrefix ?? "",
|
|
255
|
+
permission_level: session.permissionLevel,
|
|
256
|
+
role_session_name: session.roleSessionName,
|
|
257
|
+
source_identity: session.sourceIdentity,
|
|
258
|
+
expires_at: session.expiration
|
|
259
|
+
};
|
|
260
|
+
}
|
|
261
|
+
//# sourceMappingURL=transfers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"transfers.js","sourceRoot":"","sources":["../../src/oss/transfers.ts"],"names":[],"mappings":"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"}
|
package/dist/wecom/client.d.ts
CHANGED
|
@@ -70,6 +70,11 @@ export declare class WecomClient {
|
|
|
70
70
|
maxTextBytes: number;
|
|
71
71
|
maxMarkdownBytes: number;
|
|
72
72
|
}>;
|
|
73
|
+
recipientByEmail(email: string, emailType?: number): Promise<{
|
|
74
|
+
userId: string;
|
|
75
|
+
name: string;
|
|
76
|
+
departmentIds: number[];
|
|
77
|
+
}>;
|
|
73
78
|
recipients(query: string, limit?: number): Promise<{
|
|
74
79
|
items: {
|
|
75
80
|
userId: string;
|
package/dist/wecom/client.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { resolveBackendUrl } from "../backend.js";
|
|
2
2
|
import { ensureAccessToken, fetchWithKeycloakIdentity } from "../oauth.js";
|
|
3
3
|
import { WecomError } from "./errors.js";
|
|
4
|
+
import { EmailSchema, EmailTypeSchema, EmailRecipientSchema } from "./schemas.js";
|
|
4
5
|
import { CapabilitiesSchema, MessageSchema, RecipientQuerySchema, RecipientsSchema, RequestIdSchema, SendMessageSchema, MappingListSchema, MappingSchema, MappingSyncSchema, PlatformUserIdSchema, UserIdSchema } from "./schemas.js";
|
|
5
6
|
export const WECOM_MAPPING_ROOT = "/api/v1/admin/notifications/wecom/mappings";
|
|
6
7
|
export const WECOM_API_ROOT = "/api/v1/notifications/wecom";
|
|
@@ -68,12 +69,20 @@ export class WecomClient {
|
|
|
68
69
|
throw new WecomError("WeCom platform request failed. Check the platform connection and authentication.", "WECOM_NETWORK_ERROR");
|
|
69
70
|
}
|
|
70
71
|
if (!response.ok) {
|
|
71
|
-
|
|
72
|
+
let code = "WECOM_API_ERROR";
|
|
73
|
+
try {
|
|
74
|
+
const error = JSON.parse(await boundedResponseText(response, 8192));
|
|
75
|
+
if (typeof error.code === "string" && /^WECOM_[A-Z0-9_]{1,80}$/u.test(error.code))
|
|
76
|
+
code = error.code;
|
|
77
|
+
}
|
|
78
|
+
catch { /* Never expose provider bodies or message content. */ }
|
|
72
79
|
if (requestId && response.status >= 500)
|
|
73
80
|
throw this.unknown(requestId, response.status);
|
|
74
81
|
if (method !== "GET" && response.status >= 500)
|
|
75
82
|
throw this.mappingUnknown(response.status);
|
|
76
|
-
|
|
83
|
+
const hint = path.includes("by-email") || code === "WECOM_EMAIL_LOOKUP_THROTTLED"
|
|
84
|
+
? " Verify the exact email, enterprise/personal type and application visibility. Do not repeatedly guess addresses; provider errors can block email lookup for a day." : "";
|
|
85
|
+
throw new WecomError(`WeCom platform API returned HTTP ${response.status}.${hint}`, code, response.status, requestId);
|
|
77
86
|
}
|
|
78
87
|
try {
|
|
79
88
|
const raw = await boundedResponseText(response, path.startsWith(WECOM_MAPPING_ROOT) ? MAPPING_RESPONSE_LIMIT : MESSAGE_RESPONSE_LIMIT);
|
|
@@ -119,6 +128,11 @@ export class WecomClient {
|
|
|
119
128
|
return this.json(`${WECOM_MAPPING_ROOT}/${encodeURIComponent(id)}`, MappingSchema, undefined, undefined, "DELETE");
|
|
120
129
|
}
|
|
121
130
|
capabilities() { return this.json(`${WECOM_API_ROOT}/capabilities`, CapabilitiesSchema); }
|
|
131
|
+
recipientByEmail(email, emailType = 1) {
|
|
132
|
+
const address = validate(EmailSchema, email, "one exact email address");
|
|
133
|
+
const type = validate(EmailTypeSchema, emailType, "email type (1 enterprise, 2 personal)");
|
|
134
|
+
return this.json(`${WECOM_API_ROOT}/recipients/by-email?${new URLSearchParams({ email: address, emailType: String(type) })}`, EmailRecipientSchema);
|
|
135
|
+
}
|
|
122
136
|
recipients(query, limit = 20) {
|
|
123
137
|
const validated = validate(RecipientQuerySchema, query, "recipient query (2-100 characters)");
|
|
124
138
|
if (!Number.isInteger(limit) || limit < 1 || limit > 50)
|
package/dist/wecom/client.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/wecom/client.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/wecom/client.ts"],"names":[],"mappings":"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"}
|
package/dist/wecom/commands.js
CHANGED
|
@@ -77,15 +77,26 @@ export function registerWecomCommands(program, dependencies = {}) {
|
|
|
77
77
|
await output(command, result, `Enabled: ${result.enabled}; configured: ${result.configured}; types: ${result.messageTypes.join(", ")}; recipients: ${result.maxRecipients}; text/markdown bytes: ${result.maxTextBytes}/${result.maxMarkdownBytes}`);
|
|
78
78
|
});
|
|
79
79
|
wecom.command("recipients").description("按姓名或 userid 查询候选成员;查看结果后明确选择 userid")
|
|
80
|
-
.
|
|
80
|
+
.option("--query <text>", "按姓名或 userid 查询,至少 2 个字符;与 --email 互斥")
|
|
81
|
+
.option("--email <address>", "按一个完整邮箱精确查询;不自动猜测邮箱或切换类型")
|
|
82
|
+
.option("--email-type <type>", "enterprise 企业邮箱(默认)或 personal 个人邮箱")
|
|
81
83
|
.option("--limit <number>", "最多返回 1-50 个成员", "20")
|
|
82
84
|
.action(async (options, command) => {
|
|
85
|
+
if (Boolean(options.query) === Boolean(options.email) || options.emailType && !options.email)
|
|
86
|
+
throw new WecomError("Choose exactly one of --query or --email; --email-type requires --email.", "WECOM_INPUT_INVALID");
|
|
87
|
+
if (options.email) {
|
|
88
|
+
const item = await client().recipientByEmail(options.email, parseEmailType(options.emailType));
|
|
89
|
+
await output(command, { items: [item], hasMore: false }, `${item.userId}\t${item.name}\t${item.departmentIds.join(",")}`);
|
|
90
|
+
return;
|
|
91
|
+
}
|
|
83
92
|
const result = await client().recipients(options.query, Number(options.limit));
|
|
84
93
|
await output(command, result, (result.items.map(item => `${item.userId}\t${item.name}\t${item.departmentIds.join(",")}`).join("\n") || "No matching recipients.") + (result.hasMore ? "\nMore matches exist; narrow your query before choosing a userid." : ""));
|
|
85
94
|
});
|
|
86
95
|
wecom.command("send").description("发送 text/markdown;先核对 userid 和正文;结果未知时仅查询状态")
|
|
87
96
|
.option("--to <userids...>", "已确认的企微 userid(空格分隔);不支持姓名或 @all")
|
|
88
97
|
.option("--platform-user <subjects...>", "已映射的 Keycloak 用户 subject;与 --to 互斥")
|
|
98
|
+
.option("--email <address>", "一个精确邮箱;与 --to、--platform-user 互斥;先用 recipients --email 核对")
|
|
99
|
+
.option("--email-type <type>", "enterprise 企业邮箱(默认)或 personal 个人邮箱;不自动回退")
|
|
89
100
|
.requiredOption("--request-id <id>", "稳定幂等键,8-128 位字母/数字/._:-;同一请求保持不变")
|
|
90
101
|
.option("--type <type>", "text 或 markdown", "text")
|
|
91
102
|
.option("--text-file <path|->", "从 UTF-8 文件或 - 标准输入读取正文(推荐)")
|
|
@@ -98,7 +109,9 @@ export function registerWecomCommands(program, dependencies = {}) {
|
|
|
98
109
|
if (!RequestIdSchema.safeParse(options.requestId).success)
|
|
99
110
|
throw new WecomError("Invalid request ID; use 8-128 ASCII letters, digits or ._:-.", "WECOM_INPUT_INVALID");
|
|
100
111
|
const content = await readMessageContent(options.textFile, options.text, dependencies.stdin ?? process.stdin);
|
|
101
|
-
|
|
112
|
+
if (options.emailType && !options.email)
|
|
113
|
+
throw new WecomError("--email-type requires --email.", "WECOM_INPUT_INVALID");
|
|
114
|
+
const parsed = SendMessageSchema.safeParse({ ...(options.to ? { recipientUserIds: options.to } : {}), ...(options.platformUser ? { platformUserIds: options.platformUser } : {}), ...(options.email ? { recipientEmail: options.email, emailType: parseEmailType(options.emailType) } : {}), messageType: options.type, content, safe: Boolean(options.safe) });
|
|
102
115
|
if (!parsed.success)
|
|
103
116
|
throw new WecomError("Invalid message. Use explicit unique userids, text/markdown, at most 2048 UTF-8 bytes; --safe supports text only.", "WECOM_INPUT_INVALID");
|
|
104
117
|
process.stderr.write(`WeCom request ID: ${options.requestId}\n`);
|
|
@@ -150,4 +163,11 @@ export function registerWecomCommands(program, dependencies = {}) {
|
|
|
150
163
|
await output(command, result, statusLine(result));
|
|
151
164
|
});
|
|
152
165
|
}
|
|
166
|
+
function parseEmailType(value) {
|
|
167
|
+
if (value == null || value === "enterprise")
|
|
168
|
+
return 1;
|
|
169
|
+
if (value === "personal")
|
|
170
|
+
return 2;
|
|
171
|
+
throw new WecomError("--email-type must be enterprise or personal.", "WECOM_INPUT_INVALID");
|
|
172
|
+
}
|
|
153
173
|
//# sourceMappingURL=commands.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"commands.js","sourceRoot":"","sources":["../../src/wecom/commands.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"commands.js","sourceRoot":"","sources":["../../src/wecom/commands.ts"],"names":[],"mappings":"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"}
|
package/dist/wecom/schemas.d.ts
CHANGED
|
@@ -7,9 +7,13 @@ export declare const MessageTypeSchema: z.ZodEnum<{
|
|
|
7
7
|
text: "text";
|
|
8
8
|
}>;
|
|
9
9
|
export declare const RecipientQuerySchema: z.ZodString;
|
|
10
|
+
export declare const EmailSchema: z.ZodString;
|
|
11
|
+
export declare const EmailTypeSchema: z.ZodUnion<readonly [z.ZodLiteral<1>, z.ZodLiteral<2>]>;
|
|
10
12
|
export declare const SendMessageSchema: z.ZodObject<{
|
|
11
13
|
recipientUserIds: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
12
14
|
platformUserIds: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
15
|
+
recipientEmail: z.ZodOptional<z.ZodString>;
|
|
16
|
+
emailType: z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<1>, z.ZodLiteral<2>]>>;
|
|
13
17
|
messageType: z.ZodEnum<{
|
|
14
18
|
markdown: "markdown";
|
|
15
19
|
text: "text";
|
|
@@ -36,6 +40,11 @@ export declare const RecipientsSchema: z.ZodObject<{
|
|
|
36
40
|
}, z.core.$strip>>;
|
|
37
41
|
hasMore: z.ZodBoolean;
|
|
38
42
|
}, z.core.$strip>;
|
|
43
|
+
export declare const EmailRecipientSchema: z.ZodObject<{
|
|
44
|
+
userId: z.ZodString;
|
|
45
|
+
name: z.ZodString;
|
|
46
|
+
departmentIds: z.ZodArray<z.ZodNumber>;
|
|
47
|
+
}, z.core.$strip>;
|
|
39
48
|
export declare const MessageSchema: z.ZodObject<{
|
|
40
49
|
id: z.ZodPipe<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>, z.ZodTransform<string, string | number>>;
|
|
41
50
|
requestId: z.ZodString;
|
package/dist/wecom/schemas.js
CHANGED
|
@@ -6,14 +6,19 @@ export const PlatformUserIdSchema = z.string().min(1).max(256)
|
|
|
6
6
|
.refine(value => value.trim().length > 0 && value === value.trim() && !/[\u0000-\u001f\u007f-\u009f]/u.test(value), "Subject must be nonblank, unpadded and contain no control characters");
|
|
7
7
|
export const MessageTypeSchema = z.enum(["text", "markdown"]);
|
|
8
8
|
export const RecipientQuerySchema = z.string().trim().min(2).max(100);
|
|
9
|
+
export const EmailSchema = z.string().trim().toLowerCase().max(320).regex(/^[^\s@<>;,|]+@[^\s@<>;,|]+\.[^\s@<>;,|]+$/u)
|
|
10
|
+
.refine(value => !/[\u0000-\u001f\u007f-\u009f]/u.test(value));
|
|
11
|
+
export const EmailTypeSchema = z.union([z.literal(1), z.literal(2)]);
|
|
9
12
|
export const SendMessageSchema = z.object({
|
|
10
13
|
recipientUserIds: z.array(UserIdSchema).min(1).max(100).refine(ids => new Set(ids).size === ids.length, "Duplicate recipients are not allowed").optional(),
|
|
11
14
|
platformUserIds: z.array(PlatformUserIdSchema).min(1).max(100).refine(ids => new Set(ids).size === ids.length, "Duplicate recipients are not allowed").optional(),
|
|
15
|
+
recipientEmail: EmailSchema.optional(),
|
|
16
|
+
emailType: EmailTypeSchema.optional(),
|
|
12
17
|
messageType: MessageTypeSchema,
|
|
13
18
|
content: z.string().min(1).refine(value => value.trim().length > 0, "Content must not be blank"),
|
|
14
19
|
safe: z.boolean().default(false)
|
|
15
20
|
}).strict().superRefine((value, ctx) => {
|
|
16
|
-
if (
|
|
21
|
+
if ([value.recipientUserIds?.length, value.platformUserIds?.length, value.recipientEmail].filter(Boolean).length !== 1 || value.emailType != null && !value.recipientEmail) {
|
|
17
22
|
ctx.addIssue({ code: "custom", path: ["recipientUserIds"], message: "Choose exactly one recipient identifier type" });
|
|
18
23
|
}
|
|
19
24
|
if (value.messageType === "markdown" && value.safe) {
|
|
@@ -32,6 +37,7 @@ export const RecipientsSchema = z.object({
|
|
|
32
37
|
items: z.array(z.object({ userId: UserIdSchema, name: z.string(), departmentIds: z.array(z.number().int()) })),
|
|
33
38
|
hasMore: z.boolean()
|
|
34
39
|
});
|
|
40
|
+
export const EmailRecipientSchema = z.object({ userId: UserIdSchema, name: z.string(), departmentIds: z.array(z.number().int()) });
|
|
35
41
|
export const MessageSchema = z.object({
|
|
36
42
|
id: z.union([z.string().min(1), z.number().int().positive()]).transform(String),
|
|
37
43
|
requestId: RequestIdSchema,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schemas.js","sourceRoot":"","sources":["../../src/wecom/schemas.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,2BAA2B,CAAC,CAAC;AAC7E,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,gCAAgC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,WAAW,EAAE,KAAK,MAAM,EAAE,4BAA4B,CAAC,CAAC;AACnL,2FAA2F;AAC3F,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC;KAC3D,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,IAAI,KAAK,KAAK,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,+BAA+B,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,sEAAsE,CAAC,CAAC;AAC9L,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC,CAAC;AAC9D,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AACtE,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,CAAC,MAAM,CAAC;IACxC,gBAAgB,EAAE,CAAC,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,KAAK,GAAG,CAAC,MAAM,EAAE,sCAAsC,CAAC,CAAC,QAAQ,EAAE;IAC1J,eAAe,EAAE,CAAC,CAAC,KAAK,CAAC,oBAAoB,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,KAAK,GAAG,CAAC,MAAM,EAAE,sCAAsC,CAAC,CAAC,QAAQ,EAAE;IACjK,WAAW,EAAE,iBAAiB;IAC9B,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,EAAE,2BAA2B,CAAC;IAChG,IAAI,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC;CACjC,CAAC,CAAC,MAAM,EAAE,CAAC,WAAW,CAAC,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE;IACrC,IAAI,
|
|
1
|
+
{"version":3,"file":"schemas.js","sourceRoot":"","sources":["../../src/wecom/schemas.ts"],"names":[],"mappings":"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"}
|
package/docs/wecom-messaging.md
CHANGED
|
@@ -30,6 +30,37 @@ numa wecom mappings unbind <keycloak-subject> --yes --json
|
|
|
30
30
|
|
|
31
31
|
## Choose recipients and send
|
|
32
32
|
|
|
33
|
+
### Exact email lookup (requires the matching DevOps backend release)
|
|
34
|
+
|
|
35
|
+
```sh
|
|
36
|
+
numa wecom recipients --email user@example.com --email-type enterprise --json
|
|
37
|
+
numa wecom send --email user@example.com --email-type enterprise --request-id email-notice-001 --text-file ./message.txt --yes --json
|
|
38
|
+
numa wecom status --request-id email-notice-001 --json
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
`--email` accepts one exact mailbox, mutually exclusive with `--query` for lookup and with `--to`/`--platform-user`
|
|
42
|
+
for send. `--email-type` accepts `enterprise` (default, API type 1) or `personal` (type 2); it never guesses aliases,
|
|
43
|
+
changes domains, or retries another type. Review the returned userid/name before sending. The server checks application
|
|
44
|
+
directory visibility even if the provider resolves the email. Sending does not create a platform-user mapping.
|
|
45
|
+
|
|
46
|
+
The CLI calls GET `/recipients/by-email?email=...&emailType=...`; send posts `recipientEmail/emailType` alongside
|
|
47
|
+
the normal content/type/safe fields. Query requires WeCom view and send requires edit, including service accounts.
|
|
48
|
+
The mailbox is normalized by trimming and lowercasing only. Server idempotency uses the original normalized mailbox
|
|
49
|
+
and type, so replays return the original resolved recipients rather than resolving a changed mailbox again.
|
|
50
|
+
Existing userid/subject commands remain compatible. An old backend or a provider rejection is an error, not a reason
|
|
51
|
+
to silently fall back to name search or a different recipient. Email-specific parameters currently belong to the CLI/REST;
|
|
52
|
+
the existing MCP send tool retains its explicit userid/subject contract.
|
|
53
|
+
|
|
54
|
+
WeCom imposes a corporation-wide error budget: incorrect email lookups beyond 20% of the corporation member limit can
|
|
55
|
+
disable this API for a day. Do not enumerate email guesses or run bulk fallbacks. The platform adds a per-instance
|
|
56
|
+
one-second lookup interval and a 60-second cooldown after provider failures, not a distributed daily-budget guarantee.
|
|
57
|
+
Failures return sanitized provider codes; verify address/type/visibility before retrying.
|
|
58
|
+
See [official email lookup API](https://developer.work.weixin.qq.com/document/path/95895).
|
|
59
|
+
|
|
60
|
+
The console's user mapping page now also supports an explicit single-user lookup using the selected Keycloak user's
|
|
61
|
+
unique email, followed by human-reviewed binding. Bulk directory sync still relies on actually returned email fields;
|
|
62
|
+
it does not repeatedly reverse-query every platform user when WeCom withholds sensitive fields.
|
|
63
|
+
|
|
33
64
|
Search by name or userid (2–100 characters). Review candidates and choose exact userids; matching a name does not authorize sending to all matches. The recipient search returns at most 50 items; `has_more:true` means the query should be narrowed.
|
|
34
65
|
|
|
35
66
|
```sh
|