Skip to content

Commit 42a8431

Browse files
feat: support previous navigation for Console messages
1 parent 4a897f1 commit 42a8431

File tree

4 files changed

+17
-3
lines changed

4 files changed

+17
-3
lines changed

src/McpContext.ts

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -146,9 +146,11 @@ export class McpContext implements Context {
146146
return this.#networkCollector.getData(page, includePreviousNavigations);
147147
}
148148

149-
getConsoleData(): Array<ConsoleMessage | Error> {
149+
getConsoleData(
150+
includePreviousNavigations?: boolean,
151+
): Array<ConsoleMessage | Error> {
150152
const page = this.getSelectedPage();
151-
return this.#consoleCollector.getData(page);
153+
return this.#consoleCollector.getData(page, includePreviousNavigations);
152154
}
153155

154156
getConsoleMessageStableId(message: ConsoleMessage | Error): number {

src/McpResponse.ts

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,7 @@ export class McpResponse implements Response {
4848
include: boolean;
4949
pagination?: PaginationOptions;
5050
types?: string[];
51+
includePreviousNavigations?: boolean;
5152
};
5253

5354
setIncludePages(value: boolean): void {
@@ -89,6 +90,7 @@ export class McpResponse implements Response {
8990
value: boolean,
9091
options?: PaginationOptions & {
9192
types?: string[];
93+
includePreviousNavigations?: boolean;
9294
},
9395
): void {
9496
if (!value) {
@@ -106,6 +108,7 @@ export class McpResponse implements Response {
106108
}
107109
: undefined,
108110
types: options?.types,
111+
includePreviousNavigations: options?.includePreviousNavigations,
109112
};
110113
}
111114

@@ -230,7 +233,9 @@ export class McpResponse implements Response {
230233

231234
let consoleListData: ConsoleMessageData[] | undefined;
232235
if (this.#consoleDataOptions?.include) {
233-
let messages = context.getConsoleData();
236+
let messages = context.getConsoleData(
237+
this.#consoleDataOptions.includePreviousNavigations,
238+
);
234239

235240
if (this.#consoleDataOptions.types?.length) {
236241
const normalizedTypes = new Set(this.#consoleDataOptions.types);

src/tools/ToolDefinition.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -60,6 +60,7 @@ export interface Response {
6060
value: boolean,
6161
options?: PaginationOptions & {
6262
types?: string[];
63+
includePreviousNavigations?: boolean;
6364
},
6465
): void;
6566
setIncludeSnapshot(value: boolean): void;

src/tools/console.ts

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -66,12 +66,18 @@ export const listConsoleMessages = defineTool({
6666
.describe(
6767
'Filter messages to only return messages of the specified resource types. When omitted or empty, returns all messages.',
6868
),
69+
includePreviousNavigations: zod
70+
.boolean()
71+
.default(false)
72+
.optional()
73+
.describe('Whether to include messages from previous navigations.'),
6974
},
7075
handler: async (request, response) => {
7176
response.setIncludeConsoleData(true, {
7277
pageSize: request.params.pageSize,
7378
pageIdx: request.params.pageIdx,
7479
types: request.params.types,
80+
includePreviousNavigations: request.params.includePreviousNavigations,
7581
});
7682
},
7783
});

0 commit comments

Comments
 (0)