@descryy/mcp 0.9.1 → 0.11.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/browser/auth.d.ts +76 -0
- package/dist/browser/auth.d.ts.map +1 -0
- package/dist/browser/auth.js +223 -0
- package/dist/browser/auth.js.map +1 -0
- package/dist/browser/capability-probe.d.ts +109 -0
- package/dist/browser/capability-probe.d.ts.map +1 -0
- package/dist/browser/capability-probe.js +201 -0
- package/dist/browser/capability-probe.js.map +1 -0
- package/dist/browser/driver.d.ts +342 -4
- package/dist/browser/driver.d.ts.map +1 -1
- package/dist/browser/driver.js +79 -1
- package/dist/browser/driver.js.map +1 -1
- package/dist/browser/evidence.d.ts +3 -0
- package/dist/browser/evidence.d.ts.map +1 -1
- package/dist/browser/evidence.js +6 -1
- package/dist/browser/evidence.js.map +1 -1
- package/dist/browser/fake-driver.d.ts +65 -8
- package/dist/browser/fake-driver.d.ts.map +1 -1
- package/dist/browser/fake-driver.js +235 -8
- package/dist/browser/fake-driver.js.map +1 -1
- package/dist/browser/fault-attribution.d.ts +178 -0
- package/dist/browser/fault-attribution.d.ts.map +1 -0
- package/dist/browser/fault-attribution.js +266 -0
- package/dist/browser/fault-attribution.js.map +1 -0
- package/dist/browser/identity-graph-write.d.ts +55 -0
- package/dist/browser/identity-graph-write.d.ts.map +1 -0
- package/dist/browser/identity-graph-write.js +45 -0
- package/dist/browser/identity-graph-write.js.map +1 -0
- package/dist/browser/page-probe.d.ts +81 -0
- package/dist/browser/page-probe.d.ts.map +1 -0
- package/dist/browser/page-probe.js +202 -0
- package/dist/browser/page-probe.js.map +1 -0
- package/dist/browser/playwright-driver.d.ts +79 -0
- package/dist/browser/playwright-driver.d.ts.map +1 -1
- package/dist/browser/playwright-driver.js +1138 -180
- package/dist/browser/playwright-driver.js.map +1 -1
- package/dist/browser/reach-recording-session.d.ts +44 -0
- package/dist/browser/reach-recording-session.d.ts.map +1 -0
- package/dist/browser/reach-recording-session.js +143 -0
- package/dist/browser/reach-recording-session.js.map +1 -0
- package/dist/browser/reachability.d.ts +168 -0
- package/dist/browser/reachability.d.ts.map +1 -0
- package/dist/browser/reachability.js +294 -0
- package/dist/browser/reachability.js.map +1 -0
- package/dist/browser/registry.d.ts +24 -0
- package/dist/browser/registry.d.ts.map +1 -1
- package/dist/browser/registry.js +21 -2
- package/dist/browser/registry.js.map +1 -1
- package/dist/browser/scenario-provenance.d.ts +1 -1
- package/dist/browser/scenario-provenance.d.ts.map +1 -1
- package/dist/browser/scenario-provenance.js +15 -1
- package/dist/browser/scenario-provenance.js.map +1 -1
- package/dist/browser/scenario-runner.d.ts +10 -2
- package/dist/browser/scenario-runner.d.ts.map +1 -1
- package/dist/browser/scenario-runner.js +77 -9
- package/dist/browser/scenario-runner.js.map +1 -1
- package/dist/browser/tool-support.d.ts +5 -1
- package/dist/browser/tool-support.d.ts.map +1 -1
- package/dist/browser/tool-support.js +80 -4
- package/dist/browser/tool-support.js.map +1 -1
- package/dist/browser/wait-target.d.ts +37 -0
- package/dist/browser/wait-target.d.ts.map +1 -0
- package/dist/browser/wait-target.js +54 -0
- package/dist/browser/wait-target.js.map +1 -0
- package/dist/heap.d.ts +61 -0
- package/dist/heap.d.ts.map +1 -0
- package/dist/heap.js +82 -0
- package/dist/heap.js.map +1 -0
- package/dist/heartbeat.d.ts +46 -0
- package/dist/heartbeat.d.ts.map +1 -0
- package/dist/heartbeat.js +66 -0
- package/dist/heartbeat.js.map +1 -0
- package/dist/index.d.ts +2 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/planner/predict-then-propose.d.ts +101 -0
- package/dist/planner/predict-then-propose.d.ts.map +1 -0
- package/dist/planner/predict-then-propose.js +88 -0
- package/dist/planner/predict-then-propose.js.map +1 -0
- package/dist/planner/propose-journey.d.ts +60 -0
- package/dist/planner/propose-journey.d.ts.map +1 -0
- package/dist/planner/propose-journey.js +96 -0
- package/dist/planner/propose-journey.js.map +1 -0
- package/dist/registry.d.ts +10 -1
- package/dist/registry.d.ts.map +1 -1
- package/dist/registry.js +5 -1
- package/dist/registry.js.map +1 -1
- package/dist/render.d.ts +4 -4
- package/dist/render.js +3 -3
- package/dist/scenarios/browser-run-plan-projection.d.ts +143 -0
- package/dist/scenarios/browser-run-plan-projection.d.ts.map +1 -0
- package/dist/scenarios/browser-run-plan-projection.js +228 -0
- package/dist/scenarios/browser-run-plan-projection.js.map +1 -0
- package/dist/scenarios/credential-ref.d.ts +102 -0
- package/dist/scenarios/credential-ref.d.ts.map +1 -0
- package/dist/scenarios/credential-ref.js +148 -0
- package/dist/scenarios/credential-ref.js.map +1 -0
- package/dist/scenarios/index.d.ts +4 -1
- package/dist/scenarios/index.d.ts.map +1 -1
- package/dist/scenarios/index.js +4 -1
- package/dist/scenarios/index.js.map +1 -1
- package/dist/scenarios/parse.d.ts.map +1 -1
- package/dist/scenarios/parse.js +42 -9
- package/dist/scenarios/parse.js.map +1 -1
- package/dist/scenarios/scenario.d.ts +39 -5
- package/dist/scenarios/scenario.d.ts.map +1 -1
- package/dist/scenarios/scenario.js +15 -2
- package/dist/scenarios/scenario.js.map +1 -1
- package/dist/scenarios/secret-ref.d.ts +86 -0
- package/dist/scenarios/secret-ref.d.ts.map +1 -0
- package/dist/scenarios/secret-ref.js +125 -0
- package/dist/scenarios/secret-ref.js.map +1 -0
- package/dist/server.d.ts +1 -1
- package/dist/server.d.ts.map +1 -1
- package/dist/server.js +8 -4
- package/dist/server.js.map +1 -1
- package/dist/session.d.ts +19 -0
- package/dist/session.d.ts.map +1 -1
- package/dist/session.js +36 -0
- package/dist/session.js.map +1 -1
- package/dist/tools/analyze-workspace.d.ts +52 -0
- package/dist/tools/analyze-workspace.d.ts.map +1 -0
- package/dist/tools/analyze-workspace.js +207 -0
- package/dist/tools/analyze-workspace.js.map +1 -0
- package/dist/tools/analyze.d.ts +50 -4
- package/dist/tools/analyze.d.ts.map +1 -1
- package/dist/tools/analyze.js +225 -5
- package/dist/tools/analyze.js.map +1 -1
- package/dist/tools/browser-close-session.d.ts +21 -1
- package/dist/tools/browser-close-session.d.ts.map +1 -1
- package/dist/tools/browser-close-session.js +71 -7
- package/dist/tools/browser-close-session.js.map +1 -1
- package/dist/tools/browser-navigate.d.ts +1 -1
- package/dist/tools/browser-navigate.d.ts.map +1 -1
- package/dist/tools/browser-navigate.js +5 -3
- package/dist/tools/browser-navigate.js.map +1 -1
- package/dist/tools/browser-run-scenario.d.ts.map +1 -1
- package/dist/tools/browser-run-scenario.js +6 -1
- package/dist/tools/browser-run-scenario.js.map +1 -1
- package/dist/tools/browser-save-scenario.d.ts.map +1 -1
- package/dist/tools/browser-save-scenario.js +84 -4
- package/dist/tools/browser-save-scenario.js.map +1 -1
- package/dist/tools/browser-select.d.ts +20 -0
- package/dist/tools/browser-select.d.ts.map +1 -0
- package/dist/tools/browser-select.js +120 -0
- package/dist/tools/browser-select.js.map +1 -0
- package/dist/tools/browser-snapshot.d.ts +17 -1
- package/dist/tools/browser-snapshot.d.ts.map +1 -1
- package/dist/tools/browser-snapshot.js +18 -5
- package/dist/tools/browser-snapshot.js.map +1 -1
- package/dist/tools/browser-start-session.d.ts.map +1 -1
- package/dist/tools/browser-start-session.js +161 -9
- package/dist/tools/browser-start-session.js.map +1 -1
- package/dist/tools/browser-submit.d.ts +18 -0
- package/dist/tools/browser-submit.d.ts.map +1 -0
- package/dist/tools/browser-submit.js +106 -0
- package/dist/tools/browser-submit.js.map +1 -0
- package/dist/tools/browser-wait-for.d.ts +41 -0
- package/dist/tools/browser-wait-for.d.ts.map +1 -0
- package/dist/tools/browser-wait-for.js +148 -0
- package/dist/tools/browser-wait-for.js.map +1 -0
- package/dist/tools/chain.d.ts +41 -0
- package/dist/tools/chain.d.ts.map +1 -0
- package/dist/tools/chain.js +105 -0
- package/dist/tools/chain.js.map +1 -0
- package/dist/tools/draw-conclusion.d.ts +44 -0
- package/dist/tools/draw-conclusion.d.ts.map +1 -0
- package/dist/tools/draw-conclusion.js +250 -0
- package/dist/tools/draw-conclusion.js.map +1 -0
- package/dist/tools/index.d.ts +7 -0
- package/dist/tools/index.d.ts.map +1 -1
- package/dist/tools/index.js +16 -0
- package/dist/tools/index.js.map +1 -1
- package/dist/tools/kit.d.ts +17 -0
- package/dist/tools/kit.d.ts.map +1 -1
- package/dist/tools/kit.js.map +1 -1
- package/dist/tools/observe-runtime.d.ts +17 -0
- package/dist/tools/observe-runtime.d.ts.map +1 -1
- package/dist/tools/observe-runtime.js +174 -10
- package/dist/tools/observe-runtime.js.map +1 -1
- package/dist/tools/predict-reach.d.ts +57 -0
- package/dist/tools/predict-reach.d.ts.map +1 -0
- package/dist/tools/predict-reach.js +159 -0
- package/dist/tools/predict-reach.js.map +1 -0
- package/dist/tools/propagation.d.ts +8 -3
- package/dist/tools/propagation.d.ts.map +1 -1
- package/dist/tools/propagation.js +16 -9
- package/dist/tools/propagation.js.map +1 -1
- package/dist/tools/propose-journey.d.ts +16 -0
- package/dist/tools/propose-journey.d.ts.map +1 -0
- package/dist/tools/propose-journey.js +121 -0
- package/dist/tools/propose-journey.js.map +1 -0
- package/dist/tools/runtime-journey-drive.d.ts +102 -0
- package/dist/tools/runtime-journey-drive.d.ts.map +1 -0
- package/dist/tools/runtime-journey-drive.js +247 -0
- package/dist/tools/runtime-journey-drive.js.map +1 -0
- package/dist/tools/scope.d.ts +3 -0
- package/dist/tools/scope.d.ts.map +1 -1
- package/dist/tools/scope.js +33 -6
- package/dist/tools/scope.js.map +1 -1
- package/dist/workspace-index.d.ts +164 -0
- package/dist/workspace-index.d.ts.map +1 -0
- package/dist/workspace-index.js +381 -0
- package/dist/workspace-index.js.map +1 -0
- package/package.json +32 -31
|
@@ -0,0 +1,120 @@
|
|
|
1
|
+
/** `browser_select` chooses an option on a chooser — the verb whose absence made a form with
|
|
2
|
+
* a dropdown undriveable, while a snapshot showed the agent the dropdown all along. Consent
|
|
3
|
+
* is granted once, at `browser_start_session` (DEC-380): this is `class: "action"` and
|
|
4
|
+
* `describeAction` returns undefined, so a verb cannot mint its own consent. A ref must come
|
|
5
|
+
* from a snapshot the agent actually saw, never a raw selector. */
|
|
6
|
+
import { browserAnswer, emptyEvidence, mutationRefusal, observeAndCorrelate, useSession } from "../browser/tool-support.js";
|
|
7
|
+
import { NO_GRAPH_WRITE } from "../browser/graph-write.js";
|
|
8
|
+
import { NoSuchOptionError, NotSelectableError, UnknownElementRefError } from "../browser/driver.js";
|
|
9
|
+
import { CANCELLED_STATE, cancellationHeadline, cancellationNotes } from "../cancellation.js";
|
|
10
|
+
import { requiredString } from "./kit.js";
|
|
11
|
+
const SCHEMA = {
|
|
12
|
+
type: "object",
|
|
13
|
+
properties: {
|
|
14
|
+
sessionId: { type: "string", description: "REQUIRED. The id returned by browser_start_session." },
|
|
15
|
+
ref: {
|
|
16
|
+
type: "string",
|
|
17
|
+
description: "REQUIRED. An element ref from a browser_snapshot reply, for an element that offers options — a " +
|
|
18
|
+
"snapshot reports one with role \"combobox\". Refs are issued per snapshot and are invalidated by " +
|
|
19
|
+
"navigation, so take a fresh snapshot after the page changes.",
|
|
20
|
+
},
|
|
21
|
+
value: {
|
|
22
|
+
type: "string",
|
|
23
|
+
description: "REQUIRED. The option to choose. Either the value the page stores or the label a person reads will " +
|
|
24
|
+
"do — both are matched exactly. A near match is never substituted: if nothing matches, the refusal " +
|
|
25
|
+
"lists every option the element actually offers, so the next call can name one of them.",
|
|
26
|
+
},
|
|
27
|
+
confirmToken: {
|
|
28
|
+
type: "string",
|
|
29
|
+
description: "Not normally needed. Consent is granted once, for the whole session, by browser_start_session, " +
|
|
30
|
+
"so this call performs its action directly. The field is declared because the handshake reads it " +
|
|
31
|
+
"for every action-class tool.",
|
|
32
|
+
},
|
|
33
|
+
},
|
|
34
|
+
required: ["sessionId", "ref", "value"],
|
|
35
|
+
additionalProperties: false,
|
|
36
|
+
};
|
|
37
|
+
async function run(args, ctx) {
|
|
38
|
+
const sessionId = requiredString(args, "sessionId");
|
|
39
|
+
const ref = requiredString(args, "ref");
|
|
40
|
+
const value = requiredString(args, "value");
|
|
41
|
+
if (ctx.signal.aborted) {
|
|
42
|
+
return browserAnswer({
|
|
43
|
+
ctx,
|
|
44
|
+
state: CANCELLED_STATE,
|
|
45
|
+
headline: cancellationHeadline("no option was chosen"),
|
|
46
|
+
notes: cancellationNotes("The element was left as it was.", "The browser session is still open and can still be used."),
|
|
47
|
+
data: { sessionId, ref, value, url: "", evidence: emptyEvidence(), graph: NO_GRAPH_WRITE },
|
|
48
|
+
});
|
|
49
|
+
}
|
|
50
|
+
const found = await useSession(ctx.session.browserSessions(), sessionId);
|
|
51
|
+
if (!found.ok) {
|
|
52
|
+
return browserAnswer({
|
|
53
|
+
ctx,
|
|
54
|
+
state: found.dead.state,
|
|
55
|
+
headline: found.dead.headline,
|
|
56
|
+
notes: found.dead.notes,
|
|
57
|
+
data: { sessionId, ref, value, url: "", evidence: found.dead.evidence, graph: NO_GRAPH_WRITE },
|
|
58
|
+
});
|
|
59
|
+
}
|
|
60
|
+
const { entry } = found;
|
|
61
|
+
const refused = mutationRefusal(entry);
|
|
62
|
+
if (refused !== null) {
|
|
63
|
+
return browserAnswer({
|
|
64
|
+
ctx,
|
|
65
|
+
state: "refused",
|
|
66
|
+
headline: `${entry.profile?.name ?? "This environment"} is read-only.`,
|
|
67
|
+
notes: [refused],
|
|
68
|
+
data: { sessionId, ref, value, url: entry.page.currentUrl(), evidence: emptyEvidence(), graph: NO_GRAPH_WRITE },
|
|
69
|
+
});
|
|
70
|
+
}
|
|
71
|
+
try {
|
|
72
|
+
ctx.progress("Choosing");
|
|
73
|
+
await entry.page.select(ref, value);
|
|
74
|
+
}
|
|
75
|
+
catch (error) {
|
|
76
|
+
// Three refusals, kept apart because they send a caller to three different fixes: a ref
|
|
77
|
+
// that names nothing, an element that chooses nothing, and an option that is not offered.
|
|
78
|
+
// Collapsing them into one message is how an agent retries the same wrong thing.
|
|
79
|
+
if (error instanceof UnknownElementRefError || error instanceof NotSelectableError || error instanceof NoSuchOptionError) {
|
|
80
|
+
return browserAnswer({
|
|
81
|
+
ctx,
|
|
82
|
+
state: "refused",
|
|
83
|
+
headline: error instanceof UnknownElementRefError
|
|
84
|
+
? `"${ref}" is not an element in this session's current snapshot.`
|
|
85
|
+
: error instanceof NotSelectableError
|
|
86
|
+
? `"${ref}" offers nothing to choose from.`
|
|
87
|
+
: `"${ref}" offers no option matching ${JSON.stringify(value)}.`,
|
|
88
|
+
notes: [error.message],
|
|
89
|
+
data: { sessionId, ref, value, url: entry.page.currentUrl(), evidence: emptyEvidence(), graph: NO_GRAPH_WRITE },
|
|
90
|
+
});
|
|
91
|
+
}
|
|
92
|
+
throw error;
|
|
93
|
+
}
|
|
94
|
+
const observed = await observeAndCorrelate(ctx, entry);
|
|
95
|
+
return browserAnswer({
|
|
96
|
+
ctx,
|
|
97
|
+
headline: `Choosing ${JSON.stringify(value)} on ${entry.page.currentUrl()}.`,
|
|
98
|
+
notes: observed.notes,
|
|
99
|
+
data: { sessionId, ref, value, url: entry.page.currentUrl(), evidence: observed.evidence, graph: observed.graph },
|
|
100
|
+
});
|
|
101
|
+
}
|
|
102
|
+
export const browserSelectTool = {
|
|
103
|
+
name: "browser_select",
|
|
104
|
+
title: "choose an option on a dropdown the agent has seen",
|
|
105
|
+
description: "Choose an option on a dropdown or other chooser in an open browser session, named by a ref from a " +
|
|
106
|
+
"browser_snapshot reply. The option can be named by the value the page stores or by the label a person " +
|
|
107
|
+
"reads; both are matched exactly, and an option that is not offered is refused with the full list of " +
|
|
108
|
+
"the ones that are, rather than a near match being substituted. Returns whatever the page produced as " +
|
|
109
|
+
"a result — console errors and failed requests, raw and untriaged. Refused when the session's " +
|
|
110
|
+
"environment profile declares safetyLevel \"readOnly\".",
|
|
111
|
+
class: "action",
|
|
112
|
+
tier: "evidence",
|
|
113
|
+
version: "1.0.0",
|
|
114
|
+
inputSchema: SCHEMA,
|
|
115
|
+
run,
|
|
116
|
+
// Undefined, always: consent lives at browser_start_session — a verb that could mint its own
|
|
117
|
+
// consent would be a gate only honest callers respect.
|
|
118
|
+
describeAction: () => undefined,
|
|
119
|
+
};
|
|
120
|
+
//# sourceMappingURL=browser-select.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"browser-select.js","sourceRoot":"","sources":["../../src/tools/browser-select.ts"],"names":[],"mappings":"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"}
|
|
@@ -7,7 +7,22 @@ import type { BrowserEvidenceReport } from "../browser/evidence.ts";
|
|
|
7
7
|
import { type BrowserGraphWrite } from "../browser/graph-write.ts";
|
|
8
8
|
import { type ToolDefinition } from "./kit.ts";
|
|
9
9
|
import type { ReplyFit } from "../render.ts";
|
|
10
|
-
import type
|
|
10
|
+
import { type FrameReach, type HiddenReach, type RevealOutcome, type ShadowReach, type SnapshotElement } from "../browser/driver.ts";
|
|
11
|
+
/** What the snapshot could and could not reach, beside what it found. Separate from
|
|
12
|
+
* `totalElements`, which counts only what a ref was issued for: these say which documents were
|
|
13
|
+
* read at all, what piercing found, and what a reveal pass moved. A caller that cannot tell
|
|
14
|
+
* "the page holds nothing more" from "three frames went unread" cannot report honestly. */
|
|
15
|
+
export interface SnapshotReach {
|
|
16
|
+
/** The main document first, then each iframe — including every one that could not be read. */
|
|
17
|
+
readonly frames: readonly FrameReach[];
|
|
18
|
+
readonly shadow: ShadowReach;
|
|
19
|
+
/** What matched the interactive query and was withheld because the page renders it nowhere. */
|
|
20
|
+
readonly hidden: HiddenReach;
|
|
21
|
+
/** Null when no reveal was asked for. */
|
|
22
|
+
readonly reveal: RevealOutcome | null;
|
|
23
|
+
}
|
|
24
|
+
/** The reading for a reply that never got as far as a page. */
|
|
25
|
+
export declare const NO_REACH: SnapshotReach;
|
|
11
26
|
export interface BrowserPageData {
|
|
12
27
|
readonly sessionId: string;
|
|
13
28
|
readonly url: string;
|
|
@@ -15,6 +30,7 @@ export interface BrowserPageData {
|
|
|
15
30
|
readonly elements: readonly SnapshotElement[];
|
|
16
31
|
/** How many elements the page has — never the number in `elements` when they differ; that's the whole point. */
|
|
17
32
|
readonly totalElements: number;
|
|
33
|
+
readonly reach: SnapshotReach;
|
|
18
34
|
readonly evidence: BrowserEvidenceReport;
|
|
19
35
|
/** Graph nodes this page's own requests reached, and any R4 edges witnessed. §5.3's "any graph node reached, surfaced in the same reply". */
|
|
20
36
|
readonly graph: BrowserGraphWrite;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"browser-snapshot.d.ts","sourceRoot":"","sources":["../../src/tools/browser-snapshot.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;AAEpE,OAAO,EAAkB,KAAK,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AACnF,OAAO,EAAqD,KAAK,cAAc,EAAE,MAAM,UAAU,CAAC;AAClG,OAAO,KAAK,EAAE,QAAQ,EAAc,MAAM,cAAc,CAAC;AACzD,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"browser-snapshot.d.ts","sourceRoot":"","sources":["../../src/tools/browser-snapshot.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;AAEpE,OAAO,EAAkB,KAAK,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AACnF,OAAO,EAAqD,KAAK,cAAc,EAAE,MAAM,UAAU,CAAC;AAClG,OAAO,KAAK,EAAE,QAAQ,EAAc,MAAM,cAAc,CAAC;AACzD,OAAO,EAIL,KAAK,UAAU,EACf,KAAK,WAAW,EAChB,KAAK,aAAa,EAClB,KAAK,WAAW,EAChB,KAAK,eAAe,EACrB,MAAM,sBAAsB,CAAC;AAE9B;;;4FAG4F;AAC5F,MAAM,WAAW,aAAa;IAC5B,8FAA8F;IAC9F,QAAQ,CAAC,MAAM,EAAE,SAAS,UAAU,EAAE,CAAC;IACvC,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC;IAC7B,+FAA+F;IAC/F,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC;IAC7B,yCAAyC;IACzC,QAAQ,CAAC,MAAM,EAAE,aAAa,GAAG,IAAI,CAAC;CACvC;AAED,+DAA+D;AAC/D,eAAO,MAAM,QAAQ,EAAE,aAA4G,CAAC;AAEpI,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,QAAQ,EAAE,SAAS,eAAe,EAAE,CAAC;IAC9C,gHAAgH;IAChH,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,KAAK,EAAE,aAAa,CAAC;IAC9B,QAAQ,CAAC,QAAQ,EAAE,qBAAqB,CAAC;IACzC,6IAA6I;IAC7I,QAAQ,CAAC,KAAK,EAAE,iBAAiB,CAAC;CACnC;AAED,2GAA2G;AAC3G,MAAM,MAAM,mBAAmB,GAAG,eAAe,CAAC;AAuFlD,gKAAgK;AAChK,wBAAgB,WAAW,CAAC,IAAI,EAAE,mBAAmB,EAAE,WAAW,EAAE,MAAM,GAAG,QAAQ,CAAC,mBAAmB,CAAC,CAwBzG;AAED,eAAO,MAAM,mBAAmB,EAAE,cAcjC,CAAC"}
|
|
@@ -3,9 +3,12 @@
|
|
|
3
3
|
* `get_git_diff` hit 228,860 then 84,516 chars unbounded, paid for twice.
|
|
4
4
|
* `totalElements` is always the real, uncapped count — never confused with a shortened list.
|
|
5
5
|
*/
|
|
6
|
-
import { browserAnswer, observeAndCorrelate, useSession } from "../browser/tool-support.js";
|
|
6
|
+
import { browserAnswer, observeAndCorrelate, reachNotes, useSession } from "../browser/tool-support.js";
|
|
7
7
|
import { NO_GRAPH_WRITE } from "../browser/graph-write.js";
|
|
8
8
|
import { optionalInteger, requiredString } from "./kit.js";
|
|
9
|
+
import { NO_HIDDEN_REACH, NO_SHADOW_REACH, mainFrameOnly, } from "../browser/driver.js";
|
|
10
|
+
/** The reading for a reply that never got as far as a page. */
|
|
11
|
+
export const NO_REACH = { frames: mainFrameOnly(0), shadow: NO_SHADOW_REACH, hidden: NO_HIDDEN_REACH, reveal: null };
|
|
9
12
|
const SCHEMA = {
|
|
10
13
|
type: "object",
|
|
11
14
|
properties: {
|
|
@@ -25,6 +28,13 @@ const SCHEMA = {
|
|
|
25
28
|
minimum: 1,
|
|
26
29
|
description: "At most this many elements. A reply too large for the host is shortened further regardless, and says so.",
|
|
27
30
|
},
|
|
31
|
+
reveal: {
|
|
32
|
+
type: "boolean",
|
|
33
|
+
description: "Scroll the page and re-read it, so rows that do not exist in the DOM until they scroll into view " +
|
|
34
|
+
"are seen. Off by default, because it moves the page and a list that recycles its rows will destroy " +
|
|
35
|
+
"the ones it scrolls past. Set \"reveal\" when the page is long, a table looks truncated, or an " +
|
|
36
|
+
"element you expected is missing. What it moved and what it cost is reported either way.",
|
|
37
|
+
},
|
|
28
38
|
},
|
|
29
39
|
required: ["sessionId"],
|
|
30
40
|
additionalProperties: false,
|
|
@@ -33,6 +43,7 @@ async function run(args, ctx) {
|
|
|
33
43
|
const sessionId = requiredString(args, "sessionId");
|
|
34
44
|
const startAt = optionalInteger(args, "startAt", 0) ?? 0;
|
|
35
45
|
const limit = optionalInteger(args, "limit", 1);
|
|
46
|
+
const reveal = args["reveal"] === true;
|
|
36
47
|
const found = await useSession(ctx.session.browserSessions(), sessionId);
|
|
37
48
|
if (!found.ok) {
|
|
38
49
|
return browserAnswer({
|
|
@@ -40,16 +51,16 @@ async function run(args, ctx) {
|
|
|
40
51
|
state: found.dead.state,
|
|
41
52
|
headline: found.dead.headline,
|
|
42
53
|
notes: found.dead.notes,
|
|
43
|
-
data: { sessionId: "", url: "", title: "", elements: [], totalElements: 0, evidence: found.dead.evidence, graph: NO_GRAPH_WRITE },
|
|
54
|
+
data: { sessionId: "", url: "", title: "", elements: [], totalElements: 0, reach: NO_REACH, evidence: found.dead.evidence, graph: NO_GRAPH_WRITE },
|
|
44
55
|
});
|
|
45
56
|
}
|
|
46
57
|
const { entry } = found;
|
|
47
58
|
ctx.progress("Reading the page");
|
|
48
|
-
const snapshot = await entry.page.snapshot();
|
|
59
|
+
const snapshot = await entry.page.snapshot({ reveal });
|
|
49
60
|
const observed = await observeAndCorrelate(ctx, entry);
|
|
50
61
|
const evidence = observed.evidence;
|
|
51
62
|
const windowed = snapshot.elements.slice(startAt, limit === undefined ? undefined : startAt + limit);
|
|
52
|
-
const notes = [...observed.notes];
|
|
63
|
+
const notes = [...observed.notes, ...reachNotes(snapshot)];
|
|
53
64
|
if (windowed.length < snapshot.totalElements) {
|
|
54
65
|
notes.push(`Showing ${windowed.length} of ${snapshot.totalElements} elements, from index ${startAt}. ` +
|
|
55
66
|
"totalElements is always the real count — ask again with startAt past what you have seen.");
|
|
@@ -60,6 +71,7 @@ async function run(args, ctx) {
|
|
|
60
71
|
title: snapshot.title,
|
|
61
72
|
elements: windowed,
|
|
62
73
|
totalElements: snapshot.totalElements,
|
|
74
|
+
reach: { frames: snapshot.frames, shadow: snapshot.shadow, hidden: snapshot.hidden, reveal: snapshot.reveal },
|
|
63
75
|
evidence,
|
|
64
76
|
graph: observed.graph,
|
|
65
77
|
};
|
|
@@ -102,7 +114,8 @@ export const browserSnapshotTool = {
|
|
|
102
114
|
description: "Return the elements on the page an open browser session is showing, each with a ref the click, type " +
|
|
103
115
|
"and fill tools take. Also returns anything the page produced since your last call — console errors and " +
|
|
104
116
|
"failed requests, raw and untriaged. totalElements is always the page's real element count, so a short " +
|
|
105
|
-
"list means the rest did not fit rather than that the page is small."
|
|
117
|
+
"list means the rest did not fit rather than that the page is small. Shadow roots are pierced and " +
|
|
118
|
+
"iframes are read; reach says which documents were read, what was withheld and why.",
|
|
106
119
|
class: "stateful-read",
|
|
107
120
|
tier: "evidence",
|
|
108
121
|
version: "1.0.0",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"browser-snapshot.js","sourceRoot":"","sources":["../../src/tools/browser-snapshot.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAAE,aAAa,EAAE,mBAAmB,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;
|
|
1
|
+
{"version":3,"file":"browser-snapshot.js","sourceRoot":"","sources":["../../src/tools/browser-snapshot.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"browser-start-session.d.ts","sourceRoot":"","sources":["../../src/tools/browser-start-session.ts"],"names":[],"mappings":"AAAA;;;;6DAI6D;AAG7D,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;AAEpE,OAAO,EAAkB,KAAK,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;
|
|
1
|
+
{"version":3,"file":"browser-start-session.d.ts","sourceRoot":"","sources":["../../src/tools/browser-start-session.ts"],"names":[],"mappings":"AAAA;;;;6DAI6D;AAG7D,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;AAEpE,OAAO,EAAkB,KAAK,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAUnF,OAAO,EAAmG,KAAK,cAAc,EAAE,MAAM,UAAU,CAAC;AAGhJ,MAAM,WAAW,uBAAuB;IACtC,4EAA4E;IAC5E,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,+EAA+E;IAC/E,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IACjC,mFAAmF;IACnF,QAAQ,CAAC,WAAW,EAAE,UAAU,GAAG,OAAO,GAAG,yBAAyB,GAAG,IAAI,CAAC;IAC9E,+EAA+E;IAC/E,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,QAAQ,EAAE,qBAAqB,CAAC;IACzC,QAAQ,CAAC,KAAK,EAAE,iBAAiB,CAAC;CACnC;AAqfD,eAAO,MAAM,uBAAuB,EAAE,cAyFrC,CAAC"}
|
|
@@ -4,10 +4,11 @@
|
|
|
4
4
|
* `action`: the only browser tool that mints a token; the verbs it consents for
|
|
5
5
|
* redeem nothing, since the session is already confirmed. */
|
|
6
6
|
import { CANCELLED_STATE, cancellationHeadline, cancellationNotes } from "../cancellation.js";
|
|
7
|
-
import { browserAnswer, emptyEvidence, observeAndCorrelate } from "../browser/tool-support.js";
|
|
7
|
+
import { browserAnswer, emptyEvidence, observeAndCorrelate, reachNotes } from "../browser/tool-support.js";
|
|
8
8
|
import { NO_GRAPH_WRITE } from "../browser/graph-write.js";
|
|
9
9
|
import { isAbsolute, join } from "node:path";
|
|
10
10
|
import { loadStackParser, StackParserLoadError } from "../browser/stack-parser.js";
|
|
11
|
+
import { headerSecrets, loadStorageStateFile, resolveSavePath, storageStateSecrets } from "../browser/auth.js";
|
|
11
12
|
import { checkUrlScheme } from "../browser/url-scheme.js";
|
|
12
13
|
import { optionalBoolean, optionalEnum, optionalString, requiredString, ToolInputError } from "./kit.js";
|
|
13
14
|
const SCHEMA = {
|
|
@@ -107,6 +108,30 @@ const SCHEMA = {
|
|
|
107
108
|
},
|
|
108
109
|
additionalProperties: false,
|
|
109
110
|
},
|
|
111
|
+
storageStatePath: {
|
|
112
|
+
type: "string",
|
|
113
|
+
description: "A FILE holding a saved browser storage state, instead of naming cookies inline. Absolute, or " +
|
|
114
|
+
"relative to the repository root. This is the practical way to reach a logged-in screen: start one " +
|
|
115
|
+
"session with headless false and saveStorageStateTo, log in by hand, close it — every later session " +
|
|
116
|
+
"seeds from that file and nobody logs in again. Anything in the file outside this session's " +
|
|
117
|
+
"consented origin is REFUSED by name, not quietly dropped.",
|
|
118
|
+
},
|
|
119
|
+
extraHttpHeaders: {
|
|
120
|
+
type: "object",
|
|
121
|
+
description: "Headers added to every request this session makes TO THE CONSENTED ORIGIN — typically " +
|
|
122
|
+
"{\"Authorization\": \"Bearer ...\"} for an application whose credential is a token rather than a " +
|
|
123
|
+
"cookie. Deliberately NOT sent to any other host: headers set on a whole browser travel with every " +
|
|
124
|
+
"request it makes, which on an ordinary page means handing your token to every third-party script, " +
|
|
125
|
+
"font and analytics endpoint the page loads.",
|
|
126
|
+
additionalProperties: { type: "string" },
|
|
127
|
+
},
|
|
128
|
+
saveStorageStateTo: {
|
|
129
|
+
type: "string",
|
|
130
|
+
description: "Write this session's cookies and stored data to this file when the session closes, so a login done " +
|
|
131
|
+
"once here can seed later sessions with storageStatePath. Must be an ABSOLUTE PATH OUTSIDE THE " +
|
|
132
|
+
"REPOSITORY — the file is a live credential, and one written into a working tree is one `git add .` " +
|
|
133
|
+
"from being committed.",
|
|
134
|
+
},
|
|
110
135
|
confirmToken: {
|
|
111
136
|
type: "string",
|
|
112
137
|
description: "The token returned by a previous call. Starting a browser session takes two calls: the first " +
|
|
@@ -202,6 +227,25 @@ function readStorageState(args) {
|
|
|
202
227
|
return null;
|
|
203
228
|
return { ...(cookies === undefined ? {} : { cookies }), ...(localStorage === undefined ? {} : { localStorage }) };
|
|
204
229
|
}
|
|
230
|
+
/**
|
|
231
|
+
* Extra headers, or null. Values are checked but never echoed.
|
|
232
|
+
*/
|
|
233
|
+
function readExtraHttpHeaders(args) {
|
|
234
|
+
const raw = args["extraHttpHeaders"];
|
|
235
|
+
if (raw === undefined || raw === null)
|
|
236
|
+
return null;
|
|
237
|
+
if (typeof raw !== "object" || Array.isArray(raw))
|
|
238
|
+
throw new ToolInputError('"extraHttpHeaders" must be an object');
|
|
239
|
+
const headers = {};
|
|
240
|
+
for (const [name, value] of Object.entries(raw)) {
|
|
241
|
+
if (typeof value !== "string")
|
|
242
|
+
throw new ToolInputError(`"extraHttpHeaders.${name}" must be a string`);
|
|
243
|
+
headers[name] = value;
|
|
244
|
+
}
|
|
245
|
+
if (Object.keys(headers).length === 0)
|
|
246
|
+
throw new ToolInputError('"extraHttpHeaders" was given with no headers in it');
|
|
247
|
+
return headers;
|
|
248
|
+
}
|
|
205
249
|
function readStackParserSpec(args) {
|
|
206
250
|
const raw = args["stackParser"];
|
|
207
251
|
if (raw === undefined || raw === null)
|
|
@@ -253,7 +297,26 @@ async function run(args, ctx) {
|
|
|
253
297
|
const target = parseTarget(args);
|
|
254
298
|
const headless = optionalBoolean(args, "headless") ?? true;
|
|
255
299
|
const profile = readProfile(args);
|
|
256
|
-
const
|
|
300
|
+
const inlineState = readStorageState(args);
|
|
301
|
+
const statePath = optionalString(args, "storageStatePath");
|
|
302
|
+
if (inlineState !== null && statePath !== undefined) {
|
|
303
|
+
throw new ToolInputError('"storageState" and "storageStatePath" were both given. There is no precedence rule between them on ' +
|
|
304
|
+
"purpose — picking one silently is how a session ends up seeded from a file the caller believed they " +
|
|
305
|
+
"had overridden. Give exactly one.");
|
|
306
|
+
}
|
|
307
|
+
// Read before anything launches, for the same reason the stack parser below
|
|
308
|
+
// is: an unreadable file or a cookie for another host is a refusal the
|
|
309
|
+
// caller can fix, and discovering it after a browser is open would mean a
|
|
310
|
+
// session that silently drove the logged-out surface instead.
|
|
311
|
+
const storageState = statePath === undefined
|
|
312
|
+
? inlineState
|
|
313
|
+
: loadStorageStateFile(statePath, { consentedOrigin: target.origin, repoPath: ctx.session.repoPath });
|
|
314
|
+
const extraHttpHeaders = readExtraHttpHeaders(args);
|
|
315
|
+
const rawSavePath = optionalString(args, "saveStorageStateTo");
|
|
316
|
+
const saveStorageStateTo = rawSavePath === undefined ? undefined : resolveSavePath(rawSavePath, ctx.session.repoPath);
|
|
317
|
+
// Registered before the launch, not after: if the launch throws, these are
|
|
318
|
+
// still the values anything this server writes must refuse to carry.
|
|
319
|
+
ctx.session.noteBrowserSecrets([...storageStateSecrets(storageState), ...headerSecrets(extraHttpHeaders)]);
|
|
257
320
|
const parserSpec = readStackParserSpec(args);
|
|
258
321
|
const documentRoot = optionalString(args, "documentRoot");
|
|
259
322
|
const backend = ctx.session.browserBackend();
|
|
@@ -311,6 +374,8 @@ async function run(args, ctx) {
|
|
|
311
374
|
headless,
|
|
312
375
|
profile,
|
|
313
376
|
...(storageState === null ? {} : { storageState }),
|
|
377
|
+
...(extraHttpHeaders === null ? {} : { extraHttpHeaders }),
|
|
378
|
+
...(saveStorageStateTo === undefined ? {} : { saveStorageStateTo }),
|
|
314
379
|
});
|
|
315
380
|
if (!opened.opened) {
|
|
316
381
|
const notes = opened.kind === "atCapacity"
|
|
@@ -341,6 +406,7 @@ async function run(args, ctx) {
|
|
|
341
406
|
ctx,
|
|
342
407
|
headline: `Browser session ${entry.sessionId} open at ${snapshot.url} (${snapshot.totalElements} elements).`,
|
|
343
408
|
notes: [
|
|
409
|
+
...reachNotes(snapshot),
|
|
344
410
|
`Consent covers ${entry.consentedOrigin} for the life of this session — click, type and fill need no ` +
|
|
345
411
|
"further confirmation, and navigating to another origin will refuse. The session is torn down after " +
|
|
346
412
|
"five idle minutes, when the client disconnects, or when browser_close_session is called.",
|
|
@@ -352,8 +418,32 @@ async function run(args, ctx) {
|
|
|
352
418
|
: [
|
|
353
419
|
`Storage state was seeded before the first navigation: ${storageState.cookies?.length ?? 0} ` +
|
|
354
420
|
`cookie(s), ${Object.keys(storageState.localStorage ?? {}).length} localStorage key(s) — both ` +
|
|
355
|
-
`scoped to ${entry.consentedOrigin}
|
|
421
|
+
`scoped to ${entry.consentedOrigin}. No value is printed here or kept in this session's ` +
|
|
422
|
+
"recorded arguments.",
|
|
356
423
|
]),
|
|
424
|
+
...(extraHttpHeaders === null
|
|
425
|
+
? []
|
|
426
|
+
: [
|
|
427
|
+
`Extra request header(s) ${Object.keys(extraHttpHeaders).join(", ")} will be sent on ` +
|
|
428
|
+
`${entry.consentedOrigin} and on no other host — a credential set on the whole browser would ` +
|
|
429
|
+
"travel to every third-party script the page loads. Values are not printed.",
|
|
430
|
+
]),
|
|
431
|
+
...(saveStorageStateTo === undefined
|
|
432
|
+
? []
|
|
433
|
+
: [
|
|
434
|
+
`This session's cookies and stored data will be written to ${saveStorageStateTo} when it closes, ` +
|
|
435
|
+
"so a login performed here can seed later sessions with storageStatePath. That file is a live " +
|
|
436
|
+
"credential; it is outside the repository for that reason.",
|
|
437
|
+
]),
|
|
438
|
+
// Rule 7: an unauthenticated run is a real, disclosed limit on what was
|
|
439
|
+
// tested, not a neutral default to leave a caller to infer from silence.
|
|
440
|
+
...(storageState === null && extraHttpHeaders === null
|
|
441
|
+
? [
|
|
442
|
+
"No authentication material was given, so this session sees what a logged-out visitor sees. " +
|
|
443
|
+
"Anything behind a login was not reached and is not reported on — pass storageStatePath, " +
|
|
444
|
+
"storageState or extraHttpHeaders to reach it.",
|
|
445
|
+
]
|
|
446
|
+
: []),
|
|
357
447
|
...(parserSpec === null
|
|
358
448
|
? [
|
|
359
449
|
"No stackParser was named, so requests will be observed and the endpoints they reach will be " +
|
|
@@ -404,21 +494,83 @@ export const browserStartSessionTool = {
|
|
|
404
494
|
// what's enforced.
|
|
405
495
|
const profile = readProfile(args);
|
|
406
496
|
if (profile?.safetyLevel === "readOnly") {
|
|
407
|
-
return (`Descry may navigate and
|
|
408
|
-
`refused. It may not leave that origin.`);
|
|
497
|
+
return (`Descry may navigate, snapshot and wait anywhere on ${target.origin}. Clicking, typing, filling, ` +
|
|
498
|
+
`choosing an option and submitting a form will be refused. It may not leave that origin.`);
|
|
409
499
|
}
|
|
410
500
|
const grant = `Launch a browser and open ${target.href}. For as long as the session lives, Descry may navigate, ` +
|
|
411
|
-
`click, type and
|
|
412
|
-
"change data in that application. It may not leave that origin.";
|
|
501
|
+
`click, type, fill, choose an option and submit a form anywhere on ${target.origin} without asking ` +
|
|
502
|
+
"again — including actions that change data in that application. It may not leave that origin.";
|
|
413
503
|
// UAT phase 5 §7/B9: absent an explicit safety level, the enforcement really
|
|
414
504
|
// is unrestricted (`mutationRefusal`: no profile ⇒ no refusal) — but the
|
|
415
505
|
// prompt must say that is *because no profile was supplied*, not state
|
|
416
506
|
// unrestricted authority as though it had been deliberately chosen. A
|
|
417
507
|
// consent prompt that reads the same whether a level was set or omitted
|
|
418
508
|
// hides the one piece of information that would tell a caller to go set one.
|
|
509
|
+
// B1: credentials change what is being approved, so they change this
|
|
510
|
+
// text. The unseeded sentence already warns that data may change; a
|
|
511
|
+
// seeded session changes *whose* data — every action runs as the account
|
|
512
|
+
// whose session was handed over. A prompt that read identically either
|
|
513
|
+
// way would be asking for consent to something it had not mentioned.
|
|
514
|
+
const seeded = args["storageState"] !== undefined ||
|
|
515
|
+
args["storageStatePath"] !== undefined ||
|
|
516
|
+
args["extraHttpHeaders"] !== undefined;
|
|
517
|
+
const asUser = seeded
|
|
518
|
+
? " The session will be started ALREADY LOGGED IN, from the authentication material in this call: " +
|
|
519
|
+
"everything it does will be done as that user, with whatever that account is permitted to do, on " +
|
|
520
|
+
"screens a logged-out visitor could not reach. The credential itself is not shown here and will " +
|
|
521
|
+
"not appear in any reply."
|
|
522
|
+
: "";
|
|
419
523
|
return profile === null
|
|
420
|
-
? `No environment profile was supplied, so nothing here restricts what Descry may do. ${grant}`
|
|
421
|
-
: `Environment profile "${profile.name}" declares safetyLevel "${profile.safetyLevel}". ${grant}`;
|
|
524
|
+
? `No environment profile was supplied, so nothing here restricts what Descry may do. ${grant}${asUser}`
|
|
525
|
+
: `Environment profile "${profile.name}" declares safetyLevel "${profile.safetyLevel}". ${grant}${asUser}`;
|
|
526
|
+
},
|
|
527
|
+
/**
|
|
528
|
+
* What may be remembered about this call — B1's secrets rule, at the one
|
|
529
|
+
* place a credential enters this server.
|
|
530
|
+
*
|
|
531
|
+
* `server.ts` records every completed call's arguments on the `Session` so
|
|
532
|
+
* `verify_claim` can check a citation against them. This is the only tool
|
|
533
|
+
* whose arguments can be a credential, so it is the only one that
|
|
534
|
+
* implements this.
|
|
535
|
+
*
|
|
536
|
+
* Structural rather than a known-value substitution, deliberately: this
|
|
537
|
+
* runs on the arguments **as the caller sent them**, including for a call
|
|
538
|
+
* refused before any state was built, so there is no validated seed to take
|
|
539
|
+
* a value list from. Names are kept — a reader of a recorded call must
|
|
540
|
+
* still be able to see that a session was seeded and with what kind of
|
|
541
|
+
* material.
|
|
542
|
+
*/
|
|
543
|
+
redactArgs(args) {
|
|
544
|
+
const out = { ...args };
|
|
545
|
+
let touched = false;
|
|
546
|
+
if (out["storageState"] !== undefined && out["storageState"] !== null) {
|
|
547
|
+
out["storageState"] = redactStorageStateArgument(out["storageState"]);
|
|
548
|
+
touched = true;
|
|
549
|
+
}
|
|
550
|
+
if (typeof out["extraHttpHeaders"] === "object" && out["extraHttpHeaders"] !== null) {
|
|
551
|
+
out["extraHttpHeaders"] = Object.fromEntries(Object.keys(out["extraHttpHeaders"]).map((name) => [name, REDACTED]));
|
|
552
|
+
touched = true;
|
|
553
|
+
}
|
|
554
|
+
// A path is not a credential, and it is the one thing a reader needs in
|
|
555
|
+
// order to reproduce a run or clean up after it. Left intact.
|
|
556
|
+
return touched ? out : args;
|
|
422
557
|
},
|
|
423
558
|
};
|
|
559
|
+
const REDACTED = "[REDACTED]";
|
|
560
|
+
function redactStorageStateArgument(raw) {
|
|
561
|
+
if (typeof raw !== "object" || raw === null)
|
|
562
|
+
return REDACTED;
|
|
563
|
+
const fields = raw;
|
|
564
|
+
const cookies = Array.isArray(fields["cookies"])
|
|
565
|
+
? fields["cookies"].map((cookie) => typeof cookie === "object" && cookie !== null ? { ...cookie, value: REDACTED } : REDACTED)
|
|
566
|
+
: fields["cookies"];
|
|
567
|
+
const stored = typeof fields["localStorage"] === "object" && fields["localStorage"] !== null
|
|
568
|
+
? Object.fromEntries(Object.keys(fields["localStorage"]).map((key) => [key, REDACTED]))
|
|
569
|
+
: fields["localStorage"];
|
|
570
|
+
return {
|
|
571
|
+
...fields,
|
|
572
|
+
...(cookies === undefined ? {} : { cookies }),
|
|
573
|
+
...(stored === undefined ? {} : { localStorage: stored }),
|
|
574
|
+
};
|
|
575
|
+
}
|
|
424
576
|
//# sourceMappingURL=browser-start-session.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"browser-start-session.js","sourceRoot":"","sources":["../../src/tools/browser-start-session.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"browser-start-session.js","sourceRoot":"","sources":["../../src/tools/browser-start-session.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/** `browser_submit` submits the form an element sits in, through that form's own submit
|
|
2
|
+
* control — so the page sees the submission a person would produce, validation included.
|
|
3
|
+
* Consent is granted once, at `browser_start_session` (DEC-380): `class: "action"`,
|
|
4
|
+
* `describeAction` undefined, a verb cannot mint its own consent. Nothing is guessed: an
|
|
5
|
+
* element in no form, or in a form with no submit control, is refused by name. */
|
|
6
|
+
import type { BrowserEvidenceReport } from "../browser/evidence.ts";
|
|
7
|
+
import { type BrowserGraphWrite } from "../browser/graph-write.ts";
|
|
8
|
+
import { type ToolDefinition } from "./kit.ts";
|
|
9
|
+
export interface BrowserSubmitData {
|
|
10
|
+
readonly sessionId: string;
|
|
11
|
+
readonly ref: string;
|
|
12
|
+
readonly url: string;
|
|
13
|
+
readonly evidence: BrowserEvidenceReport;
|
|
14
|
+
/** Graph nodes this action's own requests reached, and any R4 edges it witnessed. */
|
|
15
|
+
readonly graph: BrowserGraphWrite;
|
|
16
|
+
}
|
|
17
|
+
export declare const browserSubmitTool: ToolDefinition;
|
|
18
|
+
//# sourceMappingURL=browser-submit.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"browser-submit.d.ts","sourceRoot":"","sources":["../../src/tools/browser-submit.ts"],"names":[],"mappings":"AAAA;;;;mFAImF;AAEnF,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;AAEpE,OAAO,EAAkB,KAAK,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAGnF,OAAO,EAAoC,KAAK,cAAc,EAAE,MAAM,UAAU,CAAC;AAGjF,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,QAAQ,EAAE,qBAAqB,CAAC;IACzC,qFAAqF;IACrF,QAAQ,CAAC,KAAK,EAAE,iBAAiB,CAAC;CACnC;AA4FD,eAAO,MAAM,iBAAiB,EAAE,cAgB/B,CAAC"}
|