@apteva/integrations 0.3.47 → 0.3.48

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@apteva/integrations",
3
- "version": "0.3.47",
3
+ "version": "0.3.48",
4
4
  "description": "Local integrations, connections, and webhooks for Apteva. Self-contained app templates, OAuth engine, and trigger provider.",
5
5
  "author": "Apteva <hello@apteva.com>",
6
6
  "license": "Elastic-2.0",
@@ -0,0 +1,194 @@
1
+ {
2
+ "slug": "debugbear",
3
+ "name": "DebugBear",
4
+ "description": "Lighthouse + Core Web Vitals monitoring service. Run on-demand audits, track scheduled monitoring of pages over time, get full Lighthouse reports, network waterfalls, RUM metrics from real users, and timeline annotations for deploys/marketing pushes. Designed for ongoing performance monitoring rather than one-off audits.",
5
+ "logo": "https://www.google.com/s2/favicons?domain=debugbear.com&sz=128",
6
+ "categories": ["performance", "lighthouse", "monitoring", "web-vitals", "audit"],
7
+ "base_url": "https://www.debugbear.com/api/v1",
8
+ "auth": {
9
+ "types": ["api_key"],
10
+ "headers": {
11
+ "x-api-key": "{{api_key}}"
12
+ },
13
+ "credential_fields": [
14
+ { "name": "api_key", "label": "DebugBear API key" }
15
+ ]
16
+ },
17
+ "tools": [
18
+ {
19
+ "name": "analyze_page",
20
+ "description": "Trigger a fresh Lighthouse + WPT-style analysis on a registered page. Returns an analysis ID. The analysis runs in the background — poll get_lighthouse_report or check the page's metrics endpoint for completion. Optional `url` lets you override the page's default URL for this run; useful for testing PR preview deployments. `buildTitle` and `commitHash` tag the run for correlating with a deploy.",
21
+ "method": "POST",
22
+ "path": "/page/{pageId}/analyze",
23
+ "input_schema": {
24
+ "type": "object",
25
+ "properties": {
26
+ "pageId": { "type": "string", "description": "DebugBear page id (from the dashboard)" },
27
+ "url": { "type": "string", "description": "Override URL — useful for PR previews. Defaults to the page's configured URL." },
28
+ "buildTitle": { "type": "string", "description": "Free-text label for this run (e.g. 'PR #1234 - new pricing page')" },
29
+ "commitHash": { "type": "string", "description": "Git commit hash for correlation with a deploy" },
30
+ "customHeaders": {
31
+ "type": "object",
32
+ "description": "Custom HTTP headers to send to the target page (e.g. {'X-Bypass-Cache': '1'})"
33
+ },
34
+ "cookies": {
35
+ "type": "array",
36
+ "items": { "type": "object" },
37
+ "description": "Cookies to set before the audit (for testing logged-in pages)"
38
+ }
39
+ },
40
+ "required": ["pageId"]
41
+ }
42
+ },
43
+ {
44
+ "name": "get_lighthouse_report",
45
+ "description": "Get the full Lighthouse JSON report for a completed analysis. The report contains every Lighthouse audit, all five category scores, the trace, and the full timeline. Same shape as a local Lighthouse run.",
46
+ "method": "GET",
47
+ "path": "/analysis/{analysisId}/lhr",
48
+ "input_schema": {
49
+ "type": "object",
50
+ "properties": {
51
+ "analysisId": { "type": "string", "description": "Analysis id returned by analyze_page" }
52
+ },
53
+ "required": ["analysisId"]
54
+ }
55
+ },
56
+ {
57
+ "name": "get_network_requests",
58
+ "description": "Get the full network waterfall for an analysis — every request the browser made, with timings, sizes, and headers. Useful for finding render-blocking resources, large payloads, and slow third-party scripts.",
59
+ "method": "GET",
60
+ "path": "/analysis/{analysisId}/requests",
61
+ "input_schema": {
62
+ "type": "object",
63
+ "properties": {
64
+ "analysisId": { "type": "string" }
65
+ },
66
+ "required": ["analysisId"]
67
+ }
68
+ },
69
+ {
70
+ "name": "get_page_metrics",
71
+ "description": "Get the time series of Lighthouse + Web Vitals metrics for a single page, over a date range. Use this to spot regressions and trends without pulling individual analyses.",
72
+ "method": "GET",
73
+ "path": "/page/{pageId}/metrics",
74
+ "input_schema": {
75
+ "type": "object",
76
+ "properties": {
77
+ "pageId": { "type": "string" },
78
+ "from": { "type": "string", "description": "ISO-8601 start date (e.g. '2026-04-01')" },
79
+ "to": { "type": "string", "description": "ISO-8601 end date" }
80
+ },
81
+ "required": ["pageId"]
82
+ },
83
+ "query_params": ["from", "to"]
84
+ },
85
+ {
86
+ "name": "get_project",
87
+ "description": "Get a project's metadata including the list of pages it contains. Use this to discover the page IDs you need for analyze_page.",
88
+ "method": "GET",
89
+ "path": "/projects/{projectId}",
90
+ "input_schema": {
91
+ "type": "object",
92
+ "properties": {
93
+ "projectId": { "type": "string" }
94
+ },
95
+ "required": ["projectId"]
96
+ }
97
+ },
98
+ {
99
+ "name": "get_project_page_metrics",
100
+ "description": "Get aggregated Lighthouse / Web Vitals metrics across every page in a project. Useful for project-wide dashboards and 'is the whole site getting slower' checks.",
101
+ "method": "GET",
102
+ "path": "/projects/{projectId}/pageMetrics",
103
+ "input_schema": {
104
+ "type": "object",
105
+ "properties": {
106
+ "projectId": { "type": "string" },
107
+ "before": { "type": "string", "description": "ISO-8601 cutoff — return metrics from before this timestamp" },
108
+ "environments": {
109
+ "type": "array",
110
+ "items": { "type": "string" },
111
+ "description": "Filter to specific environments (e.g. ['production', 'staging'])"
112
+ }
113
+ },
114
+ "required": ["projectId"]
115
+ },
116
+ "query_params": ["before", "environments"]
117
+ },
118
+ {
119
+ "name": "get_rum_metrics",
120
+ "description": "Get Real User Monitoring metrics — actual Web Vitals (LCP, INP, CLS) collected from real visitors via DebugBear's RUM beacon. Powerful filters: groupBy by url/country/device, filter by url/country, choose statistic (p75 by default), pick which metrics to return.",
121
+ "method": "GET",
122
+ "path": "/project/{projectId}/rumMetrics",
123
+ "input_schema": {
124
+ "type": "object",
125
+ "properties": {
126
+ "projectId": { "type": "string" },
127
+ "groupBy": {
128
+ "type": "string",
129
+ "enum": ["url", "country", "deviceType", "browser", "connectionType"],
130
+ "description": "Dimension to group results by"
131
+ },
132
+ "filters": {
133
+ "type": "object",
134
+ "description": "Filter criteria (e.g. {'country': 'US', 'deviceType': 'mobile'})"
135
+ },
136
+ "stat": {
137
+ "type": "string",
138
+ "enum": ["p50", "p75", "p90", "p95", "p99", "avg"],
139
+ "default": "p75",
140
+ "description": "Statistic to compute over the matching events"
141
+ },
142
+ "metrics": {
143
+ "type": "array",
144
+ "items": { "type": "string", "enum": ["lcp", "inp", "cls", "fcp", "ttfb", "fid"] },
145
+ "description": "Which Web Vitals to return"
146
+ },
147
+ "from": { "type": "string", "description": "ISO-8601 start date" },
148
+ "to": { "type": "string", "description": "ISO-8601 end date" },
149
+ "maxCategories": { "type": "integer", "default": 10, "description": "Cap on the number of groups returned (when groupBy is set)" },
150
+ "orderBy": { "type": "string", "description": "Field to sort the result groups by" }
151
+ },
152
+ "required": ["projectId"]
153
+ },
154
+ "query_params": ["groupBy", "filters", "stat", "metrics", "from", "to", "maxCategories", "orderBy"]
155
+ },
156
+ {
157
+ "name": "create_annotation",
158
+ "description": "Add a timeline annotation to a project — a deploy marker, a marketing campaign launch, an A/B test, etc. Annotations show up on the metrics charts so you can correlate performance changes with what shipped.",
159
+ "method": "POST",
160
+ "path": "/project/{projectId}/annotation",
161
+ "input_schema": {
162
+ "type": "object",
163
+ "properties": {
164
+ "projectId": { "type": "string" },
165
+ "title": { "type": "string", "description": "Short label shown on the chart" },
166
+ "description": { "type": "string", "description": "Longer note shown on hover" },
167
+ "timestamp": { "type": "string", "description": "ISO-8601 timestamp (defaults to now)" },
168
+ "type": {
169
+ "type": "string",
170
+ "enum": ["deploy", "experiment", "campaign", "incident", "other"],
171
+ "default": "deploy"
172
+ }
173
+ },
174
+ "required": ["projectId", "title"]
175
+ }
176
+ },
177
+ {
178
+ "name": "list_annotations",
179
+ "description": "List previously-created timeline annotations for a project.",
180
+ "method": "GET",
181
+ "path": "/project/{projectId}/annotations",
182
+ "input_schema": {
183
+ "type": "object",
184
+ "properties": {
185
+ "projectId": { "type": "string" },
186
+ "from": { "type": "string" },
187
+ "to": { "type": "string" }
188
+ },
189
+ "required": ["projectId"]
190
+ },
191
+ "query_params": ["from", "to"]
192
+ }
193
+ ]
194
+ }
@@ -0,0 +1,66 @@
1
+ {
2
+ "slug": "pagespeed-insights",
3
+ "name": "Google PageSpeed Insights",
4
+ "description": "Run Google's official Lighthouse audit against any URL. Returns full Lighthouse JSON (Performance, Accessibility, SEO, Best Practices, PWA) PLUS real-user Core Web Vitals data from the Chrome User Experience Report (CrUX) when available. Same engine that powers PageSpeed.web.dev. Free with generous rate limits — works without an API key (anonymous, rate-limited) or with a Google Cloud API key for higher quota.",
5
+ "logo": "https://www.google.com/s2/favicons?domain=pagespeed.web.dev&sz=128",
6
+ "categories": ["performance", "seo", "lighthouse", "audit", "google", "web-vitals"],
7
+ "base_url": "https://www.googleapis.com/pagespeedonline/v5",
8
+ "auth": {
9
+ "types": ["api_key"],
10
+ "headers": {},
11
+ "query_params": {
12
+ "key": "{{api_key}}"
13
+ },
14
+ "credential_fields": [
15
+ {
16
+ "name": "api_key",
17
+ "label": "Google Cloud API key (optional — leave blank for the anonymous tier)",
18
+ "required": false
19
+ }
20
+ ]
21
+ },
22
+ "tools": [
23
+ {
24
+ "name": "run_pagespeed",
25
+ "description": "Run Lighthouse + CrUX against a URL and return the full audit. Set strategy='mobile' (default) for the mobile audit or 'desktop' for desktop. Pass `category` once per category you want — performance, accessibility, best-practices, seo, pwa. Default is just performance, which is fastest. Returns the full Lighthouse result JSON nested under `lighthouseResult` and Core Web Vitals under `loadingExperience` (origin-level) and `originLoadingExperience` (URL-level). The agent should pull `lighthouseResult.categories.<cat>.score` for the headline 0-1 score per category, and `lighthouseResult.audits.*` for individual issue details.",
26
+ "method": "GET",
27
+ "path": "/runPagespeed",
28
+ "input_schema": {
29
+ "type": "object",
30
+ "properties": {
31
+ "url": {
32
+ "type": "string",
33
+ "description": "The URL to audit"
34
+ },
35
+ "strategy": {
36
+ "type": "string",
37
+ "enum": ["mobile", "desktop"],
38
+ "default": "mobile",
39
+ "description": "Device emulation profile. Mobile is throttled to a slow 4G + mid-tier device; desktop is unthrottled."
40
+ },
41
+ "category": {
42
+ "type": "array",
43
+ "items": {
44
+ "type": "string",
45
+ "enum": ["performance", "accessibility", "best-practices", "seo", "pwa"]
46
+ },
47
+ "default": ["performance"],
48
+ "description": "Which Lighthouse categories to run. Each adds latency. Performance only ≈ 15-30s; all five ≈ 30-60s."
49
+ },
50
+ "locale": {
51
+ "type": "string",
52
+ "description": "BCP-47 language code for the audit messages (e.g. 'en', 'fr', 'es', 'ja')"
53
+ },
54
+ "utm_source": { "type": "string", "description": "Optional UTM source for analytics" },
55
+ "utm_campaign": { "type": "string", "description": "Optional UTM campaign for analytics" },
56
+ "captchaToken": { "type": "string", "description": "reCAPTCHA token if the API requires one (rare)" }
57
+ },
58
+ "required": ["url"]
59
+ },
60
+ "query_params": [
61
+ "url", "strategy", "category", "locale",
62
+ "utm_source", "utm_campaign", "captchaToken"
63
+ ]
64
+ }
65
+ ]
66
+ }
@@ -0,0 +1,159 @@
1
+ {
2
+ "slug": "webpagetest",
3
+ "name": "WebPageTest",
4
+ "description": "Industry-standard performance testing service from Catchpoint. Runs Lighthouse PLUS its own waterfall analysis, filmstrip capture, video comparison, and multi-run averages from real test locations around the world (~40 regions). Async — submit a test with run_test, get a test ID, then poll get_result until status='completed'.",
5
+ "logo": "https://www.google.com/s2/favicons?domain=webpagetest.org&sz=128",
6
+ "categories": ["performance", "lighthouse", "audit", "monitoring", "web-vitals"],
7
+ "base_url": "https://www.webpagetest.org",
8
+ "auth": {
9
+ "types": ["api_key"],
10
+ "headers": {},
11
+ "query_params": {
12
+ "k": "{{api_key}}"
13
+ },
14
+ "credential_fields": [
15
+ {
16
+ "name": "api_key",
17
+ "label": "WebPageTest API key (get one at webpagetest.org/getkey.php)"
18
+ }
19
+ ]
20
+ },
21
+ "tools": [
22
+ {
23
+ "name": "run_test",
24
+ "description": "Submit a new test against a URL. Returns a test ID + URLs for the JSON result and the HTML result page. Set runs > 1 for averaged measurements (each run consumes a credit). Supports custom locations, browsers, connection profiles, scripted user journeys, and Lighthouse-only mode. Returns immediately — poll get_result with the returned testId until the data is ready.",
25
+ "method": "GET",
26
+ "path": "/runtest.php",
27
+ "input_schema": {
28
+ "type": "object",
29
+ "properties": {
30
+ "url": { "type": "string", "description": "The URL to test" },
31
+ "f": {
32
+ "type": "string",
33
+ "enum": ["json", "xml"],
34
+ "default": "json",
35
+ "description": "Response format. JSON is what you almost always want."
36
+ },
37
+ "runs": {
38
+ "type": "integer",
39
+ "default": 1,
40
+ "minimum": 1,
41
+ "maximum": 10,
42
+ "description": "Number of test runs to average (each consumes one test credit)"
43
+ },
44
+ "fvonly": {
45
+ "type": "integer",
46
+ "enum": [0, 1],
47
+ "default": 0,
48
+ "description": "0 = test first AND repeat view, 1 = first view only (faster, half the credits)"
49
+ },
50
+ "location": {
51
+ "type": "string",
52
+ "default": "Dulles:Chrome",
53
+ "description": "Test location + browser, e.g. 'Dulles:Chrome', 'London:Chrome', 'ec2-eu-central-1:Chrome'. See /getLocations.php for the full list."
54
+ },
55
+ "connectivity": {
56
+ "type": "string",
57
+ "enum": ["Cable", "DSL", "3G", "3GFast", "4G", "LTE", "Native"],
58
+ "default": "Cable",
59
+ "description": "Connection profile (sets bandwidth + latency + packet loss)"
60
+ },
61
+ "lighthouse": {
62
+ "type": "integer",
63
+ "enum": [0, 1],
64
+ "default": 1,
65
+ "description": "Run a Lighthouse audit alongside the WPT measurements"
66
+ },
67
+ "mobile": {
68
+ "type": "integer",
69
+ "enum": [0, 1],
70
+ "default": 0,
71
+ "description": "Use mobile emulation"
72
+ },
73
+ "label": { "type": "string", "description": "Free-text label for this test (shown in the UI)" },
74
+ "private": { "type": "integer", "enum": [0, 1], "default": 0, "description": "Hide from the public test history" },
75
+ "video": { "type": "integer", "enum": [0, 1], "default": 0, "description": "Capture filmstrip / video" },
76
+ "block": { "type": "string", "description": "Comma-separated list of substrings to block from being requested" },
77
+ "script": { "type": "string", "description": "WPT scripting language for multi-step user journeys (login + measure)" },
78
+ "pingback": { "type": "string", "description": "URL to call when the test is complete (avoids polling)" }
79
+ },
80
+ "required": ["url"]
81
+ },
82
+ "query_params": [
83
+ "url", "f", "runs", "fvonly", "location", "connectivity",
84
+ "lighthouse", "mobile", "label", "private", "video", "block",
85
+ "script", "pingback"
86
+ ]
87
+ },
88
+ {
89
+ "name": "get_result",
90
+ "description": "Get the result of a previously submitted test. Poll this until `data.statusCode === 200` (test complete). Returns the full WPT result including Lighthouse JSON (under `data.lighthouse`), waterfall data, video frames, and per-run metrics.",
91
+ "method": "GET",
92
+ "path": "/jsonResult.php",
93
+ "input_schema": {
94
+ "type": "object",
95
+ "properties": {
96
+ "test": { "type": "string", "description": "Test ID returned by run_test" },
97
+ "pretty": { "type": "integer", "enum": [0, 1], "default": 1 }
98
+ },
99
+ "required": ["test"]
100
+ },
101
+ "query_params": ["test", "pretty"]
102
+ },
103
+ {
104
+ "name": "test_status",
105
+ "description": "Lightweight status check for a running test. Returns just the queue position + status code without the full result body — much smaller than get_result while polling.",
106
+ "method": "GET",
107
+ "path": "/testStatus.php",
108
+ "input_schema": {
109
+ "type": "object",
110
+ "properties": {
111
+ "test": { "type": "string" },
112
+ "f": { "type": "string", "enum": ["json"], "default": "json" }
113
+ },
114
+ "required": ["test"]
115
+ },
116
+ "query_params": ["test", "f"]
117
+ },
118
+ {
119
+ "name": "cancel_test",
120
+ "description": "Cancel a queued or running test.",
121
+ "method": "GET",
122
+ "path": "/cancelTest.php",
123
+ "input_schema": {
124
+ "type": "object",
125
+ "properties": {
126
+ "test": { "type": "string" }
127
+ },
128
+ "required": ["test"]
129
+ },
130
+ "query_params": ["test"]
131
+ },
132
+ {
133
+ "name": "list_locations",
134
+ "description": "List the available test locations (geographic regions + browsers + queue depth). Use this to pick a location that matches your real users' geography.",
135
+ "method": "GET",
136
+ "path": "/getLocations.php",
137
+ "input_schema": {
138
+ "type": "object",
139
+ "properties": {
140
+ "f": { "type": "string", "enum": ["json", "xml"], "default": "json" }
141
+ }
142
+ },
143
+ "query_params": ["f"]
144
+ },
145
+ {
146
+ "name": "test_balance",
147
+ "description": "Get the current API key's remaining test credits.",
148
+ "method": "GET",
149
+ "path": "/testBalance.php",
150
+ "input_schema": {
151
+ "type": "object",
152
+ "properties": {
153
+ "f": { "type": "string", "enum": ["json"], "default": "json" }
154
+ }
155
+ },
156
+ "query_params": ["f"]
157
+ }
158
+ ]
159
+ }