cbrowser 18.37.0 → 18.38.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.
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"security-tools.d.ts","sourceRoot":"","sources":["../../../src/mcp-tools/base/security-tools.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAM7C;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,
|
|
1
|
+
{"version":3,"file":"security-tools.d.ts","sourceRoot":"","sources":["../../../src/mcp-tools/base/security-tools.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAM7C;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAsH7D"}
|
|
@@ -10,11 +10,15 @@ import { securityAuditHandler, } from "mcp-guardian";
|
|
|
10
10
|
* Register security tools (1 tool: security_audit)
|
|
11
11
|
*/
|
|
12
12
|
export function registerSecurityTools(server) {
|
|
13
|
-
server.tool("security_audit", "Audit MCP tool definitions for potential prompt injection attacks. Scans tool descriptions for cross-tool instructions, privilege escalation attempts, and data exfiltration patterns.
|
|
13
|
+
server.tool("security_audit", "Audit MCP tool definitions for potential prompt injection attacks. Scans tool descriptions for cross-tool instructions, privilege escalation attempts, and data exfiltration patterns. Works with: local config file (Claude Desktop), remote MCP URL (Claude.ai connectors), or self-scan of current server.", {
|
|
14
14
|
config_path: z
|
|
15
15
|
.string()
|
|
16
16
|
.optional()
|
|
17
|
-
.describe("Path to claude_desktop_config.json. If
|
|
17
|
+
.describe("Path to claude_desktop_config.json (Claude Desktop). If omitted, use mcp_url or self-scan."),
|
|
18
|
+
mcp_url: z
|
|
19
|
+
.string()
|
|
20
|
+
.optional()
|
|
21
|
+
.describe("URL of a remote MCP server to scan (e.g., 'https://demo.cbrowser.ai/mcp'). Fetches tool manifest directly — works from Claude.ai without a config file."),
|
|
18
22
|
format: z
|
|
19
23
|
.enum(["json", "text"])
|
|
20
24
|
.optional()
|
|
@@ -26,7 +30,86 @@ export function registerSecurityTools(server) {
|
|
|
26
30
|
.default(false)
|
|
27
31
|
.describe("If true, connects to MCP servers to scan their tools (slower but more accurate)."),
|
|
28
32
|
}, async (params) => {
|
|
29
|
-
|
|
33
|
+
const { mcp_url, ...baseParams } = params;
|
|
34
|
+
// v18.35.0: Support scanning remote MCP servers by URL
|
|
35
|
+
// Fetches the tool manifest via MCP initialize + tools/list, then passes
|
|
36
|
+
// the tool definitions directly to mcp-guardian for scanning
|
|
37
|
+
if (mcp_url) {
|
|
38
|
+
try {
|
|
39
|
+
// Connect to remote MCP server and fetch tool list
|
|
40
|
+
const initResponse = await fetch(mcp_url, {
|
|
41
|
+
method: "POST",
|
|
42
|
+
headers: { "Content-Type": "application/json" },
|
|
43
|
+
body: JSON.stringify({
|
|
44
|
+
jsonrpc: "2.0",
|
|
45
|
+
id: 1,
|
|
46
|
+
method: "initialize",
|
|
47
|
+
params: {
|
|
48
|
+
protocolVersion: "2024-11-05",
|
|
49
|
+
capabilities: {},
|
|
50
|
+
clientInfo: { name: "cbrowser-security-audit", version: "1.0" },
|
|
51
|
+
},
|
|
52
|
+
}),
|
|
53
|
+
});
|
|
54
|
+
// Parse SSE response
|
|
55
|
+
const initText = await initResponse.text();
|
|
56
|
+
const initData = initText.split("\n").find(l => l.startsWith("data: "));
|
|
57
|
+
if (!initData)
|
|
58
|
+
throw new Error("No response from MCP server");
|
|
59
|
+
// Fetch tool list
|
|
60
|
+
const toolsResponse = await fetch(mcp_url, {
|
|
61
|
+
method: "POST",
|
|
62
|
+
headers: { "Content-Type": "application/json" },
|
|
63
|
+
body: JSON.stringify({
|
|
64
|
+
jsonrpc: "2.0",
|
|
65
|
+
id: 2,
|
|
66
|
+
method: "tools/list",
|
|
67
|
+
params: {},
|
|
68
|
+
}),
|
|
69
|
+
});
|
|
70
|
+
const toolsText = await toolsResponse.text();
|
|
71
|
+
const toolsData = toolsText.split("\n").find(l => l.startsWith("data: "));
|
|
72
|
+
if (!toolsData)
|
|
73
|
+
throw new Error("No tools/list response from MCP server");
|
|
74
|
+
const parsed = JSON.parse(toolsData.replace("data: ", ""));
|
|
75
|
+
const tools = parsed.result?.tools || [];
|
|
76
|
+
if (tools.length === 0) {
|
|
77
|
+
return {
|
|
78
|
+
content: [{
|
|
79
|
+
type: "text",
|
|
80
|
+
text: JSON.stringify({ error: "No tools found at " + mcp_url, suggestion: "Verify the URL is a valid MCP endpoint" }, null, 2),
|
|
81
|
+
}],
|
|
82
|
+
};
|
|
83
|
+
}
|
|
84
|
+
// Map to mcp-guardian's ToolDefinition format
|
|
85
|
+
const toolDefs = tools.map((t) => ({
|
|
86
|
+
name: t.name,
|
|
87
|
+
description: t.description || "",
|
|
88
|
+
inputSchema: t.inputSchema || {},
|
|
89
|
+
}));
|
|
90
|
+
// Pass tools directly to handler
|
|
91
|
+
const options = {
|
|
92
|
+
format: baseParams.format,
|
|
93
|
+
tools: toolDefs,
|
|
94
|
+
serverName: new URL(mcp_url).hostname,
|
|
95
|
+
};
|
|
96
|
+
return await securityAuditHandler(options);
|
|
97
|
+
}
|
|
98
|
+
catch (err) {
|
|
99
|
+
return {
|
|
100
|
+
content: [{
|
|
101
|
+
type: "text",
|
|
102
|
+
text: JSON.stringify({
|
|
103
|
+
error: `Failed to scan remote MCP server: ${err instanceof Error ? err.message : String(err)}`,
|
|
104
|
+
mcp_url,
|
|
105
|
+
suggestion: "Verify the URL is reachable and returns valid MCP responses. Example: https://demo.cbrowser.ai/mcp",
|
|
106
|
+
}, null, 2),
|
|
107
|
+
}],
|
|
108
|
+
};
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
// Original behavior: config_path or self-scan
|
|
112
|
+
return await securityAuditHandler(baseParams);
|
|
30
113
|
});
|
|
31
114
|
}
|
|
32
115
|
//# sourceMappingURL=security-tools.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"security-tools.js","sourceRoot":"","sources":["../../../src/mcp-tools/base/security-tools.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EACL,oBAAoB,GAErB,MAAM,cAAc,CAAC;AAEtB;;GAEG;AACH,MAAM,UAAU,qBAAqB,CAAC,MAAiB;IACrD,MAAM,CAAC,IAAI,CACT,gBAAgB,EAChB,
|
|
1
|
+
{"version":3,"file":"security-tools.js","sourceRoot":"","sources":["../../../src/mcp-tools/base/security-tools.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EACL,oBAAoB,GAErB,MAAM,cAAc,CAAC;AAEtB;;GAEG;AACH,MAAM,UAAU,qBAAqB,CAAC,MAAiB;IACrD,MAAM,CAAC,IAAI,CACT,gBAAgB,EAChB,+SAA+S,EAC/S;QACE,WAAW,EAAE,CAAC;aACX,MAAM,EAAE;aACR,QAAQ,EAAE;aACV,QAAQ,CACP,4FAA4F,CAC7F;QACH,OAAO,EAAE,CAAC;aACP,MAAM,EAAE;aACR,QAAQ,EAAE;aACV,QAAQ,CACP,yJAAyJ,CAC1J;QACH,MAAM,EAAE,CAAC;aACN,IAAI,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;aACtB,QAAQ,EAAE;aACV,OAAO,CAAC,MAAM,CAAC;aACf,QAAQ,CAAC,2DAA2D,CAAC;QACxE,UAAU,EAAE,CAAC;aACV,OAAO,EAAE;aACT,QAAQ,EAAE;aACV,OAAO,CAAC,KAAK,CAAC;aACd,QAAQ,CAAC,kFAAkF,CAAC;KAChG,EACD,KAAK,EAAE,MAAM,EAAE,EAAE;QACf,MAAM,EAAE,OAAO,EAAE,GAAG,UAAU,EAAE,GAAG,MAAM,CAAC;QAE1C,uDAAuD;QACvD,yEAAyE;QACzE,6DAA6D;QAC7D,IAAI,OAAO,EAAE,CAAC;YACZ,IAAI,CAAC;gBACH,mDAAmD;gBACnD,MAAM,YAAY,GAAG,MAAM,KAAK,CAAC,OAAO,EAAE;oBACxC,MAAM,EAAE,MAAM;oBACd,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE;oBAC/C,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;wBACnB,OAAO,EAAE,KAAK;wBACd,EAAE,EAAE,CAAC;wBACL,MAAM,EAAE,YAAY;wBACpB,MAAM,EAAE;4BACN,eAAe,EAAE,YAAY;4BAC7B,YAAY,EAAE,EAAE;4BAChB,UAAU,EAAE,EAAE,IAAI,EAAE,yBAAyB,EAAE,OAAO,EAAE,KAAK,EAAE;yBAChE;qBACF,CAAC;iBACH,CAAC,CAAC;gBAEH,qBAAqB;gBACrB,MAAM,QAAQ,GAAG,MAAM,YAAY,CAAC,IAAI,EAAE,CAAC;gBAC3C,MAAM,QAAQ,GAAG,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC;gBACxE,IAAI,CAAC,QAAQ;oBAAE,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAC;gBAE9D,kBAAkB;gBAClB,MAAM,aAAa,GAAG,MAAM,KAAK,CAAC,OAAO,EAAE;oBACzC,MAAM,EAAE,MAAM;oBACd,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE;oBAC/C,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;wBACnB,OAAO,EAAE,KAAK;wBACd,EAAE,EAAE,CAAC;wBACL,MAAM,EAAE,YAAY;wBACpB,MAAM,EAAE,EAAE;qBACX,CAAC;iBACH,CAAC,CAAC;gBAEH,MAAM,SAAS,GAAG,MAAM,aAAa,CAAC,IAAI,EAAE,CAAC;gBAC7C,MAAM,SAAS,GAAG,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC;gBAC1E,IAAI,CAAC,SAAS;oBAAE,MAAM,IAAI,KAAK,CAAC,wCAAwC,CAAC,CAAC;gBAE1E,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC;gBAC3D,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,EAAE,KAAK,IAAI,EAAE,CAAC;gBAEzC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;oBACvB,OAAO;wBACL,OAAO,EAAE,CAAC;gCACR,IAAI,EAAE,MAAe;gCACrB,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,oBAAoB,GAAG,OAAO,EAAE,UAAU,EAAE,wCAAwC,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC;6BAC/H,CAAC;qBACH,CAAC;gBACJ,CAAC;gBAED,8CAA8C;gBAC9C,MAAM,QAAQ,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAgE,EAAE,EAAE,CAAC,CAAC;oBAChG,IAAI,EAAE,CAAC,CAAC,IAAI;oBACZ,WAAW,EAAE,CAAC,CAAC,WAAW,IAAI,EAAE;oBAChC,WAAW,EAAE,CAAC,CAAC,WAAW,IAAI,EAAE;iBACjC,CAAC,CAAC,CAAC;gBAEJ,iCAAiC;gBACjC,MAAM,OAAO,GAAgC;oBAC3C,MAAM,EAAE,UAAU,CAAC,MAAM;oBACzB,KAAK,EAAE,QAAQ;oBACf,UAAU,EAAE,IAAI,GAAG,CAAC,OAAO,CAAC,CAAC,QAAQ;iBACtC,CAAC;gBAEF,OAAO,MAAM,oBAAoB,CAAC,OAAO,CAAC,CAAC;YAC7C,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,OAAO;oBACL,OAAO,EAAE,CAAC;4BACR,IAAI,EAAE,MAAe;4BACrB,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;gCACnB,KAAK,EAAE,qCAAqC,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE;gCAC9F,OAAO;gCACP,UAAU,EAAE,oGAAoG;6BACjH,EAAE,IAAI,EAAE,CAAC,CAAC;yBACZ,CAAC;iBACH,CAAC;YACJ,CAAC;QACH,CAAC;QAED,8CAA8C;QAC9C,OAAO,MAAM,oBAAoB,CAAC,UAAyC,CAAC,CAAC;IAC/E,CAAC,CACF,CAAC;AACJ,CAAC"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
# Cognitive Optimal Transport — Research Synthesis
|
|
2
2
|
|
|
3
|
-
**Date:** 2026-04-
|
|
4
|
-
**
|
|
5
|
-
**Sources:**
|
|
3
|
+
**Date:** 2026-04-11 (updated)
|
|
4
|
+
**Issues:** #159, #160, #161, #162, #163
|
|
5
|
+
**Sources:** 50+ papers across neuroscience, HCI, accessibility, and mathematics
|
|
6
6
|
**Research agents:** 3 parallel, 80+ targeted queries
|
|
7
7
|
|
|
8
8
|
---
|
|
@@ -131,39 +131,56 @@ This is a single, principled, theoretically grounded number. No competitor has a
|
|
|
131
131
|
|
|
132
132
|
## Mathematical Foundations (Implementability)
|
|
133
133
|
|
|
134
|
-
| Component | Complexity (d=
|
|
135
|
-
|
|
136
|
-
| Sliced Wasserstein distance | O(L×n×d) ~
|
|
137
|
-
| Gaussian W₂ + geodesic | O(d³) ~
|
|
138
|
-
| Gaussian barycenter | O(K×d³) per iter | No | Yes, sub-ms |
|
|
139
|
-
| DRO adversarial personas | O(N×d) per LP | No | Yes, sub-ms |
|
|
140
|
-
| Sinkhorn discrete OT | O(n²/ε²) per iter | No | Yes, <10ms |
|
|
141
|
-
|
|
|
134
|
+
| Component | Complexity (d=26) | GPU | TypeScript Feasible | Status |
|
|
135
|
+
|---|---|---|---|---|
|
|
136
|
+
| Sliced Wasserstein distance | O(L×n×d) ~520K ops | No | Yes, sub-ms | **Shipped v18.26** |
|
|
137
|
+
| Gaussian W₂ + geodesic | O(d³) ~17.5K ops | No | Yes, sub-ms | **Shipped v18.27** |
|
|
138
|
+
| Gaussian barycenter | O(K×d³) per iter | No | Yes, sub-ms | **Shipped v18.26** |
|
|
139
|
+
| DRO adversarial personas | O(N×d) per LP | No | Yes, sub-ms | **Shipped v18.27** |
|
|
140
|
+
| Sinkhorn discrete OT | O(n²/ε²) per iter | No | Yes, <10ms | **Shipped v18.26** |
|
|
141
|
+
| Page Understanding (DOM) | O(n) elements | No | Yes, <500ms | **Shipped v18.35** |
|
|
142
|
+
| Site Model Learning | O(1) amortized writes | No | Yes, <50ms | **Shipped v18.35** |
|
|
143
|
+
| Goal Decomposition | O(k×s) subgoals×strategies | No | Yes, <100ms | **Shipped v18.35** |
|
|
144
|
+
| siteFamiliarity gating | O(1) lookup | No | Yes, <1ms | **Shipped v18.35** |
|
|
142
145
|
|
|
143
|
-
**Key insight:** For d=
|
|
146
|
+
**Key insight:** For d=26 traits, the Gaussian assumption gives closed-form solutions for everything. No GPU needed. The entire framework runs in pure TypeScript at sub-millisecond latency.
|
|
144
147
|
|
|
145
148
|
---
|
|
146
149
|
|
|
147
150
|
## Novel Contributions (What Nobody Has Done)
|
|
148
151
|
|
|
149
|
-
1. **First persona system with mathematically grounded cognitive distance** — W₁(personaA, personaB)
|
|
150
|
-
2. **First accessibility tool measuring transport-cost information loss** —
|
|
151
|
-
3. **First adversarial UX testing via distributionally robust optimization** — Wasserstein balls around known personas
|
|
152
|
-
4. **First persona interpolation using displacement geodesics** — McCann interpolation preserves trait coupling
|
|
153
|
-
5. **First unified multi-layer OT accessibility score** — sum of transport costs across 6 cognitive layers
|
|
154
|
-
6. **First attention-as-transport model for web UX** — persona saliency via filtered W₂
|
|
152
|
+
1. **First persona system with mathematically grounded cognitive distance** — W₁(personaA, personaB) — *shipped v18.27*
|
|
153
|
+
2. **First accessibility tool measuring transport-cost information loss** — *shipped v18.26*
|
|
154
|
+
3. **First adversarial UX testing via distributionally robust optimization** — Wasserstein balls around known personas — *shipped v18.27*
|
|
155
|
+
4. **First persona interpolation using displacement geodesics** — McCann interpolation preserves trait coupling — *shipped v18.27*
|
|
156
|
+
5. **First unified multi-layer OT accessibility score** — sum of transport costs across 6 cognitive layers — *shipped v18.27*
|
|
157
|
+
6. **First attention-as-transport model for web UX** — persona saliency via filtered W₂ — *shipped v18.28*
|
|
158
|
+
7. **First persistent site knowledge graph for browser automation** — navigation maps, element reliability, goal paths that accumulate across sessions — *shipped v18.35*
|
|
159
|
+
8. **First real-time page understanding via DOM analysis** — type classification, affordance mapping, form detection in <500ms — *shipped v18.35*
|
|
160
|
+
9. **First siteFamiliarity-gated cognitive simulation** — persona site knowledge auto-scales to actual data; no simulating expertise on unknown sites — *shipped v18.35*
|
|
161
|
+
10. **First research-backed cognitive disability personas** — autism spectrum (Yaneva 2018), intellectual disability (Karreman 2007), aphasia (W3C COGA), dyscalculia (UK Gov) — *shipped v18.35*
|
|
155
162
|
|
|
156
163
|
**Publishable gap identified:** No existing work computes W(expected_experience, actual_experience) for UX abandonment prediction. The neuroscience (Dabney), behavioral signals (Yamauchi), and frustration data (Ceaparu) exist separately but nobody has unified them under optimal transport.
|
|
157
164
|
|
|
158
165
|
---
|
|
159
166
|
|
|
160
|
-
## Implementation
|
|
167
|
+
## Implementation Status
|
|
161
168
|
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
169
|
+
| Phase | Feature | Status | Version |
|
|
170
|
+
|-------|---------|--------|---------|
|
|
171
|
+
| 1 | Trait space as probability measure + cognitive distance | **Shipped** | v18.27 |
|
|
172
|
+
| 2 | Adversarial persona generation via DRO | **Shipped** | v18.27 |
|
|
173
|
+
| 3 | Persona geodesic interpolation (McCann) | **Shipped** | v18.27 |
|
|
174
|
+
| 4 | Six-layer cognitive transport scoring | **Shipped** | v18.27 |
|
|
175
|
+
| 5 | Attention-as-transport saliency modeling | **Shipped** | v18.28 |
|
|
176
|
+
| 6 | Real-time page understanding (DOM analysis) | **Shipped** | v18.35 |
|
|
177
|
+
| 7 | Persistent site knowledge graph | **Shipped** | v18.35 |
|
|
178
|
+
| 8 | Cross-session browser profiles (AES-256-GCM) | **Shipped** | v18.35 |
|
|
179
|
+
| 9 | Autonomous goal decomposition | **Shipped** | v18.35 |
|
|
180
|
+
| 10 | siteFamiliarity trait + knowledge gating | **Shipped** | v18.35 |
|
|
181
|
+
| 11 | Research-backed disability personas (4 new) | **Shipped** | v18.35 |
|
|
182
|
+
|
|
183
|
+
All phases complete. 104 MCP tools, 26 cognitive traits, 21 personas (11 accessibility).
|
|
167
184
|
|
|
168
185
|
---
|
|
169
186
|
|
|
@@ -189,6 +206,28 @@ This is a single, principled, theoretically grounded number. No competitor has a
|
|
|
189
206
|
- Perry, Zorzi, Ziegler (2019) "Personalized Dyslexia Models" — Psych. Science
|
|
190
207
|
- Yamauchi & Xiao (2018) "Cursor Emotion Reading" — Cognitive Science
|
|
191
208
|
|
|
209
|
+
### Disability / Accessibility HCI (v18.35)
|
|
210
|
+
- Yaneva et al. (2018) "Web Users with Autism: Eye Tracking Evidence" — Behaviour & IT
|
|
211
|
+
- Yaneva et al. (2020) "Keep It Simple: Eye-Tracking for ASD" — W4A
|
|
212
|
+
- Raymaker & Nicolaidis (2019) "AASPIRE Web Accessibility Guidelines" — PMC6485264
|
|
213
|
+
- Britto & Pizzolato (2016) "Interaction Design for ASD" — Semantic Scholar
|
|
214
|
+
- Karreman et al. (2007) "Accessible Website Content for ID" — J. Applied Research in ID
|
|
215
|
+
- Rocha et al. (2015) "Optimising Web Designs for Learning Disabilities" — PMC4467236
|
|
216
|
+
- W3C COGA (2024) "Cognitive Accessibility User Research" — W3C
|
|
217
|
+
- W3C COGA (2024) "Aphasia Research Module" — W3C
|
|
218
|
+
- W3C COGA (2024) "Dyscalculia Research Module" — W3C
|
|
219
|
+
- UK Gov Design System (2022) "Designing for Dyscalculia and Low Numeracy"
|
|
220
|
+
- Butterworth (2005) "Developmental Dyscalculia" — Science
|
|
221
|
+
- Cockburn et al. (2007) "Familiar Interfaces" — HCI
|
|
222
|
+
- Tauscher & Greenberg (1997) "How People Revisit Web Pages" — CHI
|
|
223
|
+
|
|
224
|
+
### Browser Agent Architecture (v18.35)
|
|
225
|
+
- AgentQ / MultiOn (2024) "MCTS-guided Browser Agent" — arXiv 2408.07199
|
|
226
|
+
- rtrvr.ai (2025) "DOM Intelligence Architecture" — 81.39% WebBench
|
|
227
|
+
- SeeAct (2024) "GPT-4V Grounding on Web Pages" — ICML
|
|
228
|
+
- Stagehand v3 (2025) "Action Caching with DOM Hash Validation" — Browserbase
|
|
229
|
+
- WebArena (2024) "Contextual Experience Replay" — 51% improvement with prior knowledge
|
|
230
|
+
|
|
192
231
|
### Mathematics
|
|
193
232
|
- Agueh & Carlier (2011) "Barycenters in Wasserstein Space" — SIAM
|
|
194
233
|
- Altschuler & Boix-Adsera (2022) "Barycenters are NP-Hard" — SIAM
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "cbrowser",
|
|
3
|
-
"version": "18.
|
|
3
|
+
"version": "18.38.0",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"description": "Cognitive browser automation that thinks like your users—and helps AI agents navigate too. Simulate real user cognition with abandonment detection, constitutional safety, chaos engineering, and UX friction discovery. Sites that pass CBrowser's cognitive tests are easier for both humans and AI agents to navigate.",
|
|
6
6
|
"main": "dist/index.js",
|