scoutline 0.2.0 → 0.6.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 (110) hide show
  1. package/README.md +240 -18
  2. package/dist/capabilities/diagnostics.d.ts +70 -32
  3. package/dist/capabilities/diagnostics.d.ts.map +1 -1
  4. package/dist/capabilities/diagnostics.js +97 -46
  5. package/dist/capabilities/diagnostics.js.map +1 -1
  6. package/dist/capabilities/reader.d.ts +227 -0
  7. package/dist/capabilities/reader.d.ts.map +1 -0
  8. package/dist/capabilities/reader.js +100 -0
  9. package/dist/capabilities/reader.js.map +1 -0
  10. package/dist/capabilities/repository.d.ts +221 -0
  11. package/dist/capabilities/repository.d.ts.map +1 -0
  12. package/dist/capabilities/repository.js +172 -0
  13. package/dist/capabilities/repository.js.map +1 -0
  14. package/dist/commands/cache.d.ts +106 -0
  15. package/dist/commands/cache.d.ts.map +1 -0
  16. package/dist/commands/cache.js +203 -0
  17. package/dist/commands/cache.js.map +1 -0
  18. package/dist/commands/doctor.d.ts +17 -6
  19. package/dist/commands/doctor.d.ts.map +1 -1
  20. package/dist/commands/doctor.js +42 -17
  21. package/dist/commands/doctor.js.map +1 -1
  22. package/dist/commands/read.d.ts +74 -14
  23. package/dist/commands/read.d.ts.map +1 -1
  24. package/dist/commands/read.js +257 -117
  25. package/dist/commands/read.js.map +1 -1
  26. package/dist/commands/repo.d.ts +53 -7
  27. package/dist/commands/repo.d.ts.map +1 -1
  28. package/dist/commands/repo.js +104 -123
  29. package/dist/commands/repo.js.map +1 -1
  30. package/dist/commands/repository-explorer.d.ts +147 -0
  31. package/dist/commands/repository-explorer.d.ts.map +1 -0
  32. package/dist/commands/repository-explorer.js +550 -0
  33. package/dist/commands/repository-explorer.js.map +1 -0
  34. package/dist/index.d.ts +20 -0
  35. package/dist/index.d.ts.map +1 -1
  36. package/dist/index.js +209 -34
  37. package/dist/index.js.map +1 -1
  38. package/dist/lib/cache.d.ts +123 -18
  39. package/dist/lib/cache.d.ts.map +1 -1
  40. package/dist/lib/cache.js +324 -49
  41. package/dist/lib/cache.js.map +1 -1
  42. package/dist/lib/errors.d.ts +24 -1
  43. package/dist/lib/errors.d.ts.map +1 -1
  44. package/dist/lib/errors.js +33 -2
  45. package/dist/lib/errors.js.map +1 -1
  46. package/dist/lib/execution.d.ts +119 -5
  47. package/dist/lib/execution.d.ts.map +1 -1
  48. package/dist/lib/execution.js +216 -10
  49. package/dist/lib/execution.js.map +1 -1
  50. package/dist/lib/index.d.ts +1 -1
  51. package/dist/lib/index.d.ts.map +1 -1
  52. package/dist/lib/index.js +1 -1
  53. package/dist/lib/index.js.map +1 -1
  54. package/dist/lib/mcp-client.d.ts +29 -5
  55. package/dist/lib/mcp-client.d.ts.map +1 -1
  56. package/dist/lib/mcp-client.js +88 -88
  57. package/dist/lib/mcp-client.js.map +1 -1
  58. package/dist/lib/tool-cache.d.ts +86 -0
  59. package/dist/lib/tool-cache.d.ts.map +1 -0
  60. package/dist/lib/tool-cache.js +123 -0
  61. package/dist/lib/tool-cache.js.map +1 -0
  62. package/dist/providers/minimax/adapter.d.ts +6 -4
  63. package/dist/providers/minimax/adapter.d.ts.map +1 -1
  64. package/dist/providers/minimax/adapter.js +64 -57
  65. package/dist/providers/minimax/adapter.js.map +1 -1
  66. package/dist/providers/minimax/coding-plan-client.d.ts +60 -0
  67. package/dist/providers/minimax/coding-plan-client.d.ts.map +1 -0
  68. package/dist/providers/minimax/coding-plan-client.js +204 -0
  69. package/dist/providers/minimax/coding-plan-client.js.map +1 -0
  70. package/dist/providers/minimax/media.d.ts +60 -6
  71. package/dist/providers/minimax/media.d.ts.map +1 -1
  72. package/dist/providers/minimax/media.js +147 -7
  73. package/dist/providers/minimax/media.js.map +1 -1
  74. package/dist/providers/minimax/quota-client.d.ts +13 -6
  75. package/dist/providers/minimax/quota-client.d.ts.map +1 -1
  76. package/dist/providers/minimax/quota-client.js +5 -0
  77. package/dist/providers/minimax/quota-client.js.map +1 -1
  78. package/dist/providers/minimax/vision-attestations.d.ts +23 -0
  79. package/dist/providers/minimax/vision-attestations.d.ts.map +1 -1
  80. package/dist/providers/minimax/vision-attestations.js +35 -10
  81. package/dist/providers/minimax/vision-attestations.js.map +1 -1
  82. package/dist/providers/minimax/vision-conformance.d.ts +8 -6
  83. package/dist/providers/minimax/vision-conformance.d.ts.map +1 -1
  84. package/dist/providers/minimax/vision-conformance.js +8 -6
  85. package/dist/providers/minimax/vision-conformance.js.map +1 -1
  86. package/dist/providers/minimax/vision-revisions.d.ts +8 -1
  87. package/dist/providers/minimax/vision-revisions.d.ts.map +1 -1
  88. package/dist/providers/minimax/vision-revisions.js +13 -6
  89. package/dist/providers/minimax/vision-revisions.js.map +1 -1
  90. package/dist/providers/selection.d.ts +3 -3
  91. package/dist/providers/selection.js +3 -3
  92. package/dist/providers/types.d.ts +66 -32
  93. package/dist/providers/types.d.ts.map +1 -1
  94. package/dist/providers/types.js.map +1 -1
  95. package/dist/providers/zai/adapter.d.ts.map +1 -1
  96. package/dist/providers/zai/adapter.js +71 -5
  97. package/dist/providers/zai/adapter.js.map +1 -1
  98. package/dist/providers/zai/encoded-error.d.ts +90 -0
  99. package/dist/providers/zai/encoded-error.d.ts.map +1 -0
  100. package/dist/providers/zai/encoded-error.js +169 -0
  101. package/dist/providers/zai/encoded-error.js.map +1 -0
  102. package/dist/providers/zai/reader.d.ts +82 -0
  103. package/dist/providers/zai/reader.d.ts.map +1 -0
  104. package/dist/providers/zai/reader.js +490 -0
  105. package/dist/providers/zai/reader.js.map +1 -0
  106. package/dist/providers/zai/repository.d.ts +76 -0
  107. package/dist/providers/zai/repository.d.ts.map +1 -0
  108. package/dist/providers/zai/repository.js +715 -0
  109. package/dist/providers/zai/repository.js.map +1 -0
  110. package/package.json +3 -3
@@ -9,38 +9,18 @@
9
9
  */
10
10
  import { UtcpClient } from "@utcp/sdk";
11
11
  import "@utcp/mcp";
12
- import crypto from "node:crypto";
13
- import * as fs from "node:fs/promises";
14
- import os from "node:os";
15
- import path from "node:path";
16
12
  import { buildMcpCallTemplate, getMcpToolName, projectInternalToolName, MCP_MANUAL_NAME, } from "./mcp-config.js";
17
13
  import { ApiError, AuthError, ConfigurationError, NetworkError, TimeoutError, ValidationError, } from "./errors.js";
18
14
  import { loadConfig, getMcpEndpoints } from "./config.js";
19
- import { redactTool } from "./redact.js";
20
15
  import { buildCacheKey, readCache, writeCache } from "./cache.js";
16
+ import { readToolCache, writeToolCache } from "./tool-cache.js";
21
17
  const DEFAULT_TIMEOUT_MS = parseInt(process.env.Z_AI_TIMEOUT || "30000", 10);
22
18
  const DEFAULT_RETRY_BASE_MS = parseInt(process.env.ZAI_MCP_RETRY_BASE_MS || "500", 10);
23
19
  const DEFAULT_RETRY_MAX_MS = parseInt(process.env.ZAI_MCP_RETRY_MAX_MS || "8000", 10);
24
20
  const DEFAULT_RETRY_JITTER_MS = parseInt(process.env.ZAI_MCP_RETRY_JITTER_MS || "250", 10);
25
- const TOOL_CACHE_VERSION = 1;
26
- const DEFAULT_TOOL_CACHE_TTL_MS = parseInt(process.env.ZAI_MCP_TOOL_CACHE_TTL_MS || "86400000", 10);
27
21
  function sleep(ms) {
28
22
  return new Promise((resolve) => setTimeout(resolve, ms));
29
23
  }
30
- function resolveCacheDir() {
31
- const explicit = process.env.ZAI_MCP_CACHE_DIR || process.env.ZAI_CACHE_DIR;
32
- if (explicit) {
33
- return explicit;
34
- }
35
- const xdg = process.env.XDG_CACHE_HOME;
36
- if (xdg) {
37
- return path.join(xdg, "zai-cli");
38
- }
39
- if (process.platform === "darwin") {
40
- return path.join(os.homedir(), "Library", "Caches", "zai-cli");
41
- }
42
- return path.join(os.homedir(), ".cache", "zai-cli");
43
- }
44
24
  /**
45
25
  * Unified MCP client for all Z.AI MCP services
46
26
  */
@@ -232,67 +212,21 @@ export class ZaiMcpClient {
232
212
  const envVision = !["0", "false"].includes((process.env.Z_AI_VISION_MCP || "").toLowerCase());
233
213
  return this.options.enableVision ?? envVision;
234
214
  }
235
- getToolCacheKey() {
215
+ /**
216
+ * Build the tool-cache config (D4 — adapter encapsulates the
217
+ * config + endpoints + vision-resolution inputs that the extracted
218
+ * `tool-cache.ts` needs to compute a stable key). Owned here because
219
+ * the inputs come from this class's options and the shared config
220
+ * module; the extracted module stays pure of `loadConfig` / `getMcpEndpoints`.
221
+ */
222
+ getToolCacheConfig() {
236
223
  const config = loadConfig();
237
- const endpoints = getMcpEndpoints();
238
- const keyData = {
224
+ return {
239
225
  mode: config.mode,
240
226
  baseUrl: config.baseUrl,
241
- endpoints,
227
+ endpoints: getMcpEndpoints(),
242
228
  enableVision: this.resolveEnableVision(),
243
229
  };
244
- return crypto.createHash("sha256").update(JSON.stringify(keyData)).digest("hex").slice(0, 16);
245
- }
246
- getToolCachePath() {
247
- const cacheDir = resolveCacheDir();
248
- const key = this.getToolCacheKey();
249
- return path.join(cacheDir, `tools-${key}.json`);
250
- }
251
- async readToolsCache(refresh) {
252
- // Re-check the env var at call time so tests can disable the
253
- // on-disk tool cache without restarting the process. Production
254
- // behaviour is unchanged when the env var is unset.
255
- const enabled = !["0", "false"].includes((process.env.ZAI_MCP_TOOL_CACHE || "1").toLowerCase());
256
- if (!enabled || refresh) {
257
- return null;
258
- }
259
- if (DEFAULT_TOOL_CACHE_TTL_MS <= 0) {
260
- return null;
261
- }
262
- try {
263
- const raw = await fs.readFile(this.getToolCachePath(), "utf8");
264
- const data = JSON.parse(raw);
265
- if (!data || data.version !== TOOL_CACHE_VERSION || !Array.isArray(data.tools)) {
266
- return null;
267
- }
268
- const age = Date.now() - (data.timestamp || 0);
269
- if (age > DEFAULT_TOOL_CACHE_TTL_MS) {
270
- return null;
271
- }
272
- return data.tools;
273
- }
274
- catch {
275
- return null;
276
- }
277
- }
278
- async writeToolsCache(tools) {
279
- const enabled = !["0", "false"].includes((process.env.ZAI_MCP_TOOL_CACHE || "1").toLowerCase());
280
- if (!enabled || DEFAULT_TOOL_CACHE_TTL_MS <= 0) {
281
- return;
282
- }
283
- try {
284
- const cacheDir = resolveCacheDir();
285
- await fs.mkdir(cacheDir, { recursive: true });
286
- const payload = {
287
- version: TOOL_CACHE_VERSION,
288
- timestamp: Date.now(),
289
- tools: tools.map((tool) => redactTool(tool)),
290
- };
291
- await fs.writeFile(this.getToolCachePath(), JSON.stringify(payload));
292
- }
293
- catch {
294
- // Best-effort cache only.
295
- }
296
230
  }
297
231
  /**
298
232
  * List all discovered tools from registered MCP servers.
@@ -311,18 +245,23 @@ export class ZaiMcpClient {
311
245
  * Private unprojected discovery list. Tools keep their exact UTCP
312
246
  * names so {@link getTool} can resolve public aliases back to the
313
247
  * internal invocation identity.
248
+ *
249
+ * Tool-cache I/O is delegated to the extracted {@link tool-cache.ts}
250
+ * module (D1 — owns its I/O directly against the `tools/` subdir).
314
251
  */
315
252
  async discoverTools(refresh = false) {
316
- const cached = await this.readToolsCache(refresh);
317
- if (cached) {
318
- return cached;
253
+ if (!refresh) {
254
+ const cached = await readToolCache(this.getToolCacheConfig());
255
+ if (cached) {
256
+ return cached;
257
+ }
319
258
  }
320
259
  await this.init();
321
260
  if (!this.client) {
322
261
  throw new ApiError("MCP client not initialized", 500);
323
262
  }
324
263
  const tools = await this.client.getTools();
325
- await this.writeToolsCache(tools);
264
+ await writeToolCache(this.getToolCacheConfig(), tools);
326
265
  return tools;
327
266
  }
328
267
  /**
@@ -383,12 +322,55 @@ export class ZaiMcpClient {
383
322
  const resolved = await this.resolveToolName(toolName);
384
323
  return this.callTool(resolved, args);
385
324
  }
325
+ /**
326
+ * P6-01A: invoke a tool while preserving the public dotted tool name as
327
+ * the cache identity, then resolve to the internal sanitized identity
328
+ * only on a cache miss.
329
+ *
330
+ * The legacy v0.2 repository cache contract (P0–P2) keyed entries under
331
+ * the public dotted name and returned them before any transport work.
332
+ * A naive `callToolRaw` migration routes through `resolveToolName` first,
333
+ * which forces discovery, registration, and `init()` even when a v0.2
334
+ * hit is present. This helper restores the legacy cache identity and
335
+ * skips discovery on hits while keeping the translation fix for misses.
336
+ *
337
+ * Other callers (`callTool`, `callToolRaw`, Vision, Search, Reader, raw
338
+ * tools) are unchanged.
339
+ */
340
+ async callToolWithPublicCacheIdentity(publicToolName, args) {
341
+ const cacheable = !this.options.noCache && !publicToolName.includes(".vision.");
342
+ if (!cacheable) {
343
+ // No-cache path: resolve the internal identity and invoke directly.
344
+ const internal = await this.resolveToolName(publicToolName);
345
+ return this.callToolUncached(internal, args);
346
+ }
347
+ const key = buildCacheKey(publicToolName, args);
348
+ const hit = await readCache(key);
349
+ if (hit !== null)
350
+ return hit;
351
+ const internal = await this.resolveToolName(publicToolName);
352
+ try {
353
+ const result = await this.callToolUncached(internal, args);
354
+ await writeCache(key, result);
355
+ return result;
356
+ }
357
+ catch (err) {
358
+ throw err;
359
+ }
360
+ }
386
361
  // ============ ZRead Methods ============
387
362
  /**
388
363
  * Search documentation and code in a GitHub repository
389
364
  */
390
365
  async zreadSearch(repo, query, language) {
391
- return this.callTool(getMcpToolName("zread", "search_doc"), {
366
+ // P6-01 / P6-01A: route through `callToolWithPublicCacheIdentity` so
367
+ // - the public dotted name is preserved as the cache identity
368
+ // (legacy v0.2 cache hits still return without transport work);
369
+ // - on a cache miss the public name is resolved to the discovered
370
+ // internal UTCP identity before invocation (fixes the public-name
371
+ // translation regression);
372
+ // The legacy `ZReadMcpClient.searchDoc` wrapper delegates here.
373
+ return this.callToolWithPublicCacheIdentity(getMcpToolName("zread", "search_doc"), {
392
374
  repo_name: repo,
393
375
  query,
394
376
  ...(language && { language }),
@@ -398,16 +380,19 @@ export class ZaiMcpClient {
398
380
  * Get the directory structure of a GitHub repository
399
381
  */
400
382
  async zreadTree(repo, dirPath) {
401
- return this.callTool(getMcpToolName("zread", "get_repo_structure"), {
402
- repo_name: repo,
403
- ...(dirPath && { dir_path: dirPath }),
404
- });
383
+ // P6-01 / P6-01A: see `zreadSearch` for the cache identity and
384
+ // translation rationale. The legacy `ZReadMcpClient.getRepoStructure`
385
+ // wrapper delegates here.
386
+ return this.callToolWithPublicCacheIdentity(getMcpToolName("zread", "get_repo_structure"), { repo_name: repo, ...(dirPath && { dir_path: dirPath }) });
405
387
  }
406
388
  /**
407
389
  * Read a file from a GitHub repository
408
390
  */
409
391
  async zreadFile(repo, path) {
410
- return this.callTool(getMcpToolName("zread", "read_file"), {
392
+ // P6-01 / P6-01A: see `zreadSearch` for the cache identity and
393
+ // translation rationale. The legacy `ZReadMcpClient.readFile` wrapper
394
+ // delegates here.
395
+ return this.callToolWithPublicCacheIdentity(getMcpToolName("zread", "read_file"), {
411
396
  repo_name: repo,
412
397
  file_path: path,
413
398
  });
@@ -469,7 +454,22 @@ export class ZaiMcpClient {
469
454
  if (params.withImagesSummary !== undefined) {
470
455
  args.with_images_summary = params.withImagesSummary;
471
456
  }
472
- return this.callTool(getMcpToolName("reader", "webReader"), args);
457
+ // Reader Migration Ticket 02: route through
458
+ // `callToolWithPublicCacheIdentity` so:
459
+ // - the public dotted name is preserved as the cache identity
460
+ // (legacy v0.2 reader cache hits still return without any
461
+ // transport work, matching the v0.2 contract);
462
+ // - on a cache miss the public name is resolved to the discovered
463
+ // internal UTCP identity before invocation (fixes the
464
+ // public-name translation regression where UTCP rejected the
465
+ // dotted name with "Tool not found in UTCP manual").
466
+ // Mirrors the P6-01A fix applied to `zreadSearch` / `zreadTree` /
467
+ // `zreadFile`. The TypeScript return type widens from
468
+ // `Promise<string>` to `Promise<ReaderRawResponse>` to honestly
469
+ // reflect the runtime shape of the Z.AI WebReader MCP response
470
+ // (structured object on success; bare string for MCP-level error
471
+ // envelopes like `"MCP error -500: ..."`).
472
+ return this.callToolWithPublicCacheIdentity(getMcpToolName("reader", "webReader"), args);
473
473
  }
474
474
  // ============ Vision Methods ============
475
475
  async visionAnalyze(params) {
@@ -1 +1 @@
1
- {"version":3,"file":"mcp-client.js","sourceRoot":"","sources":["../../src/lib/mcp-client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"mcp-client.js","sourceRoot":"","sources":["../../src/lib/mcp-client.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,86 @@
1
+ /**
2
+ * Tool-discovery cache — extracted from {@link ZaiMcpClient} (Ticket 02).
3
+ *
4
+ * Owns its filesystem I/O directly against the `tools/` subdirectory
5
+ * under the unified cache root (D1 revised — does NOT reuse
6
+ * `ResponseCache` for storage). Stores {@link redactTool}-scrubbed tools
7
+ * (B2 fix) under a single TTL check (H2 fix).
8
+ *
9
+ * # Enable check (preserves v0.4.0 granularity — D3 deviation)
10
+ *
11
+ * ```text
12
+ * isToolCacheEnabled = isCacheEnabled() && ZAI_MCP_TOOL_CACHE != "0"/"false"
13
+ * ```
14
+ *
15
+ * - `SCOUTLINE_CACHE=0` (or legacy `ZAI_CACHE=0`) disables BOTH caches
16
+ * because `isCacheEnabled()` returns false.
17
+ * - `ZAI_MCP_TOOL_CACHE=0` disables ONLY the tool cache; the response
18
+ * cache stays enabled because `isCacheEnabled()` does NOT consult
19
+ * this var. This preserves the four `mcp-client.test.js` suites that
20
+ * set `ZAI_MCP_TOOL_CACHE=0` per-suite while relying on
21
+ * response-cache hits.
22
+ *
23
+ * # Versioning
24
+ *
25
+ * {@link TOOL_CACHE_VERSION} is stamped into every cache envelope. A
26
+ * mismatch (e.g. an old `tools-*.json` written by a future or past
27
+ * release) yields a clean miss — never a throw — so an upgrade cannot
28
+ * break tool discovery.
29
+ */
30
+ import type { Tool } from "@utcp/sdk";
31
+ /**
32
+ * Cache envelope version. Bumped when the on-disk shape of
33
+ * {@link ToolCachePayload} changes; old envelopes are ignored.
34
+ */
35
+ export declare const TOOL_CACHE_VERSION = 1;
36
+ /**
37
+ * Inputs to the tool-cache key. Captures every dimension that affects
38
+ * WHICH tools the MCP servers return: mode + baseUrl (ZAI vs ZHIPU),
39
+ * the three HTTP endpoints, and whether the stdio vision server is
40
+ * registered. The ZaiMcpClient adapter builds this from {@link loadConfig}
41
+ * + {@link getMcpEndpoints} + its private `resolveEnableVision()`.
42
+ */
43
+ export interface ToolCacheConfig {
44
+ mode: string;
45
+ baseUrl: string;
46
+ endpoints: Record<string, string>;
47
+ enableVision: boolean;
48
+ }
49
+ /**
50
+ * Tool-cache enable check (preserves v0.4.0 granularity — D3
51
+ * deviation). The tool cache is enabled only when BOTH:
52
+ * - the response cache is enabled (`isCacheEnabled()` honours
53
+ * `SCOUTLINE_CACHE` / `ZAI_CACHE`); AND
54
+ * - the tool-specific `ZAI_MCP_TOOL_CACHE` env var is not "0"/"false".
55
+ *
56
+ * Read at call time (H1 fix) so per-suite env mutations in tests remain
57
+ * observable.
58
+ */
59
+ export declare function isToolCacheEnabled(): boolean;
60
+ /**
61
+ * Build the 16-char cache key for a config. Mirrors the v0.4.0 algorithm
62
+ * in the extracted `ZaiMcpClient.getToolCacheKey`: SHA-256 of the
63
+ * JSON-stringified config, first 16 hex chars. Two configs that produce
64
+ * the same JSON yield the same key; distinct configs yield distinct keys.
65
+ */
66
+ export declare function buildToolCacheKey(config: ToolCacheConfig): string;
67
+ /**
68
+ * Build the absolute on-disk path for a config's tool-cache envelope.
69
+ * Always lands under the `tools/` subdirectory (sibling of `cache/`).
70
+ */
71
+ export declare function buildToolCachePath(config: ToolCacheConfig): string;
72
+ /**
73
+ * Read the tool cache for a config. Returns `null` on miss, version
74
+ * mismatch, TTL expiry, corruption (invalid JSON, missing file), or when
75
+ * the tool cache is disabled. NEVER throws — a miss degrades cleanly to
76
+ * discovery.
77
+ */
78
+ export declare function readToolCache(config: ToolCacheConfig): Promise<Tool[] | null>;
79
+ /**
80
+ * Write the tool cache for a config. Applies {@link redactTool} to every
81
+ * tool before serialization (B2 fix) so the on-disk envelope never
82
+ * contains raw Provider credentials. Best-effort: I/O failures are
83
+ * swallowed (cache is disposable).
84
+ */
85
+ export declare function writeToolCache(config: ToolCacheConfig, tools: Tool[]): Promise<void>;
86
+ //# sourceMappingURL=tool-cache.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tool-cache.d.ts","sourceRoot":"","sources":["../../src/lib/tool-cache.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AAKH,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAItC;;;GAGG;AACH,eAAO,MAAM,kBAAkB,IAAI,CAAC;AAEpC;;;;;;GAMG;AACH,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAClC,YAAY,EAAE,OAAO,CAAC;CACvB;AAQD;;;;;;;;;GASG;AACH,wBAAgB,kBAAkB,IAAI,OAAO,CAI5C;AAED;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,eAAe,GAAG,MAAM,CAEjE;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,eAAe,GAAG,MAAM,CAElE;AAED;;;;;GAKG;AACH,wBAAsB,aAAa,CAAC,MAAM,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC,CAenF;AAED;;;;;GAKG;AACH,wBAAsB,cAAc,CAAC,MAAM,EAAE,eAAe,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAe1F"}
@@ -0,0 +1,123 @@
1
+ /**
2
+ * Tool-discovery cache — extracted from {@link ZaiMcpClient} (Ticket 02).
3
+ *
4
+ * Owns its filesystem I/O directly against the `tools/` subdirectory
5
+ * under the unified cache root (D1 revised — does NOT reuse
6
+ * `ResponseCache` for storage). Stores {@link redactTool}-scrubbed tools
7
+ * (B2 fix) under a single TTL check (H2 fix).
8
+ *
9
+ * # Enable check (preserves v0.4.0 granularity — D3 deviation)
10
+ *
11
+ * ```text
12
+ * isToolCacheEnabled = isCacheEnabled() && ZAI_MCP_TOOL_CACHE != "0"/"false"
13
+ * ```
14
+ *
15
+ * - `SCOUTLINE_CACHE=0` (or legacy `ZAI_CACHE=0`) disables BOTH caches
16
+ * because `isCacheEnabled()` returns false.
17
+ * - `ZAI_MCP_TOOL_CACHE=0` disables ONLY the tool cache; the response
18
+ * cache stays enabled because `isCacheEnabled()` does NOT consult
19
+ * this var. This preserves the four `mcp-client.test.js` suites that
20
+ * set `ZAI_MCP_TOOL_CACHE=0` per-suite while relying on
21
+ * response-cache hits.
22
+ *
23
+ * # Versioning
24
+ *
25
+ * {@link TOOL_CACHE_VERSION} is stamped into every cache envelope. A
26
+ * mismatch (e.g. an old `tools-*.json` written by a future or past
27
+ * release) yields a clean miss — never a throw — so an upgrade cannot
28
+ * break tool discovery.
29
+ */
30
+ import crypto from "node:crypto";
31
+ import * as fs from "node:fs/promises";
32
+ import path from "node:path";
33
+ import { toolCacheDir, isCacheEnabled, getCacheTtlMs } from "./cache.js";
34
+ import { redactTool } from "./redact.js";
35
+ /**
36
+ * Cache envelope version. Bumped when the on-disk shape of
37
+ * {@link ToolCachePayload} changes; old envelopes are ignored.
38
+ */
39
+ export const TOOL_CACHE_VERSION = 1;
40
+ /**
41
+ * Tool-cache enable check (preserves v0.4.0 granularity — D3
42
+ * deviation). The tool cache is enabled only when BOTH:
43
+ * - the response cache is enabled (`isCacheEnabled()` honours
44
+ * `SCOUTLINE_CACHE` / `ZAI_CACHE`); AND
45
+ * - the tool-specific `ZAI_MCP_TOOL_CACHE` env var is not "0"/"false".
46
+ *
47
+ * Read at call time (H1 fix) so per-suite env mutations in tests remain
48
+ * observable.
49
+ */
50
+ export function isToolCacheEnabled() {
51
+ if (!isCacheEnabled())
52
+ return false;
53
+ const v = (process.env.ZAI_MCP_TOOL_CACHE ?? "1").toLowerCase();
54
+ return !["0", "false"].includes(v);
55
+ }
56
+ /**
57
+ * Build the 16-char cache key for a config. Mirrors the v0.4.0 algorithm
58
+ * in the extracted `ZaiMcpClient.getToolCacheKey`: SHA-256 of the
59
+ * JSON-stringified config, first 16 hex chars. Two configs that produce
60
+ * the same JSON yield the same key; distinct configs yield distinct keys.
61
+ */
62
+ export function buildToolCacheKey(config) {
63
+ return crypto.createHash("sha256").update(JSON.stringify(config)).digest("hex").slice(0, 16);
64
+ }
65
+ /**
66
+ * Build the absolute on-disk path for a config's tool-cache envelope.
67
+ * Always lands under the `tools/` subdirectory (sibling of `cache/`).
68
+ */
69
+ export function buildToolCachePath(config) {
70
+ return path.join(toolCacheDir(), `tools-${buildToolCacheKey(config)}.json`);
71
+ }
72
+ /**
73
+ * Read the tool cache for a config. Returns `null` on miss, version
74
+ * mismatch, TTL expiry, corruption (invalid JSON, missing file), or when
75
+ * the tool cache is disabled. NEVER throws — a miss degrades cleanly to
76
+ * discovery.
77
+ */
78
+ export async function readToolCache(config) {
79
+ if (!isToolCacheEnabled())
80
+ return null;
81
+ const ttlMs = getCacheTtlMs();
82
+ if (ttlMs <= 0)
83
+ return null;
84
+ try {
85
+ const raw = await fs.readFile(buildToolCachePath(config), "utf8");
86
+ const entry = JSON.parse(raw);
87
+ if (!entry || entry.version !== TOOL_CACHE_VERSION || !Array.isArray(entry.tools)) {
88
+ return null;
89
+ }
90
+ if (Date.now() - (entry.timestamp ?? 0) > ttlMs)
91
+ return null;
92
+ return entry.tools;
93
+ }
94
+ catch {
95
+ return null;
96
+ }
97
+ }
98
+ /**
99
+ * Write the tool cache for a config. Applies {@link redactTool} to every
100
+ * tool before serialization (B2 fix) so the on-disk envelope never
101
+ * contains raw Provider credentials. Best-effort: I/O failures are
102
+ * swallowed (cache is disposable).
103
+ */
104
+ export async function writeToolCache(config, tools) {
105
+ if (!isToolCacheEnabled())
106
+ return;
107
+ if (getCacheTtlMs() <= 0)
108
+ return;
109
+ try {
110
+ const filePath = buildToolCachePath(config);
111
+ await fs.mkdir(path.dirname(filePath), { recursive: true });
112
+ const payload = {
113
+ version: TOOL_CACHE_VERSION,
114
+ timestamp: Date.now(),
115
+ tools: tools.map((tool) => redactTool(tool)),
116
+ };
117
+ await fs.writeFile(filePath, JSON.stringify(payload));
118
+ }
119
+ catch {
120
+ // Best-effort cache only.
121
+ }
122
+ }
123
+ //# sourceMappingURL=tool-cache.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tool-cache.js","sourceRoot":"","sources":["../../src/lib/tool-cache.ts"],"names":[],"mappings":"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"}
@@ -38,10 +38,12 @@ export interface MiniMaxDiagnosticsCapabilityOptions extends MiniMaxQuotaClientD
38
38
  /**
39
39
  * Build the MiniMax Provider Descriptor. The descriptor advertises the
40
40
  * Search Capability and constructs an Adapter whose `search` Capability
41
- * owns credentials, SDK lifecycle, Provider field mapping, and failure
42
- * normalization. Construction is side-effect-free; the SDK is built and
43
- * torn down per invocation. Tests pass `sdkConstructor`; production uses
44
- * the no-argument factory which binds the pinned `mmx-cli/sdk`.
41
+ * owns credentials, transport, Provider field mapping, and failure
42
+ * normalization. Construction is side-effect-free; the transport is
43
+ * invoked per Capability call. Tests pass `transport` (typically a
44
+ * fake-fetch wrapper); production uses the no-argument factory which
45
+ * resolves to the global `fetch` and timers inside each transport
46
+ * Module.
45
47
  */
46
48
  export declare function createMiniMaxDescriptor(dependencies?: MiniMaxAdapterDependencies): ProviderDescriptor;
47
49
  //# sourceMappingURL=adapter.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"adapter.d.ts","sourceRoot":"","sources":["../../../src/providers/minimax/adapter.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAIH,OAAO,KAAK,EACV,0BAA0B,EAI1B,kBAAkB,EACnB,MAAM,aAAa,CAAC;AA4BrB,OAAO,EAEL,KAAK,sBAAsB,EAE5B,MAAM,mBAAmB,CAAC;AAiY3B;;;;;GAKG;AACH,MAAM,WAAW,mCAAoC,SAAQ,sBAAsB;IACjF,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC,UAAU,CAAC;CACjC;AA+BD;;;;;;;GAOG;AACH,wBAAgB,uBAAuB,CACrC,YAAY,CAAC,EAAE,0BAA0B,GACxC,kBAAkB,CAwEpB"}
1
+ {"version":3,"file":"adapter.d.ts","sourceRoot":"","sources":["../../../src/providers/minimax/adapter.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAIH,OAAO,KAAK,EACV,0BAA0B,EAI1B,kBAAkB,EACnB,MAAM,aAAa,CAAC;AA4BrB,OAAO,EAAqB,KAAK,sBAAsB,EAAE,MAAM,mBAAmB,CAAC;AA+ZnF;;;;;GAKG;AACH,MAAM,WAAW,mCAAoC,SAAQ,sBAAsB;IACjF,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC,UAAU,CAAC;CACjC;AA+BD;;;;;;;;;GASG;AACH,wBAAgB,uBAAuB,CACrC,YAAY,CAAC,EAAE,0BAA0B,GACxC,kBAAkB,CAoDpB"}