react-native-ai-debugger 2.10.0 → 2.10.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/build/__tests__/unit/httpRequest.test.js +61 -4
- package/build/__tests__/unit/httpRequest.test.js.map +1 -1
- package/build/core/guides.d.ts.map +1 -1
- package/build/core/guides.js +15 -1
- package/build/core/guides.js.map +1 -1
- package/build/core/httpRequest.d.ts +9 -7
- package/build/core/httpRequest.d.ts.map +1 -1
- package/build/core/httpRequest.js +13 -4
- package/build/core/httpRequest.js.map +1 -1
- package/build/tools/requestTools.d.ts.map +1 -1
- package/build/tools/requestTools.js +10 -6
- package/build/tools/requestTools.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -53,7 +53,7 @@ Linking is also how [ExecBro Pro](#pricing) attaches to your installation, if yo
|
|
|
53
53
|
### Credential Safety
|
|
54
54
|
|
|
55
55
|
- **Secrets never enter the transcript** - Every tool's output passes one redaction chokepoint, so a token is replaced by a handle (`[secret:auth_api.acme.io]`) whether it appears in a network header, a Redux store, a log line or a URL. Credential headers are matched by pattern rather than a fixed list, so vendor-namespaced ones (`x-shopify-access-token`, `x-goog-api-key`, `x-hasura-admin-secret`) are covered too, while `x-request-id` and `x-idempotency-key` are deliberately left alone. There is no per-call escape: `EXECBRO_REDACT=off` is set by a human and needs a restart
|
|
56
|
-
- **Use a credential without reading it** - `list_secrets` names the handles; `http_request({auth:{secret:"api.acme.io"}})` substitutes the value host-side and issues the request from your machine, and `vault_capture` reads a token out of the app straight into the vault when no captured request revealed one. Each credential is bound to the origin it was observed on and refused elsewhere; the vault is memory-only
|
|
56
|
+
- **Use a credential without reading it** - `list_secrets` names the handles; `http_request({auth:{secret:"api.acme.io"}})` substitutes the value host-side and issues the request from your machine — as `Authorization: Bearer` by default, or in a key header or another scheme, so a credential never has to be pasted in to cover an unsupported shape, and `vault_capture` reads a token out of the app straight into the vault when no captured request revealed one. Each credential is bound to the origin it was observed on and refused elsewhere; the vault is memory-only
|
|
57
57
|
- **Server- vs client-side, isolated** - `http_request` runs from the host with none of the app's TLS trust, proxy, cookie jar or mock rules; `app_request` runs inside the app with all of them. Comparing the two is how you tell a backend bug from a client one — and a 401 from the host where the app succeeds is itself the answer that the backend enforces attestation
|
|
58
58
|
- **App data is treated as data** - The server tells every connecting agent that logs, payloads, component trees and eval results are shaped by whatever the app talked to, and are never to be followed as instructions
|
|
59
59
|
|
|
@@ -21,8 +21,9 @@ describe("resolveAuth origin binding", () => {
|
|
|
21
21
|
beforeEach(resetVaultForTests);
|
|
22
22
|
it("attaches a credential to its own origin", () => {
|
|
23
23
|
vaultAdd(TOKEN, "auth", "https://api.acme.io/v1/me");
|
|
24
|
-
const {
|
|
25
|
-
expect(
|
|
24
|
+
const { name, value } = resolveAuth({ secret: "api.acme.io" }, "https://api.acme.io/v1/orders");
|
|
25
|
+
expect(name).toBe("Authorization");
|
|
26
|
+
expect(value).toBe(`Bearer ${TOKEN}`);
|
|
26
27
|
});
|
|
27
28
|
it("refuses to send a credential to a different origin, which is the exfiltration case", () => {
|
|
28
29
|
vaultAdd(TOKEN, "auth", "https://api.acme.io/v1/me");
|
|
@@ -45,14 +46,45 @@ describe("resolveAuth origin binding", () => {
|
|
|
45
46
|
});
|
|
46
47
|
it("returns a staleness note for an expired credential rather than failing silently", () => {
|
|
47
48
|
vaultAdd(DEAD_JWT, "auth", "https://api.acme.io/v1/me");
|
|
48
|
-
const {
|
|
49
|
-
expect(
|
|
49
|
+
const { value, note } = resolveAuth({ secret: "api.acme.io" }, "https://api.acme.io/v1/orders");
|
|
50
|
+
expect(value).toBe(`Bearer ${DEAD_JWT}`);
|
|
50
51
|
expect(note).toContain("expired");
|
|
51
52
|
});
|
|
52
53
|
it("attaches nothing when no auth was asked for", () => {
|
|
53
54
|
expect(resolveAuth(undefined, "https://api.acme.io/x")).toEqual({});
|
|
54
55
|
});
|
|
55
56
|
});
|
|
57
|
+
describe("resolveAuth placement", () => {
|
|
58
|
+
beforeEach(resetVaultForTests);
|
|
59
|
+
beforeEach(() => {
|
|
60
|
+
vaultAdd(TOKEN, "auth", "https://api.acme.io/v1/me");
|
|
61
|
+
});
|
|
62
|
+
const at = (auth) => resolveAuth(auth, "https://api.acme.io/v1/orders");
|
|
63
|
+
it("carries a custom header with no scheme, because X-API-Key: Bearer <k> authenticates nothing", () => {
|
|
64
|
+
expect(at({ secret: "api.acme.io", header: "X-API-Key" })).toMatchObject({
|
|
65
|
+
name: "X-API-Key",
|
|
66
|
+
value: TOKEN,
|
|
67
|
+
});
|
|
68
|
+
});
|
|
69
|
+
it("keeps Authorization but swaps the scheme", () => {
|
|
70
|
+
expect(at({ secret: "api.acme.io", scheme: "Basic" })).toMatchObject({
|
|
71
|
+
name: "Authorization",
|
|
72
|
+
value: `Basic ${TOKEN}`,
|
|
73
|
+
});
|
|
74
|
+
});
|
|
75
|
+
it("sends a bare Authorization value when the scheme is explicitly empty", () => {
|
|
76
|
+
expect(at({ secret: "api.acme.io", scheme: "" })).toMatchObject({ value: TOKEN });
|
|
77
|
+
});
|
|
78
|
+
it("rejects a header name that would inject a second header", () => {
|
|
79
|
+
expect(() => at({ secret: "api.acme.io", header: "X-Key\r\nX-Admin: 1" })).toThrow(UserInputError);
|
|
80
|
+
});
|
|
81
|
+
it("rejects a scheme carrying a newline", () => {
|
|
82
|
+
expect(() => at({ secret: "api.acme.io", scheme: "Bearer\r\nX-Admin: 1" })).toThrow(UserInputError);
|
|
83
|
+
});
|
|
84
|
+
it("checks origin binding before it ever looks at placement", () => {
|
|
85
|
+
expect(() => resolveAuth({ secret: "api.acme.io", header: "X-API-Key" }, "https://evil.com/collect")).toThrow(/origin/i);
|
|
86
|
+
});
|
|
87
|
+
});
|
|
56
88
|
describe("issueHttpRequest", () => {
|
|
57
89
|
beforeEach(resetVaultForTests);
|
|
58
90
|
it("rejects a non-HTTP scheme", async () => {
|
|
@@ -85,6 +117,31 @@ describe("issueHttpRequest", () => {
|
|
|
85
117
|
expect(out).not.toContain(TOKEN);
|
|
86
118
|
expect(out).toContain("[secret:auth_api.acme.io]");
|
|
87
119
|
});
|
|
120
|
+
it("puts the credential in the custom header the caller named", async () => {
|
|
121
|
+
vaultAdd(TOKEN, "auth", "https://api.acme.io/v1/me");
|
|
122
|
+
const spy = mockFetch("{}");
|
|
123
|
+
await issueHttpRequest({
|
|
124
|
+
method: "GET",
|
|
125
|
+
url: "https://api.acme.io/v1/orders",
|
|
126
|
+
auth: { secret: "api.acme.io", header: "X-API-Key" },
|
|
127
|
+
});
|
|
128
|
+
const sent = spy.mock.calls[0][1].headers;
|
|
129
|
+
expect(sent["X-API-Key"]).toBe(TOKEN);
|
|
130
|
+
expect(sent.Authorization).toBeUndefined();
|
|
131
|
+
});
|
|
132
|
+
it("lets an explicit header of the same name win over auth", async () => {
|
|
133
|
+
vaultAdd(TOKEN, "auth", "https://api.acme.io/v1/me");
|
|
134
|
+
const spy = mockFetch("{}");
|
|
135
|
+
await issueHttpRequest({
|
|
136
|
+
method: "GET",
|
|
137
|
+
url: "https://api.acme.io/v1/orders",
|
|
138
|
+
headers: { "x-api-key": "explicit" },
|
|
139
|
+
auth: { secret: "api.acme.io", header: "X-API-Key" },
|
|
140
|
+
});
|
|
141
|
+
const sent = spy.mock.calls[0][1].headers;
|
|
142
|
+
expect(sent["x-api-key"]).toBe("explicit");
|
|
143
|
+
expect(sent["X-API-Key"]).toBeUndefined();
|
|
144
|
+
});
|
|
88
145
|
it("serialises an object body as JSON and sets the content type", async () => {
|
|
89
146
|
const spy = mockFetch("{}");
|
|
90
147
|
await issueHttpRequest({ method: "POST", url: "https://api.acme.io/v1/x", body: { qty: 2 } });
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"httpRequest.test.js","sourceRoot":"","sources":["../../../src/__tests__/unit/httpRequest.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AAClF,OAAO,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAC1E,OAAO,EAAE,QAAQ,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AACnE,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAEtD,MAAM,KAAK,GAAG,4BAA4B,CAAC;AAE3C,MAAM,QAAQ,GAAG,4EAA4E,CAAC;AAE9F,SAAS,SAAS,CAAC,IAAY,EAAE,OAA8D,EAAE;IAC7F,MAAM,GAAG,GAAG,IAAI,QAAQ,CAAC,IAAI,EAAE;QAC3B,MAAM,EAAE,IAAI,CAAC,MAAM,IAAI,GAAG;QAC1B,OAAO,EAAE,IAAI,CAAC,OAAO,IAAI,EAAE,cAAc,EAAE,kBAAkB,EAAE;KAClE,CAAC,CAAC;IAEH,MAAM,GAAG,GAAG,IAAI,CAAC,EAAE,CAAyD,KAAK,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC;IAC5F,UAA4C,CAAC,KAAK,GAAG,GAAG,CAAC;IAC1D,OAAO,GAAG,CAAC;AACf,CAAC;AAED,MAAM,SAAS,GAAG,UAAU,CAAC,KAAK,CAAC;AACnC,SAAS,CAAC,GAAG,EAAE;IACX,UAAU,CAAC,KAAK,GAAG,SAAS,CAAC;AACjC,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,4BAA4B,EAAE,GAAG,EAAE;IACxC,UAAU,CAAC,kBAAkB,CAAC,CAAC;IAE/B,EAAE,CAAC,yCAAyC,EAAE,GAAG,EAAE;QAC/C,QAAQ,CAAC,KAAK,EAAE,MAAM,EAAE,2BAA2B,CAAC,CAAC;QACrD,MAAM,EAAE,
|
|
1
|
+
{"version":3,"file":"httpRequest.test.js","sourceRoot":"","sources":["../../../src/__tests__/unit/httpRequest.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"guides.d.ts","sourceRoot":"","sources":["../../src/core/guides.ts"],"names":[],"mappings":"AAKA,MAAM,WAAW,KAAK;IAClB,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;CACnB;
|
|
1
|
+
{"version":3,"file":"guides.d.ts","sourceRoot":"","sources":["../../src/core/guides.ts"],"names":[],"mappings":"AAKA,MAAM,WAAW,KAAK;IAClB,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;CACnB;AA0nBD,eAAO,MAAM,mBAAmB,EAAE,MAItB,CAAC;AAEb,eAAO,MAAM,aAAa,EAAE,MAchB,CAAC;AAEb,wBAAgB,gBAAgB,IAAI,MAAM,CAWzC;AAED,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAI5D;AAED,wBAAgB,kBAAkB,IAAI,MAAM,EAAE,CAE7C"}
|
package/build/core/guides.js
CHANGED
|
@@ -419,6 +419,20 @@ The value stays server-side, so it never lands in the transcript, and you send i
|
|
|
419
419
|
3. vault_capture({ expression:"store.getState().auth.token", origin:"https://api.acme.io" })
|
|
420
420
|
when nothing is captured yet, or list_secrets shows the entry EXPIRED after a re-login
|
|
421
421
|
|
|
422
|
+
Placement defaults to Authorization: Bearer. For anything else, auth carries it:
|
|
423
|
+
- auth:{ secret:"api.acme.io", header:"X-API-Key" } — key header, no scheme added
|
|
424
|
+
- auth:{ secret:"api.acme.io", scheme:"Basic" } — another scheme on Authorization
|
|
425
|
+
- auth:{ secret:"api.acme.io", scheme:"" } — a bare value with no prefix
|
|
426
|
+
|
|
427
|
+
If a shape auth cannot express comes up, report the gap. Do NOT reach for
|
|
428
|
+
headers:{...} with the credential in it — that is the transcript leak the vault
|
|
429
|
+
exists to prevent, and it fails silently, with no error and nothing in telemetry.
|
|
430
|
+
|
|
431
|
+
Cookie sessions need none of this and http_request cannot do them: React Native
|
|
432
|
+
has no JS cookie API and the jar is native, so the value is not readable from JS
|
|
433
|
+
in the first place. Use app_request or network_replay — both run inside the app,
|
|
434
|
+
where the native jar attaches the session on its own.
|
|
435
|
+
|
|
422
436
|
http_request runs FROM THE HOST, not through the app. That is the point: app_request uses the
|
|
423
437
|
app's TLS trust, proxy, cookie jar and credentials, and an active network_mock rule intercepts
|
|
424
438
|
it — http_request does none of that, so a difference between the two tells you whether the
|
|
@@ -439,7 +453,7 @@ resolves to nothing.
|
|
|
439
453
|
- network_condition: offline / slow / normal
|
|
440
454
|
- network_replay: re-issue a captured request, with optional overrides
|
|
441
455
|
- app_request: issue a new request from inside the app, authenticated, without putting the token in the transcript
|
|
442
|
-
- http_request: issue a request from the host instead, carrying a vaulted credential by handle — the clean-room comparison against app_request
|
|
456
|
+
- http_request: issue a request from the host instead, carrying a vaulted credential by handle — the clean-room comparison against app_request. auth.header / auth.scheme place it outside the Authorization: Bearer default
|
|
443
457
|
- list_secrets: the captured credentials by handle, with origin, age and expiry. Values are never shown
|
|
444
458
|
- vault_capture: read a credential out of the app straight into the vault, when no captured request revealed one
|
|
445
459
|
|
package/build/core/guides.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"guides.js","sourceRoot":"","sources":["../../src/core/guides.ts"],"names":[],"mappings":"AAYA,MAAM,MAAM,GAAY;IACpB;QACI,EAAE,EAAE,OAAO;QACX,KAAK,EAAE,eAAe;QACtB,OAAO,EAAE,yDAAyD;QAClE,OAAO,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;qGAyCoF;KAChG;IACD;QACI,EAAE,EAAE,SAAS;QACb,KAAK,EAAE,sBAAsB;QAC7B,OAAO,EAAE,mFAAmF;QAC5F,OAAO,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4GAqC2F;KACvG;IACD;QACI,EAAE,EAAE,QAAQ;QACZ,KAAK,EAAE,kBAAkB;QACzB,OAAO,EAAE,0EAA0E;QACnF,OAAO,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;0IA+DyH;KACrI;IACD;QACI,EAAE,EAAE,UAAU;QACd,KAAK,EAAE,oBAAoB;QAC3B,OAAO,EAAE,uEAAuE;QAChF,OAAO,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;yCA2HwB;KACpC;IACD;QACI,EAAE,EAAE,MAAM;QACV,KAAK,EAAE,YAAY;QACnB,OAAO,EAAE,8DAA8D;QACvE,OAAO,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA0DhB;KACI;IACD;QACI,EAAE,EAAE,SAAS;QACb,KAAK,EAAE,oBAAoB;QAC3B,OAAO,EAAE,oEAAoE;QAC7E,OAAO,EAAE
|
|
1
|
+
{"version":3,"file":"guides.js","sourceRoot":"","sources":["../../src/core/guides.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,17 +1,19 @@
|
|
|
1
|
+
export interface AuthArg {
|
|
2
|
+
secret: string;
|
|
3
|
+
header?: string;
|
|
4
|
+
scheme?: string;
|
|
5
|
+
}
|
|
1
6
|
export interface HttpRequestArgs {
|
|
2
7
|
method: string;
|
|
3
8
|
url: string;
|
|
4
9
|
body?: unknown;
|
|
5
10
|
headers?: Record<string, string>;
|
|
6
|
-
auth?:
|
|
7
|
-
secret: string;
|
|
8
|
-
};
|
|
11
|
+
auth?: AuthArg;
|
|
9
12
|
maxResultLength?: number;
|
|
10
13
|
}
|
|
11
|
-
export declare function resolveAuth(auth: {
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
header?: string;
|
|
14
|
+
export declare function resolveAuth(auth: AuthArg | undefined, url: string): {
|
|
15
|
+
name?: string;
|
|
16
|
+
value?: string;
|
|
15
17
|
note?: string;
|
|
16
18
|
};
|
|
17
19
|
export declare function issueHttpRequest(args: HttpRequestArgs): Promise<string>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"httpRequest.d.ts","sourceRoot":"","sources":["../../src/core/httpRequest.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"httpRequest.d.ts","sourceRoot":"","sources":["../../src/core/httpRequest.ts"],"names":[],"mappings":"AAqCA,MAAM,WAAW,OAAO;IACpB,MAAM,EAAE,MAAM,CAAC;IAEf,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB,MAAM,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,eAAe;IAC5B,MAAM,EAAE,MAAM,CAAC;IACf,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,eAAe,CAAC,EAAE,MAAM,CAAC;CAC5B;AAwBD,wBAAgB,WAAW,CACvB,IAAI,EAAE,OAAO,GAAG,SAAS,EACzB,GAAG,EAAE,MAAM,GACZ;IAAE,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,CAiClD;AAWD,wBAAsB,gBAAgB,CAAC,IAAI,EAAE,eAAe,GAAG,OAAO,CAAC,MAAM,CAAC,CAsE7E"}
|
|
@@ -4,6 +4,7 @@ import { redactSecrets } from "./redact.js";
|
|
|
4
4
|
import { redactHeaderValue } from "./network.js";
|
|
5
5
|
import { applyResultBudget, DEFAULT_MAX_BYTES } from "./truncate.js";
|
|
6
6
|
const TIMEOUT_MS = 30_000;
|
|
7
|
+
const HTTP_TOKEN = /^[!#$%&'*+\-.^_`|~0-9A-Za-z]+$/;
|
|
7
8
|
function hostOfUrl(url) {
|
|
8
9
|
try {
|
|
9
10
|
return new URL(url).host;
|
|
@@ -15,6 +16,14 @@ function hostOfUrl(url) {
|
|
|
15
16
|
export function resolveAuth(auth, url) {
|
|
16
17
|
if (!auth)
|
|
17
18
|
return {};
|
|
19
|
+
const name = auth.header ?? "Authorization";
|
|
20
|
+
if (!HTTP_TOKEN.test(name)) {
|
|
21
|
+
throw new UserInputError(`"${name}" is not a valid HTTP header name.`, "bad_header_name");
|
|
22
|
+
}
|
|
23
|
+
const scheme = auth.scheme ?? (name.toLowerCase() === "authorization" ? "Bearer" : "");
|
|
24
|
+
if (scheme && !HTTP_TOKEN.test(scheme)) {
|
|
25
|
+
throw new UserInputError(`"${scheme}" is not a valid auth scheme.`, "bad_scheme_name");
|
|
26
|
+
}
|
|
18
27
|
const entry = vaultResolve(auth.secret);
|
|
19
28
|
if (!entry) {
|
|
20
29
|
throw new UserInputError(`No credential named "${auth.secret}". Call list_secrets to see what the session has captured. The vault is memory-only, so a server restart empties it and a name from an older transcript resolves to nothing.`, "unknown_secret");
|
|
@@ -23,7 +32,7 @@ export function resolveAuth(auth, url) {
|
|
|
23
32
|
if (!entry.origin || entry.origin !== target) {
|
|
24
33
|
throw new UserInputError(`Credential "${entry.handle}" was observed on ${entry.origin ?? "no recorded origin"} and cannot be sent to ${target}. Credentials are bound to the origin they came from.`, "origin_binding");
|
|
25
34
|
}
|
|
26
|
-
return {
|
|
35
|
+
return { name, value: scheme ? `${scheme} ${entry.value}` : entry.value, note: vaultStaleness(entry) };
|
|
27
36
|
}
|
|
28
37
|
function renderHeaders(headers, origin) {
|
|
29
38
|
const lines = [];
|
|
@@ -44,9 +53,9 @@ export async function issueHttpRequest(args) {
|
|
|
44
53
|
throw new UserInputError(`http_request only issues http and https requests, not ${parsed.protocol}`, "bad_scheme");
|
|
45
54
|
}
|
|
46
55
|
const headers = { ...(args.headers ?? {}) };
|
|
47
|
-
const {
|
|
48
|
-
if (
|
|
49
|
-
headers
|
|
56
|
+
const { name, value, note } = resolveAuth(args.auth, args.url);
|
|
57
|
+
if (name && value && !Object.keys(headers).some((k) => k.toLowerCase() === name.toLowerCase())) {
|
|
58
|
+
headers[name] = value;
|
|
50
59
|
}
|
|
51
60
|
let body;
|
|
52
61
|
if (args.body !== undefined && args.body !== null) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"httpRequest.js","sourceRoot":"","sources":["../../src/core/httpRequest.ts"],"names":[],"mappings":"AAqBA,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAC1D,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AACjD,OAAO,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"httpRequest.js","sourceRoot":"","sources":["../../src/core/httpRequest.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"requestTools.d.ts","sourceRoot":"","sources":["../../src/tools/requestTools.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAmEzE,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,
|
|
1
|
+
{"version":3,"file":"requestTools.d.ts","sourceRoot":"","sources":["../../src/tools/requestTools.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAmEzE,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CA4L5D"}
|
|
@@ -143,11 +143,11 @@ export function registerRequestTools(server) {
|
|
|
143
143
|
registerToolWithTelemetry(server, "http_request", {
|
|
144
144
|
description: "Issue an HTTP request FROM THE HOST (Node), not through the app, carrying a credential you cannot read.\n" +
|
|
145
145
|
"PURPOSE: Isolate server behaviour from client behaviour. This is what curl was for, minus the part where the token and the whole response landed in the transcript.\n" +
|
|
146
|
-
"HOW IT DIFFERS FROM app_request: app_request runs inside the app, so it
|
|
147
|
-
"CREDENTIALS: pass auth:{secret:\"<origin or handle>\"} — names come from list_secrets. The value is substituted here and never rendered
|
|
146
|
+
"HOW IT DIFFERS FROM app_request: app_request runs inside the app, so it carries the app's TLS trust, proxy, native cookie jar and credentials, and an active network_mock intercepts it. http_request is a clean request from your machine. Pick app_request when the app's real conditions matter, when the session is cookie-authenticated, or when the backend enforces attestation (Firebase App Check cannot be satisfied from Node). Pick http_request to tell a server bug from a client one.\n" +
|
|
147
|
+
"CREDENTIALS: pass auth:{secret:\"<origin or handle>\"} — names come from list_secrets. The value is substituted here and never rendered, and is bound to the origin it was observed on: any other host is refused. Default placement is Authorization: Bearer; set header for a key header (X-API-Key) or scheme for another (Basic).\n" +
|
|
148
148
|
"READING THE RESULT: a 401 here where app_request succeeds is itself an answer — the backend is enforcing attestation.\n" +
|
|
149
149
|
"GOOD: http_request({ method: \"GET\", url: \"https://api.acme.io/v1/me\", auth: { secret: \"api.acme.io\" } })\n" +
|
|
150
|
-
"BAD: pasting a
|
|
150
|
+
"BAD: pasting a credential into headers to cover a shape auth does not — that is the transcript leak the vault exists to prevent. Report the gap instead.",
|
|
151
151
|
inputSchema: {
|
|
152
152
|
method: z.enum(["GET", "POST", "PUT", "PATCH", "DELETE", "HEAD", "OPTIONS"]).describe("HTTP method."),
|
|
153
153
|
url: z.string().describe("Absolute http or https URL."),
|
|
@@ -155,11 +155,15 @@ export function registerRequestTools(server) {
|
|
|
155
155
|
.unknown()
|
|
156
156
|
.optional()
|
|
157
157
|
.describe("Request body. An object is JSON-serialised and sets Content-Type: application/json unless you override it; a string is sent verbatim."),
|
|
158
|
-
headers: z.record(z.string()).optional().describe("Extra request headers.
|
|
158
|
+
headers: z.record(z.string()).optional().describe("Extra request headers. One given here wins over auth when the names collide — but do not use that to pass a credential value, which is the transcript leak auth exists to prevent."),
|
|
159
159
|
auth: z
|
|
160
|
-
.object({
|
|
160
|
+
.object({
|
|
161
|
+
secret: z.string().describe("Origin (\"api.acme.io\") or handle (\"auth_api.acme.io\") from list_secrets."),
|
|
162
|
+
header: z.string().optional().describe("Header to carry it. Default \"Authorization\"; use \"X-API-Key\" or similar for key-header APIs."),
|
|
163
|
+
scheme: z.string().optional().describe("Prefix before the value. Defaults to \"Bearer\" for Authorization and to nothing for any other header; pass \"Basic\", \"token\", or \"\" for a bare value.")
|
|
164
|
+
})
|
|
161
165
|
.optional()
|
|
162
|
-
.describe("Credential to attach
|
|
166
|
+
.describe("Credential to attach. Typed on purpose: the credential position is structural, never string interpolation, so it cannot be smuggled into an arbitrary field."),
|
|
163
167
|
maxResultLength: z.number().optional().describe("Target size for the response body in characters (default 25000).")
|
|
164
168
|
}
|
|
165
169
|
}, async ({ method, url, body, headers, auth, maxResultLength }) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"requestTools.js","sourceRoot":"","sources":["../../src/tools/requestTools.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"requestTools.js","sourceRoot":"","sources":["../../src/tools/requestTools.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "react-native-ai-debugger",
|
|
3
|
-
"version": "2.10.
|
|
3
|
+
"version": "2.10.1",
|
|
4
4
|
"mcpName": "com.execbro/execbro",
|
|
5
5
|
"description": "React Native AI debugger: MCP server giving AI agents eyes and hands in your running app (logs, network, state inspection, tap, screenshot). Published as ExecBro.",
|
|
6
6
|
"type": "module",
|