firebase-tools 14.16.0 → 14.17.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/crashlytics/{listNotes.js → events.js} +11 -9
- package/lib/crashlytics/filters.js +77 -0
- package/lib/crashlytics/issues.js +50 -0
- package/lib/crashlytics/notes.js +67 -0
- package/lib/crashlytics/reports.js +47 -0
- package/lib/crashlytics/types.js +60 -0
- package/lib/deploy/apphosting/deploy.js +2 -1
- package/lib/deploy/apphosting/util.js +5 -8
- package/lib/emulator/apphosting/developmentServer.js +3 -3
- package/lib/emulator/apphosting/serve.js +29 -29
- package/lib/emulator/initEmulators.js +1 -1
- package/lib/init/features/dataconnect/index.js +29 -4
- package/lib/init/features/dataconnect/sdk.js +17 -12
- package/lib/mcp/tools/crashlytics/events.js +42 -0
- package/lib/mcp/tools/crashlytics/index.js +16 -20
- package/lib/mcp/tools/crashlytics/issues.js +56 -0
- package/lib/mcp/tools/crashlytics/notes.js +78 -0
- package/lib/mcp/tools/crashlytics/reports.js +100 -0
- package/package.json +1 -1
- package/lib/crashlytics/addNote.js +0 -27
- package/lib/crashlytics/deleteNote.js +0 -23
- package/lib/crashlytics/getIssueDetails.js +0 -26
- package/lib/crashlytics/getSampleCrash.js +0 -34
- package/lib/crashlytics/listTopDevices.js +0 -33
- package/lib/crashlytics/listTopIssues.js +0 -30
- package/lib/crashlytics/listTopOperatingSystems.js +0 -32
- package/lib/crashlytics/listTopVersions.js +0 -32
- package/lib/crashlytics/updateIssue.js +0 -35
- package/lib/mcp/tools/crashlytics/add_note.js +0 -32
- package/lib/mcp/tools/crashlytics/constants.js +0 -11
- package/lib/mcp/tools/crashlytics/delete_note.js +0 -35
- package/lib/mcp/tools/crashlytics/get_issue_details.js +0 -31
- package/lib/mcp/tools/crashlytics/get_sample_crash.js +0 -43
- package/lib/mcp/tools/crashlytics/list_notes.js +0 -37
- package/lib/mcp/tools/crashlytics/list_top_devices.js +0 -33
- package/lib/mcp/tools/crashlytics/list_top_issues.js +0 -38
- package/lib/mcp/tools/crashlytics/list_top_operating_systems.js +0 -33
- package/lib/mcp/tools/crashlytics/list_top_versions.js +0 -33
- package/lib/mcp/tools/crashlytics/update_issue.js +0 -37
|
@@ -1,35 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.delete_note = void 0;
|
|
4
|
-
const zod_1 = require("zod");
|
|
5
|
-
const tool_1 = require("../../tool");
|
|
6
|
-
const util_1 = require("../../util");
|
|
7
|
-
const deleteNote_1 = require("../../../crashlytics/deleteNote");
|
|
8
|
-
const constants_1 = require("./constants");
|
|
9
|
-
exports.delete_note = (0, tool_1.tool)({
|
|
10
|
-
name: "delete_note",
|
|
11
|
-
description: "Delete a note from an issue in Crashlytics.",
|
|
12
|
-
inputSchema: zod_1.z.object({
|
|
13
|
-
app_id: constants_1.APP_ID_FIELD,
|
|
14
|
-
issue_id: zod_1.z.string().describe("The issue id to delete the note from."),
|
|
15
|
-
note_id: zod_1.z.string().describe("The note id to delete."),
|
|
16
|
-
}),
|
|
17
|
-
annotations: {
|
|
18
|
-
title: "Delete Note from Crashlytics Issue.",
|
|
19
|
-
readOnlyHint: true,
|
|
20
|
-
},
|
|
21
|
-
_meta: {
|
|
22
|
-
requiresAuth: true,
|
|
23
|
-
},
|
|
24
|
-
}, async ({ app_id, issue_id, note_id }) => {
|
|
25
|
-
if (!app_id) {
|
|
26
|
-
return (0, util_1.mcpError)(`Must specify 'app_id' parameter.`);
|
|
27
|
-
}
|
|
28
|
-
if (!issue_id) {
|
|
29
|
-
return (0, util_1.mcpError)(`Must specify 'issue_id' parameter.`);
|
|
30
|
-
}
|
|
31
|
-
if (!note_id) {
|
|
32
|
-
return (0, util_1.mcpError)(`Must specify 'note_id' parameter.`);
|
|
33
|
-
}
|
|
34
|
-
return (0, util_1.toContent)(await (0, deleteNote_1.deleteNote)(app_id, issue_id, note_id));
|
|
35
|
-
});
|
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.get_issue_details = void 0;
|
|
4
|
-
const zod_1 = require("zod");
|
|
5
|
-
const tool_1 = require("../../tool");
|
|
6
|
-
const util_1 = require("../../util");
|
|
7
|
-
const getIssueDetails_1 = require("../../../crashlytics/getIssueDetails");
|
|
8
|
-
const constants_1 = require("./constants");
|
|
9
|
-
exports.get_issue_details = (0, tool_1.tool)({
|
|
10
|
-
name: "get_issue_details",
|
|
11
|
-
description: "Gets the details about a specific crashlytics issue.",
|
|
12
|
-
inputSchema: zod_1.z.object({
|
|
13
|
-
app_id: constants_1.APP_ID_FIELD,
|
|
14
|
-
issue_id: zod_1.z
|
|
15
|
-
.string()
|
|
16
|
-
.describe("The issue ID for which the details needs to be fetched. This is the value of the field `id` in the list of issues. Defaults to the first id in the list of issues."),
|
|
17
|
-
}),
|
|
18
|
-
annotations: {
|
|
19
|
-
title: "Gets the details of a specific issue.",
|
|
20
|
-
readOnlyHint: true,
|
|
21
|
-
},
|
|
22
|
-
_meta: {
|
|
23
|
-
requiresAuth: true,
|
|
24
|
-
},
|
|
25
|
-
}, async ({ app_id, issue_id }) => {
|
|
26
|
-
if (!app_id)
|
|
27
|
-
return (0, util_1.mcpError)(`Must specify 'app_id' parameter.`);
|
|
28
|
-
if (!issue_id)
|
|
29
|
-
return (0, util_1.mcpError)(`Must specify 'issue_id' parameter.`);
|
|
30
|
-
return (0, util_1.toContent)(await (0, getIssueDetails_1.getIssueDetails)(app_id, issue_id));
|
|
31
|
-
});
|
|
@@ -1,43 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.get_sample_crash = void 0;
|
|
4
|
-
const zod_1 = require("zod");
|
|
5
|
-
const tool_1 = require("../../tool");
|
|
6
|
-
const util_1 = require("../../util");
|
|
7
|
-
const getSampleCrash_1 = require("../../../crashlytics/getSampleCrash");
|
|
8
|
-
const constants_1 = require("./constants");
|
|
9
|
-
exports.get_sample_crash = (0, tool_1.tool)({
|
|
10
|
-
name: "get_sample_crash_for_issue",
|
|
11
|
-
description: "Gets the sample crash for an issue.",
|
|
12
|
-
inputSchema: zod_1.z.object({
|
|
13
|
-
app_id: constants_1.APP_ID_FIELD,
|
|
14
|
-
issue_id: zod_1.z
|
|
15
|
-
.string()
|
|
16
|
-
.describe("The issue Id for which the sample crash needs to be fetched. This is the value of the field `id` in the list of issues. Defaults to the first id in the list of issues."),
|
|
17
|
-
variant_id: zod_1.z
|
|
18
|
-
.string()
|
|
19
|
-
.optional()
|
|
20
|
-
.describe("The issue variant Id used as a filter to get sample issues."),
|
|
21
|
-
sample_count: zod_1.z
|
|
22
|
-
.number()
|
|
23
|
-
.describe("Number of samples that needs to be fetched. Maximum value is 3. Defaults to 1.")
|
|
24
|
-
.default(1),
|
|
25
|
-
}),
|
|
26
|
-
annotations: {
|
|
27
|
-
title: "Gets a sample of a crash for a specific issue.",
|
|
28
|
-
readOnlyHint: true,
|
|
29
|
-
},
|
|
30
|
-
_meta: {
|
|
31
|
-
requiresAuth: true,
|
|
32
|
-
},
|
|
33
|
-
}, async ({ app_id, issue_id, variant_id, sample_count }) => {
|
|
34
|
-
if (!app_id)
|
|
35
|
-
return (0, util_1.mcpError)(`Must specify 'app_id' parameter.`);
|
|
36
|
-
if (!issue_id)
|
|
37
|
-
return (0, util_1.mcpError)(`Must specify 'issue_id' parameter.`);
|
|
38
|
-
if (!sample_count)
|
|
39
|
-
sample_count = 1;
|
|
40
|
-
if (sample_count > 3)
|
|
41
|
-
sample_count = 3;
|
|
42
|
-
return (0, util_1.toContent)(await (0, getSampleCrash_1.getSampleCrash)(app_id, issue_id, sample_count, variant_id));
|
|
43
|
-
});
|
|
@@ -1,37 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.list_notes = void 0;
|
|
4
|
-
const zod_1 = require("zod");
|
|
5
|
-
const tool_1 = require("../../tool");
|
|
6
|
-
const util_1 = require("../../util");
|
|
7
|
-
const listNotes_1 = require("../../../crashlytics/listNotes");
|
|
8
|
-
const constants_1 = require("./constants");
|
|
9
|
-
exports.list_notes = (0, tool_1.tool)({
|
|
10
|
-
name: "list_notes",
|
|
11
|
-
description: "List all notes for an issue in Crashlytics.",
|
|
12
|
-
inputSchema: zod_1.z.object({
|
|
13
|
-
app_id: constants_1.APP_ID_FIELD,
|
|
14
|
-
issue_id: zod_1.z.string().describe("The issue id to list notes for."),
|
|
15
|
-
note_count: zod_1.z
|
|
16
|
-
.number()
|
|
17
|
-
.optional()
|
|
18
|
-
.default(10)
|
|
19
|
-
.describe("Number of notes that needs to be fetched. Defaults to 10 if unspecified."),
|
|
20
|
-
}),
|
|
21
|
-
annotations: {
|
|
22
|
-
title: "List notes for a Crashlytics issue.",
|
|
23
|
-
readOnlyHint: true,
|
|
24
|
-
},
|
|
25
|
-
_meta: {
|
|
26
|
-
requiresAuth: true,
|
|
27
|
-
},
|
|
28
|
-
}, async ({ app_id, issue_id, note_count }) => {
|
|
29
|
-
if (!app_id) {
|
|
30
|
-
return (0, util_1.mcpError)(`Must specify 'app_id' parameter.`);
|
|
31
|
-
}
|
|
32
|
-
if (!issue_id) {
|
|
33
|
-
return (0, util_1.mcpError)(`Must specify 'issue_id' parameter.`);
|
|
34
|
-
}
|
|
35
|
-
note_count !== null && note_count !== void 0 ? note_count : (note_count = 10);
|
|
36
|
-
return (0, util_1.toContent)(await (0, listNotes_1.listNotes)(app_id, issue_id, note_count));
|
|
37
|
-
});
|
|
@@ -1,33 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.list_top_devices = void 0;
|
|
4
|
-
const zod_1 = require("zod");
|
|
5
|
-
const tool_1 = require("../../tool");
|
|
6
|
-
const util_1 = require("../../util");
|
|
7
|
-
const listTopDevices_1 = require("../../../crashlytics/listTopDevices");
|
|
8
|
-
const constants_1 = require("./constants");
|
|
9
|
-
exports.list_top_devices = (0, tool_1.tool)({
|
|
10
|
-
name: "list_top_devices",
|
|
11
|
-
description: "List the top devices from Crashlytics for an application.",
|
|
12
|
-
inputSchema: zod_1.z.object({
|
|
13
|
-
app_id: constants_1.APP_ID_FIELD,
|
|
14
|
-
issue_id: zod_1.z.string().optional().describe("The issue id to filter on"),
|
|
15
|
-
device_count: zod_1.z
|
|
16
|
-
.number()
|
|
17
|
-
.optional()
|
|
18
|
-
.default(10)
|
|
19
|
-
.describe("Number of devices that needs to be fetched. Defaults to 10 if unspecified."),
|
|
20
|
-
}),
|
|
21
|
-
annotations: {
|
|
22
|
-
title: "List Top Crashlytics Devices.",
|
|
23
|
-
readOnlyHint: true,
|
|
24
|
-
},
|
|
25
|
-
_meta: {
|
|
26
|
-
requiresAuth: true,
|
|
27
|
-
},
|
|
28
|
-
}, async ({ app_id, issue_id, device_count }) => {
|
|
29
|
-
if (!app_id)
|
|
30
|
-
return (0, util_1.mcpError)(`Must specify 'app_id' parameter.`);
|
|
31
|
-
device_count !== null && device_count !== void 0 ? device_count : (device_count = 10);
|
|
32
|
-
return (0, util_1.toContent)(await (0, listTopDevices_1.listTopDevices)(app_id, device_count, issue_id));
|
|
33
|
-
});
|
|
@@ -1,38 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.list_top_issues = void 0;
|
|
4
|
-
const zod_1 = require("zod");
|
|
5
|
-
const tool_1 = require("../../tool");
|
|
6
|
-
const util_1 = require("../../util");
|
|
7
|
-
const listTopIssues_1 = require("../../../crashlytics/listTopIssues");
|
|
8
|
-
const constants_1 = require("./constants");
|
|
9
|
-
exports.list_top_issues = (0, tool_1.tool)({
|
|
10
|
-
name: "list_top_issues",
|
|
11
|
-
description: "List the top crashes from crashlytics happening in the application.",
|
|
12
|
-
inputSchema: zod_1.z.object({
|
|
13
|
-
app_id: constants_1.APP_ID_FIELD,
|
|
14
|
-
issue_count: zod_1.z
|
|
15
|
-
.number()
|
|
16
|
-
.optional()
|
|
17
|
-
.describe("Number of issues that needs to be fetched. Defaults to 10 if unspecified.")
|
|
18
|
-
.default(10),
|
|
19
|
-
issue_type: zod_1.z
|
|
20
|
-
.enum(["FATAL", "NON-FATAL", "ANR"])
|
|
21
|
-
.optional()
|
|
22
|
-
.default("FATAL")
|
|
23
|
-
.describe("Types of issues that can be fetched comma-separated. Defaults to `FATAL` (Crashes). Other values include NON-FATAL (Non-fatal issues), ANR (Application not responding)."),
|
|
24
|
-
}),
|
|
25
|
-
annotations: {
|
|
26
|
-
title: "List Top Crashlytics Issues.",
|
|
27
|
-
readOnlyHint: true,
|
|
28
|
-
},
|
|
29
|
-
_meta: {
|
|
30
|
-
requiresAuth: true,
|
|
31
|
-
},
|
|
32
|
-
}, async ({ app_id, issue_type, issue_count }) => {
|
|
33
|
-
if (!app_id)
|
|
34
|
-
return (0, util_1.mcpError)(`Must specify 'app_id' parameter.`);
|
|
35
|
-
issue_type !== null && issue_type !== void 0 ? issue_type : (issue_type = "FATAL");
|
|
36
|
-
issue_count !== null && issue_count !== void 0 ? issue_count : (issue_count = 10);
|
|
37
|
-
return (0, util_1.toContent)(await (0, listTopIssues_1.listTopIssues)(app_id, issue_type, issue_count));
|
|
38
|
-
});
|
|
@@ -1,33 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.list_top_operating_systems = void 0;
|
|
4
|
-
const zod_1 = require("zod");
|
|
5
|
-
const tool_1 = require("../../tool");
|
|
6
|
-
const util_1 = require("../../util");
|
|
7
|
-
const listTopOperatingSystems_1 = require("../../../crashlytics/listTopOperatingSystems");
|
|
8
|
-
const constants_1 = require("./constants");
|
|
9
|
-
exports.list_top_operating_systems = (0, tool_1.tool)({
|
|
10
|
-
name: "list_top_operating_systems",
|
|
11
|
-
description: "List the top operating systems from Crashlytics for an application.",
|
|
12
|
-
inputSchema: zod_1.z.object({
|
|
13
|
-
app_id: constants_1.APP_ID_FIELD,
|
|
14
|
-
issue_id: zod_1.z.string().optional().describe("The issue id to filter on"),
|
|
15
|
-
os_count: zod_1.z
|
|
16
|
-
.number()
|
|
17
|
-
.optional()
|
|
18
|
-
.default(10)
|
|
19
|
-
.describe("Number of operating systems that needs to be fetched. Defaults to 10 if unspecified."),
|
|
20
|
-
}),
|
|
21
|
-
annotations: {
|
|
22
|
-
title: "List Top Crashlytics Operating Systems.",
|
|
23
|
-
readOnlyHint: true,
|
|
24
|
-
},
|
|
25
|
-
_meta: {
|
|
26
|
-
requiresAuth: true,
|
|
27
|
-
},
|
|
28
|
-
}, async ({ app_id, issue_id, os_count }) => {
|
|
29
|
-
if (!app_id)
|
|
30
|
-
return (0, util_1.mcpError)(`Must specify 'app_id' parameter.`);
|
|
31
|
-
os_count !== null && os_count !== void 0 ? os_count : (os_count = 10);
|
|
32
|
-
return (0, util_1.toContent)(await (0, listTopOperatingSystems_1.listTopOperatingSystems)(app_id, os_count, issue_id));
|
|
33
|
-
});
|
|
@@ -1,33 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.list_top_versions = void 0;
|
|
4
|
-
const zod_1 = require("zod");
|
|
5
|
-
const tool_1 = require("../../tool");
|
|
6
|
-
const util_1 = require("../../util");
|
|
7
|
-
const listTopVersions_1 = require("../../../crashlytics/listTopVersions");
|
|
8
|
-
const constants_1 = require("./constants");
|
|
9
|
-
exports.list_top_versions = (0, tool_1.tool)({
|
|
10
|
-
name: "list_top_versions",
|
|
11
|
-
description: "List the top versions from Crashlytics for an application.",
|
|
12
|
-
inputSchema: zod_1.z.object({
|
|
13
|
-
app_id: constants_1.APP_ID_FIELD,
|
|
14
|
-
issue_id: zod_1.z.string().optional().describe("The issue id to filter on"),
|
|
15
|
-
version_count: zod_1.z
|
|
16
|
-
.number()
|
|
17
|
-
.optional()
|
|
18
|
-
.default(10)
|
|
19
|
-
.describe("Number of versions that needs to be fetched. Defaults to 10 if unspecified."),
|
|
20
|
-
}),
|
|
21
|
-
annotations: {
|
|
22
|
-
title: "List Top Crashlytics Versions.",
|
|
23
|
-
readOnlyHint: true,
|
|
24
|
-
},
|
|
25
|
-
_meta: {
|
|
26
|
-
requiresAuth: true,
|
|
27
|
-
},
|
|
28
|
-
}, async ({ app_id, issue_id, version_count }) => {
|
|
29
|
-
if (!app_id)
|
|
30
|
-
return (0, util_1.mcpError)(`Must specify 'app_id' parameter.`);
|
|
31
|
-
version_count !== null && version_count !== void 0 ? version_count : (version_count = 10);
|
|
32
|
-
return (0, util_1.toContent)(await (0, listTopVersions_1.listTopVersions)(app_id, version_count, issue_id));
|
|
33
|
-
});
|
|
@@ -1,37 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.update_issue = void 0;
|
|
4
|
-
const zod_1 = require("zod");
|
|
5
|
-
const tool_1 = require("../../tool");
|
|
6
|
-
const util_1 = require("../../util");
|
|
7
|
-
const updateIssue_1 = require("../../../crashlytics/updateIssue");
|
|
8
|
-
const constants_1 = require("./constants");
|
|
9
|
-
exports.update_issue = (0, tool_1.tool)({
|
|
10
|
-
name: "update_issue",
|
|
11
|
-
description: "Update the state of an issue in Crashlytics.",
|
|
12
|
-
inputSchema: zod_1.z.object({
|
|
13
|
-
app_id: constants_1.APP_ID_FIELD,
|
|
14
|
-
issue_id: zod_1.z.string().describe("The issue id to update."),
|
|
15
|
-
state: zod_1.z
|
|
16
|
-
.nativeEnum(updateIssue_1.IssueState)
|
|
17
|
-
.describe("The new state for the issue. Can be 'OPEN' or 'CLOSED'."),
|
|
18
|
-
}),
|
|
19
|
-
annotations: {
|
|
20
|
-
title: "Update Crashlytics issue state.",
|
|
21
|
-
readOnlyHint: true,
|
|
22
|
-
},
|
|
23
|
-
_meta: {
|
|
24
|
-
requiresAuth: true,
|
|
25
|
-
},
|
|
26
|
-
}, async ({ app_id, issue_id, state }) => {
|
|
27
|
-
if (!app_id) {
|
|
28
|
-
return (0, util_1.mcpError)(`Must specify 'app_id' parameter.`);
|
|
29
|
-
}
|
|
30
|
-
if (!issue_id) {
|
|
31
|
-
return (0, util_1.mcpError)(`Must specify 'issue_id' parameter.`);
|
|
32
|
-
}
|
|
33
|
-
if (!state) {
|
|
34
|
-
return (0, util_1.mcpError)(`Must specify 'state' parameter.`);
|
|
35
|
-
}
|
|
36
|
-
return (0, util_1.toContent)(await (0, updateIssue_1.updateIssue)(app_id, issue_id, state));
|
|
37
|
-
});
|