@uluops/registry-mcp 0.1.0 → 0.2.4

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 (59) hide show
  1. package/CHANGELOG.md +131 -4
  2. package/LICENSE +21 -0
  3. package/README.md +100 -93
  4. package/dist/client/sdk-error-mapper.d.ts +29 -0
  5. package/dist/client/sdk-error-mapper.d.ts.map +1 -1
  6. package/dist/client/sdk-error-mapper.js +122 -20
  7. package/dist/client/sdk-error-mapper.js.map +1 -1
  8. package/dist/config/index.d.ts +7 -1
  9. package/dist/config/index.d.ts.map +1 -1
  10. package/dist/config/index.js +91 -14
  11. package/dist/config/index.js.map +1 -1
  12. package/dist/config/tool-registry.d.ts.map +1 -1
  13. package/dist/config/tool-registry.js +0 -8
  14. package/dist/config/tool-registry.js.map +1 -1
  15. package/dist/index.d.ts.map +1 -1
  16. package/dist/index.js +19 -6
  17. package/dist/index.js.map +1 -1
  18. package/dist/tools/batch-publish.js +8 -8
  19. package/dist/tools/batch-publish.js.map +1 -1
  20. package/dist/tools/index.d.ts +1 -1
  21. package/dist/tools/index.d.ts.map +1 -1
  22. package/dist/tools/index.js +2 -4
  23. package/dist/tools/index.js.map +1 -1
  24. package/dist/tools/{check-forkable.d.ts → is-forkable.d.ts} +1 -1
  25. package/dist/tools/is-forkable.d.ts.map +1 -0
  26. package/dist/tools/{check-forkable.js → is-forkable.js} +1 -1
  27. package/dist/tools/is-forkable.js.map +1 -0
  28. package/dist/tools/render-definition.d.ts +3 -0
  29. package/dist/tools/render-definition.d.ts.map +1 -1
  30. package/dist/tools/render-definition.js +15 -1
  31. package/dist/tools/render-definition.js.map +1 -1
  32. package/dist/tools/update-and-publish.d.ts.map +1 -1
  33. package/dist/tools/update-and-publish.js +22 -10
  34. package/dist/tools/update-and-publish.js.map +1 -1
  35. package/dist/tools/update-definition.d.ts.map +1 -1
  36. package/dist/tools/update-definition.js +2 -7
  37. package/dist/tools/update-definition.js.map +1 -1
  38. package/dist/types/config.d.ts +6 -2
  39. package/dist/types/config.d.ts.map +1 -1
  40. package/dist/utils/error-guards.d.ts +21 -0
  41. package/dist/utils/error-guards.d.ts.map +1 -0
  42. package/dist/utils/error-guards.js +26 -0
  43. package/dist/utils/error-guards.js.map +1 -0
  44. package/dist/utils/logger.d.ts.map +1 -1
  45. package/dist/utils/logger.js +28 -3
  46. package/dist/utils/logger.js.map +1 -1
  47. package/dist/utils/read-yaml-file.d.ts.map +1 -1
  48. package/dist/utils/read-yaml-file.js +16 -1
  49. package/dist/utils/read-yaml-file.js.map +1 -1
  50. package/dist/utils/tool-handler.d.ts.map +1 -1
  51. package/dist/utils/tool-handler.js +20 -8
  52. package/dist/utils/tool-handler.js.map +1 -1
  53. package/package.json +21 -20
  54. package/dist/tools/check-forkable.d.ts.map +0 -1
  55. package/dist/tools/check-forkable.js.map +0 -1
  56. package/dist/tools/sync-models.d.ts +0 -12
  57. package/dist/tools/sync-models.d.ts.map +0 -1
  58. package/dist/tools/sync-models.js +0 -32
  59. package/dist/tools/sync-models.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,KAAK,EAAE,yBAAyB,EAAe,MAAM,mBAAmB,CAAC;AAmFhF;;;;GAIG;AACH,wBAAgB,gBAAgB,CAC9B,MAAM,EAAE,yBAAyB,EACjC,cAAc,EAAE,cAAc,GAC7B,IAAI,CA0DN"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,KAAK,EAAE,yBAAyB,EAAe,MAAM,mBAAmB,CAAC;AAkFhF;;;;GAIG;AACH,wBAAgB,gBAAgB,CAC9B,MAAM,EAAE,yBAAyB,EACjC,cAAc,EAAE,cAAc,GAC7B,IAAI,CAyDN"}
@@ -51,7 +51,7 @@ import { registerGetExecutionStatsTool } from './get-execution-stats.js';
51
51
  import { registerListForksTool } from './list-forks.js';
52
52
  // P2 Admin/Specialized Tools
53
53
  import { registerForkDefinitionTool } from './fork-definition.js';
54
- import { registerIsForkableTool } from './check-forkable.js';
54
+ import { registerIsForkableTool } from './is-forkable.js';
55
55
  import { registerGetForkLineageTool } from './get-fork-lineage.js';
56
56
  import { registerRecordExecutionTool } from './record-execution.js';
57
57
  import { registerRetranslateDefinitionTool } from './retranslate-definition.js';
@@ -60,7 +60,6 @@ import { registerGetModelTool } from './get-model.js';
60
60
  import { registerListProvidersTool } from './list-providers.js';
61
61
  import { registerListAliasesTool } from './list-aliases.js';
62
62
  import { registerGetTranslatorVersionTool } from './get-translator-version.js';
63
- import { registerSyncModelsTool } from './sync-models.js';
64
63
  import { registerGetUserTool } from './get-user.js';
65
64
  import { registerBatchUsersTool } from './batch-users.js';
66
65
  import { registerListLanguagesTool } from './list-languages.js';
@@ -75,7 +74,7 @@ import { registerGetTranslationAnalyticsTool } from './get-translation-analytics
75
74
  import { registerCompareEffectivenessTool } from './compare-effectiveness.js';
76
75
  import { registerGetDiffImpactTool } from './get-diff-impact.js';
77
76
  /**
78
- * Register all 45 MCP tools with the server.
77
+ * Register all 44 MCP tools with the server.
79
78
  * @param server - MCP server instance to register tools on.
80
79
  * @param registryClient - Registry SDK client for API calls.
81
80
  */
@@ -118,7 +117,6 @@ export function registerAllTools(server, registryClient) {
118
117
  registerListProvidersTool(s, registryClient);
119
118
  registerListAliasesTool(s, registryClient);
120
119
  registerGetTranslatorVersionTool(s, registryClient);
121
- registerSyncModelsTool(s);
122
120
  registerGetUserTool(s, registryClient);
123
121
  registerBatchUsersTool(s, registryClient);
124
122
  registerListLanguagesTool(s, registryClient);
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"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"}
@@ -20,4 +20,4 @@ export declare const IsForkableInputSchema: z.ZodObject<{
20
20
  version: string;
21
21
  }>;
22
22
  export declare function registerIsForkableTool(server: McpServerToolRegistration, registryClient: RegistryClient): void;
23
- //# sourceMappingURL=check-forkable.d.ts.map
23
+ //# sourceMappingURL=is-forkable.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"is-forkable.d.ts","sourceRoot":"","sources":["../../src/tools/is-forkable.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,EAAwB,KAAK,yBAAyB,EAAE,MAAM,mBAAmB,CAAC;AAGzF,eAAO,MAAM,qBAAqB;;;;;;;;;;;;EAIhC,CAAC;AAEH,wBAAgB,sBAAsB,CACpC,MAAM,EAAE,yBAAyB,EACjC,cAAc,EAAE,cAAc,GAC7B,IAAI,CASN"}
@@ -14,4 +14,4 @@ export const IsForkableInputSchema = z.object({
14
14
  export function registerIsForkableTool(server, registryClient) {
15
15
  server.tool('is_forkable', 'Check if a definition version can be forked.', IsForkableInputSchema.shape, createToolHandler(IsForkableInputSchema, (n) => registryClient.forks.isForkable(n.type, n.name, n.version)));
16
16
  }
17
- //# sourceMappingURL=check-forkable.js.map
17
+ //# sourceMappingURL=is-forkable.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"is-forkable.js","sourceRoot":"","sources":["../../src/tools/is-forkable.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,oBAAoB,EAAkC,MAAM,mBAAmB,CAAC;AACzF,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAE7D,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC5C,IAAI,EAAE,oBAAoB;IAC1B,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IACvB,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;CAC3B,CAAC,CAAC;AAEH,MAAM,UAAU,sBAAsB,CACpC,MAAiC,EACjC,cAA8B;IAE9B,MAAM,CAAC,IAAI,CACT,aAAa,EACb,8CAA8C,EAC9C,qBAAqB,CAAC,KAAK,EAC3B,iBAAiB,CAAC,qBAAqB,EAAE,CAAC,CAAC,EAAE,EAAE,CAC7C,cAAc,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,CAC3D,CACF,CAAC;AACJ,CAAC"}
@@ -14,10 +14,12 @@ export declare const RenderDefinitionInputSchema: z.ZodObject<{
14
14
  target: z.ZodOptional<z.ZodString>;
15
15
  model: z.ZodOptional<z.ZodString>;
16
16
  output_path: z.ZodOptional<z.ZodString>;
17
+ overwrite: z.ZodDefault<z.ZodBoolean>;
17
18
  }, "strip", z.ZodTypeAny, {
18
19
  name: string;
19
20
  type: "agent" | "command" | "workflow" | "pipeline";
20
21
  version: string;
22
+ overwrite: boolean;
21
23
  target?: string | undefined;
22
24
  model?: string | undefined;
23
25
  output_path?: string | undefined;
@@ -28,6 +30,7 @@ export declare const RenderDefinitionInputSchema: z.ZodObject<{
28
30
  target?: string | undefined;
29
31
  model?: string | undefined;
30
32
  output_path?: string | undefined;
33
+ overwrite?: boolean | undefined;
31
34
  }>;
32
35
  export declare function registerRenderDefinitionTool(server: McpServerToolRegistration, registryClient: RegistryClient): void;
33
36
  //# sourceMappingURL=render-definition.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"render-definition.d.ts","sourceRoot":"","sources":["../../src/tools/render-definition.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,EAEL,KAAK,yBAAyB,EAG/B,MAAM,mBAAmB,CAAC;AAc3B,eAAO,MAAM,2BAA2B;;;;;;;;;;;;;;;;;;;;;EAmBtC,CAAC;AAEH,wBAAgB,4BAA4B,CAC1C,MAAM,EAAE,yBAAyB,EACjC,cAAc,EAAE,cAAc,GAC7B,IAAI,CA6EN"}
1
+ {"version":3,"file":"render-definition.d.ts","sourceRoot":"","sources":["../../src/tools/render-definition.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,EAEL,KAAK,yBAAyB,EAG/B,MAAM,mBAAmB,CAAC;AAc3B,eAAO,MAAM,2BAA2B;;;;;;;;;;;;;;;;;;;;;;;;EAuBtC,CAAC;AAEH,wBAAgB,4BAA4B,CAC1C,MAAM,EAAE,yBAAyB,EACjC,cAAc,EAAE,cAAc,GAC7B,IAAI,CA0FN"}
@@ -4,7 +4,7 @@
4
4
  * Get rendered markdown for a definition.
5
5
  * Optionally write the markdown directly to a file via output_path.
6
6
  */
7
- import { writeFile, mkdir, lstat } from 'node:fs/promises';
7
+ import { writeFile, mkdir, lstat, access } from 'node:fs/promises';
8
8
  import { dirname, resolve, relative } from 'node:path';
9
9
  import { z } from 'zod';
10
10
  import { DefinitionTypeSchema, createSuccessResponse, createErrorResponse, } from '../types/index.js';
@@ -38,6 +38,10 @@ export const RenderDefinitionInputSchema = z.object({
38
38
  .min(1)
39
39
  .describe('Write rendered output to this file path instead of returning it in the response.')
40
40
  .optional(),
41
+ overwrite: z
42
+ .boolean()
43
+ .describe('When true, allow output_path to overwrite an existing file. Defaults to false — an existing file at output_path produces an error response rather than being silently replaced.')
44
+ .default(false),
41
45
  });
42
46
  export function registerRenderDefinitionTool(server, registryClient) {
43
47
  const baseHandler = createToolHandler(RenderDefinitionInputSchema, (n) => registryClient.render.get(n.type, n.name, n.version, {
@@ -60,6 +64,16 @@ export function registerRenderDefinitionTool(server, registryClient) {
60
64
  if (pathStat?.isSymbolicLink() === true) {
61
65
  return createErrorResponse('output_path must not be a symbolic link');
62
66
  }
67
+ // Refuse to silently overwrite an existing regular file unless the
68
+ // caller has opted in with overwrite: true. Default-deny matches
69
+ // `cp --no-clobber` semantics and prevents agent-driven hallucinated
70
+ // paths from destroying user work without a clear signal.
71
+ if (!parsed.data.overwrite) {
72
+ const exists = await access(absPath).then(() => true).catch(() => false);
73
+ if (exists) {
74
+ return createErrorResponse(`output_path '${absPath}' already exists. Pass overwrite: true to replace it.`);
75
+ }
76
+ }
63
77
  // Verify no symlink in ancestor directories resolves outside the base dir
64
78
  const rel = relative(outputBaseDir, absPath);
65
79
  const segments = rel.split('/');
@@ -1 +1 @@
1
- {"version":3,"file":"render-definition.js","sourceRoot":"","sources":["../../src/tools/render-definition.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"render-definition.js","sourceRoot":"","sources":["../../src/tools/render-definition.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"update-and-publish.d.ts","sourceRoot":"","sources":["../../src/tools/update-and-publish.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,KAAK,EAAE,cAAc,EAAwB,MAAM,sBAAsB,CAAC;AAEjF,OAAO,EAIL,KAAK,yBAAyB,EAE/B,MAAM,mBAAmB,CAAC;AAY3B,eAAO,MAAM,2BAA2B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAUtC,CAAC;AAwBH,wBAAgB,4BAA4B,CAC1C,MAAM,EAAE,yBAAyB,EACjC,cAAc,EAAE,cAAc,GAC7B,IAAI,CAiEN"}
1
+ {"version":3,"file":"update-and-publish.d.ts","sourceRoot":"","sources":["../../src/tools/update-and-publish.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,KAAK,EAAE,cAAc,EAAwB,MAAM,sBAAsB,CAAC;AAGjF,OAAO,EAIL,KAAK,yBAAyB,EAE/B,MAAM,mBAAmB,CAAC;AAY3B,eAAO,MAAM,2BAA2B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAUtC,CAAC;AAsBH,wBAAgB,4BAA4B,CAC1C,MAAM,EAAE,yBAAyB,EACjC,cAAc,EAAE,cAAc,GAC7B,IAAI,CA+EN"}
@@ -7,7 +7,8 @@
7
7
  * automatically creates a new draft version before publishing.
8
8
  */
9
9
  import { z } from 'zod';
10
- import { isNotFoundError, isValidationError } from '@uluops/registry-sdk/errors';
10
+ import { isNotFoundError } from '@uluops/registry-sdk/errors';
11
+ import { isPublishedStatusError } from '../utils/error-guards.js';
11
12
  import { DefinitionTypeSchema, VisibilitySchema, ChangeTypeSchema, createSuccessResponse, } from '../types/index.js';
12
13
  import { mapSdkErrorToMcp, mapZodErrorToMcp } from '../client/sdk-error-mapper.js';
13
14
  import { resolveYamlInput } from '../utils/read-yaml-file.js';
@@ -28,12 +29,6 @@ export const UpdateAndPublishInputSchema = z.object({
28
29
  tags: z.array(z.string()).optional(),
29
30
  change_type: ChangeTypeSchema.optional(),
30
31
  });
31
- /** Check if an error is a "published status" validation error from the API. */
32
- function isPublishedStatusError(error) {
33
- return isValidationError(error) &&
34
- error instanceof Error &&
35
- error.message.includes("'published' status");
36
- }
37
32
  /**
38
33
  * Patch the version field in definition YAML to match the requested version.
39
34
  * When update_and_publish falls back to create (because the target version is
@@ -42,8 +37,13 @@ function isPublishedStatusError(error) {
42
37
  * the YAML version matches the requested version before calling create.
43
38
  */
44
39
  function patchYamlVersion(yaml, newVersion) {
45
- // Replace the first indented `version:` field value (the interface version)
46
- return yaml.replace(/^(\s+version:\s+)["']?\d+\.\d+\.\d+["']?/m, `$1"${newVersion}"`);
40
+ // Replace the first `version:` line value. Matches both root-level (e.g.
41
+ // `version: 1.0.0` in an ADL document) and indented (e.g.
42
+ // ` version: 1.0.0` nested under `interface:`) forms. `\s*` matches any
43
+ // leading whitespace including none. Accepts unquoted or single/double
44
+ // quoted version values, with optional prerelease (-rc.1, -beta.2) and
45
+ // build metadata (+build.5) suffixes per semver 2.0.0.
46
+ return yaml.replace(/^(\s*version:\s+)["']?\d+\.\d+\.\d+(?:-[A-Za-z0-9.-]+)?(?:\+[A-Za-z0-9.-]+)?["']?/m, `$1"${newVersion}"`);
47
47
  }
48
48
  export function registerUpdateAndPublishTool(server, registryClient) {
49
49
  server.tool('update_and_publish', 'Update a definition and publish it in one step. Accepts yaml or file_path. Auto-creates a new draft if the version is published or missing.', UpdateAndPublishInputSchema.shape, async (args) => {
@@ -83,7 +83,19 @@ export function registerUpdateAndPublishTool(server, registryClient) {
83
83
  yaml: patchedYaml,
84
84
  ...(visibility !== undefined && { visibility }),
85
85
  });
86
- publishVersion = created.version;
86
+ // Defensive guard against malformed SDK response — the SDK
87
+ // types declare `created.version` as a non-nullable string, but
88
+ // a runtime contract violation (network proxy mangling, SDK
89
+ // regression) would silently pass `undefined` through to the
90
+ // publish URL builder, producing /versions/undefined and a
91
+ // confusing 404 for a draft that was just successfully created.
92
+ // The `as unknown` cast intentionally bypasses the declared
93
+ // type so the runtime check has somewhere to live.
94
+ const runtimeVersion = created.version;
95
+ if (runtimeVersion === undefined || runtimeVersion === '') {
96
+ throw new Error(`Definitions create() returned no version field for ${type}/${name}. Cannot continue to publish step.`);
97
+ }
98
+ publishVersion = runtimeVersion;
87
99
  note = isNotFoundError(error)
88
100
  ? `Version '${version}' not found. Created new draft '${created.version}' and published.`
89
101
  : `Version '${version}' is published. Created new draft '${created.version}' and published.`;
@@ -1 +1 @@
1
- {"version":3,"file":"update-and-publish.js","sourceRoot":"","sources":["../../src/tools/update-and-publish.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"update-and-publish.js","sourceRoot":"","sources":["../../src/tools/update-and-publish.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"update-definition.d.ts","sourceRoot":"","sources":["../../src/tools/update-definition.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,KAAK,EAAE,cAAc,EAAwB,MAAM,sBAAsB,CAAC;AAEjF,OAAO,EAOL,KAAK,yBAAyB,EAC/B,MAAM,mBAAmB,CAAC;AAK3B,eAAO,MAAM,2BAA2B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAatC,CAAC;AASH,wBAAgB,4BAA4B,CAC1C,MAAM,EAAE,yBAAyB,EACjC,cAAc,EAAE,cAAc,GAC7B,IAAI,CA8CN"}
1
+ {"version":3,"file":"update-definition.d.ts","sourceRoot":"","sources":["../../src/tools/update-definition.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,KAAK,EAAE,cAAc,EAAwB,MAAM,sBAAsB,CAAC;AAGjF,OAAO,EAOL,KAAK,yBAAyB,EAC/B,MAAM,mBAAmB,CAAC;AAK3B,eAAO,MAAM,2BAA2B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAatC,CAAC;AAEH,wBAAgB,4BAA4B,CAC1C,MAAM,EAAE,yBAAyB,EACjC,cAAc,EAAE,cAAc,GAC7B,IAAI,CA8CN"}
@@ -9,7 +9,8 @@
9
9
  * of failing. The API server extracts the version from the YAML content.
10
10
  */
11
11
  import { z } from 'zod';
12
- import { isNotFoundError, isValidationError } from '@uluops/registry-sdk/errors';
12
+ import { isNotFoundError } from '@uluops/registry-sdk/errors';
13
+ import { isPublishedStatusError } from '../utils/error-guards.js';
13
14
  import { DefinitionTypeSchema, VisibilitySchema, TierSchema, SubscriptionTierSchema, ChangeTypeSchema, ProvenanceInputSchema, } from '../types/index.js';
14
15
  import { createToolHandler } from '../utils/tool-handler.js';
15
16
  import { resolveYamlInput } from '../utils/read-yaml-file.js';
@@ -28,12 +29,6 @@ export const UpdateDefinitionInputSchema = z.object({
28
29
  change_type: ChangeTypeSchema.optional(),
29
30
  provenance: ProvenanceInputSchema.optional().describe('Authorship provenance. Merges with existing provenance if present.'),
30
31
  });
31
- /** Check if an error is a "published status" validation error from the API. */
32
- function isPublishedStatusError(error) {
33
- return isValidationError(error) &&
34
- error instanceof Error &&
35
- error.message.includes("'published' status");
36
- }
37
32
  export function registerUpdateDefinitionTool(server, registryClient) {
38
33
  server.tool('update_definition', 'Update a draft definition version with new YAML, visibility, description, or tags.', UpdateDefinitionInputSchema.shape, createToolHandler(UpdateDefinitionInputSchema, async (n) => {
39
34
  const body = {};
@@ -1 +1 @@
1
- {"version":3,"file":"update-definition.js","sourceRoot":"","sources":["../../src/tools/update-definition.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"update-definition.js","sourceRoot":"","sources":["../../src/tools/update-definition.ts"],"names":[],"mappings":"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"}
@@ -3,8 +3,12 @@
3
3
  */
4
4
  export type LogLevel = 'debug' | 'info' | 'warn' | 'error';
5
5
  export interface ApiClientConfig {
6
- /** Base URL for the registry API */
7
- baseUrl: string;
6
+ /**
7
+ * Base URL for the registry API. Optional — when undefined, the SDK's
8
+ * `DEFAULT_BASE_URL` is used (prod by default; localhost when
9
+ * `NODE_ENV=development`).
10
+ */
11
+ baseUrl?: string;
8
12
  /** API key for authentication */
9
13
  apiKey?: string;
10
14
  /** Org slug for multi-tenancy — sets X-Org-Slug header on all requests */
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/types/config.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,MAAM,MAAM,QAAQ,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC;AAE3D,MAAM,WAAW,eAAe;IAC9B,oCAAoC;IACpC,OAAO,EAAE,MAAM,CAAC;IAChB,iCAAiC;IACjC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,0EAA0E;IAC1E,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,uDAAuD;IACvD,OAAO,EAAE,MAAM,CAAC;IAChB,4CAA4C;IAC5C,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,YAAY;IAC3B,sBAAsB;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,yBAAyB;IACzB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,cAAc;IAC7B,uCAAuC;IACvC,QAAQ,EAAE,QAAQ,CAAC;IACnB,0BAA0B;IAC1B,aAAa,EAAE,OAAO,CAAC;IACvB,8BAA8B;IAC9B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,+CAA+C;IAC/C,cAAc,EAAE,OAAO,CAAC;IACxB,yCAAyC;IACzC,qBAAqB,EAAE,OAAO,CAAC;CAChC;AAED,MAAM,WAAW,iBAAiB;IAChC,GAAG,EAAE,eAAe,CAAC;IACrB,MAAM,EAAE,YAAY,CAAC;IACrB,QAAQ,EAAE,cAAc,CAAC;CAC1B"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/types/config.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,MAAM,MAAM,QAAQ,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC;AAE3D,MAAM,WAAW,eAAe;IAC9B;;;;OAIG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,iCAAiC;IACjC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,0EAA0E;IAC1E,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,uDAAuD;IACvD,OAAO,EAAE,MAAM,CAAC;IAChB,4CAA4C;IAC5C,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,YAAY;IAC3B,sBAAsB;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,yBAAyB;IACzB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,cAAc;IAC7B,uCAAuC;IACvC,QAAQ,EAAE,QAAQ,CAAC;IACnB,0BAA0B;IAC1B,aAAa,EAAE,OAAO,CAAC;IACvB,8BAA8B;IAC9B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,+CAA+C;IAC/C,cAAc,EAAE,OAAO,CAAC;IACxB,yCAAyC;IACzC,qBAAqB,EAAE,OAAO,CAAC;CAChC;AAED,MAAM,WAAW,iBAAiB;IAChC,GAAG,EAAE,eAAe,CAAC;IACrB,MAAM,EAAE,YAAY,CAAC;IACrB,QAAQ,EAAE,cAAc,CAAC;CAC1B"}
@@ -0,0 +1,21 @@
1
+ /**
2
+ * Shared error-classification helpers for tool handlers.
3
+ *
4
+ * These guards exist so individual tools don't reimplement substring-match
5
+ * heuristics that need to stay aligned with the registry API's error
6
+ * messaging. Centralizing them here means a single update site if the API
7
+ * error wording changes.
8
+ */
9
+ /**
10
+ * Detects the "cannot modify in 'published' status" validation error
11
+ * returned by the registry API when the caller targets an already-published
12
+ * version. Used by tools that implement smart-version-up-and-create
13
+ * fallback behavior (update_definition, update_and_publish).
14
+ *
15
+ * NOTE: this is substring-coupled to the API error message format. If the
16
+ * API changes that wording, this guard goes silent and the affected fallback
17
+ * paths stop triggering. Keep this in sync with uluops-registry-api's
18
+ * status-transition validator.
19
+ */
20
+ export declare function isPublishedStatusError(error: unknown): boolean;
21
+ //# sourceMappingURL=error-guards.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"error-guards.d.ts","sourceRoot":"","sources":["../../src/utils/error-guards.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAIH;;;;;;;;;;GAUG;AACH,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAM9D"}
@@ -0,0 +1,26 @@
1
+ /**
2
+ * Shared error-classification helpers for tool handlers.
3
+ *
4
+ * These guards exist so individual tools don't reimplement substring-match
5
+ * heuristics that need to stay aligned with the registry API's error
6
+ * messaging. Centralizing them here means a single update site if the API
7
+ * error wording changes.
8
+ */
9
+ import { isValidationError } from '@uluops/registry-sdk/errors';
10
+ /**
11
+ * Detects the "cannot modify in 'published' status" validation error
12
+ * returned by the registry API when the caller targets an already-published
13
+ * version. Used by tools that implement smart-version-up-and-create
14
+ * fallback behavior (update_definition, update_and_publish).
15
+ *
16
+ * NOTE: this is substring-coupled to the API error message format. If the
17
+ * API changes that wording, this guard goes silent and the affected fallback
18
+ * paths stop triggering. Keep this in sync with uluops-registry-api's
19
+ * status-transition validator.
20
+ */
21
+ export function isPublishedStatusError(error) {
22
+ return (isValidationError(error) &&
23
+ error instanceof Error &&
24
+ error.message.includes("'published' status"));
25
+ }
26
+ //# sourceMappingURL=error-guards.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"error-guards.js","sourceRoot":"","sources":["../../src/utils/error-guards.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAEhE;;;;;;;;;;GAUG;AACH,MAAM,UAAU,sBAAsB,CAAC,KAAc;IACnD,OAAO,CACL,iBAAiB,CAAC,KAAK,CAAC;QACxB,KAAK,YAAY,KAAK;QACtB,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAAC,CAC7C,CAAC;AACJ,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../../src/utils/logger.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAElD,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,QAAQ,CAAC;IAChB,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,MAAM;IACrB,KAAK,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,IAAI,CAAC;IACpE,IAAI,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,IAAI,CAAC;IACnE,IAAI,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,IAAI,CAAC;IACnE,KAAK,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,IAAI,CAAC;CACrE;AAsDD,wBAAgB,YAAY,CAAC,MAAM,EAAE,YAAY,GAAG,QAAQ,GAAG,MAAM,CAmDpE"}
1
+ {"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../../src/utils/logger.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAElD,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,QAAQ,CAAC;IAChB,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,MAAM;IACrB,KAAK,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,IAAI,CAAC;IACpE,IAAI,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,IAAI,CAAC;IACnE,IAAI,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,IAAI,CAAC;IACnE,KAAK,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,IAAI,CAAC;CACrE;AAiFD,wBAAgB,YAAY,CAAC,MAAM,EAAE,YAAY,GAAG,QAAQ,GAAG,MAAM,CAmDpE"}
@@ -3,7 +3,7 @@
3
3
  *
4
4
  * Logs to stderr (for MCP compatibility) and optionally to files.
5
5
  */
6
- import { appendFileSync, mkdirSync, existsSync } from 'node:fs';
6
+ import { appendFileSync, mkdirSync, existsSync, realpathSync } from 'node:fs';
7
7
  import { join, resolve, isAbsolute } from 'node:path';
8
8
  const LOG_LEVELS = {
9
9
  debug: 0,
@@ -27,20 +27,45 @@ function getLogFilePath(logDir) {
27
27
  /**
28
28
  * Validate that a log directory path is safe to write to.
29
29
  * Rejects paths containing traversal sequences or pointing outside the working tree.
30
+ * Dereferences symlinks before the containment check (CWE-59) so a symlink
31
+ * named e.g. './logs' pointing to /etc cannot escape the cwd/tmp constraint.
30
32
  */
31
33
  function validateLogDir(logDir) {
32
34
  const resolved = resolve(logDir);
33
- const cwd = process.cwd();
34
35
  // Reject path traversal patterns
35
36
  if (logDir.includes('..')) {
36
37
  throw new Error(`LOG_DIR must not contain path traversal sequences: ${logDir}`);
37
38
  }
39
+ // If the path already exists, dereference symlinks before the containment
40
+ // check (CWE-59). If it doesn't exist yet, mkdir below will create a real
41
+ // directory and the literal resolved path is the right comparison.
42
+ let real = resolved;
43
+ try {
44
+ real = realpathSync(resolved);
45
+ }
46
+ catch {
47
+ // Path doesn't exist; ensureLogDir() will create a regular directory.
48
+ }
49
+ // Dereference the comparison anchors too — on macOS /tmp is a symlink to
50
+ // /private/tmp, so a realpathSync'd `real` of /tmp/foo becomes
51
+ // /private/tmp/foo and would otherwise fail a literal startsWith('/tmp/')
52
+ // check.
53
+ const cwd = safeRealpath(process.cwd());
54
+ const tmpPrefixes = ['/tmp/', safeRealpath('/tmp') + '/'];
38
55
  // Absolute paths must be under cwd or a well-known logs location
39
- if (isAbsolute(logDir) && !resolved.startsWith(cwd) && !resolved.startsWith('/tmp/')) {
56
+ if (isAbsolute(logDir) && !real.startsWith(cwd) && !tmpPrefixes.some((p) => real.startsWith(p))) {
40
57
  throw new Error(`LOG_DIR absolute path must be under the working directory or /tmp/: ${logDir}`);
41
58
  }
42
59
  return resolved;
43
60
  }
61
+ function safeRealpath(p) {
62
+ try {
63
+ return realpathSync(p);
64
+ }
65
+ catch {
66
+ return p;
67
+ }
68
+ }
44
69
  function ensureLogDir(logDir) {
45
70
  if (!existsSync(logDir)) {
46
71
  mkdirSync(logDir, { recursive: true });
@@ -1 +1 @@
1
- {"version":3,"file":"logger.js","sourceRoot":"","sources":["../../src/utils/logger.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"logger.js","sourceRoot":"","sources":["../../src/utils/logger.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"read-yaml-file.d.ts","sourceRoot":"","sources":["../../src/utils/read-yaml-file.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,OAAO,EAAuB,KAAK,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAe5E;;;;;GAKG;AACH,wBAAgB,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAsDrD;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,CAAC,SAAS;IAAE,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,EAC9E,KAAK,EAAE,CAAC,EACR,OAAO,EAAE;IAAE,QAAQ,EAAE,OAAO,CAAA;CAAE,GAC7B,CAAC,GAAG,eAAe,CAWrB"}
1
+ {"version":3,"file":"read-yaml-file.d.ts","sourceRoot":"","sources":["../../src/utils/read-yaml-file.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,OAAO,EAAuB,KAAK,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAe5E;;;;;GAKG;AACH,wBAAgB,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAsErD;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,CAAC,SAAS;IAAE,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,EAC9E,KAAK,EAAE,CAAC,EACR,OAAO,EAAE;IAAE,QAAQ,EAAE,OAAO,CAAA;CAAE,GAC7B,CAAC,GAAG,eAAe,CAWrB"}
@@ -26,7 +26,22 @@ function getWorkspaceDir() {
26
26
  */
27
27
  export function readYamlFile(filePath) {
28
28
  const resolved = resolve(filePath);
29
- const workspaceDir = realpathSync(getWorkspaceDir());
29
+ // realpathSync throws ENOENT synchronously if WORKSPACE_DIR points to a
30
+ // path that doesn't exist (typo, mount not ready, fresh container).
31
+ // Wrap with a descriptive error so the user sees the WORKSPACE_DIR
32
+ // misconfiguration rather than a confusing 'no such file or directory'
33
+ // for the workspace root that they didn't realize they had to create.
34
+ const rawWorkspaceDir = getWorkspaceDir();
35
+ let workspaceDir;
36
+ try {
37
+ workspaceDir = realpathSync(rawWorkspaceDir);
38
+ }
39
+ catch (err) {
40
+ const reason = err instanceof Error ? err.message : String(err);
41
+ throw new Error(`WORKSPACE_DIR '${rawWorkspaceDir}' is not accessible. ` +
42
+ `Set the env var to an existing directory, or unset it to use cwd. ` +
43
+ `Underlying error: ${reason}`);
44
+ }
30
45
  // First check: catch obvious traversal before touching the filesystem
31
46
  if (!resolved.startsWith(workspaceDir + '/') && resolved !== workspaceDir) {
32
47
  throw new Error(`file_path must resolve within ${workspaceDir} — got ${resolved}`);
@@ -1 +1 @@
1
- {"version":3,"file":"read-yaml-file.js","sourceRoot":"","sources":["../../src/utils/read-yaml-file.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"read-yaml-file.js","sourceRoot":"","sources":["../../src/utils/read-yaml-file.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"tool-handler.d.ts","sourceRoot":"","sources":["../../src/utils/tool-handler.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,OAAO,EAAyB,KAAK,eAAe,EAAE,MAAM,mBAAmB,CAAC;AA+ChF;;;;;;;;;;;GAWG;AACH,KAAK,eAAe,GAAG,GAAG,CAAC;AAE3B;;;;;;;;;;;;;GAaG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACtE,MAAM,EAAE,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,EAC3B,OAAO,EAAE,CAIP,UAAU,EAAE,eAAe,KACxB,OAAO,CAAC,OAAO,CAAC,EACrB,OAAO,CAAC,EAAE;IACR,sIAAsI;IACtI,UAAU,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,GAAG,eAAe,CAAC;IACzD,0FAA0F;IAC1F,WAAW,CAAC,EAAE,CAAC,MAAM,EAAE,OAAO,KAAK,OAAO,CAAC;CAC5C,GACA,CAAC,IAAI,EAAE,OAAO,KAAK,OAAO,CAAC,eAAe,CAAC,CA8C7C;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,OAAO,GAAG,OAAO,CAWxD;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,OAAO,GAAG;IACjD,SAAS,EAAE,OAAO,CAAC;IACnB,MAAM,EAAE,MAAM,EAAE,GAAG,SAAS,CAAC;CAC9B,CAiBA;AAKD;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CA+B7E"}
1
+ {"version":3,"file":"tool-handler.d.ts","sourceRoot":"","sources":["../../src/utils/tool-handler.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,OAAO,EAAyB,KAAK,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAoDhF;;;;;;;;;;;GAWG;AACH,KAAK,eAAe,GAAG,GAAG,CAAC;AAE3B;;;;;;;;;;;;;GAaG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACtE,MAAM,EAAE,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,EAC3B,OAAO,EAAE,CAIP,UAAU,EAAE,eAAe,KACxB,OAAO,CAAC,OAAO,CAAC,EACrB,OAAO,CAAC,EAAE;IACR,sIAAsI;IACtI,UAAU,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,GAAG,eAAe,CAAC;IACzD,0FAA0F;IAC1F,WAAW,CAAC,EAAE,CAAC,MAAM,EAAE,OAAO,KAAK,OAAO,CAAC;CAC5C,GACA,CAAC,IAAI,EAAE,OAAO,KAAK,OAAO,CAAC,eAAe,CAAC,CAkD7C;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,OAAO,GAAG,OAAO,CAWxD;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,OAAO,GAAG;IACjD,SAAS,EAAE,OAAO,CAAC;IACnB,MAAM,EAAE,MAAM,EAAE,GAAG,SAAS,CAAC;CAC9B,CAiBA;AAKD;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CA+B7E"}
@@ -5,7 +5,7 @@
5
5
  * Eliminates boilerplate across tool implementations.
6
6
  */
7
7
  import { z } from 'zod';
8
- import { mapSdkErrorToMcp, mapZodErrorToMcp } from '../client/sdk-error-mapper.js';
8
+ import { mapSdkErrorToMcp, mapZodErrorToMcp, sanitizeErrorMessage } from '../client/sdk-error-mapper.js';
9
9
  import { normalizeKeys } from './normalize-keys.js';
10
10
  import { createSuccessResponse } from '../types/index.js';
11
11
  import { getDefaultType } from './session-state.js';
@@ -33,13 +33,21 @@ function coerceNumericFields(args, schema) {
33
33
  }
34
34
  return obj;
35
35
  }
36
- /** Check if a Zod schema (possibly wrapped in optional/nullable/default) expects a number. */
36
+ /**
37
+ * Check if a Zod schema (possibly wrapped in optional/nullable/default) expects a number.
38
+ * Uses Zod's public unwrap()/removeDefault() API rather than `_def.innerType`
39
+ * to avoid coupling to Zod's private internals — those can rename across
40
+ * minor Zod versions and break numeric coercion without compile-time warning.
41
+ */
37
42
  function isNumericSchema(schema) {
38
43
  if (schema instanceof z.ZodNumber)
39
44
  return true;
40
- if (schema instanceof z.ZodOptional || schema instanceof z.ZodNullable || schema instanceof z.ZodDefault) {
41
- return isNumericSchema(schema._def.innerType);
42
- }
45
+ if (schema instanceof z.ZodOptional)
46
+ return isNumericSchema(schema.unwrap());
47
+ if (schema instanceof z.ZodNullable)
48
+ return isNumericSchema(schema.unwrap());
49
+ if (schema instanceof z.ZodDefault)
50
+ return isNumericSchema(schema.removeDefault());
43
51
  return false;
44
52
  }
45
53
  /** Type guard: checks if a value is a complete MCP tool response (has content array). */
@@ -90,11 +98,15 @@ export function createToolHandler(schema, sdkCall, options) {
90
98
  return createSuccessResponse(result);
91
99
  }
92
100
  catch (error) {
93
- // Log errors to stderr for debugging (MCP transport uses stdout)
94
- const errorMsg = error instanceof Error ? error.message : String(error);
101
+ // Log errors to stderr for debugging (MCP transport uses stdout).
102
+ // Sanitize through the same credential-redaction filter used for MCP
103
+ // responses — SDK errors may embed API keys, session tokens, or URL
104
+ // userinfo in their messages, and stderr is captured by the harness.
105
+ const rawMsg = error instanceof Error ? error.message : String(error);
106
+ const errorMsg = sanitizeErrorMessage(rawMsg).slice(0, 200);
95
107
  const errorType = error instanceof z.ZodError ? 'validation' :
96
108
  error instanceof Error ? error.constructor.name : 'unknown';
97
- process.stderr.write(`[mcp-tool-error] type=${errorType} message=${errorMsg.slice(0, 200)}\n`);
109
+ process.stderr.write(`[mcp-tool-error] type=${errorType} message=${errorMsg}\n`);
98
110
  if (error instanceof z.ZodError) {
99
111
  return mapZodErrorToMcp(error);
100
112
  }