cbrowser 13.0.4 → 14.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/dist/utils.js CHANGED
@@ -72,4 +72,267 @@ export function safePath(base, userPath) {
72
72
  .join("/");
73
73
  return validateFilePath(sanitized, base);
74
74
  }
75
+ /**
76
+ * Color mapping for emotions using Russell's Circumplex Model.
77
+ * Positive valence = warmer colors, negative valence = cooler colors.
78
+ * High arousal = more saturated, low arousal = less saturated.
79
+ */
80
+ export const EMOTION_COLORS = {
81
+ anxiety: "#ef4444", // Red - high arousal, negative valence
82
+ frustration: "#f97316", // Orange-red - high arousal, negative valence
83
+ boredom: "#6b7280", // Gray - low arousal, slightly negative
84
+ confusion: "#a855f7", // Purple - medium arousal, negative
85
+ satisfaction: "#10b981", // Green - medium arousal, positive
86
+ excitement: "#eab308", // Yellow - high arousal, positive
87
+ relief: "#3b82f6", // Blue - low arousal, positive
88
+ neutral: "#94a3b8", // Slate - baseline
89
+ };
90
+ /**
91
+ * Emoji mapping for emotions (for text reports).
92
+ */
93
+ export const EMOTION_EMOJI = {
94
+ anxiety: "😰",
95
+ frustration: "😤",
96
+ boredom: "😑",
97
+ confusion: "😕",
98
+ satisfaction: "😊",
99
+ excitement: "🤩",
100
+ relief: "😌",
101
+ neutral: "😐",
102
+ };
103
+ /**
104
+ * Generate CSS styles for emotion visualization.
105
+ */
106
+ export function getEmotionVisualizationStyles() {
107
+ return `
108
+ .emotion-bar {
109
+ display: flex;
110
+ gap: 4px;
111
+ margin: 0.5rem 0;
112
+ }
113
+ .emotion-segment {
114
+ height: 8px;
115
+ border-radius: 2px;
116
+ transition: width 0.3s ease;
117
+ }
118
+ .emotion-legend {
119
+ display: flex;
120
+ flex-wrap: wrap;
121
+ gap: 0.75rem;
122
+ font-size: 0.75rem;
123
+ margin-top: 0.5rem;
124
+ }
125
+ .emotion-legend-item {
126
+ display: flex;
127
+ align-items: center;
128
+ gap: 0.25rem;
129
+ }
130
+ .emotion-legend-dot {
131
+ width: 10px;
132
+ height: 10px;
133
+ border-radius: 50%;
134
+ }
135
+ .emotion-journey {
136
+ display: flex;
137
+ flex-direction: column;
138
+ gap: 2px;
139
+ margin: 1rem 0;
140
+ }
141
+ .emotion-event {
142
+ display: flex;
143
+ align-items: center;
144
+ gap: 0.5rem;
145
+ font-size: 0.75rem;
146
+ padding: 0.25rem 0.5rem;
147
+ background: #1e293b;
148
+ border-radius: 4px;
149
+ }
150
+ .emotion-event-step {
151
+ color: #94a3b8;
152
+ min-width: 50px;
153
+ }
154
+ .emotion-event-trigger {
155
+ background: #334155;
156
+ padding: 0.125rem 0.5rem;
157
+ border-radius: 4px;
158
+ }
159
+ .emotion-event-desc {
160
+ flex: 1;
161
+ color: #e2e8f0;
162
+ }
163
+ .emotion-circumplex {
164
+ position: relative;
165
+ width: 200px;
166
+ height: 200px;
167
+ border: 1px solid #334155;
168
+ border-radius: 50%;
169
+ margin: 1rem auto;
170
+ }
171
+ .emotion-circumplex-dot {
172
+ position: absolute;
173
+ width: 12px;
174
+ height: 12px;
175
+ border-radius: 50%;
176
+ transform: translate(-50%, -50%);
177
+ border: 2px solid white;
178
+ }
179
+ .emotion-circumplex-axes {
180
+ position: absolute;
181
+ inset: 0;
182
+ }
183
+ .emotion-summary-grid {
184
+ display: grid;
185
+ grid-template-columns: repeat(auto-fit, minmax(120px, 1fr));
186
+ gap: 0.5rem;
187
+ margin: 1rem 0;
188
+ }
189
+ .emotion-summary-item {
190
+ text-align: center;
191
+ padding: 0.5rem;
192
+ background: #1e293b;
193
+ border-radius: 8px;
194
+ }
195
+ .emotion-summary-value {
196
+ font-size: 1.5rem;
197
+ font-weight: bold;
198
+ }
199
+ .emotion-summary-label {
200
+ font-size: 0.75rem;
201
+ color: #94a3b8;
202
+ }
203
+ `;
204
+ }
205
+ /**
206
+ * Generate HTML for an emotion bar visualization.
207
+ * Shows relative intensities of all emotions as colored segments.
208
+ */
209
+ export function generateEmotionBarHTML(state) {
210
+ const emotions = [
211
+ { key: "anxiety", value: state.anxiety },
212
+ { key: "frustration", value: state.frustration },
213
+ { key: "boredom", value: state.boredom },
214
+ { key: "confusion", value: state.confusion },
215
+ { key: "satisfaction", value: state.satisfaction },
216
+ { key: "excitement", value: state.excitement },
217
+ { key: "relief", value: state.relief },
218
+ ];
219
+ const total = emotions.reduce((sum, e) => sum + e.value, 0) || 1;
220
+ const segments = emotions
221
+ .filter(e => e.value > 0.05)
222
+ .map(e => `
223
+ <div class="emotion-segment"
224
+ style="width: ${(e.value / total) * 100}%; background: ${EMOTION_COLORS[e.key]}"
225
+ title="${e.key}: ${Math.round(e.value * 100)}%">
226
+ </div>
227
+ `).join("");
228
+ const legend = emotions
229
+ .filter(e => e.value > 0.05)
230
+ .map(e => `
231
+ <span class="emotion-legend-item">
232
+ <span class="emotion-legend-dot" style="background: ${EMOTION_COLORS[e.key]}"></span>
233
+ ${e.key} (${Math.round(e.value * 100)}%)
234
+ </span>
235
+ `).join("");
236
+ return `
237
+ <div class="emotion-bar">${segments}</div>
238
+ <div class="emotion-legend">${legend}</div>
239
+ `;
240
+ }
241
+ /**
242
+ * Generate HTML for emotion summary statistics.
243
+ */
244
+ export function generateEmotionSummaryHTML(state) {
245
+ const dominantColor = EMOTION_COLORS[state.dominant];
246
+ const valenceLabel = state.valence > 0.3 ? "Positive" : state.valence < -0.3 ? "Negative" : "Neutral";
247
+ const arousalLabel = state.arousal > 0.6 ? "High" : state.arousal < 0.4 ? "Low" : "Medium";
248
+ return `
249
+ <div class="emotion-summary-grid">
250
+ <div class="emotion-summary-item">
251
+ <div class="emotion-summary-value" style="color: ${dominantColor}">${EMOTION_EMOJI[state.dominant]}</div>
252
+ <div class="emotion-summary-label">Dominant: ${state.dominant}</div>
253
+ </div>
254
+ <div class="emotion-summary-item">
255
+ <div class="emotion-summary-value" style="color: ${state.valence > 0 ? "#10b981" : state.valence < 0 ? "#ef4444" : "#94a3b8"}">
256
+ ${state.valence > 0 ? "+" : ""}${(state.valence * 100).toFixed(0)}%
257
+ </div>
258
+ <div class="emotion-summary-label">Valence (${valenceLabel})</div>
259
+ </div>
260
+ <div class="emotion-summary-item">
261
+ <div class="emotion-summary-value">${(state.arousal * 100).toFixed(0)}%</div>
262
+ <div class="emotion-summary-label">Arousal (${arousalLabel})</div>
263
+ </div>
264
+ </div>
265
+ `;
266
+ }
267
+ /**
268
+ * Generate HTML for emotional journey timeline.
269
+ * Shows emotional events as they occurred during the journey.
270
+ */
271
+ export function generateEmotionalJourneyHTML(events) {
272
+ if (!events || events.length === 0) {
273
+ return '<p style="color: #94a3b8; font-style: italic;">No emotional events recorded</p>';
274
+ }
275
+ const eventRows = events.slice(0, 20).map(event => {
276
+ const triggerColor = getTriggerColor(event.trigger);
277
+ return `
278
+ <div class="emotion-event">
279
+ <span class="emotion-event-step">Step ${event.stepNumber}</span>
280
+ <span class="emotion-event-trigger" style="background: ${triggerColor}33; color: ${triggerColor}">
281
+ ${event.trigger}
282
+ </span>
283
+ <span class="emotion-event-desc">${event.description}</span>
284
+ </div>
285
+ `;
286
+ }).join("");
287
+ const truncatedNote = events.length > 20
288
+ ? `<p style="color: #94a3b8; font-size: 0.75rem; margin-top: 0.5rem;">
289
+ Showing first 20 of ${events.length} events
290
+ </p>`
291
+ : "";
292
+ return `
293
+ <div class="emotion-journey">
294
+ ${eventRows}
295
+ </div>
296
+ ${truncatedNote}
297
+ `;
298
+ }
299
+ /**
300
+ * Get color for emotional trigger type.
301
+ */
302
+ function getTriggerColor(trigger) {
303
+ const colors = {
304
+ success: "#10b981",
305
+ progress: "#3b82f6",
306
+ completion: "#10b981",
307
+ discovery: "#eab308",
308
+ clarity: "#3b82f6",
309
+ relief: "#3b82f6",
310
+ recovery: "#10b981",
311
+ failure: "#ef4444",
312
+ error: "#ef4444",
313
+ setback: "#f97316",
314
+ confusion_onset: "#a855f7",
315
+ waiting: "#6b7280",
316
+ time_pressure: "#ef4444",
317
+ };
318
+ return colors[trigger] || "#94a3b8";
319
+ }
320
+ /**
321
+ * Generate complete emotion visualization section for HTML reports.
322
+ */
323
+ export function generateEmotionVisualizationSection(state, events, title = "Emotional State") {
324
+ return `
325
+ <div class="emotion-visualization">
326
+ <h4 style="color: #94a3b8; margin-bottom: 0.5rem;">${title}</h4>
327
+ ${generateEmotionSummaryHTML(state)}
328
+ ${generateEmotionBarHTML(state)}
329
+ ${events && events.length > 0 ? `
330
+ <details style="margin-top: 1rem;">
331
+ <summary style="cursor: pointer; color: #94a3b8;">Emotional Journey (${events.length} events)</summary>
332
+ ${generateEmotionalJourneyHTML(events)}
333
+ </details>
334
+ ` : ""}
335
+ </div>
336
+ `;
337
+ }
75
338
  //# sourceMappingURL=utils.js.map
package/dist/utils.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAGH;;;;GAIG;AAEH,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,MAAM,CAAC;AAChE,OAAO,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAE9D;;;;;;;;GAQG;AACH,MAAM,UAAU,gBAAgB,CAAC,QAAgB,EAAE,WAAmB;IACpE,4CAA4C;IAC5C,MAAM,cAAc,GAAG,SAAS,CAAC,QAAQ,CAAC,CAAC;IAC3C,MAAM,cAAc,GAAG,SAAS,CAAC,WAAW,CAAC,CAAC;IAE9C,4BAA4B;IAC5B,MAAM,YAAY,GAAG,UAAU,CAAC,cAAc,CAAC;QAC7C,CAAC,CAAC,cAAc;QAChB,CAAC,CAAC,OAAO,CAAC,cAAc,EAAE,cAAc,CAAC,CAAC;IAC5C,MAAM,YAAY,GAAG,OAAO,CAAC,cAAc,CAAC,CAAC;IAE7C,wDAAwD;IACxD,MAAM,YAAY,GAAG,QAAQ,CAAC,YAAY,EAAE,YAAY,CAAC,CAAC;IAE1D,+DAA+D;IAC/D,IAAI,YAAY,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC;QAC9D,MAAM,IAAI,aAAa,CACrB,iBAAiB,CAAC,sBAAsB,EACxC,4BAA4B,QAAQ,sCAAsC,EAC1E,EAAE,aAAa,EAAE,QAAQ,EAAE,WAAW,EAAE,YAAY,EAAE,YAAY,EAAE,CACrE,CAAC;IACJ,CAAC;IAED,OAAO,YAAY,CAAC;AACtB,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,gBAAgB,CAAC,QAAgB;IAC/C,OAAO,QAAQ;SACZ,OAAO,CAAC,kBAAkB,EAAE,GAAG,CAAC,CAAC,uCAAuC;SACxE,OAAO,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC,yBAAyB;SACjD,OAAO,CAAC,YAAY,EAAE,EAAE,CAAC,CAAC,+BAA+B;SACzD,SAAS,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,eAAe;AACvC,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,QAAQ,CAAC,IAAY,EAAE,QAAgB;IACrD,MAAM,SAAS,GAAG,QAAQ;SACvB,KAAK,CAAC,OAAO,CAAC;SACd,GAAG,CAAC,gBAAgB,CAAC;SACrB,MAAM,CAAC,OAAO,CAAC;SACf,IAAI,CAAC,GAAG,CAAC,CAAC;IAEb,OAAO,gBAAgB,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;AAC3C,CAAC"}
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "cbrowser",
3
- "version": "13.0.4",
3
+ "version": "14.2.0",
4
4
  "type": "module",
5
5
  "description": "Cognitive browser automation that thinks like your users. Simulate real user cognition with abandonment detection, constitutional safety, chaos engineering, and UX friction discovery.",
6
6
  "main": "dist/index.js",