cbrowser 17.5.3 → 17.6.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (97) hide show
  1. package/dist/index.d.ts +2 -0
  2. package/dist/index.d.ts.map +1 -1
  3. package/dist/index.js +5 -0
  4. package/dist/index.js.map +1 -1
  5. package/dist/mcp-server-remote.d.ts +8 -0
  6. package/dist/mcp-server-remote.d.ts.map +1 -1
  7. package/dist/mcp-server-remote.js +110 -2214
  8. package/dist/mcp-server-remote.js.map +1 -1
  9. package/dist/mcp-tools/ask-user-tools.d.ts +12 -0
  10. package/dist/mcp-tools/ask-user-tools.d.ts.map +1 -0
  11. package/dist/mcp-tools/ask-user-tools.js +60 -0
  12. package/dist/mcp-tools/ask-user-tools.js.map +1 -0
  13. package/dist/mcp-tools/base/analysis-tools.d.ts +12 -0
  14. package/dist/mcp-tools/base/analysis-tools.d.ts.map +1 -0
  15. package/dist/mcp-tools/base/analysis-tools.js +70 -0
  16. package/dist/mcp-tools/base/analysis-tools.js.map +1 -0
  17. package/dist/mcp-tools/base/assertion-tools.d.ts +12 -0
  18. package/dist/mcp-tools/base/assertion-tools.d.ts.map +1 -0
  19. package/dist/mcp-tools/base/assertion-tools.js +32 -0
  20. package/dist/mcp-tools/base/assertion-tools.js.map +1 -0
  21. package/dist/mcp-tools/base/audit-tools.d.ts +12 -0
  22. package/dist/mcp-tools/base/audit-tools.d.ts.map +1 -0
  23. package/dist/mcp-tools/base/audit-tools.js +114 -0
  24. package/dist/mcp-tools/base/audit-tools.js.map +1 -0
  25. package/dist/mcp-tools/base/browser-management-tools.d.ts +12 -0
  26. package/dist/mcp-tools/base/browser-management-tools.d.ts.map +1 -0
  27. package/dist/mcp-tools/base/browser-management-tools.js +69 -0
  28. package/dist/mcp-tools/base/browser-management-tools.js.map +1 -0
  29. package/dist/mcp-tools/base/bug-analysis-tools.d.ts +12 -0
  30. package/dist/mcp-tools/base/bug-analysis-tools.d.ts.map +1 -0
  31. package/dist/mcp-tools/base/bug-analysis-tools.js +97 -0
  32. package/dist/mcp-tools/base/bug-analysis-tools.js.map +1 -0
  33. package/dist/mcp-tools/base/cognitive-tools.d.ts +12 -0
  34. package/dist/mcp-tools/base/cognitive-tools.d.ts.map +1 -0
  35. package/dist/mcp-tools/base/cognitive-tools.js +453 -0
  36. package/dist/mcp-tools/base/cognitive-tools.js.map +1 -0
  37. package/dist/mcp-tools/base/extraction-tools.d.ts +12 -0
  38. package/dist/mcp-tools/base/extraction-tools.d.ts.map +1 -0
  39. package/dist/mcp-tools/base/extraction-tools.js +41 -0
  40. package/dist/mcp-tools/base/extraction-tools.js.map +1 -0
  41. package/dist/mcp-tools/base/healing-tools.d.ts +12 -0
  42. package/dist/mcp-tools/base/healing-tools.d.ts.map +1 -0
  43. package/dist/mcp-tools/base/healing-tools.js +24 -0
  44. package/dist/mcp-tools/base/healing-tools.js.map +1 -0
  45. package/dist/mcp-tools/base/index.d.ts +49 -0
  46. package/dist/mcp-tools/base/index.d.ts.map +1 -0
  47. package/dist/mcp-tools/base/index.js +99 -0
  48. package/dist/mcp-tools/base/index.js.map +1 -0
  49. package/dist/mcp-tools/base/interaction-tools.d.ts +12 -0
  50. package/dist/mcp-tools/base/interaction-tools.d.ts.map +1 -0
  51. package/dist/mcp-tools/base/interaction-tools.js +168 -0
  52. package/dist/mcp-tools/base/interaction-tools.js.map +1 -0
  53. package/dist/mcp-tools/base/navigation-tools.d.ts +12 -0
  54. package/dist/mcp-tools/base/navigation-tools.d.ts.map +1 -0
  55. package/dist/mcp-tools/base/navigation-tools.js +33 -0
  56. package/dist/mcp-tools/base/navigation-tools.js.map +1 -0
  57. package/dist/mcp-tools/base/performance-tools.d.ts +12 -0
  58. package/dist/mcp-tools/base/performance-tools.d.ts.map +1 -0
  59. package/dist/mcp-tools/base/performance-tools.js +103 -0
  60. package/dist/mcp-tools/base/performance-tools.js.map +1 -0
  61. package/dist/mcp-tools/base/persona-comparison-tools.d.ts +12 -0
  62. package/dist/mcp-tools/base/persona-comparison-tools.d.ts.map +1 -0
  63. package/dist/mcp-tools/base/persona-comparison-tools.js +242 -0
  64. package/dist/mcp-tools/base/persona-comparison-tools.js.map +1 -0
  65. package/dist/mcp-tools/base/session-tools.d.ts +12 -0
  66. package/dist/mcp-tools/base/session-tools.d.ts.map +1 -0
  67. package/dist/mcp-tools/base/session-tools.js +67 -0
  68. package/dist/mcp-tools/base/session-tools.js.map +1 -0
  69. package/dist/mcp-tools/base/testing-tools.d.ts +12 -0
  70. package/dist/mcp-tools/base/testing-tools.d.ts.map +1 -0
  71. package/dist/mcp-tools/base/testing-tools.js +199 -0
  72. package/dist/mcp-tools/base/testing-tools.js.map +1 -0
  73. package/dist/mcp-tools/base/values-tools.d.ts +13 -0
  74. package/dist/mcp-tools/base/values-tools.d.ts.map +1 -0
  75. package/dist/mcp-tools/base/values-tools.js +290 -0
  76. package/dist/mcp-tools/base/values-tools.js.map +1 -0
  77. package/dist/mcp-tools/base/visual-testing-tools.d.ts +12 -0
  78. package/dist/mcp-tools/base/visual-testing-tools.d.ts.map +1 -0
  79. package/dist/mcp-tools/base/visual-testing-tools.js +159 -0
  80. package/dist/mcp-tools/base/visual-testing-tools.js.map +1 -0
  81. package/dist/mcp-tools/enterprise-stubs.d.ts +23 -0
  82. package/dist/mcp-tools/enterprise-stubs.d.ts.map +1 -0
  83. package/dist/mcp-tools/enterprise-stubs.js +238 -0
  84. package/dist/mcp-tools/enterprise-stubs.js.map +1 -0
  85. package/dist/mcp-tools/index.d.ts +36 -0
  86. package/dist/mcp-tools/index.d.ts.map +1 -0
  87. package/dist/mcp-tools/index.js +52 -0
  88. package/dist/mcp-tools/index.js.map +1 -0
  89. package/dist/mcp-tools/persona-creation-tools.d.ts +21 -0
  90. package/dist/mcp-tools/persona-creation-tools.d.ts.map +1 -0
  91. package/dist/mcp-tools/persona-creation-tools.js +528 -0
  92. package/dist/mcp-tools/persona-creation-tools.js.map +1 -0
  93. package/dist/mcp-tools/types.d.ts +24 -0
  94. package/dist/mcp-tools/types.d.ts.map +1 -0
  95. package/dist/mcp-tools/types.js +8 -0
  96. package/dist/mcp-tools/types.js.map +1 -0
  97. package/package.json +6 -1
@@ -0,0 +1,528 @@
1
+ /**
2
+ * CBrowser MCP Tools - Persona Creation Tools
3
+ *
4
+ * 7 tools for guided persona creation using AskUserQuestion patterns:
5
+ * - persona_create_start
6
+ * - persona_create_questionnaire_start
7
+ * - persona_create_questionnaire_answer
8
+ * - persona_create_from_description
9
+ * - persona_create_submit_traits
10
+ * - persona_create_cancel
11
+ * - persona_traits_list
12
+ *
13
+ * @copyright 2026 WF Media (Alexandria Eden) alexandria.shai.eden@gmail.com
14
+ * @license BSL-1.1 (Business Source License 1.1)
15
+ */
16
+ import { z } from "zod";
17
+ import { generatePersonaQuestionnaire, buildTraitsFromAnswers, deriveValuesFromTraits, TRAIT_REFERENCE_MATRIX, } from "../persona-questionnaire.js";
18
+ const VALUES_QUESTIONS = [
19
+ {
20
+ id: "security",
21
+ value: "security",
22
+ question: "How important is safety and stability to this persona?",
23
+ options: [
24
+ { value: 0.0, label: "Not Important", description: "Takes risks freely, ignores safety warnings" },
25
+ { value: 0.33, label: "Somewhat Important", description: "Balances caution with convenience" },
26
+ { value: 0.67, label: "Important", description: "Prefers familiar, trusted options" },
27
+ { value: 1.0, label: "Very Important", description: "Prioritizes security over convenience always" },
28
+ ],
29
+ },
30
+ {
31
+ id: "stimulation",
32
+ value: "stimulation",
33
+ question: "How much does this persona seek novelty and excitement?",
34
+ options: [
35
+ { value: 0.0, label: "Avoids Novelty", description: "Prefers routine, dislikes surprises" },
36
+ { value: 0.33, label: "Mild Interest", description: "Occasionally tries new things" },
37
+ { value: 0.67, label: "Seeks Novelty", description: "Enjoys exploring new features and options" },
38
+ { value: 1.0, label: "Thrives on Novelty", description: "Always first to try new things, loves surprises" },
39
+ ],
40
+ },
41
+ {
42
+ id: "achievement",
43
+ value: "achievement",
44
+ question: "How driven is this persona to succeed and accomplish goals?",
45
+ options: [
46
+ { value: 0.0, label: "Not Driven", description: "Goes with the flow, not goal-oriented" },
47
+ { value: 0.33, label: "Casually Motivated", description: "Has goals but doesn't stress about them" },
48
+ { value: 0.67, label: "Goal-Oriented", description: "Works hard to achieve objectives" },
49
+ { value: 1.0, label: "Highly Ambitious", description: "Intensely focused on success and achievement" },
50
+ ],
51
+ },
52
+ {
53
+ id: "conformity",
54
+ value: "conformity",
55
+ question: "How much does this persona follow social norms and expectations?",
56
+ options: [
57
+ { value: 0.0, label: "Independent", description: "Ignores norms, does things their own way" },
58
+ { value: 0.33, label: "Flexible", description: "Generally follows norms but makes exceptions" },
59
+ { value: 0.67, label: "Conventional", description: "Follows established practices and expectations" },
60
+ { value: 1.0, label: "Strongly Conforming", description: "Strictly adheres to all social norms" },
61
+ ],
62
+ },
63
+ {
64
+ id: "selfDirection",
65
+ value: "selfDirection",
66
+ question: "How important is independence and autonomy to this persona?",
67
+ options: [
68
+ { value: 0.0, label: "Prefers Guidance", description: "Likes being told what to do" },
69
+ { value: 0.33, label: "Accepts Guidance", description: "Follows instructions but has preferences" },
70
+ { value: 0.67, label: "Values Independence", description: "Prefers to figure things out themselves" },
71
+ { value: 1.0, label: "Strongly Independent", description: "Must have control over their own choices" },
72
+ ],
73
+ },
74
+ {
75
+ id: "hedonism",
76
+ value: "hedonism",
77
+ question: "How important is pleasure and enjoyment to this persona?",
78
+ options: [
79
+ { value: 0.0, label: "Utilitarian", description: "Focused on function, not pleasure" },
80
+ { value: 0.33, label: "Balanced", description: "Appreciates nice experiences but not a priority" },
81
+ { value: 0.67, label: "Pleasure-Seeking", description: "Enjoys aesthetics, comfort, and fun" },
82
+ { value: 1.0, label: "Highly Hedonistic", description: "Prioritizes enjoyment and sensory pleasure" },
83
+ ],
84
+ },
85
+ {
86
+ id: "power",
87
+ value: "power",
88
+ question: "How important is status and control to this persona?",
89
+ options: [
90
+ { value: 0.0, label: "Humble", description: "Avoids status symbols, prefers equality" },
91
+ { value: 0.33, label: "Modest", description: "Accepts some recognition but doesn't seek it" },
92
+ { value: 0.67, label: "Status-Conscious", description: "Values recognition and influence" },
93
+ { value: 1.0, label: "Power-Oriented", description: "Strongly motivated by prestige and control" },
94
+ ],
95
+ },
96
+ {
97
+ id: "tradition",
98
+ value: "tradition",
99
+ question: "How important are customs and traditional ways to this persona?",
100
+ options: [
101
+ { value: 0.0, label: "Progressive", description: "Rejects tradition, embraces change" },
102
+ { value: 0.33, label: "Flexible", description: "Respects some traditions, open to new ways" },
103
+ { value: 0.67, label: "Traditional", description: "Values established customs and practices" },
104
+ { value: 1.0, label: "Strongly Traditional", description: "Deeply committed to preserving traditions" },
105
+ ],
106
+ },
107
+ {
108
+ id: "benevolence",
109
+ value: "benevolence",
110
+ question: "How caring is this persona toward people they know?",
111
+ options: [
112
+ { value: 0.0, label: "Self-Focused", description: "Prioritizes own needs over others" },
113
+ { value: 0.33, label: "Occasionally Helpful", description: "Helps when convenient" },
114
+ { value: 0.67, label: "Caring", description: "Regularly helps friends, family, colleagues" },
115
+ { value: 1.0, label: "Highly Benevolent", description: "Deeply devoted to helping close others" },
116
+ ],
117
+ },
118
+ {
119
+ id: "universalism",
120
+ value: "universalism",
121
+ question: "How much does this persona care about broader social and environmental issues?",
122
+ options: [
123
+ { value: 0.0, label: "Indifferent", description: "Focused on personal/local concerns only" },
124
+ { value: 0.33, label: "Aware", description: "Acknowledges issues but limited action" },
125
+ { value: 0.67, label: "Concerned", description: "Actively cares about society and environment" },
126
+ { value: 1.0, label: "Deeply Committed", description: "Strong advocate for social justice and sustainability" },
127
+ ],
128
+ },
129
+ ];
130
+ // In-memory session storage (per-server)
131
+ const questionnaireSessionsMap = new Map();
132
+ function getQuestionnaireSession(sessionId) {
133
+ return questionnaireSessionsMap.get(sessionId) || null;
134
+ }
135
+ function setQuestionnaireSession(sessionId, session) {
136
+ questionnaireSessionsMap.set(sessionId, session);
137
+ }
138
+ function clearQuestionnaireSession(sessionId) {
139
+ questionnaireSessionsMap.delete(sessionId);
140
+ }
141
+ function getSessionId() {
142
+ // In a real implementation, this would come from request context
143
+ return "default-session";
144
+ }
145
+ function getTraitHeader(trait) {
146
+ const headers = {
147
+ patience: "Patience",
148
+ riskTolerance: "Risk",
149
+ comprehension: "Comprehension",
150
+ persistence: "Persistence",
151
+ curiosity: "Curiosity",
152
+ workingMemory: "Memory",
153
+ readingTendency: "Reading",
154
+ resilience: "Resilience",
155
+ selfEfficacy: "Confidence",
156
+ satisficing: "Decisions",
157
+ trustCalibration: "Trust",
158
+ interruptRecovery: "Focus",
159
+ informationForaging: "Search Style",
160
+ changeBlindness: "Awareness",
161
+ anchoringBias: "Anchoring",
162
+ timeHorizon: "Time Focus",
163
+ attributionStyle: "Attribution",
164
+ metacognitivePlanning: "Planning",
165
+ proceduralFluency: "Procedures",
166
+ transferLearning: "Transfer",
167
+ authoritySensitivity: "Authority",
168
+ emotionalContagion: "Emotional",
169
+ fearOfMissingOut: "FOMO",
170
+ socialProofSensitivity: "Social Proof",
171
+ mentalModelRigidity: "Flexibility",
172
+ };
173
+ return headers[trait] || trait;
174
+ }
175
+ function convertToThirdPerson(question, personaName) {
176
+ let result = question
177
+ .replace(/When you encounter a confusing website, how long do you typically try/i, `When this persona encounters a confusing website, how long does this persona typically try`)
178
+ .replace(/How comfortable are you clicking/i, `How comfortable is this persona clicking`)
179
+ .replace(/How easily do you understand/i, `How easily does this persona understand`)
180
+ .replace(/When something doesn't work the first time, what do you usually do/i, `When something doesn't work the first time, what does this persona usually do`)
181
+ .replace(/While completing a task online, how often do you explore/i, `While completing a task, how often does this persona explore`)
182
+ .replace(/How well do you remember/i, `How well does this persona remember`)
183
+ .replace(/How much of a webpage's text do you typically read/i, `How much of a webpage's text does this persona typically read`)
184
+ .replace(/After encountering an error or frustrating experience, how quickly do you recover/i, `After encountering an error, how quickly does this persona recover`)
185
+ .replace(/How confident are you in your ability/i, `How confident is this persona in their ability`);
186
+ result = result
187
+ .replace(/\bdo you\b/gi, "does this persona")
188
+ .replace(/\bare you\b/gi, "is this persona")
189
+ .replace(/\byou're\b/gi, "this persona is")
190
+ .replace(/\byou've\b/gi, "they have")
191
+ .replace(/\byou'd\b/gi, "they would")
192
+ .replace(/\byour\b/gi, "their")
193
+ .replace(/\byou\b/gi, "they");
194
+ return result;
195
+ }
196
+ /**
197
+ * Register persona creation tools (7 tools)
198
+ */
199
+ export function registerPersonaCreationTools(server) {
200
+ server.tool("persona_create_start", "Start creating a custom persona. YOU MUST USE YOUR AskUserQuestion TOOL to present the choice to the user - do NOT just show JSON. Ask whether they want questionnaire or description mode.", {
201
+ persona_name: z.string().describe("Name for the new persona (e.g., 'tech-savvy-millennial')"),
202
+ comprehensive: z.boolean().optional().describe("Include all 25 traits (true) or just core 8 traits (false, default)"),
203
+ }, async ({ persona_name, comprehensive = false }) => {
204
+ const sessionId = getSessionId();
205
+ const existingSession = getQuestionnaireSession(sessionId);
206
+ if (existingSession) {
207
+ return {
208
+ content: [{
209
+ type: "text",
210
+ text: JSON.stringify({
211
+ warning: "A questionnaire session is already in progress",
212
+ existing_persona: existingSession.personaName,
213
+ progress: `${existingSession.currentIndex}/${existingSession.questions.length} questions answered`,
214
+ options: [
215
+ "Use persona_create_questionnaire_answer to continue the current questionnaire",
216
+ "Use persona_create_cancel to discard and start fresh",
217
+ ],
218
+ }, null, 2),
219
+ }],
220
+ };
221
+ }
222
+ const traitCount = comprehensive ? 25 : 8;
223
+ const valueCount = VALUES_QUESTIONS.length;
224
+ const totalQuestions = traitCount + valueCount;
225
+ return {
226
+ content: [{
227
+ type: "text",
228
+ text: `ACTION REQUIRED: Use your AskUserQuestion tool to ask the user:
229
+
230
+ Question: "How would you like to create the '${persona_name}' persona?"
231
+ Header: "Create Mode"
232
+
233
+ Options:
234
+ 1. "Fill out questionnaire (Recommended)" - Answer ${totalQuestions} questions about this persona's cognitive traits and values.
235
+ 2. "Describe the persona" - Provide a text description and I'll infer appropriate trait and value settings.
236
+
237
+ After the user chooses:
238
+ - If "questionnaire": Call persona_create_questionnaire_start with persona_name="${persona_name}" and comprehensive=${comprehensive}
239
+ - If "describe": Ask the user to describe the persona, then call persona_create_from_description
240
+
241
+ IMPORTANT: Do NOT show this text to the user. USE AskUserQuestion to present the choice interactively.`,
242
+ }],
243
+ };
244
+ });
245
+ server.tool("persona_create_questionnaire_start", "Start the questionnaire mode for persona creation. YOU MUST USE AskUserQuestion to present each question interactively.", {
246
+ persona_name: z.string().describe("Name for the new persona"),
247
+ comprehensive: z.boolean().optional().describe("Include all 25 traits (default: false, core 8 traits only)"),
248
+ }, async ({ persona_name, comprehensive = false }) => {
249
+ const sessionId = getSessionId();
250
+ const rawQuestions = generatePersonaQuestionnaire({ comprehensive });
251
+ const session = {
252
+ personaName: persona_name,
253
+ questions: rawQuestions,
254
+ valueQuestions: VALUES_QUESTIONS,
255
+ answers: {},
256
+ valueAnswers: {},
257
+ answerMetadata: {},
258
+ currentIndex: 0,
259
+ phase: "traits",
260
+ comprehensive,
261
+ startedAt: Date.now(),
262
+ lastQuestionAskedAt: Date.now(),
263
+ };
264
+ setQuestionnaireSession(sessionId, session);
265
+ const firstQuestion = rawQuestions[0];
266
+ const thirdPersonQuestion = convertToThirdPerson(firstQuestion.question, persona_name);
267
+ const totalQuestions = rawQuestions.length + VALUES_QUESTIONS.length;
268
+ return {
269
+ content: [{
270
+ type: "text",
271
+ text: `ACTION REQUIRED: Use your AskUserQuestion tool to ask about the "${persona_name}" persona.
272
+
273
+ Question 1 of ${totalQuestions} (Trait: ${firstQuestion.trait})
274
+ "${thirdPersonQuestion}"
275
+
276
+ Header: "${getTraitHeader(firstQuestion.trait)}"
277
+
278
+ Options:
279
+ ${firstQuestion.options.map((o, i) => `${i + 1}. "${o.label}" - ${o.description}`).join("\n")}
280
+
281
+ After the user selects an option, call persona_create_questionnaire_answer with answer_value set to the option's value.
282
+
283
+ IMPORTANT: Use AskUserQuestion - do NOT just display this text.`,
284
+ }],
285
+ };
286
+ });
287
+ server.tool("persona_create_questionnaire_answer", "Submit an answer for the current questionnaire question. Returns instructions for the next question, or completed persona when done.", {
288
+ answer_value: z.number().min(0).max(1).describe("The value selected (0.0, 0.25, 0.33, 0.67, 0.75, or 1.0)"),
289
+ }, async ({ answer_value }) => {
290
+ const sessionId = getSessionId();
291
+ const session = getQuestionnaireSession(sessionId);
292
+ if (!session) {
293
+ return {
294
+ content: [{
295
+ type: "text",
296
+ text: JSON.stringify({
297
+ error: "No questionnaire session in progress",
298
+ instruction: "Start a new questionnaire with persona_create_questionnaire_start",
299
+ }, null, 2),
300
+ }],
301
+ };
302
+ }
303
+ const totalQuestions = session.questions.length + session.valueQuestions.length;
304
+ const now = Date.now();
305
+ if (session.phase === "traits") {
306
+ const currentQuestion = session.questions[session.currentIndex];
307
+ session.answers[currentQuestion.trait] = answer_value;
308
+ session.answerMetadata[currentQuestion.trait] = {
309
+ value: answer_value,
310
+ answeredAt: now,
311
+ questionIndex: session.currentIndex,
312
+ phase: "traits",
313
+ };
314
+ session.currentIndex++;
315
+ if (session.currentIndex >= session.questions.length) {
316
+ session.phase = "values";
317
+ session.currentIndex = 0;
318
+ }
319
+ }
320
+ else {
321
+ const currentValueQ = session.valueQuestions[session.currentIndex];
322
+ session.valueAnswers[currentValueQ.value] = answer_value;
323
+ session.answerMetadata[currentValueQ.value] = {
324
+ value: answer_value,
325
+ answeredAt: now,
326
+ questionIndex: session.currentIndex,
327
+ phase: "values",
328
+ };
329
+ session.currentIndex++;
330
+ }
331
+ session.lastQuestionAskedAt = now;
332
+ // Check if completely done
333
+ if (session.phase === "values" && session.currentIndex >= session.valueQuestions.length) {
334
+ const traits = buildTraitsFromAnswers(session.answers);
335
+ const derivedResult = deriveValuesFromTraits(traits);
336
+ const derivedValues = derivedResult.values;
337
+ const values = {
338
+ selfDirection: session.valueAnswers.selfDirection ?? derivedValues.selfDirection ?? 0.5,
339
+ stimulation: session.valueAnswers.stimulation ?? derivedValues.stimulation ?? 0.5,
340
+ hedonism: session.valueAnswers.hedonism ?? derivedValues.hedonism ?? 0.5,
341
+ achievement: session.valueAnswers.achievement ?? derivedValues.achievement ?? 0.5,
342
+ power: session.valueAnswers.power ?? derivedValues.power ?? 0.5,
343
+ security: session.valueAnswers.security ?? derivedValues.security ?? 0.5,
344
+ conformity: session.valueAnswers.conformity ?? derivedValues.conformity ?? 0.5,
345
+ tradition: session.valueAnswers.tradition ?? derivedValues.tradition ?? 0.5,
346
+ benevolence: session.valueAnswers.benevolence ?? derivedValues.benevolence ?? 0.5,
347
+ universalism: session.valueAnswers.universalism ?? derivedValues.universalism ?? 0.5,
348
+ };
349
+ const personaName = session.personaName;
350
+ const duration = Date.now() - session.startedAt;
351
+ clearQuestionnaireSession(sessionId);
352
+ return {
353
+ content: [{
354
+ type: "text",
355
+ text: JSON.stringify({
356
+ questionnaire_complete: true,
357
+ persona_name: personaName,
358
+ duration_seconds: Math.round(duration / 1000),
359
+ traits,
360
+ values,
361
+ instruction: "Persona has been created with traits AND values. You can now use this persona with cognitive_journey_init.",
362
+ }, null, 2),
363
+ }],
364
+ };
365
+ }
366
+ // Get the next question
367
+ const answeredCount = session.phase === "traits"
368
+ ? session.currentIndex
369
+ : session.questions.length + session.currentIndex;
370
+ if (session.phase === "traits") {
371
+ const nextQuestion = session.questions[session.currentIndex];
372
+ const thirdPersonQuestion = convertToThirdPerson(nextQuestion.question, session.personaName);
373
+ setQuestionnaireSession(sessionId, session);
374
+ return {
375
+ content: [{
376
+ type: "text",
377
+ text: `ACTION REQUIRED: Use your AskUserQuestion tool.
378
+
379
+ Question ${answeredCount + 1} of ${totalQuestions} (Trait: ${nextQuestion.trait})
380
+ "${thirdPersonQuestion}"
381
+
382
+ Header: "${getTraitHeader(nextQuestion.trait)}"
383
+
384
+ Options:
385
+ ${nextQuestion.options.map((o, i) => `${i + 1}. "${o.label}" - ${o.description}`).join("\n")}
386
+
387
+ Progress: ${Math.round((answeredCount / totalQuestions) * 100)}% complete`,
388
+ }],
389
+ };
390
+ }
391
+ else {
392
+ const nextValueQ = session.valueQuestions[session.currentIndex];
393
+ setQuestionnaireSession(sessionId, session);
394
+ return {
395
+ content: [{
396
+ type: "text",
397
+ text: `ACTION REQUIRED: Use your AskUserQuestion tool.
398
+
399
+ Question ${answeredCount + 1} of ${totalQuestions} (Value: ${nextValueQ.value})
400
+ "${nextValueQ.question}"
401
+
402
+ Header: "${nextValueQ.value.charAt(0).toUpperCase() + nextValueQ.value.slice(1)}"
403
+
404
+ Options:
405
+ ${nextValueQ.options.map((o, i) => `${i + 1}. "${o.label}" - ${o.description}`).join("\n")}
406
+
407
+ Progress: ${Math.round((answeredCount / totalQuestions) * 100)}% complete
408
+ Phase: VALUES (${session.currentIndex + 1} of ${session.valueQuestions.length})`,
409
+ }],
410
+ };
411
+ }
412
+ });
413
+ server.tool("persona_create_from_description", "Create a persona from a text description. Returns trait reference matrix for Claude to infer appropriate values.", {
414
+ persona_name: z.string().describe("Name for the new persona"),
415
+ description: z.string().describe("Text description of the persona (e.g., 'An impatient power user who skims content')"),
416
+ }, async ({ persona_name, description }) => {
417
+ const traitInfo = TRAIT_REFERENCE_MATRIX.map(trait => ({
418
+ name: trait.name,
419
+ description: trait.description,
420
+ levels: trait.levels.map(l => ({
421
+ value: l.value,
422
+ label: l.label,
423
+ behaviors: l.behaviors.slice(0, 2),
424
+ })),
425
+ }));
426
+ return {
427
+ content: [{
428
+ type: "text",
429
+ text: JSON.stringify({
430
+ mode: "manual_inference",
431
+ persona_name,
432
+ user_description: description,
433
+ instruction: `Based on the user's description, infer appropriate trait values (0.0 to 1.0) for each cognitive trait. Use the trait reference matrix below to guide your inference. Return the traits via persona_create_submit_traits.`,
434
+ trait_reference: traitInfo,
435
+ example_output: {
436
+ patience: 0.25,
437
+ riskTolerance: 0.75,
438
+ comprehension: 0.75,
439
+ persistence: 0.5,
440
+ curiosity: 0.5,
441
+ workingMemory: 0.75,
442
+ readingTendency: 0.25,
443
+ },
444
+ follow_up_tool: "persona_create_submit_traits",
445
+ }, null, 2),
446
+ }],
447
+ };
448
+ });
449
+ server.tool("persona_create_submit_traits", "Submit inferred traits for a persona created from description. Use after persona_create_from_description.", {
450
+ persona_name: z.string().describe("Name for the persona"),
451
+ traits: z.record(z.string(), z.number()).describe("Map of trait names to values (0-1)"),
452
+ description: z.string().optional().describe("Original description for reference"),
453
+ }, async ({ persona_name, traits, description }) => {
454
+ const builtTraits = buildTraitsFromAnswers(traits);
455
+ const derivedResult = deriveValuesFromTraits(builtTraits);
456
+ return {
457
+ content: [{
458
+ type: "text",
459
+ text: JSON.stringify({
460
+ success: true,
461
+ persona_name,
462
+ description,
463
+ traits: builtTraits,
464
+ values: derivedResult.values,
465
+ derivations: derivedResult.derivations,
466
+ instruction: `Persona "${persona_name}" created. Use with cognitive_journey_init.`,
467
+ usage_example: {
468
+ tool: "cognitive_journey_init",
469
+ params: {
470
+ persona: persona_name,
471
+ customTraits: builtTraits,
472
+ },
473
+ },
474
+ }, null, 2),
475
+ }],
476
+ };
477
+ });
478
+ server.tool("persona_create_cancel", "Cancel the current persona creation questionnaire session.", {}, async () => {
479
+ const sessionId = getSessionId();
480
+ const session = getQuestionnaireSession(sessionId);
481
+ if (!session) {
482
+ return {
483
+ content: [{
484
+ type: "text",
485
+ text: JSON.stringify({
486
+ message: "No questionnaire session to cancel",
487
+ }, null, 2),
488
+ }],
489
+ };
490
+ }
491
+ const personaName = session.personaName;
492
+ const progress = session.currentIndex;
493
+ clearQuestionnaireSession(sessionId);
494
+ return {
495
+ content: [{
496
+ type: "text",
497
+ text: JSON.stringify({
498
+ cancelled: true,
499
+ persona_name: personaName,
500
+ progress_lost: `${progress} questions answered`,
501
+ instruction: "Questionnaire cancelled. Use persona_create_start to begin a new persona.",
502
+ }, null, 2),
503
+ }],
504
+ };
505
+ });
506
+ server.tool("persona_traits_list", "List all available cognitive traits with descriptions. Useful for understanding what traits can be customized.", {}, async () => {
507
+ const traits = TRAIT_REFERENCE_MATRIX.map(trait => ({
508
+ name: trait.name,
509
+ description: trait.description,
510
+ researchBasis: trait.researchBasis,
511
+ levels: trait.levels.map(l => ({
512
+ value: l.value,
513
+ label: l.label,
514
+ })),
515
+ }));
516
+ return {
517
+ content: [{
518
+ type: "text",
519
+ text: JSON.stringify({
520
+ count: traits.length,
521
+ traits,
522
+ usage: "Use these traits with persona_create_submit_traits or customize them in cognitive_journey_init",
523
+ }, null, 2),
524
+ }],
525
+ };
526
+ });
527
+ }
528
+ //# sourceMappingURL=persona-creation-tools.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"persona-creation-tools.js","sourceRoot":"","sources":["../../src/mcp-tools/persona-creation-tools.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,24 @@
1
+ /**
2
+ * CBrowser MCP Tools - Shared Types
3
+ *
4
+ * @copyright 2026 WF Media (Alexandria Eden) alexandria.shai.eden@gmail.com
5
+ * @license BSL-1.1 (Business Source License 1.1)
6
+ */
7
+ import type { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
8
+ import type { CBrowser } from "../browser.js";
9
+ /**
10
+ * Context for tool registration functions
11
+ */
12
+ export interface ToolRegistrationContext {
13
+ /** Function to get or create a browser instance */
14
+ getBrowser: () => Promise<CBrowser>;
15
+ }
16
+ /**
17
+ * Type for MCP Server (re-exported for convenience)
18
+ */
19
+ export type { McpServer };
20
+ /**
21
+ * Type for CBrowser (re-exported for convenience)
22
+ */
23
+ export type { CBrowser };
24
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/mcp-tools/types.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACzE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAE9C;;GAEG;AACH,MAAM,WAAW,uBAAuB;IACtC,mDAAmD;IACnD,UAAU,EAAE,MAAM,OAAO,CAAC,QAAQ,CAAC,CAAC;CACrC;AAED;;GAEG;AACH,YAAY,EAAE,SAAS,EAAE,CAAC;AAE1B;;GAEG;AACH,YAAY,EAAE,QAAQ,EAAE,CAAC"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * CBrowser MCP Tools - Shared Types
3
+ *
4
+ * @copyright 2026 WF Media (Alexandria Eden) alexandria.shai.eden@gmail.com
5
+ * @license BSL-1.1 (Business Source License 1.1)
6
+ */
7
+ export {};
8
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/mcp-tools/types.ts"],"names":[],"mappings":"AAAA;;;;;GAKG"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "cbrowser",
3
- "version": "17.5.3",
3
+ "version": "17.6.1",
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",
@@ -48,6 +48,11 @@
48
48
  "types": "./dist/values/index.d.ts",
49
49
  "import": "./dist/values/index.js",
50
50
  "require": "./dist/values/index.js"
51
+ },
52
+ "./mcp-tools": {
53
+ "types": "./dist/mcp-tools/index.d.ts",
54
+ "import": "./dist/mcp-tools/index.js",
55
+ "require": "./dist/mcp-tools/index.js"
51
56
  }
52
57
  },
53
58
  "scripts": {