@numa-tech/numa 1.18.0 → 1.19.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/oss/web.js CHANGED
@@ -1,13 +1,19 @@
1
- import { randomBytes, timingSafeEqual } from "node:crypto";
1
+ import { createHash, randomBytes, timingSafeEqual } from "node:crypto";
2
2
  import { createServer } from "node:http";
3
- import { pipeline } from "node:stream/promises";
3
+ import { mkdtemp, rm } from "node:fs/promises";
4
+ import { tmpdir } from "node:os";
5
+ import { join } from "node:path";
4
6
  import open from "open";
7
+ import { appConfigDirectory } from "../app-config.js";
5
8
  import { loadConfig } from "../config.js";
6
9
  import { OssClient } from "./client.js";
7
10
  import { OssError } from "./errors.js";
8
- import { OssTransferClient, ossSessionCapabilities } from "./transfers.js";
11
+ import { OssTransferClient, ossSessionCapabilities, ossObjectPublicUrl } from "./transfers.js";
9
12
  import { OssWebSession } from "./web-session.js";
10
13
  import { OSS_WEB_HTML, OSS_WEB_CSS, OSS_WEB_JS } from "./web-page.js";
14
+ import { createLocalPicker } from "./local-picker.js";
15
+ import { planDownloadJobs, planUploadJobs } from "./transfer-paths.js";
16
+ import { createTransferQueue } from "./transfer-queue.js";
11
17
  export function readyWebGrants(grants) {
12
18
  return grants.filter(g => g.status === "ACTIVE" && g.cloudPolicySynced && g.roleName && g.bucketName
13
19
  && g.effect !== "Deny" && g.maxSessionSeconds >= 900);
@@ -36,7 +42,8 @@ function errorResponse(res, error) {
36
42
  const known = error instanceof OssError;
37
43
  const code = known && /^oss_[a-z_]+$/u.test(error.code) ? error.code : "oss_web_error";
38
44
  const status = known && error.status && error.status >= 400 && error.status <= 599 ? error.status
39
- : ["oss_input_invalid", "oss_scope_violation"].includes(code) ? 400 : 502;
45
+ : ["oss_input_invalid", "oss_scope_violation"].includes(code) ? 400
46
+ : code === "oss_picker_busy" ? 409 : code === "oss_picker_unavailable" ? 503 : 502;
40
47
  const messages = {
41
48
  oss_web_unauthorized: "页面会话无效,请使用 CLI 显示的完整链接重新打开。",
42
49
  oss_web_origin: "请求来源不允许。", oss_web_host: "请求地址不允许。",
@@ -46,7 +53,18 @@ function errorResponse(res, error) {
46
53
  oss_grant_forbidden: "此 Grant 当前不可用,请刷新授权清单。",
47
54
  oss_scope_violation: "路径超出所选 Grant 的授权范围。",
48
55
  oss_operation_forbidden: "当前授权不允许此操作。",
49
- oss_input_invalid: "请求参数无效,或尚未确认删除。"
56
+ oss_input_invalid: "请求参数无效,或尚未确认删除。",
57
+ oss_picker_busy: "已有系统文件选择器正在打开,请完成或取消后重试。",
58
+ oss_picker_unavailable: "无法打开系统文件选择器;请在桌面会话中重试,Linux 需安装 zenity 或 kdialog。",
59
+ oss_picker_failed: "系统文件选择器失败,请在桌面终端重试。",
60
+ oss_picker_invalid_response: "系统文件选择器返回了无效路径,请重试。",
61
+ oss_transfer_path_invalid: "所选路径无效或包含不安全的文件。",
62
+ oss_transfer_limit: "所选文件过多,请减少后重试。",
63
+ oss_transfer_empty: "所选目录中没有可传输的文件。",
64
+ oss_transfer_destination_exists: "目标文件已存在或路径不安全,未覆盖。",
65
+ oss_transfer_duplicate: "同一路径已有未完成的传输任务。",
66
+ oss_transfer_storage_invalid: "本机任务记录不可用,请检查任务目录权限。",
67
+ oss_transfer_queue_busy: "另一个 OSS 网页服务正在使用此任务队列。"
50
68
  };
51
69
  json(res, status, { ok: false, error: { code, message: messages[code]
52
70
  ?? (status === 409 ? "文件已存在,未覆盖;请更换文件名。" : "OSS 操作失败,请检查权限、网络或对象状态后重试。") } });
@@ -78,17 +96,86 @@ async function limited(stream, max) {
78
96
  stream.destroy();
79
97
  }
80
98
  }
99
+ async function strictJson(req, allowedKeys) {
100
+ const chunks = [];
101
+ let size = 0;
102
+ for await (const value of req) {
103
+ const chunk = Buffer.isBuffer(value) ? value : Buffer.from(value);
104
+ size += chunk.length;
105
+ if (size > 64 * 1024)
106
+ throw new OssError("Request body too large", "oss_input_invalid", 400);
107
+ chunks.push(chunk);
108
+ }
109
+ let value;
110
+ try {
111
+ value = JSON.parse(Buffer.concat(chunks).toString("utf8"));
112
+ }
113
+ catch {
114
+ throw new OssError("Invalid JSON", "oss_input_invalid", 400);
115
+ }
116
+ if (!value || typeof value !== "object" || Array.isArray(value)
117
+ || Object.keys(value).some(key => !allowedKeys.includes(key))) {
118
+ throw new OssError("Invalid request fields", "oss_input_invalid", 400);
119
+ }
120
+ return value;
121
+ }
122
+ function uploadInput(value) {
123
+ if (Object.keys(value).length !== 2 || typeof value.prefix !== "string" || typeof value.folder !== "boolean") {
124
+ throw new OssError("Invalid upload request", "oss_input_invalid", 400);
125
+ }
126
+ return { prefix: value.prefix, folder: value.folder };
127
+ }
128
+ function downloadInput(value) {
129
+ if (Object.keys(value).length !== 1 || !Array.isArray(value.entries) || value.entries.length === 0
130
+ || value.entries.length > 10_000 || value.entries.some(entry => !entry || typeof entry !== "object" || Array.isArray(entry)
131
+ || Object.keys(entry).length !== 2 || typeof entry.key !== "string" || !entry.key
132
+ || typeof entry.directory !== "boolean")) {
133
+ throw new OssError("Invalid download request", "oss_input_invalid", 400);
134
+ }
135
+ return { entries: value.entries };
136
+ }
137
+ function isPreviewText(mime, key) {
138
+ if (/\.(?:xlsx?|docx?|pptx?|zip|gz|rar|7z|pdf|exe|dll|wasm|parquet|avro|mp[34]|mov)$/iu.test(key))
139
+ return false;
140
+ return mime.startsWith("text/")
141
+ || /^application\/(?:json|xml|javascript|x-javascript|yaml|x-yaml|toml|sql|graphql|[a-z0-9.-]+\+(?:json|xml))$/u.test(mime)
142
+ || /\.(?:txt|md|json|csv|log|yaml|yml|xml|html|css|js|ts|svg|toml|ini|conf)$/iu.test(key);
143
+ }
144
+ function previewText(bytes, truncated) {
145
+ if (bytes.subarray(0, 5).toString("ascii") === "%PDF-"
146
+ || bytes.subarray(0, 4).equals(Buffer.from([0x50, 0x4b, 3, 4])))
147
+ return undefined;
148
+ try {
149
+ // Streaming decode omits an incomplete trailing code point at the preview cap.
150
+ const text = new TextDecoder("utf-8", { fatal: true }).decode(bytes, { stream: truncated });
151
+ return /[\u0000-\u0008\u000b\u000e-\u001f\u007f\ufffd]/u.test(text) ? undefined : text;
152
+ }
153
+ catch {
154
+ return undefined;
155
+ }
156
+ }
81
157
  export async function startOssWeb(options) {
82
158
  if (!Number.isSafeInteger(options.grantId) || options.grantId <= 0
83
159
  || (options.port !== undefined && (!Number.isInteger(options.port) || options.port < 0 || options.port > 65535))) {
84
160
  throw new OssError("Invalid Grant or port", "oss_input_invalid", 400);
85
161
  }
86
- const client = options.client ?? new OssClient(loadConfig("platform"));
162
+ const authConfig = options.client ? undefined : loadConfig("platform");
163
+ const client = options.client ?? new OssClient(authConfig);
87
164
  const transfer = options.transfer ?? new OssTransferClient();
165
+ const picker = options.picker ?? createLocalPicker();
88
166
  const now = options.now ?? Date.now;
89
167
  const token = randomBytes(32).toString("base64url");
90
168
  const managers = new Map();
91
169
  const pendingManagers = new Map();
170
+ let subject;
171
+ async function grantsForIdentity() {
172
+ const response = await client.listGrants();
173
+ if (subject !== undefined && response.subject !== subject) {
174
+ throw new OssError("Grant subject changed", "oss_web_scope_changed", 409);
175
+ }
176
+ subject = response.subject;
177
+ return response;
178
+ }
92
179
  async function managerFor(id) {
93
180
  if (!Number.isSafeInteger(id) || id <= 0)
94
181
  throw new OssError("Invalid Grant", "oss_input_invalid", 400);
@@ -98,7 +185,8 @@ export async function startOssWeb(options) {
98
185
  if (pendingManagers.has(id))
99
186
  return pendingManagers.get(id);
100
187
  const pending = (async () => {
101
- const available = readyWebGrants((await client.listGrants()).grants);
188
+ const response = await grantsForIdentity();
189
+ const available = readyWebGrants(response.grants);
102
190
  if (!available.some(g => g.grantId === id))
103
191
  throw new OssError("Grant unavailable", "oss_grant_forbidden", 403);
104
192
  const manager = new OssWebSession(id, () => client.issueSession(id, 900), now);
@@ -110,8 +198,24 @@ export async function startOssWeb(options) {
110
198
  return pending;
111
199
  }
112
200
  await managerFor(options.grantId);
201
+ const namespaceBase = options.taskNamespace ?? JSON.stringify([
202
+ authConfig?.backendBaseUrl ?? "injected", authConfig?.discoveryUrl ?? "injected",
203
+ authConfig?.clientId ?? "injected", authConfig?.profileTenantId ?? ""
204
+ ]);
205
+ const namespace = createHash("sha256").update(JSON.stringify([namespaceBase, subject])).digest("hex").slice(0, 24);
206
+ const temporaryTaskDirectory = options.client && !options.taskDirectory
207
+ ? await mkdtemp(join(tmpdir(), "numa-oss-web-")) : undefined;
208
+ const taskDirectory = options.taskDirectory ?? temporaryTaskDirectory ?? appConfigDirectory();
209
+ const queue = await createTransferQueue({
210
+ directory: join(taskDirectory, "oss-transfers", namespace),
211
+ session: async (grantId) => (await managerFor(grantId)).get(),
212
+ ...(options.taskWorker ? { worker: options.taskWorker } : {})
213
+ }).catch(async (error) => {
214
+ if (temporaryTaskDirectory)
215
+ await rm(temporaryTaskDirectory, { recursive: true, force: true });
216
+ throw error;
217
+ });
113
218
  let origin = "";
114
- const tickets = new Map();
115
219
  const sockets = new Set();
116
220
  const server = createServer((req, res) => {
117
221
  void (async () => {
@@ -129,31 +233,6 @@ export async function startOssWeb(options) {
129
233
  res.end(body);
130
234
  return;
131
235
  }
132
- if (req.method === "GET" && url.pathname === "/api/download") {
133
- const value = url.searchParams.get("ticket") ?? "";
134
- const ticket = tickets.get(value);
135
- tickets.delete(value);
136
- if (!ticket || ticket.expires <= now())
137
- throw new OssError("Ticket", "oss_web_unauthorized", 401);
138
- const session = await (await managerFor(ticket.grantId)).get();
139
- const stream = await transfer.readStream(session, ticket.key);
140
- headers(res, "application/octet-stream");
141
- const filename = ticket.key.split("/").pop() || "download";
142
- res.setHeader("Content-Disposition", `attachment; filename="download"; filename*=UTF-8''${encodeURIComponent(filename).replace(/['()*]/gu, c => `%${c.charCodeAt(0).toString(16)}`)}`);
143
- const abort = () => stream.destroy();
144
- res.once("close", abort);
145
- try {
146
- if (res.destroyed)
147
- stream.destroy();
148
- else
149
- await pipeline(stream, res);
150
- }
151
- finally {
152
- res.off("close", abort);
153
- stream.destroy();
154
- }
155
- return;
156
- }
157
236
  const bearer = req.headers.authorization ?? "";
158
237
  const expected = `Bearer ${token}`;
159
238
  if (Buffer.byteLength(bearer) !== Buffer.byteLength(expected) || !timingSafeEqual(Buffer.from(bearer), Buffer.from(expected))) {
@@ -163,12 +242,30 @@ export async function startOssWeb(options) {
163
242
  throw new OssError("Origin", "oss_web_origin", 403);
164
243
  }
165
244
  if (req.method === "GET" && url.pathname === "/api/grants") {
166
- const grants = readyWebGrants((await client.listGrants()).grants).map(g => ({ grantId: g.grantId,
245
+ const grants = readyWebGrants((await grantsForIdentity()).grants).map(g => ({ grantId: g.grantId,
167
246
  bucketName: g.bucketName, objectPrefix: g.objectPrefix ?? "", policyCode: g.policyCode ?? "",
168
247
  permissionLevel: g.permissionLevel, actions: g.actions }));
169
248
  json(res, 200, { ok: true, selectedGrantId: options.grantId, grants });
170
249
  return;
171
250
  }
251
+ if (req.method === "GET" && url.pathname === "/api/transfers") {
252
+ json(res, 200, { ok: true, jobs: queue.list() });
253
+ return;
254
+ }
255
+ const actionMatch = req.method === "POST"
256
+ ? /^\/api\/transfers\/([^/]+)\/(pause|resume|cancel)$/u.exec(url.pathname) : null;
257
+ if (actionMatch) {
258
+ let taskId;
259
+ try {
260
+ taskId = decodeURIComponent(actionMatch[1]);
261
+ }
262
+ catch {
263
+ throw new OssError("Invalid task id", "oss_input_invalid", 400);
264
+ }
265
+ await queue.action(taskId, actionMatch[2]);
266
+ json(res, 200, { ok: true });
267
+ return;
268
+ }
172
269
  const id = Number(url.searchParams.get("grantId") ?? options.grantId);
173
270
  const manager = await managerFor(id);
174
271
  if (req.method === "GET" && url.pathname === "/api/session") {
@@ -188,6 +285,30 @@ export async function startOssWeb(options) {
188
285
  return;
189
286
  }
190
287
  const session = await manager.get();
288
+ if (req.method === "POST" && url.pathname === "/api/transfers/upload") {
289
+ const input = uploadInput(await strictJson(req, ["prefix", "folder"]));
290
+ const selected = input.folder ? await picker.pickFolder("upload") : await picker.pickFiles();
291
+ if (selected === undefined) {
292
+ json(res, 200, { ok: true, cancelled: true, jobs: [] });
293
+ return;
294
+ }
295
+ const freshSession = await manager.get();
296
+ const files = await planUploadJobs(freshSession, typeof selected === "string" ? [selected] : selected, input.prefix, input.folder);
297
+ json(res, 200, { ok: true, jobs: await queue.add("upload", freshSession, files) });
298
+ return;
299
+ }
300
+ if (req.method === "POST" && url.pathname === "/api/transfers/download") {
301
+ const input = downloadInput(await strictJson(req, ["entries"]));
302
+ const selectedRoot = await picker.pickFolder("download");
303
+ if (selectedRoot === undefined) {
304
+ json(res, 200, { ok: true, cancelled: true, jobs: [] });
305
+ return;
306
+ }
307
+ const freshSession = await manager.get();
308
+ const files = await planDownloadJobs(freshSession, input.entries, selectedRoot, transfer);
309
+ json(res, 200, { ok: true, jobs: await queue.add("download", freshSession, files) });
310
+ return;
311
+ }
191
312
  if (req.method === "GET" && url.pathname === "/api/list") {
192
313
  const listing = await transfer.list(session, url.searchParams.get("prefix") ?? undefined, 200, { delimiter: "/", ...(url.searchParams.has("marker") ? { marker: url.searchParams.get("marker") } : {}) });
193
314
  json(res, 200, { ok: true, listing, session: sessionView(session, manager, now()) });
@@ -196,13 +317,13 @@ export async function startOssWeb(options) {
196
317
  if (req.method === "GET" && url.pathname === "/api/preview") {
197
318
  const key = requiredKey(url);
198
319
  const metadata = await transfer.stat(session, key);
199
- const mime = (metadata.contentType ?? "").split(";")[0].toLowerCase();
320
+ const publicUrl = ossObjectPublicUrl(session, metadata.key);
321
+ const mime = (metadata.contentType ?? "").split(";")[0].trim().toLowerCase();
200
322
  const image = ["image/png", "image/jpeg", "image/gif", "image/webp"].includes(mime);
201
- const text = mime.startsWith("text/") || /(?:json|xml|javascript|yaml)/u.test(mime)
202
- || /\.(?:txt|md|json|csv|log|yaml|yml|xml|html|css|js|ts|svg)$/iu.test(key);
323
+ const text = isPreviewText(mime, key);
203
324
  const cap = image ? 1024 * 1024 : 256 * 1024;
204
325
  if ((!image && !text) || (image && (metadata.contentLength === undefined || metadata.contentLength > cap))) {
205
- json(res, 200, { ok: true, kind: "unsupported", metadata });
326
+ json(res, 200, { ok: true, kind: "unsupported", metadata, publicUrl });
206
327
  return;
207
328
  }
208
329
  let bytes = Buffer.alloc(0);
@@ -220,17 +341,11 @@ export async function startOssWeb(options) {
220
341
  res.off("close", abort);
221
342
  }
222
343
  }
223
- json(res, 200, { ok: true, metadata, kind: image ? "image" : "text",
224
- ...(image ? { data: `data:${mime};base64,${bytes.toString("base64")}` } : { text: bytes.toString("utf8") }),
225
- truncated: (metadata.contentLength ?? cap + 1) > cap });
226
- return;
227
- }
228
- if (req.method === "PUT" && url.pathname === "/api/object") {
229
- const length = req.headers["content-length"];
230
- if (length === undefined || !/^\d+$/u.test(length))
231
- throw new OssError("Length required", "oss_input_invalid", 400);
232
- await transfer.uploadStream(session, requiredKey(url), req, Number(length));
233
- json(res, 200, { ok: true });
344
+ const truncated = metadata.contentLength === undefined ? bytes.length >= cap : metadata.contentLength > cap;
345
+ const decoded = image ? undefined : previewText(bytes, truncated);
346
+ json(res, 200, { ok: true, metadata, publicUrl, kind: image ? "image" : decoded === undefined ? "unsupported" : "text",
347
+ ...(image ? { data: `data:${mime};base64,${bytes.toString("base64")}` } : decoded === undefined ? {} : { text: decoded }),
348
+ truncated });
234
349
  return;
235
350
  }
236
351
  if (req.method === "DELETE" && url.pathname === "/api/object") {
@@ -240,19 +355,6 @@ export async function startOssWeb(options) {
240
355
  json(res, 200, { ok: true });
241
356
  return;
242
357
  }
243
- if (req.method === "POST" && url.pathname === "/api/download-ticket") {
244
- const key = requiredKey(url);
245
- await transfer.stat(session, key);
246
- for (const [value, ticket] of tickets)
247
- if (ticket.expires <= now())
248
- tickets.delete(value);
249
- if (tickets.size >= 100)
250
- throw new OssError("Too many downloads", "oss_input_invalid", 429);
251
- const value = randomBytes(24).toString("base64url");
252
- tickets.set(value, { grantId: id, key, expires: now() + 60_000 });
253
- json(res, 200, { ok: true, path: `/api/download?ticket=${value}` });
254
- return;
255
- }
256
358
  json(res, 404, { ok: false, error: { message: "页面不存在。" } });
257
359
  })().catch(error => errorResponse(res, error));
258
360
  });
@@ -260,11 +362,19 @@ export async function startOssWeb(options) {
260
362
  server.on("connection", socket => { sockets.add(socket); socket.once("close", () => sockets.delete(socket)); });
261
363
  let closedResolve;
262
364
  const closed = new Promise(resolve => { closedResolve = resolve; });
263
- server.once("close", () => { tickets.clear(); managers.clear(); closedResolve(); });
264
- await new Promise((resolve, reject) => {
265
- server.once("error", reject);
266
- server.listen(options.port ?? 0, "127.0.0.1", resolve);
267
- });
365
+ server.once("close", () => { managers.clear(); closedResolve(); });
366
+ try {
367
+ await new Promise((resolve, reject) => {
368
+ server.once("error", reject);
369
+ server.listen(options.port ?? 0, "127.0.0.1", resolve);
370
+ });
371
+ }
372
+ catch (error) {
373
+ await queue.close().catch(() => { });
374
+ if (temporaryTaskDirectory)
375
+ await rm(temporaryTaskDirectory, { recursive: true, force: true }).catch(() => { });
376
+ throw error;
377
+ }
268
378
  const address = server.address();
269
379
  if (!address || typeof address === "string")
270
380
  throw new Error("Cannot read local address");
@@ -274,13 +384,42 @@ export async function startOssWeb(options) {
274
384
  if (options.openBrowser !== false) {
275
385
  browserOpened = await open(url).then(() => true, () => false);
276
386
  }
277
- return { url, browserOpened, close: async () => {
278
- if (!server.listening)
279
- return closed;
280
- server.close();
281
- for (const socket of sockets)
282
- socket.destroy();
283
- await closed;
284
- }, waitUntilClosed: () => closed };
387
+ let closing;
388
+ const close = () => {
389
+ if (closing)
390
+ return closing;
391
+ closing = (async () => {
392
+ let failure;
393
+ try {
394
+ await queue.close();
395
+ }
396
+ catch (error) {
397
+ failure = error;
398
+ }
399
+ try {
400
+ if (server.listening) {
401
+ server.close();
402
+ for (const socket of sockets)
403
+ socket.destroy();
404
+ await closed;
405
+ }
406
+ }
407
+ catch (error) {
408
+ failure ??= error;
409
+ }
410
+ if (temporaryTaskDirectory) {
411
+ try {
412
+ await rm(temporaryTaskDirectory, { recursive: true, force: true });
413
+ }
414
+ catch (error) {
415
+ failure ??= error;
416
+ }
417
+ }
418
+ if (failure)
419
+ throw failure;
420
+ })();
421
+ return closing;
422
+ };
423
+ return { url, browserOpened, close, waitUntilClosed: () => closed };
285
424
  }
286
425
  //# sourceMappingURL=web.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"web.js","sourceRoot":"","sources":["../../src/oss/web.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"web.js","sourceRoot":"","sources":["../../src/oss/web.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@numa-tech/numa",
3
- "version": "1.18.0",
3
+ "version": "1.19.0",
4
4
  "description": "Cross-platform CLI for the Numa internal developer platform with Keycloak authentication and MCP support.",
5
5
  "author": "numa-tech",
6
6
  "keywords": [
@@ -35,9 +35,9 @@
35
35
  "root:typecheck": "tsc --noEmit",
36
36
  "test": "turbo run test root:test",
37
37
  "dev:oss-web": "tsx src/cli.ts oss web",
38
- "test:oss-web": "node --import tsx --test src/oss/web.test.ts src/oss/web-session.test.ts src/oss/web-transfers.test.ts src/oss/web-command.test.ts",
38
+ "test:oss-web": "node --import tsx --test src/oss/web.test.ts src/oss/web-session.test.ts src/oss/web-transfers.test.ts src/oss/web-command.test.ts src/oss/local-picker.test.ts src/oss/transfer-paths.test.ts src/oss/transfer-worker.test.ts src/oss/transfer-queue.test.ts src/oss/web-page.test.ts",
39
39
  "test:oss-auth-code": "node scripts/test-oss-auth-code.mjs",
40
- "root:test": "node --import tsx --test --test-concurrency=4 src/mcp-gateway/profile.test.ts src/mcp-gateway/runtime.test.ts src/mcp-gateway/install.test.ts src/branding.test.ts src/app-config.test.ts src/platform-profile.test.ts src/identity.test.ts src/backend.test.ts src/oauth.test.ts src/web-console.test.ts src/cli-options.test.ts src/mail/client.test.ts src/wecom/client.test.ts src/wecom/commands.test.ts src/wecom/tools.test.ts src/ai-registry/client.test.ts src/ai-registry/bootstrap.test.ts src/ai-registry/install-defaults.test.ts src/ai-registry/workspace.test.ts src/ai-registry/namespace.test.ts src/ai-registry/sync.test.ts src/ai-registry/bridge.test.ts src/ai-registry/skill-installer.test.ts src/ai-registry/skill-uninstaller.test.ts src/ai-registry/skill-dependencies.test.ts src/ai-registry/updates.test.ts src/maintenance/scheduler.test.ts src/maintenance/codex.test.ts src/ai-registry/mcp-installer.test.ts src/media/client.test.ts src/media/commands.test.ts src/media/transfers.test.ts src/oss/client.test.ts src/oss/commands.test.ts src/oss/auth-code.test.ts src/oss/clipboard.test.ts src/oss/web.test.ts src/oss/web-session.test.ts src/oss/web-transfers.test.ts src/oss/web-command.test.ts src/oss/bootstrap.test.ts src/oss/transfers.test.ts src/oss/search.test.ts src/oss/tools.test.ts src/mcp/install.test.ts src/mcp/catalog.test.ts src/interactive/wizard.test.ts src/pipeline/client.test.ts src/pipeline/commands.test.ts src/gitops/client.test.ts src/gitops/commands.test.ts src/repositories/client.test.ts src/repositories/commands.test.ts src/publications/scanner.test.ts src/publications/client.test.ts src/publications/commands.test.ts src/jenkins-jobs/client.test.ts src/jenkins-jobs/commands.test.ts src/clusters/client.test.ts src/clusters/commands.test.ts src/clusters/kubeconfig-discovery.test.ts src/teams/client.test.ts src/teams/commands.test.ts src/authorization/client.test.ts src/authorization/commands.test.ts src/authorization/access-request-client.test.ts src/authorization/access-request-commands.test.ts src/application-candidates/client.test.ts src/application-candidates/commands.test.ts src/application-onboarding/client.test.ts src/application-onboarding/commands.test.ts src/application-onboarding/tui.test.ts src/chatgpt-desktop.test.ts src/codex-integration.test.ts scripts/release-all.test.mjs src/authorization/enrollment.test.ts src/authorization/group-client.test.ts src/authorization/group-commands.test.ts src/notion/client.test.ts src/notion/commands.test.ts src/notion/tools.test.ts src/notion/machine-cli.test.ts src/cloud/accounts.test.ts src/cloud/bootstrap.test.ts src/cloud/business-bootstrap.test.ts src/cloud/maintenance.test.ts src/cloud/wizard.test.ts src/cloud/oss-bootstrap.test.ts",
40
+ "root:test": "node --import tsx --test --test-concurrency=4 src/mcp-gateway/profile.test.ts src/mcp-gateway/runtime.test.ts src/mcp-gateway/install.test.ts src/branding.test.ts src/app-config.test.ts src/platform-profile.test.ts src/identity.test.ts src/backend.test.ts src/oauth.test.ts src/web-console.test.ts src/cli-options.test.ts src/mail/client.test.ts src/wecom/client.test.ts src/wecom/commands.test.ts src/wecom/tools.test.ts src/ai-registry/client.test.ts src/ai-registry/bootstrap.test.ts src/ai-registry/install-defaults.test.ts src/ai-registry/workspace.test.ts src/ai-registry/namespace.test.ts src/ai-registry/sync.test.ts src/ai-registry/bridge.test.ts src/ai-registry/skill-installer.test.ts src/ai-registry/skill-uninstaller.test.ts src/ai-registry/skill-dependencies.test.ts src/ai-registry/updates.test.ts src/maintenance/scheduler.test.ts src/maintenance/codex.test.ts src/ai-registry/mcp-installer.test.ts src/media/client.test.ts src/media/commands.test.ts src/media/transfers.test.ts src/oss/client.test.ts src/oss/commands.test.ts src/oss/auth-code.test.ts src/oss/clipboard.test.ts src/oss/web.test.ts src/oss/web-session.test.ts src/oss/web-transfers.test.ts src/oss/web-command.test.ts src/oss/local-picker.test.ts src/oss/transfer-paths.test.ts src/oss/transfer-worker.test.ts src/oss/transfer-queue.test.ts src/oss/web-page.test.ts src/oss/bootstrap.test.ts src/oss/transfers.test.ts src/oss/search.test.ts src/oss/tools.test.ts src/mcp/install.test.ts src/mcp/catalog.test.ts src/interactive/wizard.test.ts src/pipeline/client.test.ts src/pipeline/commands.test.ts src/gitops/client.test.ts src/gitops/commands.test.ts src/repositories/client.test.ts src/repositories/commands.test.ts src/publications/scanner.test.ts src/publications/client.test.ts src/publications/commands.test.ts src/jenkins-jobs/client.test.ts src/jenkins-jobs/commands.test.ts src/clusters/client.test.ts src/clusters/commands.test.ts src/clusters/kubeconfig-discovery.test.ts src/teams/client.test.ts src/teams/commands.test.ts src/authorization/client.test.ts src/authorization/commands.test.ts src/authorization/access-request-client.test.ts src/authorization/access-request-commands.test.ts src/application-candidates/client.test.ts src/application-candidates/commands.test.ts src/application-onboarding/client.test.ts src/application-onboarding/commands.test.ts src/application-onboarding/tui.test.ts src/chatgpt-desktop.test.ts src/codex-integration.test.ts scripts/release-all.test.mjs src/authorization/enrollment.test.ts src/authorization/group-client.test.ts src/authorization/group-commands.test.ts src/notion/client.test.ts src/notion/commands.test.ts src/notion/tools.test.ts src/notion/machine-cli.test.ts src/cloud/accounts.test.ts src/cloud/bootstrap.test.ts src/cloud/business-bootstrap.test.ts src/cloud/maintenance.test.ts src/cloud/wizard.test.ts src/cloud/oss-bootstrap.test.ts",
41
41
  "pack:check": "turbo run pack:check root:pack:check",
42
42
  "root:pack:check": "node scripts/check-root-package.mjs",
43
43
  "boundaries": "node scripts/check-workspace-boundaries.mjs",
@@ -60,8 +60,8 @@
60
60
  "dependencies": {
61
61
  "@clack/prompts": "^1.7.0",
62
62
  "@modelcontextprotocol/sdk": "^1.29.0",
63
- "@numa-tech/cli-auth": "1.18.0",
64
- "@tokensrc/codex": "1.18.0",
63
+ "@numa-tech/cli-auth": "1.19.0",
64
+ "@tokensrc/codex": "1.19.0",
65
65
  "ali-oss": "^6.23.0",
66
66
  "commander": "^14.0.3",
67
67
  "ink": "^6.8.0",