@debugbundle/mcp 1.15.0 → 1.16.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/main.cjs CHANGED
@@ -73983,6 +73983,136 @@ var CaptureRulesFileSchema = external_exports.object({
73983
73983
  rules: external_exports.array(CaptureRuleSchema)
73984
73984
  });
73985
73985
 
73986
+ // ../../packages/shared-types/src/browser-resource-providers.ts
73987
+ var PROVIDERS = [
73988
+ {
73989
+ name: "Google Tag Manager",
73990
+ role: "tag_manager",
73991
+ hosts: ["www.googletagmanager.com"],
73992
+ paths: ["/gtm.js"]
73993
+ },
73994
+ {
73995
+ name: "Google tag (Analytics / Ads)",
73996
+ role: "analytics",
73997
+ hosts: ["www.googletagmanager.com"],
73998
+ paths: ["/gtag/js"]
73999
+ },
74000
+ {
74001
+ name: "Google Analytics",
74002
+ role: "analytics",
74003
+ hosts: ["www.google-analytics.com", "ssl.google-analytics.com"],
74004
+ paths: ["/analytics.js", "/ga.js"]
74005
+ },
74006
+ {
74007
+ name: "Meta Pixel",
74008
+ role: "advertising",
74009
+ hosts: ["connect.facebook.net"],
74010
+ paths: [/^\/[a-z]{2}_[A-Z]{2}\/fbevents\.js$/]
74011
+ },
74012
+ {
74013
+ name: "Microsoft Clarity",
74014
+ role: "analytics",
74015
+ hosts: ["www.clarity.ms"],
74016
+ paths: [/^\/tag\/[A-Za-z0-9]+$/]
74017
+ },
74018
+ {
74019
+ name: "Hotjar",
74020
+ role: "analytics",
74021
+ hosts: ["static.hotjar.com"],
74022
+ paths: [/^\/c\/hotjar-[0-9]+\.js$/]
74023
+ },
74024
+ {
74025
+ name: "Cloudflare Web Analytics",
74026
+ role: "analytics",
74027
+ hosts: ["static.cloudflareinsights.com"],
74028
+ paths: ["/beacon.min.js"]
74029
+ },
74030
+ {
74031
+ name: "Yandex Metrica",
74032
+ role: "analytics",
74033
+ hosts: ["mc.yandex.ru", "mc.yandex.com"],
74034
+ paths: ["/metrika/tag.js"]
74035
+ },
74036
+ {
74037
+ name: "WordPress.com / Jetpack Stats",
74038
+ role: "analytics",
74039
+ hosts: ["stats.wp.com"],
74040
+ paths: [/^\/e-[0-9]{6}\.js$/]
74041
+ },
74042
+ {
74043
+ name: "Microsoft Advertising UET",
74044
+ role: "advertising",
74045
+ hosts: ["bat.bing.com"],
74046
+ paths: ["/bat.js"]
74047
+ },
74048
+ {
74049
+ name: "LinkedIn Insight",
74050
+ role: "advertising",
74051
+ hosts: ["snap.licdn.com"],
74052
+ paths: ["/li.lms-analytics/insight.min.js"]
74053
+ },
74054
+ {
74055
+ name: "TikTok Pixel",
74056
+ role: "advertising",
74057
+ hosts: ["analytics.tiktok.com"],
74058
+ paths: ["/i18n/pixel/events.js"]
74059
+ },
74060
+ { name: "Pinterest Tag", role: "advertising", hosts: ["s.pinimg.com"], paths: ["/ct/core.js"] },
74061
+ {
74062
+ name: "X Pixel",
74063
+ role: "advertising",
74064
+ hosts: ["static.ads-twitter.com", "platform.twitter.com"],
74065
+ paths: ["/uwt.js", "/oct.js"]
74066
+ },
74067
+ {
74068
+ name: "Segment",
74069
+ role: "analytics",
74070
+ hosts: ["cdn.segment.com"],
74071
+ paths: [/^\/analytics\.js\/v1\/[A-Za-z0-9_-]+\/analytics\.min\.js$/]
74072
+ },
74073
+ {
74074
+ name: "Mixpanel",
74075
+ role: "analytics",
74076
+ hosts: ["cdn.mxpnl.com"],
74077
+ paths: ["/libs/mixpanel-2-latest.min.js", "/libs/mixpanel-js/dist/mixpanel.module.js"]
74078
+ },
74079
+ {
74080
+ name: "Amplitude",
74081
+ role: "analytics",
74082
+ hosts: ["cdn.amplitude.com"],
74083
+ paths: [
74084
+ /^\/libs\/analytics-browser-[0-9]+\.[0-9]+\.[0-9]+-min\.js(?:\.gz)?$/,
74085
+ /^\/script\/[A-Za-z0-9_-]+\.js$/
74086
+ ]
74087
+ },
74088
+ {
74089
+ name: "PostHog",
74090
+ role: "analytics",
74091
+ hosts: ["us-assets.i.posthog.com", "eu-assets.i.posthog.com", "app.posthog.com"],
74092
+ paths: ["/static/array.js"]
74093
+ },
74094
+ {
74095
+ name: "Plausible",
74096
+ role: "analytics",
74097
+ hosts: ["plausible.io"],
74098
+ paths: [/^\/js\/pa-[A-Za-z0-9_-]+\.js$/, /^\/js\/script(?:\.[a-z-]+)*\.js$/]
74099
+ },
74100
+ {
74101
+ name: "Google sign-in",
74102
+ role: "authentication",
74103
+ hosts: ["accounts.google.com"],
74104
+ paths: ["/gsi/client"]
74105
+ }
74106
+ ];
74107
+ function identifyBrowserResourceProvider(host, path) {
74108
+ if (host === null) return null;
74109
+ return PROVIDERS.find(
74110
+ (provider) => provider.hosts.includes(host) && provider.paths.some(
74111
+ (pattern) => typeof pattern === "string" ? path === pattern : pattern.test(path)
74112
+ )
74113
+ ) ?? null;
74114
+ }
74115
+
73986
74116
  // ../../packages/shared-types/src/browser-resource.ts
73987
74117
  function record(value) {
73988
74118
  return value !== null && typeof value === "object" && !Array.isArray(value) ? value : null;
@@ -74041,18 +74171,10 @@ function describeBrowserResource(value) {
74041
74171
  let role = location.first_party === true ? "application_asset" : "unknown";
74042
74172
  let provider = null;
74043
74173
  if (type === "script") {
74044
- if (location.host === "www.googletagmanager.com" && location.path === "/gtm.js") {
74045
- provider = "Google Tag Manager";
74046
- role = "tag_manager";
74047
- } else if (location.host === "connect.facebook.net" && /^\/[a-z]{2}_[A-Z]{2}\/fbevents\.js$/.test(location.path)) {
74048
- provider = "Meta Pixel";
74049
- role = "advertising";
74050
- } else if (location.host === "www.clarity.ms" && /^\/tag\/[A-Za-z0-9]+$/.test(location.path)) {
74051
- provider = "Microsoft Clarity";
74052
- role = "analytics";
74053
- } else if (location.host === "accounts.google.com" && location.path === "/gsi/client") {
74054
- provider = "Google sign-in";
74055
- role = "authentication";
74174
+ const recognized = identifyBrowserResourceProvider(location.host, location.path);
74175
+ if (recognized !== null) {
74176
+ provider = recognized.name;
74177
+ role = recognized.role;
74056
74178
  }
74057
74179
  }
74058
74180
  const file = location.path.split("/").filter(Boolean).at(-1) ?? location.path;
@@ -74076,7 +74198,8 @@ function describeBrowserResourceInterruption(value) {
74076
74198
  const readyState = page?.["ready_state"];
74077
74199
  const tag2 = typeof target?.["tag_name"] === "string" ? target["tag_name"].toLowerCase() : null;
74078
74200
  const rel = typeof attributes?.["rel"] === "string" ? attributes["rel"].trim().toLowerCase() : null;
74079
- if (visibility !== "hidden" && visibility !== "prerender" && visibility !== "unloaded" || readyState !== "loading" && readyState !== "interactive" || tag2 !== "link" || rel !== "preload" && rel !== "modulepreload" && rel !== "prefetch") return null;
74201
+ if (visibility !== "hidden" && visibility !== "prerender" && visibility !== "unloaded" || readyState !== "loading" && readyState !== "interactive" || tag2 !== "link" || rel !== "preload" && rel !== "modulepreload" && rel !== "prefetch")
74202
+ return null;
74080
74203
  return {
74081
74204
  visibility_state: visibility,
74082
74205
  ready_state: readyState,
@@ -78145,7 +78268,7 @@ function buildSkill() {
78145
78268
  "",
78146
78269
  "- Inspect the primary failure and routes: one resource can span pages, route coverage may be incomplete, and historical incidents stay separate. Related tracker evidence does not explain an application exception.",
78147
78270
  '- If the cause is unknown, say "possibly blocked by privacy tools." Network/CSP/provider failures remain possible; provider recognition proves neither Pi-hole blocking nor optionality.',
78148
- "- Review exact host/path, service, environment and opaque resource-error scope; never widen to a whole host. Google sign-in, app assets and unknown dependencies have no automatic resource noise recommendation.",
78271
+ "- Review exact resource host/path/type, service, environment and opacity, or the returned exact fingerprint when evidence is incomplete; never widen to a whole host. All resource incidents can offer explicit controls. Provider recognition does not establish that a dependency is optional; do not suppress authentication, app assets or unknown dependencies automatically.",
78149
78272
  "- For confirmed optional dependencies, context (demote) retains diagnostics without new incidents/alerts/automation and may remain billable. Drop discards future matches; choose it only when evidence has no diagnostic value. Explain the tradeoff; neither deletes history. Use the returned suggestion ID.",
78150
78273
  "- Check existing/disabled rules. Empty suggestions or pending/failed bundles do not justify broader rules. Applying requires user authorization and owner/admin access; preview is read-only. Verify subsequent matching and protected captures before claiming improvement; live tests need authorization.",
78151
78274
  "- The official OpenAI connection cannot suggest or apply rules. When it is the only connection, review returned evidence and hand off through a returned safe dashboard URL; never invent tools or switch credentials.",
@@ -120461,7 +120584,7 @@ var import_node_readline = require("node:readline");
120461
120584
  var package_default = {
120462
120585
  name: "@debugbundle/mcp",
120463
120586
  mcpName: "com.debugbundle/mcp",
120464
- version: "1.15.0",
120587
+ version: "1.16.0",
120465
120588
  private: false,
120466
120589
  description: "MCP server for runtime error reporting, incident response, health checks, debug bundles, and product analytics",
120467
120590
  license: "Apache-2.0",
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@debugbundle/mcp",
3
3
  "mcpName": "com.debugbundle/mcp",
4
- "version": "1.15.0",
4
+ "version": "1.16.0",
5
5
  "private": false,
6
6
  "description": "MCP server for runtime error reporting, incident response, health checks, debug bundles, and product analytics",
7
7
  "license": "Apache-2.0",
package/server.json CHANGED
@@ -8,13 +8,13 @@
8
8
  "source": "github",
9
9
  "subfolder": "apps/mcp"
10
10
  },
11
- "version": "1.15.0",
11
+ "version": "1.16.0",
12
12
  "packages": [
13
13
  {
14
14
  "registryType": "npm",
15
15
  "registryBaseUrl": "https://registry.npmjs.org",
16
16
  "identifier": "@debugbundle/mcp",
17
- "version": "1.15.0",
17
+ "version": "1.16.0",
18
18
  "transport": {
19
19
  "type": "stdio"
20
20
  },