@salesforce/graphiti 11.35.1 → 11.35.3
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/CHANGELOG.md +10 -0
- package/dist/commands/mcp-mirror/run-mirror.js +15 -5
- package/dist/commands/mcp-mirror/run-mirror.js.map +1 -1
- package/dist/intent/build-discover.js +16 -3
- package/dist/intent/build-discover.js.map +1 -1
- package/dist/lib/control-chars.d.ts +25 -0
- package/dist/lib/control-chars.js +38 -0
- package/dist/lib/control-chars.js.map +1 -1
- package/dist/lib/query-builder.js +21 -3
- package/dist/lib/query-builder.js.map +1 -1
- package/dist/schemas/input-schemas.js +11 -2
- package/dist/schemas/input-schemas.js.map +1 -1
- package/dist/schemas/tool-adapter.d.ts +9 -0
- package/dist/schemas/tool-adapter.js +5 -2
- package/dist/schemas/tool-adapter.js.map +1 -1
- package/package.json +1 -1
- package/src/commands/mcp-mirror/__tests__/run-mirror.spec.ts +115 -0
- package/src/commands/mcp-mirror/run-mirror.ts +15 -5
- package/src/intent/__tests__/build-discover.spec.ts +162 -0
- package/src/intent/build-discover.ts +16 -3
- package/src/lib/__tests__/control-chars.spec.ts +68 -0
- package/src/lib/__tests__/query-builder.spec.ts +128 -0
- package/src/lib/control-chars.ts +38 -0
- package/src/lib/query-builder.ts +21 -3
- package/src/schemas/__tests__/input-schemas.spec.ts +67 -0
- package/src/schemas/input-schemas.ts +11 -2
- package/src/schemas/tool-adapter.ts +5 -2
package/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,16 @@
|
|
|
3
3
|
All notable changes to this project will be documented in this file.
|
|
4
4
|
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
|
5
5
|
|
|
6
|
+
## [11.35.3](https://github.com/salesforce-experience-platform-emu/webapps/compare/v11.35.2...v11.35.3) (2026-07-23)
|
|
7
|
+
|
|
8
|
+
**Note:** Version bump only for package @salesforce/graphiti
|
|
9
|
+
|
|
10
|
+
## [11.35.2](https://github.com/salesforce-experience-platform-emu/webapps/compare/v11.35.1...v11.35.2) (2026-07-22)
|
|
11
|
+
|
|
12
|
+
### Bug Fixes
|
|
13
|
+
|
|
14
|
+
- **graphiti:** neutralize control chars in non-error MCP reflection paths @W-23336442 ([#792](https://github.com/salesforce-experience-platform-emu/webapps/issues/792)) ([cd7f70d](https://github.com/salesforce-experience-platform-emu/webapps/commit/cd7f70de01007a54128a8fc9951378b0d59e59a5))
|
|
15
|
+
|
|
6
16
|
## [11.35.1](https://github.com/salesforce-experience-platform-emu/webapps/compare/v11.35.0...v11.35.1) (2026-07-22)
|
|
7
17
|
|
|
8
18
|
**Note:** Version bump only for package @salesforce/graphiti
|
|
@@ -5,6 +5,7 @@
|
|
|
5
5
|
*/
|
|
6
6
|
import { AuthError } from "../../lib/errors.js";
|
|
7
7
|
import { SchemaRefreshError } from "../../lib/prime-schema.js";
|
|
8
|
+
import { sanitizePaths } from "../../schemas/tool-adapter.js";
|
|
8
9
|
/**
|
|
9
10
|
* Best-effort classification of a plain `Error` message into a more specific
|
|
10
11
|
* code. The intent/auth layers throw plain `Error`s with no type signal, so the
|
|
@@ -96,22 +97,31 @@ schema, build, deps = {}) {
|
|
|
96
97
|
console.log(JSON.stringify(output));
|
|
97
98
|
}
|
|
98
99
|
catch (err) {
|
|
99
|
-
const
|
|
100
|
+
const rawMessage = err instanceof Error ? err.message : String(err);
|
|
101
|
+
// Classify on the RAW message (the heuristic keys off auth/schema wording;
|
|
102
|
+
// sanitizePaths would relativize a "~/.sf" hint to a marker and defeat it).
|
|
100
103
|
// Typed signals win; otherwise fall back to the best-effort message regex.
|
|
101
104
|
// AuthError is checked first because its message (W-23335328) reads "Schema
|
|
102
105
|
// priming failed … expired or unauthorized. Re-authenticate …" — that
|
|
103
106
|
// "priming" makes classifyErrorMessage return SCHEMA_PRIME_FAILED, so an
|
|
104
107
|
// untyped fallthrough would misclassify a 401/403 introspection failure as a
|
|
105
|
-
// schema problem (the exact Schema-vs-Auth confusion
|
|
108
|
+
// schema problem (the exact Schema-vs-Auth confusion W-23335328 fixes).
|
|
106
109
|
const code = err instanceof AuthError
|
|
107
110
|
? "AUTH_FAILED"
|
|
108
111
|
: err instanceof SchemaRefreshError
|
|
109
112
|
? "SCHEMA_PRIME_FAILED"
|
|
110
|
-
: classifyErrorMessage(
|
|
113
|
+
: classifyErrorMessage(rawMessage);
|
|
114
|
+
// W-23336442 (N2): emit the SANITIZED message, never the raw one. sanitizePaths
|
|
115
|
+
// redacts absolute filesystem paths (home dir, repo checkout, schema cache —
|
|
116
|
+
// W-22697673) AND neutralizes Cc/Cf control chars (bidi/zero-width/tag chars
|
|
117
|
+
// that JSON.stringify leaves raw), so a caller- or filesystem-derived error
|
|
118
|
+
// string can neither disclose local layout nor smuggle control chars to the host.
|
|
119
|
+
const message = sanitizePaths(rawMessage);
|
|
111
120
|
// The stack is omitted by default so the envelope never leaks internals;
|
|
112
|
-
// GRAPHITI_DEBUG=1 opts into attaching it under `details`
|
|
121
|
+
// GRAPHITI_DEBUG=1 opts into attaching it under `details` — and even then it is
|
|
122
|
+
// run through the same sanitizer so the opt-in debug stack cannot leak paths.
|
|
113
123
|
const details = process.env.GRAPHITI_DEBUG === "1" && err instanceof Error && err.stack
|
|
114
|
-
? { stack: err.stack }
|
|
124
|
+
? { stack: sanitizePaths(err.stack) }
|
|
115
125
|
: undefined;
|
|
116
126
|
emitError(code, message, details);
|
|
117
127
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"run-mirror.js","sourceRoot":"","sources":["../../../src/commands/mcp-mirror/run-mirror.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAChD,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;
|
|
1
|
+
{"version":3,"file":"run-mirror.js","sourceRoot":"","sources":["../../../src/commands/mcp-mirror/run-mirror.ts"],"names":[],"mappings":"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"}
|
|
@@ -7,6 +7,7 @@ import { getSchemaWithPriming } from "./get-schema-with-priming.js";
|
|
|
7
7
|
import { getOrgAuth as realGetOrgAuth } from "../lib/auth.js";
|
|
8
8
|
import { getObjectInfo as realGetObjectInfo, getRequiredCreateFields, } from "../lib/object-info.js";
|
|
9
9
|
import { resolvePath } from "../lib/walker.js";
|
|
10
|
+
import { neutralizeControlChars } from "../schemas/tool-adapter.js";
|
|
10
11
|
/**
|
|
11
12
|
* Build the `sf_gql_discover` payload. Three modes:
|
|
12
13
|
*
|
|
@@ -83,8 +84,12 @@ function listQueryableObjects(schema, search) {
|
|
|
83
84
|
result = walker.fields
|
|
84
85
|
.filter((f) => /Connection$/.test(f.typeName.replace(/[![\]]/g, "")))
|
|
85
86
|
.map((f) => ({
|
|
87
|
+
// `name` is a GraphQL field name (charset-guarded identifier) — left
|
|
88
|
+
// as-is. W-23336442: `label` is free-text org schema description
|
|
89
|
+
// reflected verbatim into the success envelope, so neutralize its
|
|
90
|
+
// Cc/Cf (bidi/zero-width/DEL) before it reaches the host.
|
|
86
91
|
name: f.name,
|
|
87
|
-
...(f.description ? { label: f.description } : {}),
|
|
92
|
+
...(f.description ? { label: neutralizeControlChars(f.description) } : {}),
|
|
88
93
|
}));
|
|
89
94
|
}
|
|
90
95
|
catch {
|
|
@@ -101,10 +106,18 @@ function toFieldDescription(field, info) {
|
|
|
101
106
|
const picklist = info.picklists.find((p) => p.apiName === field.apiName);
|
|
102
107
|
// `parseObjectInfoResponse` already drops null-valued entries, but the
|
|
103
108
|
// PicklistValue type still allows null — filter narrows to string[].
|
|
104
|
-
|
|
109
|
+
// W-23336442: picklist `value` is free-text org metadata reflected verbatim
|
|
110
|
+
// into the success envelope — neutralize Cc/Cf before it reaches the host.
|
|
111
|
+
const picklistValues = picklist?.values
|
|
112
|
+
.map((v) => v.value)
|
|
113
|
+
.filter((v) => v !== null)
|
|
114
|
+
.map(neutralizeControlChars) ?? [];
|
|
105
115
|
return {
|
|
116
|
+
// W-23336442: `name`/`type` are identifier/system-enum (already charset-
|
|
117
|
+
// safe) so pass through; `label` is free-text org metadata, so neutralize
|
|
118
|
+
// its Cc/Cf (bidi/zero-width/DEL) on this success-envelope reflection path.
|
|
106
119
|
name: field.apiName,
|
|
107
|
-
label: field.label ?? field.apiName,
|
|
120
|
+
label: neutralizeControlChars(field.label ?? field.apiName),
|
|
108
121
|
type: field.dataType ?? "UNKNOWN",
|
|
109
122
|
filterable: field.filterable,
|
|
110
123
|
sortable: field.sortable,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"build-discover.js","sourceRoot":"","sources":["../../src/intent/build-discover.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AAOpE,OAAO,EAAE,UAAU,IAAI,cAAc,EAAgB,MAAM,gBAAgB,CAAC;AAC5E,OAAO,EAEN,aAAa,IAAI,iBAAiB,EAClC,uBAAuB,GAEvB,MAAM,uBAAuB,CAAC;AAE/B,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"build-discover.js","sourceRoot":"","sources":["../../src/intent/build-discover.ts"],"names":[],"mappings":"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"}
|
|
@@ -42,6 +42,31 @@ export declare const CONTROL_CHAR_RE: RegExp;
|
|
|
42
42
|
* CJK labels) is untouched.
|
|
43
43
|
*/
|
|
44
44
|
export declare function stripControlChars(s: string): string;
|
|
45
|
+
/**
|
|
46
|
+
* Escape every {@link CONTROL_CHAR_RE} code point to a GraphQL-valid `\uXXXX`
|
|
47
|
+
* escape, for reflection into a LIVE GraphQL DOCUMENT — the value-emission sites
|
|
48
|
+
* in `lib/query-builder.ts` (`sf_gql_list` scope/filter/orderBy values, and any
|
|
49
|
+
* nested input-object string, W-23336442). `JSON.stringify` already escapes the
|
|
50
|
+
* C0 range (U+0000-U+001F) when it builds the quoted literal, but leaves DEL
|
|
51
|
+
* (U+007F) and the ENTIRE Cf class (bidi overrides, zero-width, BOM, tag block)
|
|
52
|
+
* raw inside the quotes; this post-pass converts those survivors so the emitted
|
|
53
|
+
* query still `graphql.parse()`s and carries no smuggled/reordering code points.
|
|
54
|
+
*
|
|
55
|
+
* WHY `\uXXXX`-ONLY (and NOT the `\xNN` / `\u{...}` forms that
|
|
56
|
+
* `neutralizeControlChars` in `schemas/tool-adapter.ts` emits): the output here
|
|
57
|
+
* is a GraphQL string literal, whose grammar accepts ONLY `\uXXXX` (four fixed
|
|
58
|
+
* hex digits) as a Unicode escape. `\xNN` is not a GraphQL escape at all — it
|
|
59
|
+
* would make the document un-parseable — and the variable-width `\u{...}` form
|
|
60
|
+
* is not accepted by every GraphQL parser. So this escaper deliberately DIVERGES
|
|
61
|
+
* from the plain-JSON `neutralizeControlChars` (whose `\xNN`/`\u{...}` output is
|
|
62
|
+
* fine for a JSON envelope but fatal in a query):
|
|
63
|
+
* - BMP code points -> a single lower-case `\uXXXX` (4 hex).
|
|
64
|
+
* - Astral code points (e.g. the U+E0000-E007F tag block) -> a UTF-16 surrogate
|
|
65
|
+
* PAIR `\uXXXX\uXXXX`, which is universally GraphQL-valid, rather than `\u{...}`.
|
|
66
|
+
* Ordinary Unicode (accented names, CJK labels, emoji) and the Zl/Zp separators
|
|
67
|
+
* are untouched — they are outside the Cc/Cf class (see {@link CONTROL_CHAR_RE}).
|
|
68
|
+
*/
|
|
69
|
+
export declare function escapeControlCharsGraphQL(s: string): string;
|
|
45
70
|
/**
|
|
46
71
|
* Unicode line/paragraph separators (U+2028 Zl / U+2029 Zp). These are legal in
|
|
47
72
|
* JSON strings and are NOT escaped by `JSON.stringify`, and left raw in
|
|
@@ -44,6 +44,44 @@ export const CONTROL_CHAR_RE = /[\p{Cc}\p{Cf}]/gu;
|
|
|
44
44
|
export function stripControlChars(s) {
|
|
45
45
|
return s.replace(CONTROL_CHAR_RE, "");
|
|
46
46
|
}
|
|
47
|
+
/**
|
|
48
|
+
* Escape every {@link CONTROL_CHAR_RE} code point to a GraphQL-valid `\uXXXX`
|
|
49
|
+
* escape, for reflection into a LIVE GraphQL DOCUMENT — the value-emission sites
|
|
50
|
+
* in `lib/query-builder.ts` (`sf_gql_list` scope/filter/orderBy values, and any
|
|
51
|
+
* nested input-object string, W-23336442). `JSON.stringify` already escapes the
|
|
52
|
+
* C0 range (U+0000-U+001F) when it builds the quoted literal, but leaves DEL
|
|
53
|
+
* (U+007F) and the ENTIRE Cf class (bidi overrides, zero-width, BOM, tag block)
|
|
54
|
+
* raw inside the quotes; this post-pass converts those survivors so the emitted
|
|
55
|
+
* query still `graphql.parse()`s and carries no smuggled/reordering code points.
|
|
56
|
+
*
|
|
57
|
+
* WHY `\uXXXX`-ONLY (and NOT the `\xNN` / `\u{...}` forms that
|
|
58
|
+
* `neutralizeControlChars` in `schemas/tool-adapter.ts` emits): the output here
|
|
59
|
+
* is a GraphQL string literal, whose grammar accepts ONLY `\uXXXX` (four fixed
|
|
60
|
+
* hex digits) as a Unicode escape. `\xNN` is not a GraphQL escape at all — it
|
|
61
|
+
* would make the document un-parseable — and the variable-width `\u{...}` form
|
|
62
|
+
* is not accepted by every GraphQL parser. So this escaper deliberately DIVERGES
|
|
63
|
+
* from the plain-JSON `neutralizeControlChars` (whose `\xNN`/`\u{...}` output is
|
|
64
|
+
* fine for a JSON envelope but fatal in a query):
|
|
65
|
+
* - BMP code points -> a single lower-case `\uXXXX` (4 hex).
|
|
66
|
+
* - Astral code points (e.g. the U+E0000-E007F tag block) -> a UTF-16 surrogate
|
|
67
|
+
* PAIR `\uXXXX\uXXXX`, which is universally GraphQL-valid, rather than `\u{...}`.
|
|
68
|
+
* Ordinary Unicode (accented names, CJK labels, emoji) and the Zl/Zp separators
|
|
69
|
+
* are untouched — they are outside the Cc/Cf class (see {@link CONTROL_CHAR_RE}).
|
|
70
|
+
*/
|
|
71
|
+
export function escapeControlCharsGraphQL(s) {
|
|
72
|
+
return s.replace(CONTROL_CHAR_RE, (c) => {
|
|
73
|
+
// CONTROL_CHAR_RE carries the `u` flag, so an astral char matches as one
|
|
74
|
+
// code point; codePointAt(0) recovers its full scalar value.
|
|
75
|
+
const cp = c.codePointAt(0) ?? 0;
|
|
76
|
+
if (cp <= 0xffff)
|
|
77
|
+
return `\\u${cp.toString(16).padStart(4, "0")}`;
|
|
78
|
+
// Astral: split into a high/low UTF-16 surrogate pair (never `\u{...}`).
|
|
79
|
+
const v = cp - 0x10000;
|
|
80
|
+
const hi = 0xd800 + (v >> 10);
|
|
81
|
+
const lo = 0xdc00 + (v & 0x3ff);
|
|
82
|
+
return `\\u${hi.toString(16).padStart(4, "0")}\\u${lo.toString(16).padStart(4, "0")}`;
|
|
83
|
+
});
|
|
84
|
+
}
|
|
47
85
|
/**
|
|
48
86
|
* Unicode line/paragraph separators (U+2028 Zl / U+2029 Zp). These are legal in
|
|
49
87
|
* JSON strings and are NOT escaped by `JSON.stringify`, and left raw in
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"control-chars.js","sourceRoot":"","sources":["../../src/lib/control-chars.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG,kBAAkB,CAAC;AAElD;;;;;;GAMG;AACH,MAAM,UAAU,iBAAiB,CAAC,CAAS;IAC1C,OAAO,CAAC,CAAC,OAAO,CAAC,eAAe,EAAE,EAAE,CAAC,CAAC;AACvC,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG,iBAAiB,CAAC;AAEnD,kEAAkE;AAClE,MAAM,UAAU,mBAAmB,CAAC,CAAS;IAC5C,OAAO,CAAC,CAAC,OAAO,CAAC,iBAAiB,EAAE,EAAE,CAAC,CAAC;AACzC,CAAC"}
|
|
1
|
+
{"version":3,"file":"control-chars.js","sourceRoot":"","sources":["../../src/lib/control-chars.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG,kBAAkB,CAAC;AAElD;;;;;;GAMG;AACH,MAAM,UAAU,iBAAiB,CAAC,CAAS;IAC1C,OAAO,CAAC,CAAC,OAAO,CAAC,eAAe,EAAE,EAAE,CAAC,CAAC;AACvC,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,MAAM,UAAU,yBAAyB,CAAC,CAAS;IAClD,OAAO,CAAC,CAAC,OAAO,CAAC,eAAe,EAAE,CAAC,CAAC,EAAE,EAAE;QACvC,yEAAyE;QACzE,6DAA6D;QAC7D,MAAM,EAAE,GAAG,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QACjC,IAAI,EAAE,IAAI,MAAM;YAAE,OAAO,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC;QAClE,yEAAyE;QACzE,MAAM,CAAC,GAAG,EAAE,GAAG,OAAO,CAAC;QACvB,MAAM,EAAE,GAAG,MAAM,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;QAC9B,MAAM,EAAE,GAAG,MAAM,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC;QAChC,OAAO,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC;IACvF,CAAC,CAAC,CAAC;AACJ,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG,iBAAiB,CAAC;AAEnD,kEAAkE;AAClE,MAAM,UAAU,mBAAmB,CAAC,CAAS;IAC5C,OAAO,CAAC,CAAC,OAAO,CAAC,iBAAiB,EAAE,EAAE,CAAC,CAAC;AACzC,CAAC"}
|
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
* All rights reserved.
|
|
4
4
|
* For full license text, see the LICENSE.txt file
|
|
5
5
|
*/
|
|
6
|
+
import { escapeControlCharsGraphQL } from "./control-chars.js";
|
|
6
7
|
import { UserInputError } from "./errors.js";
|
|
7
8
|
import { assertGraphqlName, GRAPHQL_NAME_RE } from "./graphql-name.js";
|
|
8
9
|
import { getChildren, getEffectiveArgs } from "./session.js";
|
|
@@ -252,8 +253,11 @@ function formatArgValue(value) {
|
|
|
252
253
|
// single literal.
|
|
253
254
|
if (trimmed.startsWith('"') && trimmed.endsWith('"')) {
|
|
254
255
|
try {
|
|
256
|
+
// W-23336442: even a well-formed single literal can carry raw DEL/Cf
|
|
257
|
+
// inside the quotes (JSON permits them raw), so escape before passthrough
|
|
258
|
+
// (see the default branch below for the full rationale).
|
|
255
259
|
if (typeof JSON.parse(trimmed) === "string")
|
|
256
|
-
return trimmed;
|
|
260
|
+
return escapeControlCharsGraphQL(trimmed);
|
|
257
261
|
}
|
|
258
262
|
catch {
|
|
259
263
|
// Not a single well-formed literal — re-encode below.
|
|
@@ -264,7 +268,15 @@ function formatArgValue(value) {
|
|
|
264
268
|
// quotes/backslashes — so values like "a\nb" don't render a raw newline that
|
|
265
269
|
// graphql.parse() would reject as an unterminated string. (U+2028/U+2029 pass
|
|
266
270
|
// through raw and are handled at the MCP text boundary, not here.)
|
|
267
|
-
|
|
271
|
+
//
|
|
272
|
+
// W-23336442: JSON.stringify escapes ONLY the C0 range (U+0000-U+001F); it
|
|
273
|
+
// leaves DEL (U+007F) and the entire Cf class (bidi overrides, zero-width, BOM,
|
|
274
|
+
// tag block) RAW inside the quoted literal. This query is a LIVE GraphQL
|
|
275
|
+
// document reflected to the host, so those survivors would smuggle/reorder text
|
|
276
|
+
// (sf_gql_list scope/filter/orderBy values reach here verbatim). Post-pass with
|
|
277
|
+
// escapeControlCharsGraphQL, which emits GraphQL-valid `\uXXXX` (never `\xNN`,
|
|
278
|
+
// which GraphQL rejects) so the query still graphql.parse()s.
|
|
279
|
+
return escapeControlCharsGraphQL(JSON.stringify(trimmed));
|
|
268
280
|
}
|
|
269
281
|
/**
|
|
270
282
|
* Converts a JSON string to GraphQL object literal syntax.
|
|
@@ -319,7 +331,13 @@ function valueToGraphQL(value) {
|
|
|
319
331
|
// terminators and control chars (\n \r \t \b \f), unlike a manual \ / " escape
|
|
320
332
|
// which would leave a raw newline that graphql.parse() rejects. (U+2028/U+2029
|
|
321
333
|
// pass through raw and are handled at the MCP text boundary, not here.)
|
|
322
|
-
|
|
334
|
+
//
|
|
335
|
+
// W-23336442: JSON.stringify escapes only C0, leaving DEL (U+007F) + the Cf
|
|
336
|
+
// class raw inside the literal. This is a nested input-object string value in
|
|
337
|
+
// a LIVE GraphQL document (filter/orderBy values JSON.stringify'd into a
|
|
338
|
+
// `where` arg reach here), so post-pass with escapeControlCharsGraphQL to emit
|
|
339
|
+
// GraphQL-valid `\uXXXX` (never `\xNN`) — same rationale as formatArgValue.
|
|
340
|
+
return escapeControlCharsGraphQL(JSON.stringify(value));
|
|
323
341
|
}
|
|
324
342
|
if (Array.isArray(value)) {
|
|
325
343
|
return `[${value.map(valueToGraphQL).join(", ")}]`;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"query-builder.js","sourceRoot":"","sources":["../../src/lib/query-builder.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"query-builder.js","sourceRoot":"","sources":["../../src/lib/query-builder.ts"],"names":[],"mappings":"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"}
|
|
@@ -87,8 +87,17 @@ export const DETAIL_INPUT = z
|
|
|
87
87
|
// to safe API-name charsets so downstream layers can trust them.
|
|
88
88
|
const DISCOVER_ORG_ALIAS_RE = /^[A-Za-z0-9_-]{1,80}$/;
|
|
89
89
|
const DISCOVER_SOBJECT_NAME_RE = /^[A-Za-z][A-Za-z0-9_]{0,79}$/;
|
|
90
|
-
//
|
|
91
|
-
|
|
90
|
+
// Mirrors CONTROL_CHAR_RE's Cc/Cf class (lib/control-chars.ts): a search
|
|
91
|
+
// string carrying bidi overrides / zero-width / tag chars (all Cf) is the same
|
|
92
|
+
// host-reflection threat as the C0/DEL (Cc) chars the earlier range caught —
|
|
93
|
+
// `search` is reflected verbatim through the SUCCESS envelope
|
|
94
|
+
// (tool-adapter.ts runTool), which neutralizes neither Cc nor Cf (W-23336442).
|
|
95
|
+
// The Unicode property escape tracks future Cc/Cf additions so this guard
|
|
96
|
+
// cannot drift from the canonical class. Unlike the enum-rejection stripper,
|
|
97
|
+
// this REJECTS rather than strips: `search` is a free-text substring filter,
|
|
98
|
+
// not an enum, so there is no allowed-value round-trip to preserve. The `u`
|
|
99
|
+
// flag is REQUIRED for the \p escapes.
|
|
100
|
+
const DISCOVER_SEARCH_RE = /^[^\p{Cc}\p{Cf}]*$/u;
|
|
92
101
|
export const DISCOVER_INPUT = z.object({
|
|
93
102
|
org: z
|
|
94
103
|
.string()
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"input-schemas.js","sourceRoot":"","sources":["../../src/schemas/input-schemas.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"input-schemas.js","sourceRoot":"","sources":["../../src/schemas/input-schemas.ts"],"names":[],"mappings":"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"}
|
|
@@ -63,6 +63,15 @@ export declare const PATH_MARKERS: {
|
|
|
63
63
|
* carries the `u` flag so they match (and escape) as a single code point.
|
|
64
64
|
*/
|
|
65
65
|
export declare function neutralizeControlChars(s: string): string;
|
|
66
|
+
/**
|
|
67
|
+
* Redact local filesystem layout from error text so the MCP host never sees the
|
|
68
|
+
* developer's home dir, OS username, repo checkout location, or schema-cache
|
|
69
|
+
* path (W-22697673 info-disclosure). Applied to every category's message. Also
|
|
70
|
+
* neutralizes Cc/Cf control chars (via `neutralizeControlChars`, LAST) so it is
|
|
71
|
+
* the single primitive the CLI mirror's error path reuses to sanitize a raw
|
|
72
|
+
* `err.message`/stack before emitting it (W-23336442, N2).
|
|
73
|
+
*/
|
|
74
|
+
export declare function sanitizePaths(s: string): string;
|
|
66
75
|
/**
|
|
67
76
|
* Classify a thrown error into a category, a Schema-only retry hint, and a
|
|
68
77
|
* sanitized message text. `retry` is `"no"` for every non-Schema category.
|
|
@@ -75,9 +75,12 @@ export function neutralizeControlChars(s) {
|
|
|
75
75
|
/**
|
|
76
76
|
* Redact local filesystem layout from error text so the MCP host never sees the
|
|
77
77
|
* developer's home dir, OS username, repo checkout location, or schema-cache
|
|
78
|
-
* path (W-22697673 info-disclosure). Applied to every category's message.
|
|
78
|
+
* path (W-22697673 info-disclosure). Applied to every category's message. Also
|
|
79
|
+
* neutralizes Cc/Cf control chars (via `neutralizeControlChars`, LAST) so it is
|
|
80
|
+
* the single primitive the CLI mirror's error path reuses to sanitize a raw
|
|
81
|
+
* `err.message`/stack before emitting it (W-23336442, N2).
|
|
79
82
|
*/
|
|
80
|
-
function sanitizePaths(s) {
|
|
83
|
+
export function sanitizePaths(s) {
|
|
81
84
|
let out = stripLineSeparators(s).replace(/file:\/\//g, "");
|
|
82
85
|
// 1) Repo-internal: drop any absolute prefix before packages/ or node_modules/
|
|
83
86
|
// so a frame relativizes to `packages/graphiti/...` regardless of checkout.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tool-adapter.js","sourceRoot":"","sources":["../../src/schemas/tool-adapter.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,EAAE,eAAe,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAC/E,OAAO,EACN,SAAS,EACT,aAAa,EAEb,WAAW,EACX,cAAc,GACd,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAC/D,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAC5D,OAAO,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AA0CxD,gFAAgF;AAChF,+EAA+E;AAC/E,uEAAuE;AACvE,gFAAgF;AAChF,mFAAmF;AACnF,MAAM,aAAa,GAClB,8bAA8b,CAAC;AAEhc,6EAA6E;AAC7E,4EAA4E;AAC5E,MAAM,SAAS,GACd,gGAAgG,CAAC;AAClG,MAAM,OAAO,GAAG,0EAA0E,CAAC;AAE3F;;;;GAIG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG;IAC3B,WAAW,EAAE,gBAAgB;IAC7B,YAAY,EAAE,iBAAiB;IAC/B,IAAI,EAAE,GAAG;IACT,QAAQ,EAAE,QAAQ;CACT,CAAC;AAEX,iFAAiF;AACjF,uFAAuF;AACvF,2EAA2E;AAC3E,EAAE;AACF,0EAA0E;AAC1E,gFAAgF;AAChF,gFAAgF;AAChF,4EAA4E;AAC5E,2DAA2D;AAC3D,gFAAgF;AAChF,iFAAiF;AACjF,kFAAkF;AAClF,kFAAkF;AAClF,kFAAkF;AAClF,iFAAiF;AACjF,8EAA8E;AAC9E,8EAA8E;AAC9E,0EAA0E;AAC1E,mFAAmF;AACnF,iFAAiF;AACjF,8EAA8E;AAC9E,qFAAqF;AACrF,iFAAiF;AAEjF;;;;;;;;GAQG;AACH,MAAM,UAAU,sBAAsB,CAAC,CAAS;IAC/C,OAAO,CAAC,CAAC,OAAO,CAAC,eAAe,EAAE,CAAC,CAAC,EAAE,EAAE;QACvC,MAAM,EAAE,GAAG,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QACjC,IAAI,EAAE,IAAI,IAAI;YAAE,OAAO,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC;QAChE,IAAI,EAAE,IAAI,MAAM;YAAE,OAAO,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC;QAClE,OAAO,OAAO,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,GAAG,CAAC;IAClC,CAAC,CAAC,CAAC;AACJ,CAAC;AAED
|
|
1
|
+
{"version":3,"file":"tool-adapter.js","sourceRoot":"","sources":["../../src/schemas/tool-adapter.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -9,6 +9,7 @@ import { z } from "zod";
|
|
|
9
9
|
import { captureStdout } from "../../../__tests__/helpers/stdout.js";
|
|
10
10
|
import { AuthError } from "../../../lib/errors.js";
|
|
11
11
|
import { SchemaRefreshError } from "../../../lib/prime-schema.js";
|
|
12
|
+
import { PATH_MARKERS } from "../../../schemas/tool-adapter.js";
|
|
12
13
|
import { runMirror } from "../run-mirror.js";
|
|
13
14
|
|
|
14
15
|
const SCHEMA = z.object({ org: z.string().min(1), object: z.string() });
|
|
@@ -288,4 +289,118 @@ describe("runMirror", () => {
|
|
|
288
289
|
else process.env.GRAPHITI_DEBUG = prev;
|
|
289
290
|
}
|
|
290
291
|
});
|
|
292
|
+
|
|
293
|
+
// W-23336442 (N2): the mirror error path must SANITIZE the thrown message —
|
|
294
|
+
// redact absolute filesystem paths (W-22697673) and neutralize Cc/Cf control
|
|
295
|
+
// chars (bidi/zero-width/DEL that JSON.stringify leaves raw) — before it reaches
|
|
296
|
+
// the host. Injected code points are `\u` escapes so the source has no raw bytes;
|
|
297
|
+
// the trio U+202E/U+200B/U+007F is exactly what JSON.stringify does NOT escape.
|
|
298
|
+
describe("W-23336442 N2 — error-path sanitization", () => {
|
|
299
|
+
const BIDI = "\u{202e}";
|
|
300
|
+
const ZWSP = "\u{200b}";
|
|
301
|
+
const DEL = "\x7f";
|
|
302
|
+
|
|
303
|
+
it("neutralizes Cc/Cf control chars in the emitted message (not raw)", async () => {
|
|
304
|
+
const build = async () => {
|
|
305
|
+
throw new Error(`something ${BIDI}unexpected${ZWSP} happened${DEL}`);
|
|
306
|
+
};
|
|
307
|
+
|
|
308
|
+
const out = await captureStdout(() =>
|
|
309
|
+
runMirror('{"org":"o","object":"Account"}', SCHEMA, build),
|
|
310
|
+
);
|
|
311
|
+
|
|
312
|
+
const parsed = JSON.parse(out);
|
|
313
|
+
expect(parsed.error.code).toBe("INTERNAL");
|
|
314
|
+
// The specific injected code points must be ABSENT (escaped away), while
|
|
315
|
+
// the ordinary text survives so the message stays debuggable.
|
|
316
|
+
expect(parsed.error.message).not.toContain(BIDI);
|
|
317
|
+
expect(parsed.error.message).not.toContain(ZWSP);
|
|
318
|
+
expect(parsed.error.message).not.toContain(DEL);
|
|
319
|
+
expect(parsed.error.message).toContain("something");
|
|
320
|
+
expect(parsed.error.message).toContain("unexpected");
|
|
321
|
+
expect(parsed.error.message).toContain("happened");
|
|
322
|
+
});
|
|
323
|
+
|
|
324
|
+
it("redacts an absolute filesystem path in the emitted message", async () => {
|
|
325
|
+
const build = async () => {
|
|
326
|
+
throw new Error("ENOENT: cannot open /Users/someone/secret/creds.json");
|
|
327
|
+
};
|
|
328
|
+
|
|
329
|
+
const out = await captureStdout(() =>
|
|
330
|
+
runMirror('{"org":"o","object":"Account"}', SCHEMA, build),
|
|
331
|
+
);
|
|
332
|
+
|
|
333
|
+
const parsed = JSON.parse(out);
|
|
334
|
+
expect(parsed.error.message).not.toContain("/Users/someone/secret");
|
|
335
|
+
expect(parsed.error.message).toContain(PATH_MARKERS.redacted);
|
|
336
|
+
});
|
|
337
|
+
|
|
338
|
+
it("sanitizes the GRAPHITI_DEBUG=1 stack so the opt-in debug frames leak no path", async () => {
|
|
339
|
+
const prev = process.env.GRAPHITI_DEBUG;
|
|
340
|
+
process.env.GRAPHITI_DEBUG = "1";
|
|
341
|
+
try {
|
|
342
|
+
const build = async () => {
|
|
343
|
+
// A hand-built stack carrying an absolute path frame — proves the
|
|
344
|
+
// debug opt-in runs the stack through sanitizePaths too.
|
|
345
|
+
const e = new Error("boom");
|
|
346
|
+
e.stack = "Error: boom\n at fn (/Users/someone/dev/repo/pkg/file.ts:1:1)";
|
|
347
|
+
throw e;
|
|
348
|
+
};
|
|
349
|
+
|
|
350
|
+
const out = await captureStdout(() =>
|
|
351
|
+
runMirror('{"org":"o","object":"Account"}', SCHEMA, build),
|
|
352
|
+
);
|
|
353
|
+
|
|
354
|
+
const parsed = JSON.parse(out);
|
|
355
|
+
expect(parsed.error.code).toBe("INTERNAL");
|
|
356
|
+
expect(parsed.error.details.stack).toContain("boom");
|
|
357
|
+
expect(parsed.error.details.stack).not.toContain("/Users/someone/dev/repo");
|
|
358
|
+
} finally {
|
|
359
|
+
if (prev === undefined) delete process.env.GRAPHITI_DEBUG;
|
|
360
|
+
else process.env.GRAPHITI_DEBUG = prev;
|
|
361
|
+
}
|
|
362
|
+
});
|
|
363
|
+
|
|
364
|
+
it("still classifies a ~/.sf auth message as AUTH_FAILED (code mapping intact)", async () => {
|
|
365
|
+
const build = async () => {
|
|
366
|
+
throw new Error("Could not read credentials from ~/.sf");
|
|
367
|
+
};
|
|
368
|
+
|
|
369
|
+
const out = await captureStdout(() =>
|
|
370
|
+
runMirror('{"org":"o","object":"Account"}', SCHEMA, build),
|
|
371
|
+
);
|
|
372
|
+
|
|
373
|
+
// Basic smoke: an auth-keyworded message routes to AUTH_FAILED. Note this
|
|
374
|
+
// input alone can't prove classification reads the RAW vs. the sanitized
|
|
375
|
+
// text — "~/.sf" is already relative (single segment, no leading "/"), so
|
|
376
|
+
// sanitizePaths leaves it byte-for-byte unchanged. The next test pins the
|
|
377
|
+
// raw-vs-sanitized choice with a keyword that ONLY survives in the raw.
|
|
378
|
+
expect(JSON.parse(out).error.code).toBe("AUTH_FAILED");
|
|
379
|
+
});
|
|
380
|
+
|
|
381
|
+
it("classifies AUTH from the RAW message even when the auth keyword sits in a path that redaction eats", async () => {
|
|
382
|
+
// The load-bearing case for `classifyErrorMessage(rawMessage)` (run-mirror.ts):
|
|
383
|
+
// the auth hint lives INSIDE an absolute path (…/auth-service/…). Classify on
|
|
384
|
+
// the raw string → `\bauth\b` matches → AUTH_FAILED. But sanitizePaths redacts
|
|
385
|
+
// the whole path to `<path>`, deleting the keyword — so classifying on the
|
|
386
|
+
// SANITIZED text would fall through to INTERNAL. Swapping the classify input
|
|
387
|
+
// to the sanitized `message` would silently regress this, and only this test
|
|
388
|
+
// would catch it (the ~/.sf smoke above is sanitize-invariant).
|
|
389
|
+
const build = async () => {
|
|
390
|
+
throw new Error("Could not read token /var/lib/auth-service/creds.db");
|
|
391
|
+
};
|
|
392
|
+
|
|
393
|
+
const out = await captureStdout(() =>
|
|
394
|
+
runMirror('{"org":"o","object":"Account"}', SCHEMA, build),
|
|
395
|
+
);
|
|
396
|
+
|
|
397
|
+
const parsed = JSON.parse(out);
|
|
398
|
+
// Classified on the RAW message (keyword still present there).
|
|
399
|
+
expect(parsed.error.code).toBe("AUTH_FAILED");
|
|
400
|
+
// Emitted message is the SANITIZED one: the path — and with it the "auth"
|
|
401
|
+
// keyword — is redacted, so the two inputs to classification truly diverge.
|
|
402
|
+
expect(parsed.error.message).toContain(PATH_MARKERS.redacted);
|
|
403
|
+
expect(parsed.error.message).not.toContain("auth");
|
|
404
|
+
});
|
|
405
|
+
});
|
|
291
406
|
});
|