@metamask/client-mcp-core 0.1.0 → 0.1.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.
- package/CHANGELOG.md +8 -1
- package/README.md +27 -2
- package/dist/capabilities/types.cjs.map +1 -1
- package/dist/capabilities/types.d.cts +1 -1
- package/dist/capabilities/types.d.cts.map +1 -1
- package/dist/capabilities/types.d.mts +1 -1
- package/dist/capabilities/types.d.mts.map +1 -1
- package/dist/capabilities/types.mjs.map +1 -1
- package/dist/launcher/extension-readiness.cjs +4 -17
- package/dist/launcher/extension-readiness.cjs.map +1 -1
- package/dist/launcher/extension-readiness.d.cts +1 -5
- package/dist/launcher/extension-readiness.d.cts.map +1 -1
- package/dist/launcher/extension-readiness.d.mts +1 -5
- package/dist/launcher/extension-readiness.d.mts.map +1 -1
- package/dist/launcher/extension-readiness.mjs +4 -16
- package/dist/launcher/extension-readiness.mjs.map +1 -1
- package/dist/mcp-server/schemas.cjs +4 -0
- package/dist/mcp-server/schemas.cjs.map +1 -1
- package/dist/mcp-server/schemas.d.cts +6 -4
- package/dist/mcp-server/schemas.d.cts.map +1 -1
- package/dist/mcp-server/schemas.d.mts +6 -4
- package/dist/mcp-server/schemas.d.mts.map +1 -1
- package/dist/mcp-server/schemas.mjs +4 -0
- package/dist/mcp-server/schemas.mjs.map +1 -1
- package/dist/mcp-server/session-manager.cjs.map +1 -1
- package/dist/mcp-server/session-manager.d.cts +4 -1
- package/dist/mcp-server/session-manager.d.cts.map +1 -1
- package/dist/mcp-server/session-manager.d.mts +4 -1
- package/dist/mcp-server/session-manager.d.mts.map +1 -1
- package/dist/mcp-server/session-manager.mjs.map +1 -1
- package/dist/mcp-server/tools/context.cjs +1 -1
- package/dist/mcp-server/tools/context.cjs.map +1 -1
- package/dist/mcp-server/tools/context.d.cts +1 -0
- package/dist/mcp-server/tools/context.d.cts.map +1 -1
- package/dist/mcp-server/tools/context.d.mts +1 -0
- package/dist/mcp-server/tools/context.d.mts.map +1 -1
- package/dist/mcp-server/tools/context.mjs +1 -1
- package/dist/mcp-server/tools/context.mjs.map +1 -1
- package/dist/mcp-server/types/knowledge.cjs.map +1 -1
- package/dist/mcp-server/types/knowledge.d.cts +1 -2
- package/dist/mcp-server/types/knowledge.d.cts.map +1 -1
- package/dist/mcp-server/types/knowledge.d.mts +1 -2
- package/dist/mcp-server/types/knowledge.d.mts.map +1 -1
- package/dist/mcp-server/types/knowledge.mjs.map +1 -1
- package/package.json +1 -1
|
@@ -56,9 +56,9 @@ export declare const cleanupInputSchema: z.ZodObject<{
|
|
|
56
56
|
export declare const getStateInputSchema: z.ZodObject<{}, z.core.$strip>;
|
|
57
57
|
export declare const navigateInputSchema: z.ZodObject<{
|
|
58
58
|
screen: z.ZodEnum<{
|
|
59
|
+
notification: "notification";
|
|
59
60
|
home: "home";
|
|
60
61
|
settings: "settings";
|
|
61
|
-
notification: "notification";
|
|
62
62
|
url: "url";
|
|
63
63
|
}>;
|
|
64
64
|
url: z.ZodOptional<z.ZodString>;
|
|
@@ -229,8 +229,8 @@ export declare const getContractAddressInputSchema: z.ZodObject<{
|
|
|
229
229
|
export declare const listDeployedContractsInputSchema: z.ZodObject<{}, z.core.$strip>;
|
|
230
230
|
export declare const switchToTabInputSchema: z.ZodObject<{
|
|
231
231
|
role: z.ZodOptional<z.ZodEnum<{
|
|
232
|
-
notification: "notification";
|
|
233
232
|
extension: "extension";
|
|
233
|
+
notification: "notification";
|
|
234
234
|
dapp: "dapp";
|
|
235
235
|
other: "other";
|
|
236
236
|
}>>;
|
|
@@ -261,6 +261,7 @@ export declare const setContextInputSchema: z.ZodObject<{
|
|
|
261
261
|
e2e: "e2e";
|
|
262
262
|
prod: "prod";
|
|
263
263
|
}>;
|
|
264
|
+
options: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
|
|
264
265
|
}, z.core.$strip>;
|
|
265
266
|
export declare const getContextInputSchema: z.ZodObject<{}, z.core.$strip>;
|
|
266
267
|
export declare const clipboardInputSchema: z.ZodObject<{
|
|
@@ -316,9 +317,9 @@ export declare const toolSchemas: {
|
|
|
316
317
|
readonly get_state: z.ZodObject<{}, z.core.$strip>;
|
|
317
318
|
readonly navigate: z.ZodObject<{
|
|
318
319
|
screen: z.ZodEnum<{
|
|
320
|
+
notification: "notification";
|
|
319
321
|
home: "home";
|
|
320
322
|
settings: "settings";
|
|
321
|
-
notification: "notification";
|
|
322
323
|
url: "url";
|
|
323
324
|
}>;
|
|
324
325
|
url: z.ZodOptional<z.ZodString>;
|
|
@@ -328,8 +329,8 @@ export declare const toolSchemas: {
|
|
|
328
329
|
}, z.core.$strip>;
|
|
329
330
|
readonly switch_to_tab: z.ZodObject<{
|
|
330
331
|
role: z.ZodOptional<z.ZodEnum<{
|
|
331
|
-
notification: "notification";
|
|
332
332
|
extension: "extension";
|
|
333
|
+
notification: "notification";
|
|
333
334
|
dapp: "dapp";
|
|
334
335
|
other: "other";
|
|
335
336
|
}>>;
|
|
@@ -521,6 +522,7 @@ export declare const toolSchemas: {
|
|
|
521
522
|
e2e: "e2e";
|
|
522
523
|
prod: "prod";
|
|
523
524
|
}>;
|
|
525
|
+
options: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
|
|
524
526
|
}, z.core.$strip>;
|
|
525
527
|
readonly get_context: z.ZodObject<{}, z.core.$strip>;
|
|
526
528
|
readonly clipboard: z.ZodObject<{
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schemas.d.mts","sourceRoot":"","sources":["../../src/mcp-server/schemas.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,YAAY;AAIxB,eAAO,MAAM,cAAc,aAMxB,CAAC;AAEJ,eAAO,MAAM,qBAAqB;;;;iBA0B/B,CAAC;AAEJ,eAAO,MAAM,oBAAoB;;mBAQ/B,CAAC;AAKH,eAAO,MAAM,sBAAsB;;;;;kBAqBtB,CAAC;AAEd,eAAO,MAAM,gBAAgB;;;;;iBAS3B,CAAC;AAEH,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBA0E5B,CAAC;AAEH,eAAO,MAAM,kBAAkB;;iBAK7B,CAAC;AAEH,eAAO,MAAM,mBAAmB,gCAAe,CAAC;AAEhD,eAAO,MAAM,mBAAmB;;;;;;;;iBAwB7B,CAAC;AAEJ,eAAO,MAAM,8BAA8B;;iBAQzC,CAAC;AAEH,eAAO,MAAM,sBAAsB;;iBAQjC,CAAC;AAEH,eAAO,MAAM,gCAAgC;;iBAM3C,CAAC;AAEH,eAAO,MAAM,yBAAyB;;;;iBAcpC,CAAC;AAEH,eAAO,MAAM,qBAAqB;;;;;iBAehC,CAAC;AAEH,eAAO,MAAM,gBAAgB;;;;;;kBAU5B,CAAC;AAEF,eAAO,MAAM,eAAe;;;;;;;kBAW3B,CAAC;AAEF,eAAO,MAAM,kBAAkB;;;;;;kBAU9B,CAAC;AAEF,eAAO,MAAM,wBAAwB;;;;;;;;;;;iBAcnC,CAAC;AAEH,eAAO,MAAM,0BAA0B;;;;;;;;;;;;iBAqBrC,CAAC;AAEH,eAAO,MAAM,6BAA6B;;;;;iBAcxC,CAAC;AAEH,eAAO,MAAM,4BAA4B;;;;;;;;iBASvC,CAAC;AAEH,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBASlC,CAAC;AAEH,eAAO,MAAM,wBAAwB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAGnC,CAAC;AAEH,eAAO,MAAM,6BAA6B;;;;;;;;;;;;iBAExC,CAAC;AAEH,eAAO,MAAM,gCAAgC,gCAAe,CAAC;AAK7D,eAAO,MAAM,sBAAsB;;;;;;;;iBAc/B,CAAC;AAEL,eAAO,MAAM,mBAAmB;;;;;;;iBAgB5B,CAAC;AAEL,eAAO,MAAM,mBAAmB;;;;;;;;;;;iBAsB9B,CAAC;AAEH,eAAO,MAAM,qBAAqB
|
|
1
|
+
{"version":3,"file":"schemas.d.mts","sourceRoot":"","sources":["../../src/mcp-server/schemas.ts"],"names":[],"mappings":"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"}
|
|
@@ -375,6 +375,10 @@ export const runStepsInputSchema = z.object({
|
|
|
375
375
|
});
|
|
376
376
|
export const setContextInputSchema = z.object({
|
|
377
377
|
context: z.enum(['e2e', 'prod']).describe('Target context to switch to'),
|
|
378
|
+
options: z
|
|
379
|
+
.record(z.string(), z.unknown())
|
|
380
|
+
.describe('Optional context-specific options forwarded to session manager')
|
|
381
|
+
.optional(),
|
|
378
382
|
});
|
|
379
383
|
export const getContextInputSchema = z
|
|
380
384
|
.object({})
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schemas.mjs","sourceRoot":"","sources":["../../src/mcp-server/schemas.ts"],"names":[],"mappings":"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","sourcesContent":["import { z } from 'zod';\n\nimport { SMART_CONTRACT_NAMES, HARDFORKS } from './types/seeding.js';\n\nexport const a11yRefPattern = z\n .string()\n .regex(/^e[0-9]+$/u)\n .describe(\n 'Accessibility ref from accessibility_snapshot (e.g., e1, e2). ' +\n 'These refs are ephemeral and only valid within the current screen state.',\n );\n\nexport const targetSelectionSchema = z\n .object({\n a11yRef: a11yRefPattern.optional(),\n testId: z\n .string()\n .min(1)\n .describe(\n 'data-testid attribute value (stable, preferred for interactions)',\n )\n .optional(),\n selector: z\n .string()\n .min(1)\n .describe('CSS selector (fallback, less stable than testId)')\n .optional(),\n })\n .refine(\n (data) => {\n const provided = [data.a11yRef, data.testId, data.selector].filter(\n Boolean,\n );\n return provided.length === 1;\n },\n {\n message: 'Exactly one of a11yRef, testId, or selector must be provided',\n },\n );\n\nexport const knowledgeScopeSchema = z.union([\n z.literal('current').describe('Only search the active session'),\n z.literal('all').describe('Search all sessions in the knowledge store'),\n z\n .object({\n sessionId: z.string().min(4).describe('Specific session ID to query'),\n })\n .describe('Query a specific prior session by ID'),\n]);\n\nconst smartContractNames = SMART_CONTRACT_NAMES;\nconst hardforks = HARDFORKS;\n\nexport const knowledgeFiltersSchema = z\n .object({\n flowTag: z\n .string()\n .min(1)\n .describe('Filter by flow tag (e.g., send, swap, connect, sign)')\n .optional(),\n tag: z.string().min(1).describe('Filter by free-form tag').optional(),\n screen: z\n .string()\n .min(1)\n .describe('Filter by screen name (e.g., home, unlock, settings)')\n .optional(),\n sinceHours: z\n .number()\n .int()\n .min(1)\n .max(720)\n .describe('Only include sessions/steps from the last N hours')\n .optional(),\n })\n .optional();\n\nexport const buildInputSchema = z.object({\n buildType: z\n .enum(['build:test'])\n .default('build:test')\n .describe('Build command to run. Currently only build:test is supported.'),\n force: z\n .boolean()\n .default(false)\n .describe('Force rebuild even if a build already exists'),\n});\n\nexport const launchInputSchema = z.object({\n autoBuild: z\n .boolean()\n .default(true)\n .describe('Automatically run build if extension is not found'),\n stateMode: z\n .enum(['default', 'onboarding', 'custom'])\n .default('default')\n .describe(\n 'Wallet state mode: ' +\n 'default = pre-onboarded wallet with 25 ETH, ' +\n 'onboarding = fresh wallet requiring setup, ' +\n 'custom = use provided fixture',\n ),\n fixturePreset: z\n .string()\n .min(1)\n .describe(\n 'Name of preset fixture (e.g., withMultipleAccounts, withERC20Tokens). ' +\n 'Only used when stateMode=custom.',\n )\n .optional(),\n fixture: z\n .record(z.string(), z.unknown())\n .describe('Direct fixture object for stateMode=custom')\n .optional(),\n ports: z\n .object({\n anvil: z\n .number()\n .int()\n .min(1)\n .max(65535)\n .describe('Port for Anvil local chain (default: 8545)')\n .optional(),\n fixtureServer: z\n .number()\n .int()\n .min(1)\n .max(65535)\n .describe('Port for fixture server (default: 12345)')\n .optional(),\n })\n .optional(),\n slowMo: z\n .number()\n .int()\n .min(0)\n .max(10000)\n .default(0)\n .describe('Slow down Playwright actions by N milliseconds (for debugging)'),\n extensionPath: z\n .string()\n .describe('Custom path to built extension directory')\n .optional(),\n goal: z\n .string()\n .describe('Goal or task description for this session (for knowledge store)')\n .optional(),\n flowTags: z\n .array(z.string())\n .describe(\n 'Flow tags for categorization (e.g., [\"send\"], [\"swap\", \"confirmation\"]). ' +\n 'Used for cross-session knowledge retrieval.',\n )\n .optional(),\n tags: z\n .array(z.string())\n .describe('Free-form tags for ad-hoc filtering')\n .optional(),\n seedContracts: z\n .array(z.enum(smartContractNames))\n .describe('Smart contracts to deploy on launch (before extension loads)')\n .optional(),\n});\n\nexport const cleanupInputSchema = z.object({\n sessionId: z\n .string()\n .describe('Session ID to clean up (optional, defaults to current)')\n .optional(),\n});\n\nexport const getStateInputSchema = z.object({});\n\nexport const navigateInputSchema = z\n .object({\n screen: z\n .enum(['home', 'settings', 'notification', 'url'])\n .describe(\n 'Target screen: home, settings, notification (popup), or url (custom)',\n ),\n url: z\n .string()\n .min(1)\n .describe('URL to navigate to (required when screen=\"url\")')\n .optional(),\n })\n .refine(\n (data) => {\n if (data.screen === 'url' && !data.url) {\n return false;\n }\n return true;\n },\n {\n message: 'url is required when screen is \"url\"',\n path: ['url'],\n },\n );\n\nexport const waitForNotificationInputSchema = z.object({\n timeoutMs: z\n .number()\n .int()\n .min(1000)\n .max(60000)\n .default(15000)\n .describe('Timeout in milliseconds to wait for notification popup'),\n});\n\nexport const listTestIdsInputSchema = z.object({\n limit: z\n .number()\n .int()\n .min(1)\n .max(500)\n .default(150)\n .describe('Maximum number of testIds to return'),\n});\n\nexport const accessibilitySnapshotInputSchema = z.object({\n rootSelector: z\n .string()\n .min(1)\n .describe('CSS selector to scope the snapshot (optional)')\n .optional(),\n});\n\nexport const describeScreenInputSchema = z.object({\n includeScreenshot: z\n .boolean()\n .default(false)\n .describe('Capture and include a screenshot (opt-in for privacy)'),\n screenshotName: z\n .string()\n .min(1)\n .describe('Name for the screenshot file (without extension)')\n .optional(),\n includeScreenshotBase64: z\n .boolean()\n .default(false)\n .describe('Include base64-encoded screenshot in response'),\n});\n\nexport const screenshotInputSchema = z.object({\n name: z.string().min(1).describe('Screenshot filename (without extension)'),\n fullPage: z\n .boolean()\n .default(true)\n .describe('Capture full page or just viewport'),\n selector: z\n .string()\n .min(1)\n .describe('CSS selector to capture specific element')\n .optional(),\n includeBase64: z\n .boolean()\n .default(false)\n .describe('Include base64-encoded image in response'),\n});\n\nexport const clickInputSchema = targetSelectionSchema.and(\n z.object({\n timeoutMs: z\n .number()\n .int()\n .min(0)\n .max(60000)\n .default(15000)\n .describe('Timeout to wait for element to become visible'),\n }),\n);\n\nexport const typeInputSchema = targetSelectionSchema.and(\n z.object({\n text: z.string().describe('Text to type into the element'),\n timeoutMs: z\n .number()\n .int()\n .min(0)\n .max(60000)\n .default(15000)\n .describe('Timeout to wait for element to become visible'),\n }),\n);\n\nexport const waitForInputSchema = targetSelectionSchema.and(\n z.object({\n timeoutMs: z\n .number()\n .int()\n .min(100)\n .max(120000)\n .default(15000)\n .describe('Timeout to wait for element'),\n }),\n);\n\nexport const knowledgeLastInputSchema = z.object({\n n: z\n .number()\n .int()\n .min(1)\n .max(200)\n .default(20)\n .describe('Number of recent steps to retrieve'),\n scope: knowledgeScopeSchema\n .default('current')\n .describe(\n 'Scope for retrieval: current session, all sessions, or specific session',\n ),\n filters: knowledgeFiltersSchema,\n});\n\nexport const knowledgeSearchInputSchema = z.object({\n query: z\n .string()\n .min(1)\n .max(200)\n .describe(\n 'Search query - matches tool names, screen names, testIds, and a11y names',\n ),\n limit: z\n .number()\n .int()\n .min(1)\n .max(100)\n .default(20)\n .describe('Maximum number of results'),\n scope: knowledgeScopeSchema\n .default('all')\n .describe(\n 'Search scope (defaults to all sessions for cross-session learning)',\n ),\n filters: knowledgeFiltersSchema,\n});\n\nexport const knowledgeSummarizeInputSchema = z.object({\n sessionId: z\n .string()\n .describe('Deprecated: use scope. Session ID to summarize.')\n .optional(),\n scope: z\n .union([\n z.literal('current'),\n z.object({\n sessionId: z.string().min(4),\n }),\n ])\n .default('current')\n .describe('Session to summarize (cannot use \"all\")'),\n});\n\nexport const knowledgeSessionsInputSchema = z.object({\n limit: z\n .number()\n .int()\n .min(1)\n .max(50)\n .default(10)\n .describe('Maximum number of sessions to list'),\n filters: knowledgeFiltersSchema,\n});\n\nexport const seedContractInputSchema = z.object({\n contractName: z.enum(smartContractNames),\n hardfork: z.enum(hardforks).optional(),\n deployerOptions: z\n .object({\n fromAddress: z.string().optional(),\n fromPrivateKey: z.string().optional(),\n })\n .optional(),\n});\n\nexport const seedContractsInputSchema = z.object({\n contracts: z.array(z.enum(smartContractNames)).min(1).max(9),\n hardfork: z.enum(hardforks).optional(),\n});\n\nexport const getContractAddressInputSchema = z.object({\n contractName: z.enum(smartContractNames),\n});\n\nexport const listDeployedContractsInputSchema = z.object({});\n\nconst tabRoles = ['extension', 'notification', 'dapp', 'other'] as const;\nconst closableTabRoles = ['notification', 'dapp', 'other'] as const;\n\nexport const switchToTabInputSchema = z\n .object({\n role: z\n .enum(tabRoles)\n .describe('Tab role to switch to (extension, notification, dapp, other)')\n .optional(),\n url: z\n .string()\n .min(1)\n .describe('URL prefix to match for tab switching')\n .optional(),\n })\n .refine((data) => data.role ?? data.url, {\n message: 'Either role or url must be provided',\n });\n\nexport const closeTabInputSchema = z\n .object({\n role: z\n .enum(closableTabRoles)\n .describe(\n 'Tab role to close (notification, dapp, other). Cannot close extension.',\n )\n .optional(),\n url: z\n .string()\n .min(1)\n .describe('URL prefix to match for tab closing')\n .optional(),\n })\n .refine((data) => data.role ?? data.url, {\n message: 'Either role or url must be provided',\n });\n\nexport const runStepsInputSchema = z.object({\n steps: z\n .array(\n z.object({\n tool: z.string(),\n args: z.record(z.string(), z.unknown()).optional(),\n }),\n )\n .min(1)\n .max(50)\n .describe('Array of tool calls to execute in order'),\n stopOnError: z\n .boolean()\n .default(false)\n .describe('Stop execution on first error (default: false - continue)'),\n includeObservations: z\n .enum(['none', 'failures', 'all'])\n .default('all')\n .describe(\n 'When to include observations in results: ' +\n 'none = never (fastest), failures = only for failed steps, all = always',\n ),\n});\n\nexport const setContextInputSchema = z.object({\n context: z.enum(['e2e', 'prod']).describe('Target context to switch to'),\n});\n\nexport const getContextInputSchema = z\n .object({})\n .describe('No parameters required');\n\nexport const clipboardInputSchema = z\n .object({\n action: z\n .enum(['write', 'read'])\n .describe(\n 'Action to perform: write text to clipboard or read from clipboard',\n ),\n text: z\n .string()\n .describe(\"Text to write to clipboard (required when action is 'write')\")\n .optional(),\n })\n .refine(\n (data) => {\n if (data.action === 'write' && !data.text) {\n return false;\n }\n return true;\n },\n {\n message: \"text is required when action is 'write'\",\n path: ['text'],\n },\n );\n\nexport type SetContextInputZ = z.infer<typeof setContextInputSchema>;\nexport type GetContextInputZ = z.infer<typeof getContextInputSchema>;\nexport type ClipboardInputZ = z.infer<typeof clipboardInputSchema>;\n\nexport const toolSchemas = {\n build: buildInputSchema,\n launch: launchInputSchema,\n cleanup: cleanupInputSchema,\n get_state: getStateInputSchema,\n navigate: navigateInputSchema,\n wait_for_notification: waitForNotificationInputSchema,\n switch_to_tab: switchToTabInputSchema,\n close_tab: closeTabInputSchema,\n list_testids: listTestIdsInputSchema,\n accessibility_snapshot: accessibilitySnapshotInputSchema,\n describe_screen: describeScreenInputSchema,\n screenshot: screenshotInputSchema,\n click: clickInputSchema,\n type: typeInputSchema,\n wait_for: waitForInputSchema,\n knowledge_last: knowledgeLastInputSchema,\n knowledge_search: knowledgeSearchInputSchema,\n knowledge_summarize: knowledgeSummarizeInputSchema,\n knowledge_sessions: knowledgeSessionsInputSchema,\n seed_contract: seedContractInputSchema,\n seed_contracts: seedContractsInputSchema,\n get_contract_address: getContractAddressInputSchema,\n list_contracts: listDeployedContractsInputSchema,\n run_steps: runStepsInputSchema,\n set_context: setContextInputSchema,\n get_context: getContextInputSchema,\n clipboard: clipboardInputSchema,\n} as const;\n\nexport type ToolName = keyof typeof toolSchemas;\n\nexport type BuildInputZ = z.infer<typeof buildInputSchema>;\nexport type LaunchInputZ = z.infer<typeof launchInputSchema>;\nexport type CleanupInputZ = z.infer<typeof cleanupInputSchema>;\nexport type GetStateInputZ = z.infer<typeof getStateInputSchema>;\nexport type NavigateInputZ = z.infer<typeof navigateInputSchema>;\nexport type WaitForNotificationInputZ = z.infer<\n typeof waitForNotificationInputSchema\n>;\nexport type ListTestIdsInputZ = z.infer<typeof listTestIdsInputSchema>;\nexport type AccessibilitySnapshotInputZ = z.infer<\n typeof accessibilitySnapshotInputSchema\n>;\nexport type DescribeScreenInputZ = z.infer<typeof describeScreenInputSchema>;\nexport type ScreenshotInputZ = z.infer<typeof screenshotInputSchema>;\nexport type ClickInputZ = z.infer<typeof clickInputSchema>;\nexport type TypeInputZ = z.infer<typeof typeInputSchema>;\nexport type WaitForInputZ = z.infer<typeof waitForInputSchema>;\nexport type KnowledgeLastInputZ = z.infer<typeof knowledgeLastInputSchema>;\nexport type KnowledgeSearchInputZ = z.infer<typeof knowledgeSearchInputSchema>;\nexport type KnowledgeSummarizeInputZ = z.infer<\n typeof knowledgeSummarizeInputSchema\n>;\nexport type KnowledgeSessionsInputZ = z.infer<\n typeof knowledgeSessionsInputSchema\n>;\nexport type KnowledgeScopeZ = z.infer<typeof knowledgeScopeSchema>;\nexport type KnowledgeFiltersZ = z.infer<typeof knowledgeFiltersSchema>;\nexport type RunStepsInputZ = z.infer<typeof runStepsInputSchema>;\nexport type SwitchToTabInputZ = z.infer<typeof switchToTabInputSchema>;\nexport type CloseTabInputZ = z.infer<typeof closeTabInputSchema>;\n"]}
|
|
1
|
+
{"version":3,"file":"schemas.mjs","sourceRoot":"","sources":["../../src/mcp-server/schemas.ts"],"names":[],"mappings":"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","sourcesContent":["import { z } from 'zod';\n\nimport { SMART_CONTRACT_NAMES, HARDFORKS } from './types/seeding.js';\n\nexport const a11yRefPattern = z\n .string()\n .regex(/^e[0-9]+$/u)\n .describe(\n 'Accessibility ref from accessibility_snapshot (e.g., e1, e2). ' +\n 'These refs are ephemeral and only valid within the current screen state.',\n );\n\nexport const targetSelectionSchema = z\n .object({\n a11yRef: a11yRefPattern.optional(),\n testId: z\n .string()\n .min(1)\n .describe(\n 'data-testid attribute value (stable, preferred for interactions)',\n )\n .optional(),\n selector: z\n .string()\n .min(1)\n .describe('CSS selector (fallback, less stable than testId)')\n .optional(),\n })\n .refine(\n (data) => {\n const provided = [data.a11yRef, data.testId, data.selector].filter(\n Boolean,\n );\n return provided.length === 1;\n },\n {\n message: 'Exactly one of a11yRef, testId, or selector must be provided',\n },\n );\n\nexport const knowledgeScopeSchema = z.union([\n z.literal('current').describe('Only search the active session'),\n z.literal('all').describe('Search all sessions in the knowledge store'),\n z\n .object({\n sessionId: z.string().min(4).describe('Specific session ID to query'),\n })\n .describe('Query a specific prior session by ID'),\n]);\n\nconst smartContractNames = SMART_CONTRACT_NAMES;\nconst hardforks = HARDFORKS;\n\nexport const knowledgeFiltersSchema = z\n .object({\n flowTag: z\n .string()\n .min(1)\n .describe('Filter by flow tag (e.g., send, swap, connect, sign)')\n .optional(),\n tag: z.string().min(1).describe('Filter by free-form tag').optional(),\n screen: z\n .string()\n .min(1)\n .describe('Filter by screen name (e.g., home, unlock, settings)')\n .optional(),\n sinceHours: z\n .number()\n .int()\n .min(1)\n .max(720)\n .describe('Only include sessions/steps from the last N hours')\n .optional(),\n })\n .optional();\n\nexport const buildInputSchema = z.object({\n buildType: z\n .enum(['build:test'])\n .default('build:test')\n .describe('Build command to run. Currently only build:test is supported.'),\n force: z\n .boolean()\n .default(false)\n .describe('Force rebuild even if a build already exists'),\n});\n\nexport const launchInputSchema = z.object({\n autoBuild: z\n .boolean()\n .default(true)\n .describe('Automatically run build if extension is not found'),\n stateMode: z\n .enum(['default', 'onboarding', 'custom'])\n .default('default')\n .describe(\n 'Wallet state mode: ' +\n 'default = pre-onboarded wallet with 25 ETH, ' +\n 'onboarding = fresh wallet requiring setup, ' +\n 'custom = use provided fixture',\n ),\n fixturePreset: z\n .string()\n .min(1)\n .describe(\n 'Name of preset fixture (e.g., withMultipleAccounts, withERC20Tokens). ' +\n 'Only used when stateMode=custom.',\n )\n .optional(),\n fixture: z\n .record(z.string(), z.unknown())\n .describe('Direct fixture object for stateMode=custom')\n .optional(),\n ports: z\n .object({\n anvil: z\n .number()\n .int()\n .min(1)\n .max(65535)\n .describe('Port for Anvil local chain (default: 8545)')\n .optional(),\n fixtureServer: z\n .number()\n .int()\n .min(1)\n .max(65535)\n .describe('Port for fixture server (default: 12345)')\n .optional(),\n })\n .optional(),\n slowMo: z\n .number()\n .int()\n .min(0)\n .max(10000)\n .default(0)\n .describe('Slow down Playwright actions by N milliseconds (for debugging)'),\n extensionPath: z\n .string()\n .describe('Custom path to built extension directory')\n .optional(),\n goal: z\n .string()\n .describe('Goal or task description for this session (for knowledge store)')\n .optional(),\n flowTags: z\n .array(z.string())\n .describe(\n 'Flow tags for categorization (e.g., [\"send\"], [\"swap\", \"confirmation\"]). ' +\n 'Used for cross-session knowledge retrieval.',\n )\n .optional(),\n tags: z\n .array(z.string())\n .describe('Free-form tags for ad-hoc filtering')\n .optional(),\n seedContracts: z\n .array(z.enum(smartContractNames))\n .describe('Smart contracts to deploy on launch (before extension loads)')\n .optional(),\n});\n\nexport const cleanupInputSchema = z.object({\n sessionId: z\n .string()\n .describe('Session ID to clean up (optional, defaults to current)')\n .optional(),\n});\n\nexport const getStateInputSchema = z.object({});\n\nexport const navigateInputSchema = z\n .object({\n screen: z\n .enum(['home', 'settings', 'notification', 'url'])\n .describe(\n 'Target screen: home, settings, notification (popup), or url (custom)',\n ),\n url: z\n .string()\n .min(1)\n .describe('URL to navigate to (required when screen=\"url\")')\n .optional(),\n })\n .refine(\n (data) => {\n if (data.screen === 'url' && !data.url) {\n return false;\n }\n return true;\n },\n {\n message: 'url is required when screen is \"url\"',\n path: ['url'],\n },\n );\n\nexport const waitForNotificationInputSchema = z.object({\n timeoutMs: z\n .number()\n .int()\n .min(1000)\n .max(60000)\n .default(15000)\n .describe('Timeout in milliseconds to wait for notification popup'),\n});\n\nexport const listTestIdsInputSchema = z.object({\n limit: z\n .number()\n .int()\n .min(1)\n .max(500)\n .default(150)\n .describe('Maximum number of testIds to return'),\n});\n\nexport const accessibilitySnapshotInputSchema = z.object({\n rootSelector: z\n .string()\n .min(1)\n .describe('CSS selector to scope the snapshot (optional)')\n .optional(),\n});\n\nexport const describeScreenInputSchema = z.object({\n includeScreenshot: z\n .boolean()\n .default(false)\n .describe('Capture and include a screenshot (opt-in for privacy)'),\n screenshotName: z\n .string()\n .min(1)\n .describe('Name for the screenshot file (without extension)')\n .optional(),\n includeScreenshotBase64: z\n .boolean()\n .default(false)\n .describe('Include base64-encoded screenshot in response'),\n});\n\nexport const screenshotInputSchema = z.object({\n name: z.string().min(1).describe('Screenshot filename (without extension)'),\n fullPage: z\n .boolean()\n .default(true)\n .describe('Capture full page or just viewport'),\n selector: z\n .string()\n .min(1)\n .describe('CSS selector to capture specific element')\n .optional(),\n includeBase64: z\n .boolean()\n .default(false)\n .describe('Include base64-encoded image in response'),\n});\n\nexport const clickInputSchema = targetSelectionSchema.and(\n z.object({\n timeoutMs: z\n .number()\n .int()\n .min(0)\n .max(60000)\n .default(15000)\n .describe('Timeout to wait for element to become visible'),\n }),\n);\n\nexport const typeInputSchema = targetSelectionSchema.and(\n z.object({\n text: z.string().describe('Text to type into the element'),\n timeoutMs: z\n .number()\n .int()\n .min(0)\n .max(60000)\n .default(15000)\n .describe('Timeout to wait for element to become visible'),\n }),\n);\n\nexport const waitForInputSchema = targetSelectionSchema.and(\n z.object({\n timeoutMs: z\n .number()\n .int()\n .min(100)\n .max(120000)\n .default(15000)\n .describe('Timeout to wait for element'),\n }),\n);\n\nexport const knowledgeLastInputSchema = z.object({\n n: z\n .number()\n .int()\n .min(1)\n .max(200)\n .default(20)\n .describe('Number of recent steps to retrieve'),\n scope: knowledgeScopeSchema\n .default('current')\n .describe(\n 'Scope for retrieval: current session, all sessions, or specific session',\n ),\n filters: knowledgeFiltersSchema,\n});\n\nexport const knowledgeSearchInputSchema = z.object({\n query: z\n .string()\n .min(1)\n .max(200)\n .describe(\n 'Search query - matches tool names, screen names, testIds, and a11y names',\n ),\n limit: z\n .number()\n .int()\n .min(1)\n .max(100)\n .default(20)\n .describe('Maximum number of results'),\n scope: knowledgeScopeSchema\n .default('all')\n .describe(\n 'Search scope (defaults to all sessions for cross-session learning)',\n ),\n filters: knowledgeFiltersSchema,\n});\n\nexport const knowledgeSummarizeInputSchema = z.object({\n sessionId: z\n .string()\n .describe('Deprecated: use scope. Session ID to summarize.')\n .optional(),\n scope: z\n .union([\n z.literal('current'),\n z.object({\n sessionId: z.string().min(4),\n }),\n ])\n .default('current')\n .describe('Session to summarize (cannot use \"all\")'),\n});\n\nexport const knowledgeSessionsInputSchema = z.object({\n limit: z\n .number()\n .int()\n .min(1)\n .max(50)\n .default(10)\n .describe('Maximum number of sessions to list'),\n filters: knowledgeFiltersSchema,\n});\n\nexport const seedContractInputSchema = z.object({\n contractName: z.enum(smartContractNames),\n hardfork: z.enum(hardforks).optional(),\n deployerOptions: z\n .object({\n fromAddress: z.string().optional(),\n fromPrivateKey: z.string().optional(),\n })\n .optional(),\n});\n\nexport const seedContractsInputSchema = z.object({\n contracts: z.array(z.enum(smartContractNames)).min(1).max(9),\n hardfork: z.enum(hardforks).optional(),\n});\n\nexport const getContractAddressInputSchema = z.object({\n contractName: z.enum(smartContractNames),\n});\n\nexport const listDeployedContractsInputSchema = z.object({});\n\nconst tabRoles = ['extension', 'notification', 'dapp', 'other'] as const;\nconst closableTabRoles = ['notification', 'dapp', 'other'] as const;\n\nexport const switchToTabInputSchema = z\n .object({\n role: z\n .enum(tabRoles)\n .describe('Tab role to switch to (extension, notification, dapp, other)')\n .optional(),\n url: z\n .string()\n .min(1)\n .describe('URL prefix to match for tab switching')\n .optional(),\n })\n .refine((data) => data.role ?? data.url, {\n message: 'Either role or url must be provided',\n });\n\nexport const closeTabInputSchema = z\n .object({\n role: z\n .enum(closableTabRoles)\n .describe(\n 'Tab role to close (notification, dapp, other). Cannot close extension.',\n )\n .optional(),\n url: z\n .string()\n .min(1)\n .describe('URL prefix to match for tab closing')\n .optional(),\n })\n .refine((data) => data.role ?? data.url, {\n message: 'Either role or url must be provided',\n });\n\nexport const runStepsInputSchema = z.object({\n steps: z\n .array(\n z.object({\n tool: z.string(),\n args: z.record(z.string(), z.unknown()).optional(),\n }),\n )\n .min(1)\n .max(50)\n .describe('Array of tool calls to execute in order'),\n stopOnError: z\n .boolean()\n .default(false)\n .describe('Stop execution on first error (default: false - continue)'),\n includeObservations: z\n .enum(['none', 'failures', 'all'])\n .default('all')\n .describe(\n 'When to include observations in results: ' +\n 'none = never (fastest), failures = only for failed steps, all = always',\n ),\n});\n\nexport const setContextInputSchema = z.object({\n context: z.enum(['e2e', 'prod']).describe('Target context to switch to'),\n options: z\n .record(z.string(), z.unknown())\n .describe('Optional context-specific options forwarded to session manager')\n .optional(),\n});\n\nexport const getContextInputSchema = z\n .object({})\n .describe('No parameters required');\n\nexport const clipboardInputSchema = z\n .object({\n action: z\n .enum(['write', 'read'])\n .describe(\n 'Action to perform: write text to clipboard or read from clipboard',\n ),\n text: z\n .string()\n .describe(\"Text to write to clipboard (required when action is 'write')\")\n .optional(),\n })\n .refine(\n (data) => {\n if (data.action === 'write' && !data.text) {\n return false;\n }\n return true;\n },\n {\n message: \"text is required when action is 'write'\",\n path: ['text'],\n },\n );\n\nexport type SetContextInputZ = z.infer<typeof setContextInputSchema>;\nexport type GetContextInputZ = z.infer<typeof getContextInputSchema>;\nexport type ClipboardInputZ = z.infer<typeof clipboardInputSchema>;\n\nexport const toolSchemas = {\n build: buildInputSchema,\n launch: launchInputSchema,\n cleanup: cleanupInputSchema,\n get_state: getStateInputSchema,\n navigate: navigateInputSchema,\n wait_for_notification: waitForNotificationInputSchema,\n switch_to_tab: switchToTabInputSchema,\n close_tab: closeTabInputSchema,\n list_testids: listTestIdsInputSchema,\n accessibility_snapshot: accessibilitySnapshotInputSchema,\n describe_screen: describeScreenInputSchema,\n screenshot: screenshotInputSchema,\n click: clickInputSchema,\n type: typeInputSchema,\n wait_for: waitForInputSchema,\n knowledge_last: knowledgeLastInputSchema,\n knowledge_search: knowledgeSearchInputSchema,\n knowledge_summarize: knowledgeSummarizeInputSchema,\n knowledge_sessions: knowledgeSessionsInputSchema,\n seed_contract: seedContractInputSchema,\n seed_contracts: seedContractsInputSchema,\n get_contract_address: getContractAddressInputSchema,\n list_contracts: listDeployedContractsInputSchema,\n run_steps: runStepsInputSchema,\n set_context: setContextInputSchema,\n get_context: getContextInputSchema,\n clipboard: clipboardInputSchema,\n} as const;\n\nexport type ToolName = keyof typeof toolSchemas;\n\nexport type BuildInputZ = z.infer<typeof buildInputSchema>;\nexport type LaunchInputZ = z.infer<typeof launchInputSchema>;\nexport type CleanupInputZ = z.infer<typeof cleanupInputSchema>;\nexport type GetStateInputZ = z.infer<typeof getStateInputSchema>;\nexport type NavigateInputZ = z.infer<typeof navigateInputSchema>;\nexport type WaitForNotificationInputZ = z.infer<\n typeof waitForNotificationInputSchema\n>;\nexport type ListTestIdsInputZ = z.infer<typeof listTestIdsInputSchema>;\nexport type AccessibilitySnapshotInputZ = z.infer<\n typeof accessibilitySnapshotInputSchema\n>;\nexport type DescribeScreenInputZ = z.infer<typeof describeScreenInputSchema>;\nexport type ScreenshotInputZ = z.infer<typeof screenshotInputSchema>;\nexport type ClickInputZ = z.infer<typeof clickInputSchema>;\nexport type TypeInputZ = z.infer<typeof typeInputSchema>;\nexport type WaitForInputZ = z.infer<typeof waitForInputSchema>;\nexport type KnowledgeLastInputZ = z.infer<typeof knowledgeLastInputSchema>;\nexport type KnowledgeSearchInputZ = z.infer<typeof knowledgeSearchInputSchema>;\nexport type KnowledgeSummarizeInputZ = z.infer<\n typeof knowledgeSummarizeInputSchema\n>;\nexport type KnowledgeSessionsInputZ = z.infer<\n typeof knowledgeSessionsInputSchema\n>;\nexport type KnowledgeScopeZ = z.infer<typeof knowledgeScopeSchema>;\nexport type KnowledgeFiltersZ = z.infer<typeof knowledgeFiltersSchema>;\nexport type RunStepsInputZ = z.infer<typeof runStepsInputSchema>;\nexport type SwitchToTabInputZ = z.infer<typeof switchToTabInputSchema>;\nexport type CloseTabInputZ = z.infer<typeof closeTabInputSchema>;\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session-manager.cjs","sourceRoot":"","sources":["../../src/mcp-server/session-manager.ts"],"names":[],"mappings":";AAAA;;;;;;;;GAQG;;AA+SH,8CAEC;AAQD,8CAOC;AAOD,8CAEC;AA1CD;;;;;;GAMG;AACH,IAAI,eAA4C,CAAC;AAEjD;;;;;;GAMG;AACH,SAAgB,iBAAiB,CAAC,OAAwB;IACxD,eAAe,GAAG,OAAO,CAAC;AAC5B,CAAC;AAED;;;;;GAKG;AACH,SAAgB,iBAAiB;IAC/B,IAAI,CAAC,eAAe,EAAE,CAAC;QACrB,MAAM,IAAI,KAAK,CACb,kEAAkE,CACnE,CAAC;IACJ,CAAC;IACD,OAAO,eAAe,CAAC;AACzB,CAAC;AAED;;;;GAIG;AACH,SAAgB,iBAAiB;IAC/B,OAAO,eAAe,KAAK,SAAS,CAAC;AACvC,CAAC","sourcesContent":["/**\n * Generic Session Manager Interface for Browser Extension MCP Servers.\n *\n * This module defines the interface that concrete session managers must implement.\n * The interface abstracts browser session management, page tracking, and extension state.\n *\n * Extension-specific implementations (e.g., MetaMaskSessionManager) should implement\n * this interface and be injected into the core tool handlers.\n */\n\nimport type { Page, BrowserContext } from '@playwright/test';\n\nimport type { TabRole, SessionState, SessionMetadata } from './types';\nimport type { EnvironmentMode } from '../capabilities/context.js';\nimport type {\n ExtensionState,\n BuildCapability,\n FixtureCapability,\n ChainCapability,\n ContractSeedingCapability,\n StateSnapshotCapability,\n ScreenshotResult,\n} from '../capabilities/types.js';\n\n/**\n * Represents a tracked browser page with its role and URL.\n */\nexport type TrackedPage = {\n role: TabRole;\n url: string;\n page: Page;\n};\n\n/**\n * Configuration for launching a new browser session.\n */\nexport type SessionLaunchInput = {\n /** State initialization mode */\n stateMode?: 'default' | 'onboarding' | 'custom';\n /** Name of a preset fixture to use when stateMode is 'custom' */\n fixturePreset?: string;\n /** Custom fixture data when stateMode is 'custom' */\n fixture?: Record<string, unknown>;\n /** Goal description for this session (used in knowledge store) */\n goal?: string;\n /** Flow tags for categorizing this session */\n flowTags?: string[];\n /** Free-form tags for ad-hoc filtering */\n tags?: string[];\n /** Path to extension directory */\n extensionPath?: string;\n /** Whether to auto-build extension if not found */\n autoBuild?: boolean;\n /** Slow down actions for debugging (ms) */\n slowMo?: number;\n /** Port configuration */\n ports?: {\n anvil?: number;\n fixtureServer?: number;\n };\n /** Smart contracts to deploy on launch */\n seedContracts?: string[];\n};\n\n/**\n * Result of launching a new session.\n */\nexport type SessionLaunchResult = {\n sessionId: string;\n extensionId: string;\n state: ExtensionState;\n};\n\n/**\n * Screenshot options.\n */\nexport type SessionScreenshotOptions = {\n name: string;\n fullPage?: boolean;\n selector?: string;\n};\n\n/**\n * Interface for session manager implementations.\n *\n * This interface defines the contract that extension-specific session managers\n * must fulfill. Tool handlers depend on this interface, allowing them to work\n * with any compliant session manager implementation.\n */\nexport type ISessionManager = {\n // -----------------------------------------------------------------------------\n // Session Lifecycle\n // -----------------------------------------------------------------------------\n\n /**\n * Check if there is an active session.\n */\n hasActiveSession(): boolean;\n\n /**\n * Get the current session ID, or undefined if no session.\n */\n getSessionId(): string | undefined;\n\n /**\n * Get the current session state.\n */\n getSessionState(): SessionState | undefined;\n\n /**\n * Get the current session metadata.\n */\n getSessionMetadata(): SessionMetadata | undefined;\n\n /**\n * Launch a new browser session.\n *\n * @throws If a session is already active\n */\n launch(input: SessionLaunchInput): Promise<SessionLaunchResult>;\n\n /**\n * Clean up the current session (browser, services, etc.).\n *\n * @returns true if cleanup was performed, false if no session was active\n */\n cleanup(): Promise<boolean>;\n\n // -----------------------------------------------------------------------------\n // Page Management\n // -----------------------------------------------------------------------------\n\n /**\n * Get the current active page.\n *\n * @throws If no active session\n */\n getPage(): Page;\n\n /**\n * Set the active page for subsequent interactions.\n */\n setActivePage(page: Page): void;\n\n /**\n * Get all tracked pages in the current session.\n */\n getTrackedPages(): TrackedPage[];\n\n /**\n * Classify a page's role based on its URL.\n */\n classifyPageRole(page: Page, extensionId?: string): TabRole;\n\n /**\n * Get the browser context.\n *\n * @throws If no active session\n */\n getContext(): BrowserContext;\n\n // -----------------------------------------------------------------------------\n // Extension State\n // -----------------------------------------------------------------------------\n\n /**\n * Get the current extension state.\n *\n * @throws If no active session\n */\n getExtensionState(): Promise<ExtensionState>;\n\n // -----------------------------------------------------------------------------\n // A11y Reference Map\n // -----------------------------------------------------------------------------\n\n /**\n * Set the accessibility reference map (e1 -> selector).\n */\n setRefMap(map: Map<string, string>): void;\n\n /**\n * Get the current accessibility reference map.\n */\n getRefMap(): Map<string, string>;\n\n /**\n * Clear the accessibility reference map.\n */\n clearRefMap(): void;\n\n /**\n * Resolve an a11y ref (e.g., \"e5\") to a selector.\n */\n resolveA11yRef(ref: string): string | undefined;\n\n // -----------------------------------------------------------------------------\n // Navigation\n // -----------------------------------------------------------------------------\n\n /**\n * Navigate to the extension home page.\n */\n navigateToHome(): Promise<void>;\n\n /**\n * Navigate to the extension settings page.\n */\n navigateToSettings(): Promise<void>;\n\n /**\n * Navigate to an external URL (opens new tab).\n */\n navigateToUrl(url: string): Promise<Page>;\n\n /**\n * Navigate to the notification page.\n */\n navigateToNotification(): Promise<Page>;\n\n /**\n * Wait for a notification page to appear.\n */\n waitForNotificationPage(timeoutMs: number): Promise<Page>;\n\n // -----------------------------------------------------------------------------\n // Screenshots\n // -----------------------------------------------------------------------------\n\n /**\n * Take a screenshot of the current page.\n */\n screenshot(options: SessionScreenshotOptions): Promise<ScreenshotResult>;\n\n // -----------------------------------------------------------------------------\n // Capabilities (Optional - Extension-Specific)\n // -----------------------------------------------------------------------------\n\n /**\n * Get the build capability (if available).\n */\n getBuildCapability(): BuildCapability | undefined;\n\n /**\n * Get the fixture capability (if available).\n */\n getFixtureCapability(): FixtureCapability | undefined;\n\n /**\n * Get the chain capability (if available).\n */\n getChainCapability(): ChainCapability | undefined;\n\n /**\n * Get the contract seeding capability (if available).\n */\n getContractSeedingCapability(): ContractSeedingCapability | undefined;\n\n /**\n * Get the state snapshot capability (if available).\n */\n getStateSnapshotCapability(): StateSnapshotCapability | undefined;\n\n // -----------------------------------------------------------------------------\n // Environment Configuration\n // -----------------------------------------------------------------------------\n\n /**\n * Get the current environment mode.\n *\n * @returns 'e2e' for testing environment, 'prod' for production-like environment\n */\n getEnvironmentMode(): EnvironmentMode;\n\n /**\n * Set the current context (e2e or prod).\n *\n * @throws Error with code MM_CONTEXT_SWITCH_BLOCKED if session is active\n */\n setContext(context: 'e2e' | 'prod'): void;\n\n /**\n * Get current context information.\n */\n getContextInfo(): {\n currentContext: 'e2e' | 'prod';\n hasActiveSession: boolean;\n sessionId: string | null;\n capabilities: {\n available: string[];\n };\n canSwitchContext: boolean;\n };\n};\n\n/**\n * Session manager instance holder.\n *\n * In the core package, this is undefined by default.\n * Extension implementations should call setSessionManager() to inject\n * their concrete implementation.\n */\nlet _sessionManager: ISessionManager | undefined;\n\n/**\n * Set the session manager instance.\n *\n * This should be called by extension-specific code during server initialization.\n *\n * @param manager The session manager implementation to inject\n */\nexport function setSessionManager(manager: ISessionManager): void {\n _sessionManager = manager;\n}\n\n/**\n * Get the session manager instance.\n *\n * @throws Error if no session manager has been set\n * @returns The session manager instance\n */\nexport function getSessionManager(): ISessionManager {\n if (!_sessionManager) {\n throw new Error(\n 'Session manager not initialized. Call setSessionManager() first.',\n );\n }\n return _sessionManager;\n}\n\n/**\n * Check if a session manager has been set.\n *\n * @returns True if a session manager is set, false otherwise\n */\nexport function hasSessionManager(): boolean {\n return _sessionManager !== undefined;\n}\n"]}
|
|
1
|
+
{"version":3,"file":"session-manager.cjs","sourceRoot":"","sources":["../../src/mcp-server/session-manager.ts"],"names":[],"mappings":";AAAA;;;;;;;;GAQG;;AAkTH,8CAEC;AAQD,8CAOC;AAOD,8CAEC;AA1CD;;;;;;GAMG;AACH,IAAI,eAA4C,CAAC;AAEjD;;;;;;GAMG;AACH,SAAgB,iBAAiB,CAAC,OAAwB;IACxD,eAAe,GAAG,OAAO,CAAC;AAC5B,CAAC;AAED;;;;;GAKG;AACH,SAAgB,iBAAiB;IAC/B,IAAI,CAAC,eAAe,EAAE,CAAC;QACrB,MAAM,IAAI,KAAK,CACb,kEAAkE,CACnE,CAAC;IACJ,CAAC;IACD,OAAO,eAAe,CAAC;AACzB,CAAC;AAED;;;;GAIG;AACH,SAAgB,iBAAiB;IAC/B,OAAO,eAAe,KAAK,SAAS,CAAC;AACvC,CAAC","sourcesContent":["/**\n * Generic Session Manager Interface for Browser Extension MCP Servers.\n *\n * This module defines the interface that concrete session managers must implement.\n * The interface abstracts browser session management, page tracking, and extension state.\n *\n * Extension-specific implementations (e.g., MetaMaskSessionManager) should implement\n * this interface and be injected into the core tool handlers.\n */\n\nimport type { Page, BrowserContext } from '@playwright/test';\n\nimport type { TabRole, SessionState, SessionMetadata } from './types';\nimport type { EnvironmentMode } from '../capabilities/context.js';\nimport type {\n ExtensionState,\n BuildCapability,\n FixtureCapability,\n ChainCapability,\n ContractSeedingCapability,\n StateSnapshotCapability,\n ScreenshotResult,\n} from '../capabilities/types.js';\n\n/**\n * Represents a tracked browser page with its role and URL.\n */\nexport type TrackedPage = {\n role: TabRole;\n url: string;\n page: Page;\n};\n\n/**\n * Configuration for launching a new browser session.\n */\nexport type SessionLaunchInput = {\n /** State initialization mode */\n stateMode?: 'default' | 'onboarding' | 'custom';\n /** Name of a preset fixture to use when stateMode is 'custom' */\n fixturePreset?: string;\n /** Custom fixture data when stateMode is 'custom' */\n fixture?: Record<string, unknown>;\n /** Goal description for this session (used in knowledge store) */\n goal?: string;\n /** Flow tags for categorizing this session */\n flowTags?: string[];\n /** Free-form tags for ad-hoc filtering */\n tags?: string[];\n /** Path to extension directory */\n extensionPath?: string;\n /** Whether to auto-build extension if not found */\n autoBuild?: boolean;\n /** Slow down actions for debugging (ms) */\n slowMo?: number;\n /** Port configuration */\n ports?: {\n anvil?: number;\n fixtureServer?: number;\n };\n /** Smart contracts to deploy on launch */\n seedContracts?: string[];\n};\n\n/**\n * Result of launching a new session.\n */\nexport type SessionLaunchResult = {\n sessionId: string;\n extensionId: string;\n state: ExtensionState;\n};\n\n/**\n * Screenshot options.\n */\nexport type SessionScreenshotOptions = {\n name: string;\n fullPage?: boolean;\n selector?: string;\n};\n\n/**\n * Interface for session manager implementations.\n *\n * This interface defines the contract that extension-specific session managers\n * must fulfill. Tool handlers depend on this interface, allowing them to work\n * with any compliant session manager implementation.\n */\nexport type ISessionManager = {\n // -----------------------------------------------------------------------------\n // Session Lifecycle\n // -----------------------------------------------------------------------------\n\n /**\n * Check if there is an active session.\n */\n hasActiveSession(): boolean;\n\n /**\n * Get the current session ID, or undefined if no session.\n */\n getSessionId(): string | undefined;\n\n /**\n * Get the current session state.\n */\n getSessionState(): SessionState | undefined;\n\n /**\n * Get the current session metadata.\n */\n getSessionMetadata(): SessionMetadata | undefined;\n\n /**\n * Launch a new browser session.\n *\n * @throws If a session is already active\n */\n launch(input: SessionLaunchInput): Promise<SessionLaunchResult>;\n\n /**\n * Clean up the current session (browser, services, etc.).\n *\n * @returns true if cleanup was performed, false if no session was active\n */\n cleanup(): Promise<boolean>;\n\n // -----------------------------------------------------------------------------\n // Page Management\n // -----------------------------------------------------------------------------\n\n /**\n * Get the current active page.\n *\n * @throws If no active session\n */\n getPage(): Page;\n\n /**\n * Set the active page for subsequent interactions.\n */\n setActivePage(page: Page): void;\n\n /**\n * Get all tracked pages in the current session.\n */\n getTrackedPages(): TrackedPage[];\n\n /**\n * Classify a page's role based on its URL.\n */\n classifyPageRole(page: Page, extensionId?: string): TabRole;\n\n /**\n * Get the browser context.\n *\n * @throws If no active session\n */\n getContext(): BrowserContext;\n\n // -----------------------------------------------------------------------------\n // Extension State\n // -----------------------------------------------------------------------------\n\n /**\n * Get the current extension state.\n *\n * @throws If no active session\n */\n getExtensionState(): Promise<ExtensionState>;\n\n // -----------------------------------------------------------------------------\n // A11y Reference Map\n // -----------------------------------------------------------------------------\n\n /**\n * Set the accessibility reference map (e1 -> selector).\n */\n setRefMap(map: Map<string, string>): void;\n\n /**\n * Get the current accessibility reference map.\n */\n getRefMap(): Map<string, string>;\n\n /**\n * Clear the accessibility reference map.\n */\n clearRefMap(): void;\n\n /**\n * Resolve an a11y ref (e.g., \"e5\") to a selector.\n */\n resolveA11yRef(ref: string): string | undefined;\n\n // -----------------------------------------------------------------------------\n // Navigation\n // -----------------------------------------------------------------------------\n\n /**\n * Navigate to the extension home page.\n */\n navigateToHome(): Promise<void>;\n\n /**\n * Navigate to the extension settings page.\n */\n navigateToSettings(): Promise<void>;\n\n /**\n * Navigate to an external URL (opens new tab).\n */\n navigateToUrl(url: string): Promise<Page>;\n\n /**\n * Navigate to the notification page.\n */\n navigateToNotification(): Promise<Page>;\n\n /**\n * Wait for a notification page to appear.\n */\n waitForNotificationPage(timeoutMs: number): Promise<Page>;\n\n // -----------------------------------------------------------------------------\n // Screenshots\n // -----------------------------------------------------------------------------\n\n /**\n * Take a screenshot of the current page.\n */\n screenshot(options: SessionScreenshotOptions): Promise<ScreenshotResult>;\n\n // -----------------------------------------------------------------------------\n // Capabilities (Optional - Extension-Specific)\n // -----------------------------------------------------------------------------\n\n /**\n * Get the build capability (if available).\n */\n getBuildCapability(): BuildCapability | undefined;\n\n /**\n * Get the fixture capability (if available).\n */\n getFixtureCapability(): FixtureCapability | undefined;\n\n /**\n * Get the chain capability (if available).\n */\n getChainCapability(): ChainCapability | undefined;\n\n /**\n * Get the contract seeding capability (if available).\n */\n getContractSeedingCapability(): ContractSeedingCapability | undefined;\n\n /**\n * Get the state snapshot capability (if available).\n */\n getStateSnapshotCapability(): StateSnapshotCapability | undefined;\n\n // -----------------------------------------------------------------------------\n // Environment Configuration\n // -----------------------------------------------------------------------------\n\n /**\n * Get the current environment mode.\n *\n * @returns 'e2e' for testing environment, 'prod' for production-like environment\n */\n getEnvironmentMode(): EnvironmentMode;\n\n /**\n * Set the current context (e2e or prod).\n *\n * @param context The target context mode.\n * @param options Optional context-specific configuration passed through\n * by the consumer implementation.\n * @throws Error with code MM_CONTEXT_SWITCH_BLOCKED if session is active\n */\n setContext(context: 'e2e' | 'prod', options?: Record<string, unknown>): void;\n\n /**\n * Get current context information.\n */\n getContextInfo(): {\n currentContext: 'e2e' | 'prod';\n hasActiveSession: boolean;\n sessionId: string | null;\n capabilities: {\n available: string[];\n };\n canSwitchContext: boolean;\n };\n};\n\n/**\n * Session manager instance holder.\n *\n * In the core package, this is undefined by default.\n * Extension implementations should call setSessionManager() to inject\n * their concrete implementation.\n */\nlet _sessionManager: ISessionManager | undefined;\n\n/**\n * Set the session manager instance.\n *\n * This should be called by extension-specific code during server initialization.\n *\n * @param manager The session manager implementation to inject\n */\nexport function setSessionManager(manager: ISessionManager): void {\n _sessionManager = manager;\n}\n\n/**\n * Get the session manager instance.\n *\n * @throws Error if no session manager has been set\n * @returns The session manager instance\n */\nexport function getSessionManager(): ISessionManager {\n if (!_sessionManager) {\n throw new Error(\n 'Session manager not initialized. Call setSessionManager() first.',\n );\n }\n return _sessionManager;\n}\n\n/**\n * Check if a session manager has been set.\n *\n * @returns True if a session manager is set, false otherwise\n */\nexport function hasSessionManager(): boolean {\n return _sessionManager !== undefined;\n}\n"]}
|
|
@@ -200,9 +200,12 @@ export type ISessionManager = {
|
|
|
200
200
|
/**
|
|
201
201
|
* Set the current context (e2e or prod).
|
|
202
202
|
*
|
|
203
|
+
* @param context The target context mode.
|
|
204
|
+
* @param options Optional context-specific configuration passed through
|
|
205
|
+
* by the consumer implementation.
|
|
203
206
|
* @throws Error with code MM_CONTEXT_SWITCH_BLOCKED if session is active
|
|
204
207
|
*/
|
|
205
|
-
setContext(context: 'e2e' | 'prod'): void;
|
|
208
|
+
setContext(context: 'e2e' | 'prod', options?: Record<string, unknown>): void;
|
|
206
209
|
/**
|
|
207
210
|
* Get current context information.
|
|
208
211
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session-manager.d.cts","sourceRoot":"","sources":["../../src/mcp-server/session-manager.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"session-manager.d.cts","sourceRoot":"","sources":["../../src/mcp-server/session-manager.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,IAAI,EAAE,cAAc,EAAE,yBAAyB;AAE7D,OAAO,KAAK,EAAE,OAAO,EAAE,YAAY,EAAE,eAAe,EAAE,0BAAgB;AACtE,OAAO,KAAK,EAAE,eAAe,EAAE,oCAAmC;AAClE,OAAO,KAAK,EACV,cAAc,EACd,eAAe,EACf,iBAAiB,EACjB,eAAe,EACf,yBAAyB,EACzB,uBAAuB,EACvB,gBAAgB,EACjB,kCAAiC;AAElC;;GAEG;AACH,MAAM,MAAM,WAAW,GAAG;IACxB,IAAI,EAAE,OAAO,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,IAAI,CAAC;CACZ,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,kBAAkB,GAAG;IAC/B,gCAAgC;IAChC,SAAS,CAAC,EAAE,SAAS,GAAG,YAAY,GAAG,QAAQ,CAAC;IAChD,iEAAiE;IACjE,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,qDAAqD;IACrD,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAClC,kEAAkE;IAClE,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,8CAA8C;IAC9C,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,0CAA0C;IAC1C,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,kCAAkC;IAClC,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,mDAAmD;IACnD,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,2CAA2C;IAC3C,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,yBAAyB;IACzB,KAAK,CAAC,EAAE;QACN,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,aAAa,CAAC,EAAE,MAAM,CAAC;KACxB,CAAC;IACF,0CAA0C;IAC1C,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;CAC1B,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,mBAAmB,GAAG;IAChC,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,cAAc,CAAC;CACvB,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,wBAAwB,GAAG;IACrC,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF;;;;;;GAMG;AACH,MAAM,MAAM,eAAe,GAAG;IAK5B;;OAEG;IACH,gBAAgB,IAAI,OAAO,CAAC;IAE5B;;OAEG;IACH,YAAY,IAAI,MAAM,GAAG,SAAS,CAAC;IAEnC;;OAEG;IACH,eAAe,IAAI,YAAY,GAAG,SAAS,CAAC;IAE5C;;OAEG;IACH,kBAAkB,IAAI,eAAe,GAAG,SAAS,CAAC;IAElD;;;;OAIG;IACH,MAAM,CAAC,KAAK,EAAE,kBAAkB,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAAC;IAEhE;;;;OAIG;IACH,OAAO,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC;IAM5B;;;;OAIG;IACH,OAAO,IAAI,IAAI,CAAC;IAEhB;;OAEG;IACH,aAAa,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI,CAAC;IAEhC;;OAEG;IACH,eAAe,IAAI,WAAW,EAAE,CAAC;IAEjC;;OAEG;IACH,gBAAgB,CAAC,IAAI,EAAE,IAAI,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;IAE5D;;;;OAIG;IACH,UAAU,IAAI,cAAc,CAAC;IAM7B;;;;OAIG;IACH,iBAAiB,IAAI,OAAO,CAAC,cAAc,CAAC,CAAC;IAM7C;;OAEG;IACH,SAAS,CAAC,GAAG,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI,CAAC;IAE1C;;OAEG;IACH,SAAS,IAAI,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAEjC;;OAEG;IACH,WAAW,IAAI,IAAI,CAAC;IAEpB;;OAEG;IACH,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC;IAMhD;;OAEG;IACH,cAAc,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAEhC;;OAEG;IACH,kBAAkB,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAEpC;;OAEG;IACH,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAE1C;;OAEG;IACH,sBAAsB,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAExC;;OAEG;IACH,uBAAuB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAM1D;;OAEG;IACH,UAAU,CAAC,OAAO,EAAE,wBAAwB,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAAC;IAMzE;;OAEG;IACH,kBAAkB,IAAI,eAAe,GAAG,SAAS,CAAC;IAElD;;OAEG;IACH,oBAAoB,IAAI,iBAAiB,GAAG,SAAS,CAAC;IAEtD;;OAEG;IACH,kBAAkB,IAAI,eAAe,GAAG,SAAS,CAAC;IAElD;;OAEG;IACH,4BAA4B,IAAI,yBAAyB,GAAG,SAAS,CAAC;IAEtE;;OAEG;IACH,0BAA0B,IAAI,uBAAuB,GAAG,SAAS,CAAC;IAMlE;;;;OAIG;IACH,kBAAkB,IAAI,eAAe,CAAC;IAEtC;;;;;;;OAOG;IACH,UAAU,CAAC,OAAO,EAAE,KAAK,GAAG,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;IAE7E;;OAEG;IACH,cAAc,IAAI;QAChB,cAAc,EAAE,KAAK,GAAG,MAAM,CAAC;QAC/B,gBAAgB,EAAE,OAAO,CAAC;QAC1B,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;QACzB,YAAY,EAAE;YACZ,SAAS,EAAE,MAAM,EAAE,CAAC;SACrB,CAAC;QACF,gBAAgB,EAAE,OAAO,CAAC;KAC3B,CAAC;CACH,CAAC;AAWF;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,eAAe,GAAG,IAAI,CAEhE;AAED;;;;;GAKG;AACH,wBAAgB,iBAAiB,IAAI,eAAe,CAOnD;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,IAAI,OAAO,CAE3C"}
|
|
@@ -200,9 +200,12 @@ export type ISessionManager = {
|
|
|
200
200
|
/**
|
|
201
201
|
* Set the current context (e2e or prod).
|
|
202
202
|
*
|
|
203
|
+
* @param context The target context mode.
|
|
204
|
+
* @param options Optional context-specific configuration passed through
|
|
205
|
+
* by the consumer implementation.
|
|
203
206
|
* @throws Error with code MM_CONTEXT_SWITCH_BLOCKED if session is active
|
|
204
207
|
*/
|
|
205
|
-
setContext(context: 'e2e' | 'prod'): void;
|
|
208
|
+
setContext(context: 'e2e' | 'prod', options?: Record<string, unknown>): void;
|
|
206
209
|
/**
|
|
207
210
|
* Get current context information.
|
|
208
211
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session-manager.d.mts","sourceRoot":"","sources":["../../src/mcp-server/session-manager.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,IAAI,EAAE,cAAc,EAAE,yBAAyB;AAE7D,OAAO,KAAK,EAAE,OAAO,EAAE,YAAY,EAAE,eAAe,EAAE,0BAAgB;AACtE,OAAO,KAAK,EAAE,eAAe,EAAE,oCAAmC;AAClE,OAAO,KAAK,EACV,cAAc,EACd,eAAe,EACf,iBAAiB,EACjB,eAAe,EACf,yBAAyB,EACzB,uBAAuB,EACvB,gBAAgB,EACjB,kCAAiC;AAElC;;GAEG;AACH,MAAM,MAAM,WAAW,GAAG;IACxB,IAAI,EAAE,OAAO,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,IAAI,CAAC;CACZ,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,kBAAkB,GAAG;IAC/B,gCAAgC;IAChC,SAAS,CAAC,EAAE,SAAS,GAAG,YAAY,GAAG,QAAQ,CAAC;IAChD,iEAAiE;IACjE,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,qDAAqD;IACrD,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAClC,kEAAkE;IAClE,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,8CAA8C;IAC9C,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,0CAA0C;IAC1C,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,kCAAkC;IAClC,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,mDAAmD;IACnD,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,2CAA2C;IAC3C,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,yBAAyB;IACzB,KAAK,CAAC,EAAE;QACN,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,aAAa,CAAC,EAAE,MAAM,CAAC;KACxB,CAAC;IACF,0CAA0C;IAC1C,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;CAC1B,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,mBAAmB,GAAG;IAChC,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,cAAc,CAAC;CACvB,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,wBAAwB,GAAG;IACrC,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF;;;;;;GAMG;AACH,MAAM,MAAM,eAAe,GAAG;IAK5B;;OAEG;IACH,gBAAgB,IAAI,OAAO,CAAC;IAE5B;;OAEG;IACH,YAAY,IAAI,MAAM,GAAG,SAAS,CAAC;IAEnC;;OAEG;IACH,eAAe,IAAI,YAAY,GAAG,SAAS,CAAC;IAE5C;;OAEG;IACH,kBAAkB,IAAI,eAAe,GAAG,SAAS,CAAC;IAElD;;;;OAIG;IACH,MAAM,CAAC,KAAK,EAAE,kBAAkB,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAAC;IAEhE;;;;OAIG;IACH,OAAO,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC;IAM5B;;;;OAIG;IACH,OAAO,IAAI,IAAI,CAAC;IAEhB;;OAEG;IACH,aAAa,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI,CAAC;IAEhC;;OAEG;IACH,eAAe,IAAI,WAAW,EAAE,CAAC;IAEjC;;OAEG;IACH,gBAAgB,CAAC,IAAI,EAAE,IAAI,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;IAE5D;;;;OAIG;IACH,UAAU,IAAI,cAAc,CAAC;IAM7B;;;;OAIG;IACH,iBAAiB,IAAI,OAAO,CAAC,cAAc,CAAC,CAAC;IAM7C;;OAEG;IACH,SAAS,CAAC,GAAG,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI,CAAC;IAE1C;;OAEG;IACH,SAAS,IAAI,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAEjC;;OAEG;IACH,WAAW,IAAI,IAAI,CAAC;IAEpB;;OAEG;IACH,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC;IAMhD;;OAEG;IACH,cAAc,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAEhC;;OAEG;IACH,kBAAkB,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAEpC;;OAEG;IACH,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAE1C;;OAEG;IACH,sBAAsB,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAExC;;OAEG;IACH,uBAAuB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAM1D;;OAEG;IACH,UAAU,CAAC,OAAO,EAAE,wBAAwB,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAAC;IAMzE;;OAEG;IACH,kBAAkB,IAAI,eAAe,GAAG,SAAS,CAAC;IAElD;;OAEG;IACH,oBAAoB,IAAI,iBAAiB,GAAG,SAAS,CAAC;IAEtD;;OAEG;IACH,kBAAkB,IAAI,eAAe,GAAG,SAAS,CAAC;IAElD;;OAEG;IACH,4BAA4B,IAAI,yBAAyB,GAAG,SAAS,CAAC;IAEtE;;OAEG;IACH,0BAA0B,IAAI,uBAAuB,GAAG,SAAS,CAAC;IAMlE;;;;OAIG;IACH,kBAAkB,IAAI,eAAe,CAAC;IAEtC
|
|
1
|
+
{"version":3,"file":"session-manager.d.mts","sourceRoot":"","sources":["../../src/mcp-server/session-manager.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session-manager.mjs","sourceRoot":"","sources":["../../src/mcp-server/session-manager.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;
|
|
1
|
+
{"version":3,"file":"session-manager.mjs","sourceRoot":"","sources":["../../src/mcp-server/session-manager.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAkSH;;;;;;GAMG;AACH,IAAI,eAA4C,CAAC;AAEjD;;;;;;GAMG;AACH,MAAM,UAAU,iBAAiB,CAAC,OAAwB;IACxD,eAAe,GAAG,OAAO,CAAC;AAC5B,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,iBAAiB;IAC/B,IAAI,CAAC,eAAe,EAAE,CAAC;QACrB,MAAM,IAAI,KAAK,CACb,kEAAkE,CACnE,CAAC;IACJ,CAAC;IACD,OAAO,eAAe,CAAC;AACzB,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,iBAAiB;IAC/B,OAAO,eAAe,KAAK,SAAS,CAAC;AACvC,CAAC","sourcesContent":["/**\n * Generic Session Manager Interface for Browser Extension MCP Servers.\n *\n * This module defines the interface that concrete session managers must implement.\n * The interface abstracts browser session management, page tracking, and extension state.\n *\n * Extension-specific implementations (e.g., MetaMaskSessionManager) should implement\n * this interface and be injected into the core tool handlers.\n */\n\nimport type { Page, BrowserContext } from '@playwright/test';\n\nimport type { TabRole, SessionState, SessionMetadata } from './types';\nimport type { EnvironmentMode } from '../capabilities/context.js';\nimport type {\n ExtensionState,\n BuildCapability,\n FixtureCapability,\n ChainCapability,\n ContractSeedingCapability,\n StateSnapshotCapability,\n ScreenshotResult,\n} from '../capabilities/types.js';\n\n/**\n * Represents a tracked browser page with its role and URL.\n */\nexport type TrackedPage = {\n role: TabRole;\n url: string;\n page: Page;\n};\n\n/**\n * Configuration for launching a new browser session.\n */\nexport type SessionLaunchInput = {\n /** State initialization mode */\n stateMode?: 'default' | 'onboarding' | 'custom';\n /** Name of a preset fixture to use when stateMode is 'custom' */\n fixturePreset?: string;\n /** Custom fixture data when stateMode is 'custom' */\n fixture?: Record<string, unknown>;\n /** Goal description for this session (used in knowledge store) */\n goal?: string;\n /** Flow tags for categorizing this session */\n flowTags?: string[];\n /** Free-form tags for ad-hoc filtering */\n tags?: string[];\n /** Path to extension directory */\n extensionPath?: string;\n /** Whether to auto-build extension if not found */\n autoBuild?: boolean;\n /** Slow down actions for debugging (ms) */\n slowMo?: number;\n /** Port configuration */\n ports?: {\n anvil?: number;\n fixtureServer?: number;\n };\n /** Smart contracts to deploy on launch */\n seedContracts?: string[];\n};\n\n/**\n * Result of launching a new session.\n */\nexport type SessionLaunchResult = {\n sessionId: string;\n extensionId: string;\n state: ExtensionState;\n};\n\n/**\n * Screenshot options.\n */\nexport type SessionScreenshotOptions = {\n name: string;\n fullPage?: boolean;\n selector?: string;\n};\n\n/**\n * Interface for session manager implementations.\n *\n * This interface defines the contract that extension-specific session managers\n * must fulfill. Tool handlers depend on this interface, allowing them to work\n * with any compliant session manager implementation.\n */\nexport type ISessionManager = {\n // -----------------------------------------------------------------------------\n // Session Lifecycle\n // -----------------------------------------------------------------------------\n\n /**\n * Check if there is an active session.\n */\n hasActiveSession(): boolean;\n\n /**\n * Get the current session ID, or undefined if no session.\n */\n getSessionId(): string | undefined;\n\n /**\n * Get the current session state.\n */\n getSessionState(): SessionState | undefined;\n\n /**\n * Get the current session metadata.\n */\n getSessionMetadata(): SessionMetadata | undefined;\n\n /**\n * Launch a new browser session.\n *\n * @throws If a session is already active\n */\n launch(input: SessionLaunchInput): Promise<SessionLaunchResult>;\n\n /**\n * Clean up the current session (browser, services, etc.).\n *\n * @returns true if cleanup was performed, false if no session was active\n */\n cleanup(): Promise<boolean>;\n\n // -----------------------------------------------------------------------------\n // Page Management\n // -----------------------------------------------------------------------------\n\n /**\n * Get the current active page.\n *\n * @throws If no active session\n */\n getPage(): Page;\n\n /**\n * Set the active page for subsequent interactions.\n */\n setActivePage(page: Page): void;\n\n /**\n * Get all tracked pages in the current session.\n */\n getTrackedPages(): TrackedPage[];\n\n /**\n * Classify a page's role based on its URL.\n */\n classifyPageRole(page: Page, extensionId?: string): TabRole;\n\n /**\n * Get the browser context.\n *\n * @throws If no active session\n */\n getContext(): BrowserContext;\n\n // -----------------------------------------------------------------------------\n // Extension State\n // -----------------------------------------------------------------------------\n\n /**\n * Get the current extension state.\n *\n * @throws If no active session\n */\n getExtensionState(): Promise<ExtensionState>;\n\n // -----------------------------------------------------------------------------\n // A11y Reference Map\n // -----------------------------------------------------------------------------\n\n /**\n * Set the accessibility reference map (e1 -> selector).\n */\n setRefMap(map: Map<string, string>): void;\n\n /**\n * Get the current accessibility reference map.\n */\n getRefMap(): Map<string, string>;\n\n /**\n * Clear the accessibility reference map.\n */\n clearRefMap(): void;\n\n /**\n * Resolve an a11y ref (e.g., \"e5\") to a selector.\n */\n resolveA11yRef(ref: string): string | undefined;\n\n // -----------------------------------------------------------------------------\n // Navigation\n // -----------------------------------------------------------------------------\n\n /**\n * Navigate to the extension home page.\n */\n navigateToHome(): Promise<void>;\n\n /**\n * Navigate to the extension settings page.\n */\n navigateToSettings(): Promise<void>;\n\n /**\n * Navigate to an external URL (opens new tab).\n */\n navigateToUrl(url: string): Promise<Page>;\n\n /**\n * Navigate to the notification page.\n */\n navigateToNotification(): Promise<Page>;\n\n /**\n * Wait for a notification page to appear.\n */\n waitForNotificationPage(timeoutMs: number): Promise<Page>;\n\n // -----------------------------------------------------------------------------\n // Screenshots\n // -----------------------------------------------------------------------------\n\n /**\n * Take a screenshot of the current page.\n */\n screenshot(options: SessionScreenshotOptions): Promise<ScreenshotResult>;\n\n // -----------------------------------------------------------------------------\n // Capabilities (Optional - Extension-Specific)\n // -----------------------------------------------------------------------------\n\n /**\n * Get the build capability (if available).\n */\n getBuildCapability(): BuildCapability | undefined;\n\n /**\n * Get the fixture capability (if available).\n */\n getFixtureCapability(): FixtureCapability | undefined;\n\n /**\n * Get the chain capability (if available).\n */\n getChainCapability(): ChainCapability | undefined;\n\n /**\n * Get the contract seeding capability (if available).\n */\n getContractSeedingCapability(): ContractSeedingCapability | undefined;\n\n /**\n * Get the state snapshot capability (if available).\n */\n getStateSnapshotCapability(): StateSnapshotCapability | undefined;\n\n // -----------------------------------------------------------------------------\n // Environment Configuration\n // -----------------------------------------------------------------------------\n\n /**\n * Get the current environment mode.\n *\n * @returns 'e2e' for testing environment, 'prod' for production-like environment\n */\n getEnvironmentMode(): EnvironmentMode;\n\n /**\n * Set the current context (e2e or prod).\n *\n * @param context The target context mode.\n * @param options Optional context-specific configuration passed through\n * by the consumer implementation.\n * @throws Error with code MM_CONTEXT_SWITCH_BLOCKED if session is active\n */\n setContext(context: 'e2e' | 'prod', options?: Record<string, unknown>): void;\n\n /**\n * Get current context information.\n */\n getContextInfo(): {\n currentContext: 'e2e' | 'prod';\n hasActiveSession: boolean;\n sessionId: string | null;\n capabilities: {\n available: string[];\n };\n canSwitchContext: boolean;\n };\n};\n\n/**\n * Session manager instance holder.\n *\n * In the core package, this is undefined by default.\n * Extension implementations should call setSessionManager() to inject\n * their concrete implementation.\n */\nlet _sessionManager: ISessionManager | undefined;\n\n/**\n * Set the session manager instance.\n *\n * This should be called by extension-specific code during server initialization.\n *\n * @param manager The session manager implementation to inject\n */\nexport function setSessionManager(manager: ISessionManager): void {\n _sessionManager = manager;\n}\n\n/**\n * Get the session manager instance.\n *\n * @throws Error if no session manager has been set\n * @returns The session manager instance\n */\nexport function getSessionManager(): ISessionManager {\n if (!_sessionManager) {\n throw new Error(\n 'Session manager not initialized. Call setSessionManager() first.',\n );\n }\n return _sessionManager;\n}\n\n/**\n * Check if a session manager has been set.\n *\n * @returns True if a session manager is set, false otherwise\n */\nexport function hasSessionManager(): boolean {\n return _sessionManager !== undefined;\n}\n"]}
|
|
@@ -27,7 +27,7 @@ async function handleSetContext(input, options) {
|
|
|
27
27
|
execute: async () => {
|
|
28
28
|
const sessionManager = (0, session_manager_js_1.getSessionManager)();
|
|
29
29
|
const previousContext = sessionManager.getEnvironmentMode();
|
|
30
|
-
sessionManager.setContext(input.context);
|
|
30
|
+
sessionManager.setContext(input.context, input.options);
|
|
31
31
|
const info = sessionManager.getContextInfo();
|
|
32
32
|
return {
|
|
33
33
|
previousContext,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"context.cjs","sourceRoot":"","sources":["../../../src/mcp-server/tools/context.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"context.cjs","sourceRoot":"","sources":["../../../src/mcp-server/tools/context.ts"],"names":[],"mappings":";;AAsBA,4CA+BC;AAmBD,4CAqBC;AA7FD,gDAAwC;AACxC,+DAA0D;AAC1D,wEAAiE;AAajE;;;;;;GAMG;AACI,KAAK,UAAU,gBAAgB,CACpC,KAAsB,EACtB,OAAwB;IAExB,OAAO,IAAA,qBAAO,EAAoC;QAChD,QAAQ,EAAE,gBAAgB;QAC1B,KAAK;QACL,OAAO;QACP,eAAe,EAAE,KAAK;QACtB,iBAAiB,EAAE,MAAM;QAEzB;;;;WAIG;QACH,OAAO,EAAE,KAAK,IAAI,EAAE;YAClB,MAAM,cAAc,GAAG,IAAA,sCAAiB,GAAE,CAAC;YAC3C,MAAM,eAAe,GAAG,cAAc,CAAC,kBAAkB,EAAE,CAAC;YAC5D,cAAc,CAAC,UAAU,CAAC,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;YACxD,MAAM,IAAI,GAAG,cAAc,CAAC,cAAc,EAAE,CAAC;YAE7C,OAAO;gBACL,eAAe;gBACf,UAAU,EAAE,KAAK,CAAC,OAAO;gBACzB,qBAAqB,EAAE,IAAI,CAAC,YAAY,CAAC,SAAS;aACnD,CAAC;QACJ,CAAC;QAED,aAAa,EAAE,8CAAoB;KACpC,CAAC,CAAC;AACL,CAAC;AAYD;;;;;;GAMG;AACI,KAAK,UAAU,gBAAgB,CACpC,KAA4B,EAC5B,OAAwB;IAExB,OAAO,IAAA,qBAAO,EAA0C;QACtD,QAAQ,EAAE,gBAAgB;QAC1B,KAAK;QACL,OAAO;QACP,eAAe,EAAE,KAAK;QACtB,iBAAiB,EAAE,MAAM;QAEzB;;;;WAIG;QACH,OAAO,EAAE,KAAK,IAAI,EAAE;YAClB,MAAM,cAAc,GAAG,IAAA,sCAAiB,GAAE,CAAC;YAC3C,OAAO,cAAc,CAAC,cAAc,EAAE,CAAC;QACzC,CAAC;KACF,CAAC,CAAC;AACL,CAAC","sourcesContent":["import { runTool } from './run-tool.js';\nimport { getSessionManager } from '../session-manager.js';\nimport { classifyContextError } from './error-classification.js';\nimport type { McpResponse, HandlerOptions } from '../types';\n\nexport type SetContextInput = {\n context: 'e2e' | 'prod';\n options?: Record<string, unknown>;\n};\nexport type SetContextResult = {\n previousContext: 'e2e' | 'prod';\n newContext: 'e2e' | 'prod';\n availableCapabilities: string[];\n};\n\n/**\n * Handle setting the workflow context (e2e or prod).\n *\n * @param input The context input containing the desired context mode\n * @param options Optional handler options for the operation\n * @returns Promise resolving to the context change result with previous and new context\n */\nexport async function handleSetContext(\n input: SetContextInput,\n options?: HandlerOptions,\n): Promise<McpResponse<SetContextResult>> {\n return runTool<SetContextInput, SetContextResult>({\n toolName: 'mm_set_context',\n input,\n options,\n requiresSession: false,\n observationPolicy: 'none',\n\n /**\n * Execute the context switch operation.\n *\n * @returns The result containing previous context, new context, and available capabilities\n */\n execute: async () => {\n const sessionManager = getSessionManager();\n const previousContext = sessionManager.getEnvironmentMode();\n sessionManager.setContext(input.context, input.options);\n const info = sessionManager.getContextInfo();\n\n return {\n previousContext,\n newContext: input.context,\n availableCapabilities: info.capabilities.available,\n };\n },\n\n classifyError: classifyContextError,\n });\n}\n\nexport type GetContextResult = {\n currentContext: 'e2e' | 'prod';\n hasActiveSession: boolean;\n sessionId: string | null;\n capabilities: {\n available: string[];\n };\n canSwitchContext: boolean;\n};\n\n/**\n * Handle getting the current workflow context and capabilities.\n *\n * @param input Empty input object for this operation\n * @param options Optional handler options for the operation\n * @returns Promise resolving to the current context, session state, and available capabilities\n */\nexport async function handleGetContext(\n input: Record<string, never>,\n options?: HandlerOptions,\n): Promise<McpResponse<GetContextResult>> {\n return runTool<Record<string, never>, GetContextResult>({\n toolName: 'mm_get_context',\n input,\n options,\n requiresSession: false,\n observationPolicy: 'none',\n\n /**\n * Execute the get context operation.\n *\n * @returns The result containing current context, session state, and capabilities\n */\n execute: async () => {\n const sessionManager = getSessionManager();\n return sessionManager.getContextInfo();\n },\n });\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"context.d.cts","sourceRoot":"","sources":["../../../src/mcp-server/tools/context.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,WAAW,EAAE,cAAc,EAAE,2BAAiB;AAE5D,MAAM,MAAM,eAAe,GAAG;IAC5B,OAAO,EAAE,KAAK,GAAG,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"context.d.cts","sourceRoot":"","sources":["../../../src/mcp-server/tools/context.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,WAAW,EAAE,cAAc,EAAE,2BAAiB;AAE5D,MAAM,MAAM,eAAe,GAAG;IAC5B,OAAO,EAAE,KAAK,GAAG,MAAM,CAAC;IACxB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACnC,CAAC;AACF,MAAM,MAAM,gBAAgB,GAAG;IAC7B,eAAe,EAAE,KAAK,GAAG,MAAM,CAAC;IAChC,UAAU,EAAE,KAAK,GAAG,MAAM,CAAC;IAC3B,qBAAqB,EAAE,MAAM,EAAE,CAAC;CACjC,CAAC;AAEF;;;;;;GAMG;AACH,wBAAsB,gBAAgB,CACpC,KAAK,EAAE,eAAe,EACtB,OAAO,CAAC,EAAE,cAAc,GACvB,OAAO,CAAC,WAAW,CAAC,gBAAgB,CAAC,CAAC,CA4BxC;AAED,MAAM,MAAM,gBAAgB,GAAG;IAC7B,cAAc,EAAE,KAAK,GAAG,MAAM,CAAC;IAC/B,gBAAgB,EAAE,OAAO,CAAC;IAC1B,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,YAAY,EAAE;QACZ,SAAS,EAAE,MAAM,EAAE,CAAC;KACrB,CAAC;IACF,gBAAgB,EAAE,OAAO,CAAC;CAC3B,CAAC;AAEF;;;;;;GAMG;AACH,wBAAsB,gBAAgB,CACpC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,EAC5B,OAAO,CAAC,EAAE,cAAc,GACvB,OAAO,CAAC,WAAW,CAAC,gBAAgB,CAAC,CAAC,CAkBxC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"context.d.mts","sourceRoot":"","sources":["../../../src/mcp-server/tools/context.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,WAAW,EAAE,cAAc,EAAE,2BAAiB;AAE5D,MAAM,MAAM,eAAe,GAAG;IAC5B,OAAO,EAAE,KAAK,GAAG,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"context.d.mts","sourceRoot":"","sources":["../../../src/mcp-server/tools/context.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,WAAW,EAAE,cAAc,EAAE,2BAAiB;AAE5D,MAAM,MAAM,eAAe,GAAG;IAC5B,OAAO,EAAE,KAAK,GAAG,MAAM,CAAC;IACxB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACnC,CAAC;AACF,MAAM,MAAM,gBAAgB,GAAG;IAC7B,eAAe,EAAE,KAAK,GAAG,MAAM,CAAC;IAChC,UAAU,EAAE,KAAK,GAAG,MAAM,CAAC;IAC3B,qBAAqB,EAAE,MAAM,EAAE,CAAC;CACjC,CAAC;AAEF;;;;;;GAMG;AACH,wBAAsB,gBAAgB,CACpC,KAAK,EAAE,eAAe,EACtB,OAAO,CAAC,EAAE,cAAc,GACvB,OAAO,CAAC,WAAW,CAAC,gBAAgB,CAAC,CAAC,CA4BxC;AAED,MAAM,MAAM,gBAAgB,GAAG;IAC7B,cAAc,EAAE,KAAK,GAAG,MAAM,CAAC;IAC/B,gBAAgB,EAAE,OAAO,CAAC;IAC1B,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,YAAY,EAAE;QACZ,SAAS,EAAE,MAAM,EAAE,CAAC;KACrB,CAAC;IACF,gBAAgB,EAAE,OAAO,CAAC;CAC3B,CAAC;AAEF;;;;;;GAMG;AACH,wBAAsB,gBAAgB,CACpC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,EAC5B,OAAO,CAAC,EAAE,cAAc,GACvB,OAAO,CAAC,WAAW,CAAC,gBAAgB,CAAC,CAAC,CAkBxC"}
|
|
@@ -23,7 +23,7 @@ export async function handleSetContext(input, options) {
|
|
|
23
23
|
execute: async () => {
|
|
24
24
|
const sessionManager = getSessionManager();
|
|
25
25
|
const previousContext = sessionManager.getEnvironmentMode();
|
|
26
|
-
sessionManager.setContext(input.context);
|
|
26
|
+
sessionManager.setContext(input.context, input.options);
|
|
27
27
|
const info = sessionManager.getContextInfo();
|
|
28
28
|
return {
|
|
29
29
|
previousContext,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"context.mjs","sourceRoot":"","sources":["../../../src/mcp-server/tools/context.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,uBAAsB;AACxC,OAAO,EAAE,iBAAiB,EAAE,+BAA8B;AAC1D,OAAO,EAAE,oBAAoB,EAAE,mCAAkC;
|
|
1
|
+
{"version":3,"file":"context.mjs","sourceRoot":"","sources":["../../../src/mcp-server/tools/context.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,uBAAsB;AACxC,OAAO,EAAE,iBAAiB,EAAE,+BAA8B;AAC1D,OAAO,EAAE,oBAAoB,EAAE,mCAAkC;AAajE;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACpC,KAAsB,EACtB,OAAwB;IAExB,OAAO,OAAO,CAAoC;QAChD,QAAQ,EAAE,gBAAgB;QAC1B,KAAK;QACL,OAAO;QACP,eAAe,EAAE,KAAK;QACtB,iBAAiB,EAAE,MAAM;QAEzB;;;;WAIG;QACH,OAAO,EAAE,KAAK,IAAI,EAAE;YAClB,MAAM,cAAc,GAAG,iBAAiB,EAAE,CAAC;YAC3C,MAAM,eAAe,GAAG,cAAc,CAAC,kBAAkB,EAAE,CAAC;YAC5D,cAAc,CAAC,UAAU,CAAC,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;YACxD,MAAM,IAAI,GAAG,cAAc,CAAC,cAAc,EAAE,CAAC;YAE7C,OAAO;gBACL,eAAe;gBACf,UAAU,EAAE,KAAK,CAAC,OAAO;gBACzB,qBAAqB,EAAE,IAAI,CAAC,YAAY,CAAC,SAAS;aACnD,CAAC;QACJ,CAAC;QAED,aAAa,EAAE,oBAAoB;KACpC,CAAC,CAAC;AACL,CAAC;AAYD;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACpC,KAA4B,EAC5B,OAAwB;IAExB,OAAO,OAAO,CAA0C;QACtD,QAAQ,EAAE,gBAAgB;QAC1B,KAAK;QACL,OAAO;QACP,eAAe,EAAE,KAAK;QACtB,iBAAiB,EAAE,MAAM;QAEzB;;;;WAIG;QACH,OAAO,EAAE,KAAK,IAAI,EAAE;YAClB,MAAM,cAAc,GAAG,iBAAiB,EAAE,CAAC;YAC3C,OAAO,cAAc,CAAC,cAAc,EAAE,CAAC;QACzC,CAAC;KACF,CAAC,CAAC;AACL,CAAC","sourcesContent":["import { runTool } from './run-tool.js';\nimport { getSessionManager } from '../session-manager.js';\nimport { classifyContextError } from './error-classification.js';\nimport type { McpResponse, HandlerOptions } from '../types';\n\nexport type SetContextInput = {\n context: 'e2e' | 'prod';\n options?: Record<string, unknown>;\n};\nexport type SetContextResult = {\n previousContext: 'e2e' | 'prod';\n newContext: 'e2e' | 'prod';\n availableCapabilities: string[];\n};\n\n/**\n * Handle setting the workflow context (e2e or prod).\n *\n * @param input The context input containing the desired context mode\n * @param options Optional handler options for the operation\n * @returns Promise resolving to the context change result with previous and new context\n */\nexport async function handleSetContext(\n input: SetContextInput,\n options?: HandlerOptions,\n): Promise<McpResponse<SetContextResult>> {\n return runTool<SetContextInput, SetContextResult>({\n toolName: 'mm_set_context',\n input,\n options,\n requiresSession: false,\n observationPolicy: 'none',\n\n /**\n * Execute the context switch operation.\n *\n * @returns The result containing previous context, new context, and available capabilities\n */\n execute: async () => {\n const sessionManager = getSessionManager();\n const previousContext = sessionManager.getEnvironmentMode();\n sessionManager.setContext(input.context, input.options);\n const info = sessionManager.getContextInfo();\n\n return {\n previousContext,\n newContext: input.context,\n availableCapabilities: info.capabilities.available,\n };\n },\n\n classifyError: classifyContextError,\n });\n}\n\nexport type GetContextResult = {\n currentContext: 'e2e' | 'prod';\n hasActiveSession: boolean;\n sessionId: string | null;\n capabilities: {\n available: string[];\n };\n canSwitchContext: boolean;\n};\n\n/**\n * Handle getting the current workflow context and capabilities.\n *\n * @param input Empty input object for this operation\n * @param options Optional handler options for the operation\n * @returns Promise resolving to the current context, session state, and available capabilities\n */\nexport async function handleGetContext(\n input: Record<string, never>,\n options?: HandlerOptions,\n): Promise<McpResponse<GetContextResult>> {\n return runTool<Record<string, never>, GetContextResult>({\n toolName: 'mm_get_context',\n input,\n options,\n requiresSession: false,\n observationPolicy: 'none',\n\n /**\n * Execute the get context operation.\n *\n * @returns The result containing current context, session state, and capabilities\n */\n execute: async () => {\n const sessionManager = getSessionManager();\n return sessionManager.getContextInfo();\n },\n });\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"knowledge.cjs","sourceRoot":"","sources":["../../../src/mcp-server/types/knowledge.ts"],"names":[],"mappings":"","sourcesContent":["import type { TestIdItem, A11yNodeTrimmed } from './discovery.js';\
|
|
1
|
+
{"version":3,"file":"knowledge.cjs","sourceRoot":"","sources":["../../../src/mcp-server/types/knowledge.ts"],"names":[],"mappings":"","sourcesContent":["import type { TestIdItem, A11yNodeTrimmed } from './discovery.js';\n\nexport type PriorKnowledgeTarget =\n | {\n type: 'testId';\n value: string;\n }\n | {\n type: 'selector';\n value: string;\n }\n | {\n type: 'a11yHint';\n value: {\n role: string;\n name: string;\n };\n };\n\nexport type PriorKnowledgeSuggestedAction = {\n rank: number;\n action: 'click' | 'type' | 'wait_for' | 'navigate' | 'wait_for_notification';\n rationale: string;\n confidence: number;\n preferredTarget: PriorKnowledgeTarget;\n fallbackTargets?: PriorKnowledgeTarget[];\n};\n\nexport type PriorKnowledgeSimilarStep = {\n sessionId: string;\n timestamp: string;\n tool: string;\n screen: string;\n snippet: string;\n labels?: string[];\n target?: {\n testId?: string;\n selector?: string;\n };\n a11yHint?: {\n role: string;\n name: string;\n };\n confidence: number;\n};\n\nexport type PriorKnowledgeAvoid = {\n rationale: string;\n target: {\n selector?: string;\n testId?: string;\n };\n errorCode?: string;\n frequency: number;\n};\n\nexport type PriorKnowledgeRelatedSession = {\n sessionId: string;\n createdAt: string;\n goal?: string;\n flowTags: string[];\n tags: string[];\n};\n\nexport type PriorKnowledgeQuery = {\n windowHours: number;\n usedFlowTags: string[];\n usedFilters: Record<string, unknown>;\n candidateSessions: number;\n candidateSteps: number;\n};\n\nexport type PriorKnowledgeV1 = {\n schemaVersion: 1;\n generatedAt: string;\n query: PriorKnowledgeQuery;\n relatedSessions: PriorKnowledgeRelatedSession[];\n similarSteps: PriorKnowledgeSimilarStep[];\n suggestedNextActions: PriorKnowledgeSuggestedAction[];\n avoid?: PriorKnowledgeAvoid[];\n};\n\nexport type PriorKnowledgeContext = {\n currentScreen: string;\n currentUrl?: string;\n visibleTestIds: TestIdItem[];\n a11yNodes: A11yNodeTrimmed[];\n currentSessionFlowTags?: string[];\n};\n\nexport type KnowledgeStepSummary = {\n timestamp: string;\n tool: string;\n screen: string;\n snippet: string;\n sessionId?: string;\n matchedFields?: string[];\n sessionGoal?: string;\n};\n\nexport type KnowledgeLastResult = {\n steps: KnowledgeStepSummary[];\n};\n\nexport type KnowledgeSearchResult = {\n matches: KnowledgeStepSummary[];\n query: string;\n};\n\nexport type RecipeStep = {\n stepNumber: number;\n tool: string;\n notes: string;\n};\n\nexport type KnowledgeSummarizeResult = {\n sessionId: string;\n stepCount: number;\n recipe: RecipeStep[];\n};\n\nexport type SessionSummary = {\n sessionId: string;\n createdAt: string;\n goal?: string;\n flowTags: string[];\n tags: string[];\n};\n\nexport type KnowledgeSessionsResult = {\n sessions: SessionSummary[];\n};\n"]}
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import type { TestIdItem, A11yNodeTrimmed } from "./discovery.cjs";
|
|
2
|
-
import type { ScreenName } from "../../capabilities/types.cjs";
|
|
3
2
|
export type PriorKnowledgeTarget = {
|
|
4
3
|
type: 'testId';
|
|
5
4
|
value: string;
|
|
@@ -80,7 +79,7 @@ export type PriorKnowledgeContext = {
|
|
|
80
79
|
export type KnowledgeStepSummary = {
|
|
81
80
|
timestamp: string;
|
|
82
81
|
tool: string;
|
|
83
|
-
screen:
|
|
82
|
+
screen: string;
|
|
84
83
|
snippet: string;
|
|
85
84
|
sessionId?: string;
|
|
86
85
|
matchedFields?: string[];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"knowledge.d.cts","sourceRoot":"","sources":["../../../src/mcp-server/types/knowledge.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,eAAe,EAAE,wBAAuB;
|
|
1
|
+
{"version":3,"file":"knowledge.d.cts","sourceRoot":"","sources":["../../../src/mcp-server/types/knowledge.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import type { TestIdItem, A11yNodeTrimmed } from "./discovery.mjs";
|
|
2
|
-
import type { ScreenName } from "../../capabilities/types.mjs";
|
|
3
2
|
export type PriorKnowledgeTarget = {
|
|
4
3
|
type: 'testId';
|
|
5
4
|
value: string;
|
|
@@ -80,7 +79,7 @@ export type PriorKnowledgeContext = {
|
|
|
80
79
|
export type KnowledgeStepSummary = {
|
|
81
80
|
timestamp: string;
|
|
82
81
|
tool: string;
|
|
83
|
-
screen:
|
|
82
|
+
screen: string;
|
|
84
83
|
snippet: string;
|
|
85
84
|
sessionId?: string;
|
|
86
85
|
matchedFields?: string[];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"knowledge.d.mts","sourceRoot":"","sources":["../../../src/mcp-server/types/knowledge.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,eAAe,EAAE,wBAAuB;
|
|
1
|
+
{"version":3,"file":"knowledge.d.mts","sourceRoot":"","sources":["../../../src/mcp-server/types/knowledge.ts"],"names":[],"mappings":"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"}
|