userflow-mcp 0.2.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/LICENSE +21 -0
- package/README.md +177 -0
- package/dist/analysis/clarity.d.ts +7 -0
- package/dist/analysis/clarity.d.ts.map +1 -0
- package/dist/analysis/clarity.js +114 -0
- package/dist/analysis/clarity.js.map +1 -0
- package/dist/analysis/cognitive-load.d.ts +7 -0
- package/dist/analysis/cognitive-load.d.ts.map +1 -0
- package/dist/analysis/cognitive-load.js +45 -0
- package/dist/analysis/cognitive-load.js.map +1 -0
- package/dist/analysis/emotional-arc.d.ts +10 -0
- package/dist/analysis/emotional-arc.d.ts.map +1 -0
- package/dist/analysis/emotional-arc.js +95 -0
- package/dist/analysis/emotional-arc.js.map +1 -0
- package/dist/analysis/friction.d.ts +23 -0
- package/dist/analysis/friction.d.ts.map +1 -0
- package/dist/analysis/friction.js +61 -0
- package/dist/analysis/friction.js.map +1 -0
- package/dist/feedback/comparison.d.ts +11 -0
- package/dist/feedback/comparison.d.ts.map +1 -0
- package/dist/feedback/comparison.js +156 -0
- package/dist/feedback/comparison.js.map +1 -0
- package/dist/feedback/generator.d.ts +19 -0
- package/dist/feedback/generator.d.ts.map +1 -0
- package/dist/feedback/generator.js +139 -0
- package/dist/feedback/generator.js.map +1 -0
- package/dist/feedback/report.d.ts +10 -0
- package/dist/feedback/report.d.ts.map +1 -0
- package/dist/feedback/report.js +123 -0
- package/dist/feedback/report.js.map +1 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +13 -0
- package/dist/index.js.map +1 -0
- package/dist/personas/engine.d.ts +39 -0
- package/dist/personas/engine.d.ts.map +1 -0
- package/dist/personas/engine.js +58 -0
- package/dist/personas/engine.js.map +1 -0
- package/dist/personas/presets.d.ts +11 -0
- package/dist/personas/presets.d.ts.map +1 -0
- package/dist/personas/presets.js +251 -0
- package/dist/personas/presets.js.map +1 -0
- package/dist/personas/types.d.ts +11 -0
- package/dist/personas/types.d.ts.map +1 -0
- package/dist/personas/types.js +23 -0
- package/dist/personas/types.js.map +1 -0
- package/dist/server.d.ts +3 -0
- package/dist/server.d.ts.map +1 -0
- package/dist/server.js +288 -0
- package/dist/server.js.map +1 -0
- package/dist/session/session-manager.d.ts +54 -0
- package/dist/session/session-manager.d.ts.map +1 -0
- package/dist/session/session-manager.js +228 -0
- package/dist/session/session-manager.js.map +1 -0
- package/dist/session/types.d.ts +35 -0
- package/dist/session/types.d.ts.map +1 -0
- package/dist/session/types.js +2 -0
- package/dist/session/types.js.map +1 -0
- package/dist/types.d.ts +284 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +3 -0
- package/dist/types.js.map +1 -0
- package/dist/utils/actions.d.ts +17 -0
- package/dist/utils/actions.d.ts.map +1 -0
- package/dist/utils/actions.js +89 -0
- package/dist/utils/actions.js.map +1 -0
- package/dist/utils/browser.d.ts +22 -0
- package/dist/utils/browser.d.ts.map +1 -0
- package/dist/utils/browser.js +122 -0
- package/dist/utils/browser.js.map +1 -0
- package/dist/utils/page-snapshot.d.ts +11 -0
- package/dist/utils/page-snapshot.d.ts.map +1 -0
- package/dist/utils/page-snapshot.js +102 -0
- package/dist/utils/page-snapshot.js.map +1 -0
- package/dist/walker/action-planner.d.ts +15 -0
- package/dist/walker/action-planner.d.ts.map +1 -0
- package/dist/walker/action-planner.js +236 -0
- package/dist/walker/action-planner.js.map +1 -0
- package/dist/walker/flow-walker.d.ts +10 -0
- package/dist/walker/flow-walker.d.ts.map +1 -0
- package/dist/walker/flow-walker.js +107 -0
- package/dist/walker/flow-walker.js.map +1 -0
- package/dist/walker/session-recorder.d.ts +28 -0
- package/dist/walker/session-recorder.d.ts.map +1 -0
- package/dist/walker/session-recorder.js +90 -0
- package/dist/walker/session-recorder.js.map +1 -0
- package/package.json +71 -0
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
import type { Persona, PageSnapshot, UserSession } from "../types.js";
|
|
2
|
+
import type { StepInput, StepResult } from "./types.js";
|
|
3
|
+
/**
|
|
4
|
+
* Manages live browser sessions for step-by-step user flow simulation.
|
|
5
|
+
* Each session holds a persistent Puppeteer page that survives across tool calls.
|
|
6
|
+
*/
|
|
7
|
+
declare class SessionManager {
|
|
8
|
+
private readonly sessions;
|
|
9
|
+
private cleanupInterval;
|
|
10
|
+
constructor();
|
|
11
|
+
/**
|
|
12
|
+
* Create a new session: open browser, navigate to URL, return initial snapshot.
|
|
13
|
+
*/
|
|
14
|
+
createSession(url: string, personaNameOrId?: string, viewport?: {
|
|
15
|
+
readonly width?: number;
|
|
16
|
+
readonly height?: number;
|
|
17
|
+
}, deviceScaleFactor?: number): Promise<{
|
|
18
|
+
readonly sessionId: string;
|
|
19
|
+
readonly persona: Persona | null;
|
|
20
|
+
readonly page: PageSnapshot;
|
|
21
|
+
}>;
|
|
22
|
+
/**
|
|
23
|
+
* Execute a step in an existing session.
|
|
24
|
+
* Claude provides the action + optional metadata (thought, emotion, friction).
|
|
25
|
+
*/
|
|
26
|
+
executeStep(sessionId: string, input: StepInput): Promise<StepResult>;
|
|
27
|
+
/**
|
|
28
|
+
* Get the current page state without performing any action.
|
|
29
|
+
*/
|
|
30
|
+
getPageState(sessionId: string, fullPage?: boolean): Promise<PageSnapshot>;
|
|
31
|
+
/**
|
|
32
|
+
* End a session: close the browser page, finalize the session, return transcript.
|
|
33
|
+
*/
|
|
34
|
+
endSession(sessionId: string, goalAchieved?: boolean, summaryNotes?: string): Promise<UserSession>;
|
|
35
|
+
/**
|
|
36
|
+
* Get a session or throw if not found.
|
|
37
|
+
*/
|
|
38
|
+
private getSessionOrThrow;
|
|
39
|
+
/**
|
|
40
|
+
* Close sessions older than TTL.
|
|
41
|
+
*/
|
|
42
|
+
private cleanupStaleSessions;
|
|
43
|
+
/**
|
|
44
|
+
* Get count of active sessions (for diagnostics).
|
|
45
|
+
*/
|
|
46
|
+
getActiveSessionCount(): number;
|
|
47
|
+
/**
|
|
48
|
+
* Destroy all sessions (for cleanup).
|
|
49
|
+
*/
|
|
50
|
+
destroyAll(): Promise<void>;
|
|
51
|
+
}
|
|
52
|
+
export declare const sessionManager: SessionManager;
|
|
53
|
+
export {};
|
|
54
|
+
//# sourceMappingURL=session-manager.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"session-manager.d.ts","sourceRoot":"","sources":["../../src/session/session-manager.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,YAAY,EAAE,WAAW,EAAiB,MAAM,aAAa,CAAC;AACrF,OAAO,KAAK,EAAe,SAAS,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAcrE;;;GAGG;AACH,cAAM,cAAc;IAClB,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAkC;IAC3D,OAAO,CAAC,eAAe,CAA+C;;IAOtE;;OAEG;IACG,aAAa,CACjB,GAAG,EAAE,MAAM,EACX,eAAe,CAAC,EAAE,MAAM,EACxB,QAAQ,CAAC,EAAE;QAAE,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,EAChE,iBAAiB,CAAC,EAAE,MAAM,GACzB,OAAO,CAAC;QAAE,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAAC;QAAC,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAA;KAAE,CAAC;IAuEzG;;;OAGG;IACG,WAAW,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,GAAG,OAAO,CAAC,UAAU,CAAC;IA2D3E;;OAEG;IACG,YAAY,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,YAAY,CAAC;IAKhF;;OAEG;IACG,UAAU,CACd,SAAS,EAAE,MAAM,EACjB,YAAY,CAAC,EAAE,OAAO,EACtB,YAAY,CAAC,EAAE,MAAM,GACpB,OAAO,CAAC,WAAW,CAAC;IAqBvB;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAQzB;;OAEG;IACH,OAAO,CAAC,oBAAoB;IAiB5B;;OAEG;IACH,qBAAqB,IAAI,MAAM;IAI/B;;OAEG;IACG,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;CAgBlC;AAGD,eAAO,MAAM,cAAc,gBAAuB,CAAC"}
|
|
@@ -0,0 +1,228 @@
|
|
|
1
|
+
import { getBrowser } from "../utils/browser.js";
|
|
2
|
+
import { extractPageSnapshot } from "../utils/page-snapshot.js";
|
|
3
|
+
import { executeAction } from "../utils/actions.js";
|
|
4
|
+
import { SessionRecorder } from "../walker/session-recorder.js";
|
|
5
|
+
import { resolvePersona } from "../personas/engine.js";
|
|
6
|
+
import { getViewport } from "../personas/engine.js";
|
|
7
|
+
import { randomUUID } from "node:crypto";
|
|
8
|
+
const NAVIGATION_TIMEOUT = 30_000;
|
|
9
|
+
const DEFAULT_SCALE_FACTOR = 2;
|
|
10
|
+
const SESSION_TTL_MS = 10 * 60 * 1000; // 10 minutes
|
|
11
|
+
const MAX_CONCURRENT_SESSIONS = 5;
|
|
12
|
+
/**
|
|
13
|
+
* Manages live browser sessions for step-by-step user flow simulation.
|
|
14
|
+
* Each session holds a persistent Puppeteer page that survives across tool calls.
|
|
15
|
+
*/
|
|
16
|
+
class SessionManager {
|
|
17
|
+
sessions = new Map();
|
|
18
|
+
cleanupInterval = null;
|
|
19
|
+
constructor() {
|
|
20
|
+
// Auto-cleanup stale sessions every 60 seconds
|
|
21
|
+
this.cleanupInterval = setInterval(() => this.cleanupStaleSessions(), 60_000);
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Create a new session: open browser, navigate to URL, return initial snapshot.
|
|
25
|
+
*/
|
|
26
|
+
async createSession(url, personaNameOrId, viewport, deviceScaleFactor) {
|
|
27
|
+
// Enforce max concurrent sessions
|
|
28
|
+
if (this.sessions.size >= MAX_CONCURRENT_SESSIONS) {
|
|
29
|
+
this.cleanupStaleSessions();
|
|
30
|
+
if (this.sessions.size >= MAX_CONCURRENT_SESSIONS) {
|
|
31
|
+
throw new Error(`Maximum ${MAX_CONCURRENT_SESSIONS} concurrent sessions. Close an existing session first.`);
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
// Resolve persona
|
|
35
|
+
const persona = personaNameOrId ? resolvePersona(personaNameOrId) ?? null : null;
|
|
36
|
+
// Determine viewport
|
|
37
|
+
const personaViewport = persona ? getViewport(persona) : { width: 1440, height: 900 };
|
|
38
|
+
const finalViewport = {
|
|
39
|
+
width: viewport?.width ?? personaViewport.width,
|
|
40
|
+
height: viewport?.height ?? personaViewport.height,
|
|
41
|
+
};
|
|
42
|
+
// Create browser page
|
|
43
|
+
const browser = await getBrowser();
|
|
44
|
+
const page = await browser.newPage();
|
|
45
|
+
await page.setViewport({
|
|
46
|
+
width: finalViewport.width,
|
|
47
|
+
height: finalViewport.height,
|
|
48
|
+
deviceScaleFactor: deviceScaleFactor ?? DEFAULT_SCALE_FACTOR,
|
|
49
|
+
});
|
|
50
|
+
// Navigate to starting URL
|
|
51
|
+
await page.goto(url, { waitUntil: "networkidle2", timeout: NAVIGATION_TIMEOUT });
|
|
52
|
+
// Create session
|
|
53
|
+
const sessionId = randomUUID();
|
|
54
|
+
const placeholderPersona = persona ?? {
|
|
55
|
+
id: "anonymous",
|
|
56
|
+
name: "Anonymous User",
|
|
57
|
+
description: "No persona selected — Claude decides how to behave",
|
|
58
|
+
background: "",
|
|
59
|
+
goals: [],
|
|
60
|
+
traits: {
|
|
61
|
+
techLiteracy: "intermediate",
|
|
62
|
+
patience: "moderate",
|
|
63
|
+
ageGroup: "adult",
|
|
64
|
+
devicePreference: "desktop",
|
|
65
|
+
accessibilityNeeds: ["none"],
|
|
66
|
+
domainKnowledge: 5,
|
|
67
|
+
attentionToDetail: 5,
|
|
68
|
+
},
|
|
69
|
+
behaviorNotes: [],
|
|
70
|
+
};
|
|
71
|
+
const recorder = new SessionRecorder(placeholderPersona, url);
|
|
72
|
+
const session = {
|
|
73
|
+
id: sessionId,
|
|
74
|
+
page,
|
|
75
|
+
recorder,
|
|
76
|
+
persona,
|
|
77
|
+
viewport: finalViewport,
|
|
78
|
+
createdAt: new Date().toISOString(),
|
|
79
|
+
locked: false,
|
|
80
|
+
};
|
|
81
|
+
this.sessions.set(sessionId, session);
|
|
82
|
+
// Extract initial snapshot
|
|
83
|
+
const snapshot = await extractPageSnapshot(page);
|
|
84
|
+
return { sessionId, persona, page: snapshot };
|
|
85
|
+
}
|
|
86
|
+
/**
|
|
87
|
+
* Execute a step in an existing session.
|
|
88
|
+
* Claude provides the action + optional metadata (thought, emotion, friction).
|
|
89
|
+
*/
|
|
90
|
+
async executeStep(sessionId, input) {
|
|
91
|
+
const session = this.getSessionOrThrow(sessionId);
|
|
92
|
+
// Simple lock to prevent concurrent steps
|
|
93
|
+
if (session.locked) {
|
|
94
|
+
throw new Error("Session is busy — wait for the previous step to complete");
|
|
95
|
+
}
|
|
96
|
+
session.locked = true;
|
|
97
|
+
try {
|
|
98
|
+
const stepStart = Date.now();
|
|
99
|
+
// Execute the action
|
|
100
|
+
const actionResult = await executeAction(session.page, {
|
|
101
|
+
type: input.action,
|
|
102
|
+
target: input.target,
|
|
103
|
+
value: input.value,
|
|
104
|
+
scrollAmount: input.scrollAmount,
|
|
105
|
+
});
|
|
106
|
+
// Extract new page state
|
|
107
|
+
const snapshot = await extractPageSnapshot(session.page);
|
|
108
|
+
// Build friction points from Claude's notes
|
|
109
|
+
const frictionPoints = (input.frictionNotes ?? []).map((note, i) => ({
|
|
110
|
+
id: `step-${session.recorder.getStepCount()}-friction-${i}`,
|
|
111
|
+
severity: note.severity,
|
|
112
|
+
description: note.description,
|
|
113
|
+
location: snapshot.url,
|
|
114
|
+
suggestion: note.suggestion,
|
|
115
|
+
stepIndex: session.recorder.getStepCount(),
|
|
116
|
+
}));
|
|
117
|
+
// Record the step
|
|
118
|
+
session.recorder.recordStep({
|
|
119
|
+
page: snapshot,
|
|
120
|
+
action: {
|
|
121
|
+
type: input.action,
|
|
122
|
+
target: input.target,
|
|
123
|
+
value: input.value,
|
|
124
|
+
reasoning: input.thought ?? "",
|
|
125
|
+
},
|
|
126
|
+
thought: input.thought ?? "",
|
|
127
|
+
emotionalState: input.emotionalState ?? "neutral",
|
|
128
|
+
frictionPoints,
|
|
129
|
+
timeSpentMs: Date.now() - stepStart,
|
|
130
|
+
});
|
|
131
|
+
return {
|
|
132
|
+
success: actionResult.success,
|
|
133
|
+
error: actionResult.error,
|
|
134
|
+
page: snapshot,
|
|
135
|
+
stepIndex: session.recorder.getStepCount() - 1,
|
|
136
|
+
};
|
|
137
|
+
}
|
|
138
|
+
finally {
|
|
139
|
+
session.locked = false;
|
|
140
|
+
}
|
|
141
|
+
}
|
|
142
|
+
/**
|
|
143
|
+
* Get the current page state without performing any action.
|
|
144
|
+
*/
|
|
145
|
+
async getPageState(sessionId, fullPage) {
|
|
146
|
+
const session = this.getSessionOrThrow(sessionId);
|
|
147
|
+
return extractPageSnapshot(session.page, { fullPage });
|
|
148
|
+
}
|
|
149
|
+
/**
|
|
150
|
+
* End a session: close the browser page, finalize the session, return transcript.
|
|
151
|
+
*/
|
|
152
|
+
async endSession(sessionId, goalAchieved, summaryNotes) {
|
|
153
|
+
const session = this.getSessionOrThrow(sessionId);
|
|
154
|
+
try {
|
|
155
|
+
// Close the browser page
|
|
156
|
+
if (!session.page.isClosed()) {
|
|
157
|
+
await session.page.close();
|
|
158
|
+
}
|
|
159
|
+
}
|
|
160
|
+
catch {
|
|
161
|
+
// Page may already be closed
|
|
162
|
+
}
|
|
163
|
+
// Finalize the session
|
|
164
|
+
const userSession = session.recorder.finalize(goalAchieved ?? false);
|
|
165
|
+
// Remove from active sessions
|
|
166
|
+
this.sessions.delete(sessionId);
|
|
167
|
+
return userSession;
|
|
168
|
+
}
|
|
169
|
+
/**
|
|
170
|
+
* Get a session or throw if not found.
|
|
171
|
+
*/
|
|
172
|
+
getSessionOrThrow(sessionId) {
|
|
173
|
+
const session = this.sessions.get(sessionId);
|
|
174
|
+
if (!session) {
|
|
175
|
+
throw new Error(`Session "${sessionId}" not found. It may have expired or been closed.`);
|
|
176
|
+
}
|
|
177
|
+
return session;
|
|
178
|
+
}
|
|
179
|
+
/**
|
|
180
|
+
* Close sessions older than TTL.
|
|
181
|
+
*/
|
|
182
|
+
cleanupStaleSessions() {
|
|
183
|
+
const now = Date.now();
|
|
184
|
+
for (const [id, session] of this.sessions) {
|
|
185
|
+
const age = now - new Date(session.createdAt).getTime();
|
|
186
|
+
if (age > SESSION_TTL_MS) {
|
|
187
|
+
try {
|
|
188
|
+
if (!session.page.isClosed()) {
|
|
189
|
+
session.page.close().catch(() => { });
|
|
190
|
+
}
|
|
191
|
+
}
|
|
192
|
+
catch {
|
|
193
|
+
// ignore
|
|
194
|
+
}
|
|
195
|
+
this.sessions.delete(id);
|
|
196
|
+
}
|
|
197
|
+
}
|
|
198
|
+
}
|
|
199
|
+
/**
|
|
200
|
+
* Get count of active sessions (for diagnostics).
|
|
201
|
+
*/
|
|
202
|
+
getActiveSessionCount() {
|
|
203
|
+
return this.sessions.size;
|
|
204
|
+
}
|
|
205
|
+
/**
|
|
206
|
+
* Destroy all sessions (for cleanup).
|
|
207
|
+
*/
|
|
208
|
+
async destroyAll() {
|
|
209
|
+
for (const [id, session] of this.sessions) {
|
|
210
|
+
try {
|
|
211
|
+
if (!session.page.isClosed()) {
|
|
212
|
+
await session.page.close();
|
|
213
|
+
}
|
|
214
|
+
}
|
|
215
|
+
catch {
|
|
216
|
+
// ignore
|
|
217
|
+
}
|
|
218
|
+
}
|
|
219
|
+
this.sessions.clear();
|
|
220
|
+
if (this.cleanupInterval) {
|
|
221
|
+
clearInterval(this.cleanupInterval);
|
|
222
|
+
this.cleanupInterval = null;
|
|
223
|
+
}
|
|
224
|
+
}
|
|
225
|
+
}
|
|
226
|
+
// Singleton instance
|
|
227
|
+
export const sessionManager = new SessionManager();
|
|
228
|
+
//# sourceMappingURL=session-manager.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"session-manager.js","sourceRoot":"","sources":["../../src/session/session-manager.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import type { Page } from "puppeteer-core";
|
|
2
|
+
import type { Persona, EmotionalState, FrictionSeverity, PageSnapshot } from "../types.js";
|
|
3
|
+
import type { SessionRecorder } from "../walker/session-recorder.js";
|
|
4
|
+
export interface LiveSession {
|
|
5
|
+
readonly id: string;
|
|
6
|
+
readonly page: Page;
|
|
7
|
+
readonly recorder: SessionRecorder;
|
|
8
|
+
readonly persona: Persona | null;
|
|
9
|
+
readonly viewport: {
|
|
10
|
+
readonly width: number;
|
|
11
|
+
readonly height: number;
|
|
12
|
+
};
|
|
13
|
+
readonly createdAt: string;
|
|
14
|
+
locked: boolean;
|
|
15
|
+
}
|
|
16
|
+
export interface StepInput {
|
|
17
|
+
readonly action: string;
|
|
18
|
+
readonly target?: string;
|
|
19
|
+
readonly value?: string;
|
|
20
|
+
readonly scrollAmount?: number;
|
|
21
|
+
readonly thought?: string;
|
|
22
|
+
readonly emotionalState?: EmotionalState;
|
|
23
|
+
readonly frictionNotes?: readonly {
|
|
24
|
+
readonly severity: FrictionSeverity;
|
|
25
|
+
readonly description: string;
|
|
26
|
+
readonly suggestion: string;
|
|
27
|
+
}[];
|
|
28
|
+
}
|
|
29
|
+
export interface StepResult {
|
|
30
|
+
readonly success: boolean;
|
|
31
|
+
readonly error: string | null;
|
|
32
|
+
readonly page: PageSnapshot;
|
|
33
|
+
readonly stepIndex: number;
|
|
34
|
+
}
|
|
35
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/session/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,KAAK,EAAE,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3F,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAErE,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC;IACpB,QAAQ,CAAC,QAAQ,EAAE,eAAe,CAAC;IACnC,QAAQ,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAAC;IACjC,QAAQ,CAAC,QAAQ,EAAE;QAAE,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IACvE,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,MAAM,EAAE,OAAO,CAAC;CACjB;AAED,MAAM,WAAW,SAAS;IACxB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,cAAc,CAAC,EAAE,cAAc,CAAC;IACzC,QAAQ,CAAC,aAAa,CAAC,EAAE,SAAS;QAChC,QAAQ,CAAC,QAAQ,EAAE,gBAAgB,CAAC;QACpC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;QAC7B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;KAC7B,EAAE,CAAC;CACL;AAED,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAC;IAC5B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;CAC5B"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/session/types.ts"],"names":[],"mappings":""}
|
package/dist/types.d.ts
ADDED
|
@@ -0,0 +1,284 @@
|
|
|
1
|
+
export type TechLiteracy = "novice" | "basic" | "intermediate" | "advanced" | "expert";
|
|
2
|
+
export type PatienceLevel = "very_low" | "low" | "moderate" | "high" | "very_high";
|
|
3
|
+
export type AgeGroup = "teen" | "young_adult" | "adult" | "middle_aged" | "senior";
|
|
4
|
+
export type DevicePreference = "mobile" | "tablet" | "desktop";
|
|
5
|
+
export type AccessibilityNeed = "none" | "low_vision" | "screen_reader" | "motor_impaired" | "cognitive";
|
|
6
|
+
export interface PersonaTraits {
|
|
7
|
+
readonly techLiteracy: TechLiteracy;
|
|
8
|
+
readonly patience: PatienceLevel;
|
|
9
|
+
readonly ageGroup: AgeGroup;
|
|
10
|
+
readonly devicePreference: DevicePreference;
|
|
11
|
+
readonly accessibilityNeeds: readonly AccessibilityNeed[];
|
|
12
|
+
readonly domainKnowledge: number;
|
|
13
|
+
readonly attentionToDetail: number;
|
|
14
|
+
}
|
|
15
|
+
export interface Persona {
|
|
16
|
+
readonly id: string;
|
|
17
|
+
readonly name: string;
|
|
18
|
+
readonly description: string;
|
|
19
|
+
readonly background: string;
|
|
20
|
+
readonly goals: readonly string[];
|
|
21
|
+
readonly traits: PersonaTraits;
|
|
22
|
+
readonly behaviorNotes: readonly string[];
|
|
23
|
+
}
|
|
24
|
+
export type EmotionalState = "curious" | "confident" | "neutral" | "confused" | "frustrated" | "delighted" | "anxious" | "bored";
|
|
25
|
+
export type FrictionSeverity = "low" | "medium" | "high" | "critical";
|
|
26
|
+
export type ActionType = "navigate" | "click" | "type" | "scroll" | "wait" | "read" | "give_up";
|
|
27
|
+
export interface PageElement {
|
|
28
|
+
readonly selector: string;
|
|
29
|
+
readonly tagName: string;
|
|
30
|
+
readonly text: string;
|
|
31
|
+
readonly type?: string;
|
|
32
|
+
readonly href?: string;
|
|
33
|
+
readonly isVisible: boolean;
|
|
34
|
+
readonly isInteractive: boolean;
|
|
35
|
+
readonly ariaLabel?: string;
|
|
36
|
+
readonly placeholder?: string;
|
|
37
|
+
}
|
|
38
|
+
export interface PageSnapshot {
|
|
39
|
+
readonly url: string;
|
|
40
|
+
readonly title: string;
|
|
41
|
+
readonly timestamp: string;
|
|
42
|
+
readonly screenshot: string;
|
|
43
|
+
readonly interactiveElements: readonly PageElement[];
|
|
44
|
+
readonly headings: readonly string[];
|
|
45
|
+
readonly mainText: string;
|
|
46
|
+
readonly formFields: readonly PageElement[];
|
|
47
|
+
readonly links: readonly PageElement[];
|
|
48
|
+
readonly buttons: readonly PageElement[];
|
|
49
|
+
readonly errorMessages: readonly string[];
|
|
50
|
+
readonly loadTimeMs: number;
|
|
51
|
+
}
|
|
52
|
+
export interface StepAction {
|
|
53
|
+
readonly type: ActionType;
|
|
54
|
+
readonly target?: string;
|
|
55
|
+
readonly value?: string;
|
|
56
|
+
readonly reasoning: string;
|
|
57
|
+
}
|
|
58
|
+
export interface FrictionPoint {
|
|
59
|
+
readonly id: string;
|
|
60
|
+
readonly severity: FrictionSeverity;
|
|
61
|
+
readonly description: string;
|
|
62
|
+
readonly location: string;
|
|
63
|
+
readonly suggestion: string;
|
|
64
|
+
readonly stepIndex: number;
|
|
65
|
+
}
|
|
66
|
+
export interface SessionStep {
|
|
67
|
+
readonly index: number;
|
|
68
|
+
readonly timestamp: string;
|
|
69
|
+
readonly page: PageSnapshot;
|
|
70
|
+
readonly action: StepAction;
|
|
71
|
+
readonly thought: string;
|
|
72
|
+
readonly emotionalState: EmotionalState;
|
|
73
|
+
readonly frictionPoints: readonly FrictionPoint[];
|
|
74
|
+
readonly timeSpentMs: number;
|
|
75
|
+
}
|
|
76
|
+
export interface SessionSummary {
|
|
77
|
+
readonly totalSteps: number;
|
|
78
|
+
readonly totalTimeMs: number;
|
|
79
|
+
readonly frictionScore: number;
|
|
80
|
+
readonly dropOffRisk: string;
|
|
81
|
+
readonly emotionalJourney: readonly EmotionalState[];
|
|
82
|
+
readonly topFrictionPoints: readonly FrictionPoint[];
|
|
83
|
+
readonly recommendations: readonly string[];
|
|
84
|
+
readonly goalAchieved: boolean;
|
|
85
|
+
readonly goalAchievedStep?: number;
|
|
86
|
+
}
|
|
87
|
+
export interface UserSession {
|
|
88
|
+
readonly id: string;
|
|
89
|
+
readonly persona: Persona;
|
|
90
|
+
readonly startUrl: string;
|
|
91
|
+
readonly startedAt: string;
|
|
92
|
+
readonly completedAt: string;
|
|
93
|
+
readonly steps: readonly SessionStep[];
|
|
94
|
+
readonly summary: SessionSummary;
|
|
95
|
+
}
|
|
96
|
+
export interface CognitiveLoadAssessment {
|
|
97
|
+
readonly score: number;
|
|
98
|
+
readonly elementCount: number;
|
|
99
|
+
readonly interactiveCount: number;
|
|
100
|
+
readonly textDensity: number;
|
|
101
|
+
readonly decisionPoints: number;
|
|
102
|
+
readonly visualComplexity: string;
|
|
103
|
+
readonly assessment: string;
|
|
104
|
+
}
|
|
105
|
+
export interface ClarityAssessment {
|
|
106
|
+
readonly score: number;
|
|
107
|
+
readonly valueProposition: string;
|
|
108
|
+
readonly ctaClarity: string;
|
|
109
|
+
readonly navigationLogic: string;
|
|
110
|
+
readonly headingStructure: string;
|
|
111
|
+
readonly assessment: string;
|
|
112
|
+
}
|
|
113
|
+
export interface EmotionalArc {
|
|
114
|
+
readonly states: readonly EmotionalState[];
|
|
115
|
+
readonly trend: "improving" | "stable" | "declining" | "volatile";
|
|
116
|
+
readonly lowestPoint: {
|
|
117
|
+
readonly step: number;
|
|
118
|
+
readonly state: EmotionalState;
|
|
119
|
+
};
|
|
120
|
+
readonly highestPoint: {
|
|
121
|
+
readonly step: number;
|
|
122
|
+
readonly state: EmotionalState;
|
|
123
|
+
};
|
|
124
|
+
}
|
|
125
|
+
export interface PersonaComparison {
|
|
126
|
+
readonly personas: readonly Persona[];
|
|
127
|
+
readonly sessions: readonly UserSession[];
|
|
128
|
+
readonly sharedFriction: readonly FrictionPoint[];
|
|
129
|
+
readonly divergencePoints: readonly {
|
|
130
|
+
readonly step: number;
|
|
131
|
+
readonly url: string;
|
|
132
|
+
readonly personaActions: readonly {
|
|
133
|
+
readonly persona: string;
|
|
134
|
+
readonly action: string;
|
|
135
|
+
readonly thought: string;
|
|
136
|
+
}[];
|
|
137
|
+
}[];
|
|
138
|
+
readonly overallRecommendations: readonly string[];
|
|
139
|
+
}
|
|
140
|
+
export interface NavigateResult {
|
|
141
|
+
readonly url: string;
|
|
142
|
+
readonly title: string;
|
|
143
|
+
readonly status: number | null;
|
|
144
|
+
readonly screenshot: string;
|
|
145
|
+
}
|
|
146
|
+
export interface ClickResult {
|
|
147
|
+
readonly clicked: boolean;
|
|
148
|
+
readonly selector: string;
|
|
149
|
+
readonly screenshot: string;
|
|
150
|
+
}
|
|
151
|
+
export interface TypeResult {
|
|
152
|
+
readonly typed: boolean;
|
|
153
|
+
readonly selector: string;
|
|
154
|
+
readonly text: string;
|
|
155
|
+
readonly screenshot: string;
|
|
156
|
+
}
|
|
157
|
+
export interface SelectResult {
|
|
158
|
+
readonly selected: boolean;
|
|
159
|
+
readonly value: string;
|
|
160
|
+
readonly screenshot: string;
|
|
161
|
+
}
|
|
162
|
+
export interface ScrollResult {
|
|
163
|
+
readonly scrolled: boolean;
|
|
164
|
+
readonly screenshot: string;
|
|
165
|
+
}
|
|
166
|
+
export interface WaitResult {
|
|
167
|
+
readonly found: boolean;
|
|
168
|
+
readonly selector: string;
|
|
169
|
+
readonly tagName: string;
|
|
170
|
+
readonly textContent: string;
|
|
171
|
+
}
|
|
172
|
+
export interface ElementInfo {
|
|
173
|
+
readonly tagName: string;
|
|
174
|
+
readonly textContent: string;
|
|
175
|
+
readonly attributes: Readonly<Record<string, string>>;
|
|
176
|
+
readonly boundingBox: {
|
|
177
|
+
readonly x: number;
|
|
178
|
+
readonly y: number;
|
|
179
|
+
readonly width: number;
|
|
180
|
+
readonly height: number;
|
|
181
|
+
};
|
|
182
|
+
readonly computedStyles: {
|
|
183
|
+
readonly color: string;
|
|
184
|
+
readonly backgroundColor: string;
|
|
185
|
+
readonly fontSize: string;
|
|
186
|
+
readonly fontFamily: string;
|
|
187
|
+
readonly fontWeight: string;
|
|
188
|
+
readonly display: string;
|
|
189
|
+
readonly visibility: string;
|
|
190
|
+
};
|
|
191
|
+
readonly isVisible: boolean;
|
|
192
|
+
readonly screenshot: string;
|
|
193
|
+
}
|
|
194
|
+
export interface ScreenshotResult {
|
|
195
|
+
readonly base64: string;
|
|
196
|
+
readonly mimeType: string;
|
|
197
|
+
readonly width: number;
|
|
198
|
+
readonly height: number;
|
|
199
|
+
readonly url: string;
|
|
200
|
+
readonly timestamp: string;
|
|
201
|
+
}
|
|
202
|
+
export type ConsoleLevel = "log" | "warn" | "error" | "info" | "debug";
|
|
203
|
+
export interface ConsoleEntry {
|
|
204
|
+
readonly level: ConsoleLevel;
|
|
205
|
+
readonly text: string;
|
|
206
|
+
readonly timestamp: string;
|
|
207
|
+
readonly location?: string;
|
|
208
|
+
}
|
|
209
|
+
export interface ConsoleCaptureResult {
|
|
210
|
+
readonly url: string;
|
|
211
|
+
readonly timestamp: string;
|
|
212
|
+
readonly entries: readonly ConsoleEntry[];
|
|
213
|
+
readonly uncaughtExceptions: readonly string[];
|
|
214
|
+
readonly totalCount: number;
|
|
215
|
+
readonly countByLevel: Readonly<Record<ConsoleLevel, number>>;
|
|
216
|
+
}
|
|
217
|
+
export interface NetworkEntry {
|
|
218
|
+
readonly url: string;
|
|
219
|
+
readonly method: string;
|
|
220
|
+
readonly resourceType: string;
|
|
221
|
+
readonly status: number;
|
|
222
|
+
readonly size: number;
|
|
223
|
+
readonly duration: number;
|
|
224
|
+
readonly failed: boolean;
|
|
225
|
+
readonly failureReason?: string;
|
|
226
|
+
}
|
|
227
|
+
export interface NetworkSummary {
|
|
228
|
+
readonly totalRequests: number;
|
|
229
|
+
readonly failedRequests: number;
|
|
230
|
+
readonly totalTransferSize: number;
|
|
231
|
+
readonly byType: readonly {
|
|
232
|
+
readonly type: string;
|
|
233
|
+
readonly count: number;
|
|
234
|
+
readonly totalSize: number;
|
|
235
|
+
}[];
|
|
236
|
+
}
|
|
237
|
+
export interface NetworkCaptureResult {
|
|
238
|
+
readonly url: string;
|
|
239
|
+
readonly timestamp: string;
|
|
240
|
+
readonly entries: readonly NetworkEntry[];
|
|
241
|
+
readonly summary: NetworkSummary;
|
|
242
|
+
}
|
|
243
|
+
export type PageErrorKind = "exception" | "unhandled-rejection" | "resource-load-failure";
|
|
244
|
+
export interface PageError {
|
|
245
|
+
readonly kind: PageErrorKind;
|
|
246
|
+
readonly message: string;
|
|
247
|
+
readonly timestamp: string;
|
|
248
|
+
readonly source?: string;
|
|
249
|
+
}
|
|
250
|
+
export interface ErrorCaptureResult {
|
|
251
|
+
readonly url: string;
|
|
252
|
+
readonly timestamp: string;
|
|
253
|
+
readonly errors: readonly PageError[];
|
|
254
|
+
readonly totalCount: number;
|
|
255
|
+
readonly countByKind: Readonly<Record<PageErrorKind, number>>;
|
|
256
|
+
}
|
|
257
|
+
export interface SimulateUserResult {
|
|
258
|
+
readonly session: UserSession;
|
|
259
|
+
readonly report: string;
|
|
260
|
+
}
|
|
261
|
+
export interface QuickImpressionResult {
|
|
262
|
+
readonly url: string;
|
|
263
|
+
readonly persona: string;
|
|
264
|
+
readonly firstImpression: string;
|
|
265
|
+
readonly whatItDoes: string;
|
|
266
|
+
readonly clarityScore: number;
|
|
267
|
+
readonly emotionalReaction: EmotionalState;
|
|
268
|
+
readonly wouldContinue: boolean;
|
|
269
|
+
readonly reasoning: string;
|
|
270
|
+
readonly screenshot: string;
|
|
271
|
+
}
|
|
272
|
+
export interface DeadEnd {
|
|
273
|
+
readonly url: string;
|
|
274
|
+
readonly description: string;
|
|
275
|
+
readonly reachedFrom: string;
|
|
276
|
+
readonly severity: FrictionSeverity;
|
|
277
|
+
}
|
|
278
|
+
export interface DeadEndResult {
|
|
279
|
+
readonly startUrl: string;
|
|
280
|
+
readonly deadEnds: readonly DeadEnd[];
|
|
281
|
+
readonly totalPagesExplored: number;
|
|
282
|
+
readonly report: string;
|
|
283
|
+
}
|
|
284
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|
package/dist/types.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,kEAAkE"}
|