checkly 7.1.0 → 7.2.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.
Files changed (46) hide show
  1. package/dist/ai-context/checkly.rules.md +67 -78
  2. package/dist/ai-context/context.d.ts +37 -2
  3. package/dist/ai-context/context.js +62 -20
  4. package/dist/ai-context/context.js.map +1 -1
  5. package/dist/ai-context/skills/monitoring/README.md +13 -2
  6. package/dist/ai-context/skills/monitoring/SKILL.md +13 -560
  7. package/dist/ai-context/skills/monitoring/references/alert-channels.md +49 -0
  8. package/dist/ai-context/skills/monitoring/references/api-checks.md +58 -0
  9. package/dist/ai-context/skills/monitoring/references/browser-checks.md +38 -0
  10. package/dist/ai-context/skills/monitoring/references/check-groups.md +15 -0
  11. package/dist/ai-context/skills/monitoring/references/multistep-checks.md +33 -0
  12. package/dist/ai-context/skills/monitoring/references/playwright-checks.md +19 -0
  13. package/dist/ai-context/skills/monitoring/references/supporting-constructs.md +119 -0
  14. package/dist/ai-context/skills/monitoring/references/uptime-monitors.md +206 -0
  15. package/dist/commands/debug/parse-project.js +2 -2
  16. package/dist/commands/debug/parse-project.js.map +1 -1
  17. package/dist/commands/pw-test.js +2 -2
  18. package/dist/commands/pw-test.js.map +1 -1
  19. package/dist/constructs/api-check-codegen.js +1 -1
  20. package/dist/constructs/api-check-codegen.js.map +1 -1
  21. package/dist/constructs/api-check.js.map +1 -1
  22. package/dist/constructs/api-request-codegen.js +1 -1
  23. package/dist/constructs/api-request-codegen.js.map +1 -1
  24. package/dist/constructs/check-codegen.js +4 -4
  25. package/dist/constructs/check-codegen.js.map +1 -1
  26. package/dist/constructs/dns-monitor-codegen.js +1 -1
  27. package/dist/constructs/dns-monitor-codegen.js.map +1 -1
  28. package/dist/constructs/playwright-check.js +1 -2
  29. package/dist/constructs/playwright-check.js.map +1 -1
  30. package/dist/constructs/project.d.ts +1 -2
  31. package/dist/constructs/project.js +2 -2
  32. package/dist/constructs/project.js.map +1 -1
  33. package/dist/constructs/tcp-monitor-codegen.d.ts +1 -1
  34. package/dist/constructs/tcp-monitor-codegen.js +9 -9
  35. package/dist/constructs/tcp-monitor-codegen.js.map +1 -1
  36. package/dist/constructs/url-monitor-codegen.js +2 -2
  37. package/dist/constructs/url-monitor-codegen.js.map +1 -1
  38. package/dist/services/project-parser.d.ts +2 -2
  39. package/dist/services/project-parser.js +13 -9
  40. package/dist/services/project-parser.js.map +1 -1
  41. package/dist/services/util.d.ts +1 -1
  42. package/dist/services/util.js +14 -2
  43. package/dist/services/util.js.map +1 -1
  44. package/dist/tsconfig.tsbuildinfo +1 -1
  45. package/oclif.manifest.json +1 -1
  46. package/package.json +1 -1
@@ -7,10 +7,11 @@
7
7
  - Import and / or require any constructs you need in your code, such as `ApiCheck`, `BrowserCheck`, or `PlaywrightCheck` from the `checkly/constructs` package.
8
8
  - Always ground generated code and CLI commands against the official documentation and examples in this file.
9
9
 
10
- ## Installing the Checkly CLI
10
+ ## Using the Checkly CLI
11
11
 
12
- - ALWAYS use `npm create checkly@latest`.
12
+ - Use `npx checkly` instead of installing the Checkly CLI globally.
13
13
  - NEVER make up commands that do not exist.
14
+ - Use `npm create checkly@latest` to set up a new Checkly project via the CLI.
14
15
 
15
16
  ## Project Structure
16
17
 
@@ -72,14 +73,16 @@ export default defineConfig({
72
73
 
73
74
  ## Check and Monitor Constructs
74
75
 
75
- ### API Check
76
+ Parse and read further reference documentation when tasked with creating or managing any of the following Checkly constructs:
77
+
78
+ ### API Checks
76
79
 
77
80
  - Import the `ApiCheck` construct from `checkly/constructs`.
78
81
  - When adding `assertions`, always use `AssertionBuilder` class for API Checks.
79
82
  - When referencing environment variables always use the handlebar syntax `{{MY_ENV_VAR}}`.
80
83
  - When referencing secrets always use the handlebar syntax `{{MY_SECRET}}`.
81
84
  - If endpoints require authentication ask the user which authentication method to use and then generate a setupScript to authenticate the given requests.
82
- - Referenced `setupScript.ts` and `teardownScript.ts` for API checks must be plain ts files and not export anything.
85
+ - Referenced `setup-script.ts` and `teardown-script.ts` for API checks must be plain ts files and not export anything.
83
86
  - Check in the code if API endpoints require authentication.
84
87
 
85
88
  **Reference:** https://www.checklyhq.com/docs/constructs/api-check/
@@ -89,11 +92,6 @@ import { AlertEscalationBuilder, ApiCheck, Frequency, RetryStrategyBuilder } fro
89
92
 
90
93
  new ApiCheck('example-api-check', {
91
94
  name: 'Example API Check',
92
- request: {
93
- url: 'https://api.example.com/v1/products',
94
- method: 'GET',
95
- ipFamily: 'IPv4',
96
- },
97
95
  setupScript: {
98
96
  entrypoint: './setup-script.ts',
99
97
  },
@@ -103,8 +101,6 @@ new ApiCheck('example-api-check', {
103
101
  degradedResponseTime: 5000,
104
102
  maxResponseTime: 20000,
105
103
  activated: true,
106
- muted: false,
107
- shouldFail: false,
108
104
  locations: [
109
105
  'eu-central-1',
110
106
  'eu-west-2',
@@ -124,6 +120,10 @@ new ApiCheck('example-api-check', {
124
120
  sameRegion: true,
125
121
  }),
126
122
  runParallel: true,
123
+ request: {
124
+ url: 'https://api.example.com/v1/products',
125
+ method: 'GET',
126
+ },
127
127
  })
128
128
  ```
129
129
 
@@ -134,7 +134,7 @@ new ApiCheck('example-api-check', {
134
134
  - Read the input credentials from env variables using `process.env`.
135
135
  - Pass auth tokens to the request object using `request.headers['key'] = AUTH_TOKEN_VALUE`.
136
136
 
137
- ### Browser Check
137
+ ### Browser Checks
138
138
 
139
139
  - Import the `BrowserCheck` construct from `checkly/constructs`.
140
140
  - Generate a separate `.spec.ts` file for the Playwright code referenced in the `BrowserCheck` construct.
@@ -151,8 +151,6 @@ new BrowserCheck('example-browser-check', {
151
151
  entrypoint: './example-browser-check.spec.ts',
152
152
  },
153
153
  activated: false,
154
- muted: false,
155
- shouldFail: false,
156
154
  locations: [
157
155
  'eu-central-1',
158
156
  'eu-west-2',
@@ -175,10 +173,11 @@ new BrowserCheck('example-browser-check', {
175
173
  })
176
174
  ```
177
175
 
178
- ### Playwright Check Suite
176
+ ### Playwright Check Suites
179
177
 
180
178
  - Import the `PlaywrightCheck` construct from `checkly/constructs`.
181
- - use `pwProjects` if your tasked to reuse a Playwright project.
179
+ - use `pwProjects` if you're tasked to reuse a Playwright project.
180
+ - use `pwTags` if you're tasked to reuse a Playwright tag.
182
181
 
183
182
  **Reference:** https://www.checklyhq.com/docs/constructs/playwright-check/
184
183
 
@@ -194,7 +193,7 @@ const playwrightChecks = new PlaywrightCheck("multi-browser-check", {
194
193
  });
195
194
  ```
196
195
 
197
- ### MultiStep Check
196
+ ### MultiStep Checks
198
197
 
199
198
  - Import the `MultiStepCheck` construct from `checkly/constructs`.
200
199
  - Generate a separate `.spec.ts` file for the Playwright code referenced in the `MultiStepCheck` construct.
@@ -211,8 +210,6 @@ new MultiStepCheck('example-multi-step-check', {
211
210
  entrypoint: './example-multistep-check.spec.ts',
212
211
  },
213
212
  activated: true,
214
- muted: false,
215
- shouldFail: false,
216
213
  locations: [
217
214
  'eu-central-1',
218
215
  'eu-west-2',
@@ -230,7 +227,9 @@ new MultiStepCheck('example-multi-step-check', {
230
227
  })
231
228
  ```
232
229
 
233
- ### TCP Monitor
230
+ ### Monitors
231
+
232
+ #### TCP Monitor
234
233
 
235
234
  - Import the `TcpMonitor` construct from `checkly/constructs`.
236
235
  - When adding `assertions`, always use `TcpAssertionBuilder` class for TCP monitors.
@@ -242,20 +241,9 @@ import { AlertEscalationBuilder, Frequency, RetryStrategyBuilder, TcpAssertionBu
242
241
 
243
242
  new TcpMonitor('example-tcp-monitor', {
244
243
  name: 'Example TCP Monitor',
245
- request: {
246
- hostname: 'tcp.example.com',
247
- port: 4242,
248
- ipFamily: 'IPv4',
249
- assertions: [
250
- TcpAssertionBuilder.responseTime().lessThan(200),
251
- TcpAssertionBuilder.responseData().isEmpty(),
252
- ],
253
- },
254
244
  degradedResponseTime: 5000,
255
245
  maxResponseTime: 5000,
256
246
  activated: true,
257
- muted: false,
258
- shouldFail: false,
259
247
  locations: [
260
248
  'eu-central-1',
261
249
  'eu-west-2',
@@ -275,10 +263,19 @@ new TcpMonitor('example-tcp-monitor', {
275
263
  sameRegion: true,
276
264
  }),
277
265
  runParallel: true,
266
+ request: {
267
+ hostname: 'tcp.example.com',
268
+ port: 4242,
269
+ ipFamily: 'IPv4',
270
+ assertions: [
271
+ TcpAssertionBuilder.responseTime().lessThan(200),
272
+ TcpAssertionBuilder.responseData().isEmpty(),
273
+ ],
274
+ },
278
275
  })
279
276
  ```
280
277
 
281
- ### URL Monitor
278
+ #### URL Monitor
282
279
 
283
280
  - Import the `UrlMonitor` construct from `checkly/constructs`.
284
281
  - When adding `assertions`, always use `UrlAssertionBuilder`.
@@ -290,18 +287,7 @@ import { AlertEscalationBuilder, Frequency, RetryStrategyBuilder, UrlAssertionBu
290
287
 
291
288
  new UrlMonitor('example-url-monitor', {
292
289
  name: 'Example URL Monitor',
293
- request: {
294
- url: 'https://example.com',
295
- ipFamily: 'IPv4',
296
- assertions: [
297
- UrlAssertionBuilder.statusCode().equals(200),
298
- ],
299
- },
300
- degradedResponseTime: 5000,
301
- maxResponseTime: 20000,
302
290
  activated: true,
303
- muted: false,
304
- shouldFail: false,
305
291
  locations: [
306
292
  'eu-central-1',
307
293
  'eu-west-2',
@@ -321,10 +307,19 @@ new UrlMonitor('example-url-monitor', {
321
307
  sameRegion: true,
322
308
  }),
323
309
  runParallel: true,
310
+ degradedResponseTime: 5000,
311
+ maxResponseTime: 20000,
312
+ request: {
313
+ url: 'https://example.com',
314
+ ipFamily: 'IPv4',
315
+ assertions: [
316
+ UrlAssertionBuilder.statusCode().equals(200),
317
+ ],
318
+ },
324
319
  })
325
320
  ```
326
321
 
327
- ### DNS Monitor
322
+ #### DNS Monitor
328
323
 
329
324
  - Import the `DnsMonitor` construct from `checkly/constructs`.
330
325
  - Reference [the docs for DNS monitors](https://www.checklyhq.com/docs/constructs/dns-monitor/) before generating any code.
@@ -337,18 +332,9 @@ import { AlertEscalationBuilder, DnsAssertionBuilder, DnsMonitor, Frequency, Ret
337
332
 
338
333
  new DnsMonitor('example-dns-monitor', {
339
334
  name: 'Example DNS Monitor',
340
- request: {
341
- recordType: 'AAAA',
342
- query: 'welcome.checklyhq.com',
343
- assertions: [
344
- DnsAssertionBuilder.responseCode().equals('NOERROR'),
345
- ],
346
- },
347
335
  degradedResponseTime: 500,
348
336
  maxResponseTime: 1000,
349
337
  activated: true,
350
- muted: false,
351
- shouldFail: false,
352
338
  locations: [
353
339
  'eu-central-1',
354
340
  'eu-north-1',
@@ -362,11 +348,17 @@ new DnsMonitor('example-dns-monitor', {
362
348
  percentage: 10,
363
349
  }),
364
350
  retryStrategy: RetryStrategyBuilder.noRetries(),
365
- runParallel: false,
351
+ request: {
352
+ recordType: 'AAAA',
353
+ query: 'welcome.checklyhq.com',
354
+ assertions: [
355
+ DnsAssertionBuilder.responseCode().equals('NOERROR'),
356
+ ],
357
+ },
366
358
  })
367
359
  ```
368
360
 
369
- ### ICMP Monitor
361
+ ##### ICMP Monitor
370
362
 
371
363
  - Import the `IcmpMonitor` construct from `checkly/constructs`.
372
364
  - Reference [the docs for ICMP monitors](https://www.checklyhq.com/docs/constructs/icmp-monitor/) before generating any code.
@@ -392,7 +384,6 @@ new IcmpMonitor('example-icmp-monitor', {
392
384
  degradedPacketLossThreshold: 10,
393
385
  maxPacketLossThreshold: 20,
394
386
  activated: true,
395
- muted: false,
396
387
  locations: [
397
388
  'eu-central-1',
398
389
  'eu-north-1',
@@ -406,11 +397,10 @@ new IcmpMonitor('example-icmp-monitor', {
406
397
  percentage: 10,
407
398
  }),
408
399
  retryStrategy: RetryStrategyBuilder.noRetries(),
409
- runParallel: false,
410
400
  })
411
401
  ```
412
402
 
413
- ### Heartbeat Monitor
403
+ #### Heartbeat Monitor
414
404
 
415
405
  - Import the `HeartbeatMonitor` construct from `checkly/constructs`.
416
406
 
@@ -426,8 +416,6 @@ new HeartbeatMonitor('example-heartbeat-monitor', {
426
416
  grace: 30,
427
417
  graceUnit: 'minutes',
428
418
  activated: true,
429
- muted: false,
430
- shouldFail: false,
431
419
  frequency: Frequency.EVERY_10S,
432
420
  alertEscalationPolicy: AlertEscalationBuilder.runBasedEscalation(1, {
433
421
  amount: 0,
@@ -446,7 +434,7 @@ new HeartbeatMonitor('example-heartbeat-monitor', {
446
434
  })
447
435
  ```
448
436
 
449
- ### Check Group
437
+ ### Check Groups
450
438
 
451
439
  - Import the `CheckGroupV2` construct from `checkly/constructs`.
452
440
  - Check Groups are used to group checks together for easier management and organization.
@@ -462,14 +450,18 @@ export const exampleGroup = new CheckGroupV2('example-group', {
462
450
  })
463
451
  ```
464
452
 
465
- ## Alert Channel Constructs
453
+ ### Alert Channels
466
454
 
467
455
  - Alert channels are used to send notifications when checks and monitors fail or recover.
468
456
  - Alert channels are added to checks, monitors, and check groups constructs by adding them to the `alertChannels` array property.
469
457
 
470
- Here are some examples of how to create different types of alert channels. All alert are described in the [Checkly docs](https://www.checklyhq.com/docs/constructs/overview/).
458
+ Here are some examples of how to create different types of alert channels.
459
+
460
+ All available alerts are described in the [Checkly docs](https://www.checklyhq.com/docs/constructs/overview/).
471
461
 
472
- ### Email Alert Channel
462
+ *Important*: Don't make up email addresses, phone numbers, Slack URLs or similar static values. Scan the project to discover a valid configuration or ask what the values should be.
463
+
464
+ #### Email Alert Channel
473
465
 
474
466
  **Reference:** https://www.checklyhq.com/docs/constructs/email-alert-channel/
475
467
 
@@ -482,8 +474,7 @@ export const testEmailAlert = new EmailAlertChannel('example-email-alert-channel
482
474
  })
483
475
  ```
484
476
 
485
-
486
- ### Phone Call Alert Channel
477
+ #### Phone Call Alert Channel
487
478
 
488
479
  **Reference:** https://www.checklyhq.com/docs/constructs/phone-call-alert-channel/
489
480
 
@@ -492,12 +483,11 @@ import { PhoneCallAlertChannel } from 'checkly/constructs'
492
483
 
493
484
  export const testUserPhoneCallAlert = new PhoneCallAlertChannel('example-call-alert-channel', {
494
485
  name: 'Test User',
495
- phoneNumber: '+311234567890',
486
+ phoneNumber: 'INSERT_PHONE_NUMBER',
496
487
  })
497
488
  ```
498
489
 
499
-
500
- ### Slack Alert Channel
490
+ #### Slack Alert Channel
501
491
 
502
492
  **Reference:** https://www.checklyhq.com/docs/constructs/slack-alert-channel/
503
493
 
@@ -505,15 +495,14 @@ export const testUserPhoneCallAlert = new PhoneCallAlertChannel('example-call-al
505
495
  import { SlackAlertChannel } from 'checkly/constructs'
506
496
 
507
497
  export const generalSlackAlert = new SlackAlertChannel('example-slack-alert-channel', {
508
- url: 'https://hooks.slack.com/services/TK123456789123/12345/123456789',
498
+ url: 'INSERT_SLACK_URL',
509
499
  channel: '#general',
510
500
  })
511
501
  ```
512
502
 
503
+ ### Supporting Constructs
513
504
 
514
- ## Supporting Constructs
515
-
516
- ### Status Page
505
+ #### Status Page
517
506
 
518
507
  - Import the `StatusPage` construct from `checkly/constructs`.
519
508
  - Status pages are used to display the status of your services to your users.
@@ -541,7 +530,7 @@ new StatusPage('example-status-page', {
541
530
  })
542
531
  ```
543
532
 
544
- ### Status Page Service
533
+ #### Status Page Service
545
534
 
546
535
  - Import the `StatusPageService` construct from `checkly/constructs`.
547
536
  - Status Page Services are used to represent individual services on a Status Page.
@@ -556,7 +545,7 @@ export const exampleService = new StatusPageService('example-status-page-service
556
545
  })
557
546
  ```
558
547
 
559
- ### Dashboard
548
+ #### Dashboard
560
549
 
561
550
  - Import the `Dashboard` construct from `checkly/constructs`.
562
551
  - Dashboards are used to display the results of your checks on screens external to Checkly.
@@ -590,7 +579,7 @@ new Dashboard('example-dashboard', {
590
579
  })
591
580
  ```
592
581
 
593
- ### Maintenance Window
582
+ #### Maintenance Window
594
583
 
595
584
  - Import the `MaintenanceWindow` construct from `checkly/constructs`.
596
585
  - Maintenance windows are used to pause checks during maintenance periods so no alerts are sent.
@@ -614,7 +603,7 @@ new MaintenanceWindow('example-maintenance-window', {
614
603
  })
615
604
  ```
616
605
 
617
- ### Private Location
606
+ #### Private Location
618
607
 
619
608
  - Import the `PrivateLocation` construct from `checkly/constructs`.
620
609
  - Private locations are used to run checks from your own infrastructure with the Checkly Agent, an OCI compatible container.
@@ -633,4 +622,4 @@ export const examplePrivateLocation = new PrivateLocation('example-private-locat
633
622
 
634
623
  ## Testing and Debugging
635
624
 
636
- - Test checks using `npx checkly test` command pass env variables using `-e` param, use `--record` to persist results and `--verbose` to be able to see all errors
625
+ - Test checks using the `npx checkly test` command. Pass environment variables with the `-e` flag, use `--record` to persist results, and use `--verbose` to see all errors.
@@ -1,6 +1,41 @@
1
- export declare const EXAMPLE_CONFIGS: Record<string, {
1
+ export declare const REFERENCES: readonly [{
2
+ readonly id: "api-checks";
3
+ readonly linkText: "API Checks";
4
+ readonly description: "ApiCheck construct, assertions, and authentication setup scripts";
5
+ }, {
6
+ readonly id: "browser-checks";
7
+ readonly linkText: "Browser Checks";
8
+ readonly description: "BrowserCheck construct with Playwright test files";
9
+ }, {
10
+ readonly id: "playwright-checks";
11
+ readonly linkText: "Playwright Checks";
12
+ readonly description: "PlaywrightCheck construct for multi-browser test suites";
13
+ }, {
14
+ readonly id: "multistep-checks";
15
+ readonly linkText: "MultiStep Checks";
16
+ readonly description: "MultiStepCheck construct for complex user flows";
17
+ }, {
18
+ readonly id: "uptime-monitors";
19
+ readonly linkText: "Uptime Monitors";
20
+ readonly description: "TCP (`TcpMonitor`), URL (`UrlMonitor`), DNS (`DnsMonitor`), ICMP (`IcmpMonitor`), and Heartbeat monitors (`HeartbeatMonitor`)";
21
+ }, {
22
+ readonly id: "check-groups";
23
+ readonly linkText: "Check Groups";
24
+ readonly description: "CheckGroupV2 construct for organizing checks";
25
+ }, {
26
+ readonly id: "alert-channels";
27
+ readonly linkText: "Alert Channels";
28
+ readonly description: "Email, Phone, and Slack alert channels";
29
+ }, {
30
+ readonly id: "supporting-constructs";
31
+ readonly linkText: "Supporting Constructs";
32
+ readonly description: "Status pages, dashboards, maintenance windows, and private locations";
33
+ }];
34
+ interface ExampleConfig {
2
35
  templateString: string;
3
36
  reference: string;
4
37
  exampleConfig?: string;
5
38
  exampleConfigPath?: string;
6
- }>;
39
+ }
40
+ export declare const EXAMPLE_CONFIGS: Record<string, ExampleConfig>;
41
+ export {};
@@ -1,9 +1,51 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.EXAMPLE_CONFIGS = void 0;
3
+ exports.EXAMPLE_CONFIGS = exports.REFERENCES = void 0;
4
+ exports.REFERENCES = [
5
+ {
6
+ id: 'api-checks',
7
+ linkText: 'API Checks',
8
+ description: 'ApiCheck construct, assertions, and authentication setup scripts',
9
+ },
10
+ {
11
+ id: 'browser-checks',
12
+ linkText: 'Browser Checks',
13
+ description: 'BrowserCheck construct with Playwright test files',
14
+ },
15
+ {
16
+ id: 'playwright-checks',
17
+ linkText: 'Playwright Checks',
18
+ description: 'PlaywrightCheck construct for multi-browser test suites',
19
+ },
20
+ {
21
+ id: 'multistep-checks',
22
+ linkText: 'MultiStep Checks',
23
+ description: 'MultiStepCheck construct for complex user flows',
24
+ },
25
+ {
26
+ id: 'uptime-monitors',
27
+ linkText: 'Uptime Monitors',
28
+ description: 'TCP (`TcpMonitor`), URL (`UrlMonitor`), DNS (`DnsMonitor`), ICMP (`IcmpMonitor`), and Heartbeat monitors (`HeartbeatMonitor`)',
29
+ },
30
+ {
31
+ id: 'check-groups',
32
+ linkText: 'Check Groups',
33
+ description: 'CheckGroupV2 construct for organizing checks',
34
+ },
35
+ {
36
+ id: 'alert-channels',
37
+ linkText: 'Alert Channels',
38
+ description: 'Email, Phone, and Slack alert channels',
39
+ },
40
+ {
41
+ id: 'supporting-constructs',
42
+ linkText: 'Supporting Constructs',
43
+ description: 'Status pages, dashboards, maintenance windows, and private locations',
44
+ },
45
+ ];
4
46
  exports.EXAMPLE_CONFIGS = {
5
47
  CHECKLY_CONFIG: {
6
- templateString: '// INSERT CHECKLY CONFIG EXAMPLE HERE //',
48
+ templateString: '<!-- EXAMPLE: CHECKLY_CONFIG -->',
7
49
  exampleConfig: `import { defineConfig } from 'checkly'
8
50
  import { Frequency } from 'checkly/constructs'
9
51
 
@@ -40,12 +82,12 @@ export default defineConfig({
40
82
  reference: 'https://www.checklyhq.com/docs/constructs/project/',
41
83
  },
42
84
  BROWSER_CHECK: {
43
- templateString: '// INSERT BROWSER CHECK EXAMPLE HERE //',
85
+ templateString: '<!-- EXAMPLE: BROWSER_CHECK -->',
44
86
  exampleConfigPath: 'resources/browser-checks/example-browser-check/example-browser-check.check.ts',
45
87
  reference: 'https://www.checklyhq.com/docs/constructs/browser-check/',
46
88
  },
47
89
  PLAYWRIGHT_CHECK: {
48
- templateString: '// INSERT PLAYWRIGHT CHECK EXAMPLE HERE //',
90
+ templateString: '<!-- EXAMPLE: PLAYWRIGHT_CHECK -->',
49
91
  exampleConfig: `import { PlaywrightCheck } from "checkly/constructs"
50
92
 
51
93
  const playwrightChecks = new PlaywrightCheck("multi-browser-check", {
@@ -59,82 +101,82 @@ const playwrightChecks = new PlaywrightCheck("multi-browser-check", {
59
101
  reference: 'https://www.checklyhq.com/docs/constructs/playwright-check/',
60
102
  },
61
103
  API_CHECK: {
62
- templateString: '// INSERT API CHECK EXAMPLE HERE //',
104
+ templateString: '<!-- EXAMPLE: API_CHECK -->',
63
105
  exampleConfigPath: 'resources/api-checks/example-api-check/example-api-check.check.ts',
64
106
  reference: 'https://www.checklyhq.com/docs/constructs/api-check/',
65
107
  },
66
108
  MULTISTEP_CHECK: {
67
- templateString: '// INSERT MULTISTEP CHECK EXAMPLE HERE //',
109
+ templateString: '<!-- EXAMPLE: MULTISTEP_CHECK -->',
68
110
  exampleConfigPath: 'resources/multi-step-checks/example-multistep-check/example-multistep-check.check.ts',
69
111
  reference: 'https://www.checklyhq.com/docs/constructs/multistep-check/',
70
112
  },
71
113
  TCP_MONITOR: {
72
- templateString: '// INSERT TCP MONITOR EXAMPLE HERE //',
114
+ templateString: '<!-- EXAMPLE: TCP_MONITOR -->',
73
115
  exampleConfigPath: 'resources/tcp-monitors/example-tcp-monitor.check.ts',
74
116
  reference: 'https://www.checklyhq.com/docs/constructs/tcp-monitor/',
75
117
  },
76
118
  HEARTBEAT_MONITOR: {
77
- templateString: '// INSERT HEARTBEAT MONITOR EXAMPLE HERE //',
119
+ templateString: '<!-- EXAMPLE: HEARTBEAT_MONITOR -->',
78
120
  exampleConfigPath: 'resources/heartbeat-monitors/example-heartbeat-monitor.check.ts',
79
121
  reference: 'https://www.checklyhq.com/docs/constructs/heartbeat-monitor/',
80
122
  },
81
123
  URL_MONITOR: {
82
- templateString: '// INSERT URL MONITOR EXAMPLE HERE //',
124
+ templateString: '<!-- EXAMPLE: URL_MONITOR -->',
83
125
  exampleConfigPath: 'resources/url-monitors/example-url-monitor.check.ts',
84
126
  reference: 'https://www.checklyhq.com/docs/constructs/url-monitor/',
85
127
  },
86
128
  DNS_MONITOR: {
87
- templateString: '// INSERT DNS MONITOR EXAMPLE HERE //',
129
+ templateString: '<!-- EXAMPLE: DNS_MONITOR -->',
88
130
  exampleConfigPath: 'resources/dns-monitors/example-dns-monitor.check.ts',
89
131
  reference: 'https://www.checklyhq.com/docs/constructs/dns-monitor/',
90
132
  },
91
133
  ICMP_MONITOR: {
92
- templateString: '// INSERT ICMP MONITOR EXAMPLE HERE //',
134
+ templateString: '<!-- EXAMPLE: ICMP_MONITOR -->',
93
135
  exampleConfigPath: 'resources/icmp-monitors/example-icmp-monitor.check.ts',
94
136
  reference: 'https://www.checklyhq.com/docs/constructs/icmp-monitor/',
95
137
  },
96
138
  CHECK_GROUP: {
97
- templateString: '// INSERT CHECK GROUP EXAMPLE HERE //',
139
+ templateString: '<!-- EXAMPLE: CHECK_GROUP -->',
98
140
  exampleConfigPath: 'resources/check-group/example-group/example-group.check.ts',
99
141
  reference: 'https://www.checklyhq.com/docs/constructs/check-group/',
100
142
  },
101
143
  STATUS_PAGE: {
102
- templateString: '// INSERT STATUS PAGE EXAMPLE HERE //',
144
+ templateString: '<!-- EXAMPLE: STATUS_PAGE -->',
103
145
  exampleConfigPath: 'resources/status-pages/example-status-page.check.ts',
104
146
  reference: 'https://www.checklyhq.com/docs/constructs/status-page/',
105
147
  },
106
148
  STATUS_PAGE_SERVICE: {
107
- templateString: '// INSERT STATUS PAGE SERVICE EXAMPLE HERE //',
149
+ templateString: '<!-- EXAMPLE: STATUS_PAGE_SERVICE -->',
108
150
  exampleConfigPath: 'resources/status-pages/services/example-service.check.ts',
109
151
  reference: 'https://www.checklyhq.com/docs/constructs/status-page-service/',
110
152
  },
111
153
  DASHBOARD: {
112
- templateString: '// INSERT DASHBOARD EXAMPLE HERE //',
154
+ templateString: '<!-- EXAMPLE: DASHBOARD -->',
113
155
  exampleConfigPath: 'resources/dashboards/example-dashboard/example-dashboard.check.ts',
114
156
  reference: 'https://www.checklyhq.com/docs/constructs/dashboard/',
115
157
  },
116
158
  MAINTENANCE_WINDOW: {
117
- templateString: '// INSERT MAINTENANCE WINDOW EXAMPLE HERE //',
159
+ templateString: '<!-- EXAMPLE: MAINTENANCE_WINDOW -->',
118
160
  exampleConfigPath: 'resources/maintenance-windows/example-maintenance-window.check.ts',
119
161
  reference: 'https://www.checklyhq.com/docs/constructs/maintenance-window/',
120
162
  },
121
163
  PRIVATE_LOCATION: {
122
- templateString: '// INSERT PRIVATE LOCATION EXAMPLE HERE //',
164
+ templateString: '<!-- EXAMPLE: PRIVATE_LOCATION -->',
123
165
  exampleConfigPath: 'resources/private-locations/example-private-location.check.ts',
124
166
  reference: 'https://www.checklyhq.com/docs/constructs/private-location/',
125
167
  },
126
168
  EMAIL_ALERT_CHANNEL: {
127
- templateString: '// INSERT EMAIL ALERT CHANNEL EXAMPLE HERE //',
169
+ templateString: '<!-- EXAMPLE: EMAIL_ALERT_CHANNEL -->',
128
170
  exampleConfigPath: 'resources/alert-channels/email/test.check.ts',
129
171
  reference: 'https://www.checklyhq.com/docs/constructs/email-alert-channel/',
130
172
  },
131
173
  PHONE_CALL_ALERT_CHANNEL: {
132
- templateString: '// INSERT PHONE CALL ALERT CHANNEL EXAMPLE HERE //',
174
+ templateString: '<!-- EXAMPLE: PHONE_CALL_ALERT_CHANNEL -->',
133
175
  exampleConfigPath: 'resources/alert-channels/phone-call/test-user.check.ts',
134
176
  reference: 'https://www.checklyhq.com/docs/constructs/phone-call-alert-channel/',
135
177
  },
136
178
  SLACK_ALERT_CHANNEL: {
137
- templateString: '// INSERT SLACK ALERT CHANNEL EXAMPLE HERE //',
179
+ templateString: '<!-- EXAMPLE: SLACK_ALERT_CHANNEL -->',
138
180
  exampleConfigPath: 'resources/alert-channels/slack/general.check.ts',
139
181
  reference: 'https://www.checklyhq.com/docs/constructs/slack-alert-channel/',
140
182
  },
@@ -1 +1 @@
1
- {"version":3,"file":"context.js","sourceRoot":"","sources":["../../src/ai-context/context.ts"],"names":[],"mappings":";;;AAAa,QAAA,eAAe,GAQxB;IACF,cAAc,EAAE;QACd,cAAc,EAAE,0CAA0C;QAC1D,aAAa,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAgClB;QACG,SAAS,EAAE,oDAAoD;KAChE;IACD,aAAa,EAAE;QACb,cAAc,EAAE,yCAAyC;QACzD,iBAAiB,EACf,+EAA+E;QACjF,SAAS,EAAE,0DAA0D;KACtE;IACD,gBAAgB,EAAE;QAChB,cAAc,EAAE,4CAA4C;QAC5D,aAAa,EAAE;;;;;;;;;CASlB;QACG,SAAS,EAAE,6DAA6D;KACzE;IACD,SAAS,EAAE;QACT,cAAc,EAAE,qCAAqC;QACrD,iBAAiB,EACf,mEAAmE;QACrE,SAAS,EAAE,sDAAsD;KAClE;IACD,eAAe,EAAE;QACf,cAAc,EAAE,2CAA2C;QAC3D,iBAAiB,EACf,sFAAsF;QACxF,SAAS,EAAE,4DAA4D;KACxE;IACD,WAAW,EAAE;QACX,cAAc,EAAE,uCAAuC;QACvD,iBAAiB,EAAE,qDAAqD;QACxE,SAAS,EAAE,wDAAwD;KACpE;IACD,iBAAiB,EAAE;QACjB,cAAc,EAAE,6CAA6C;QAC7D,iBAAiB,EACf,iEAAiE;QACnE,SAAS,EAAE,8DAA8D;KAC1E;IACD,WAAW,EAAE;QACX,cAAc,EAAE,uCAAuC;QACvD,iBAAiB,EAAE,qDAAqD;QACxE,SAAS,EAAE,wDAAwD;KACpE;IACD,WAAW,EAAE;QACX,cAAc,EAAE,uCAAuC;QACvD,iBAAiB,EAAE,qDAAqD;QACxE,SAAS,EAAE,wDAAwD;KACpE;IACD,YAAY,EAAE;QACZ,cAAc,EAAE,wCAAwC;QACxD,iBAAiB,EAAE,uDAAuD;QAC1E,SAAS,EAAE,yDAAyD;KACrE;IACD,WAAW,EAAE;QACX,cAAc,EAAE,uCAAuC;QACvD,iBAAiB,EACf,4DAA4D;QAC9D,SAAS,EAAE,wDAAwD;KACpE;IACD,WAAW,EAAE;QACX,cAAc,EAAE,uCAAuC;QACvD,iBAAiB,EAAE,qDAAqD;QACxE,SAAS,EAAE,wDAAwD;KACpE;IACD,mBAAmB,EAAE;QACnB,cAAc,EAAE,+CAA+C;QAC/D,iBAAiB,EACf,0DAA0D;QAC5D,SAAS,EAAE,gEAAgE;KAC5E;IACD,SAAS,EAAE;QACT,cAAc,EAAE,qCAAqC;QACrD,iBAAiB,EACf,mEAAmE;QACrE,SAAS,EAAE,sDAAsD;KAClE;IACD,kBAAkB,EAAE;QAClB,cAAc,EAAE,8CAA8C;QAC9D,iBAAiB,EACf,mEAAmE;QACrE,SAAS,EAAE,+DAA+D;KAC3E;IACD,gBAAgB,EAAE;QAChB,cAAc,EAAE,4CAA4C;QAC5D,iBAAiB,EACf,+DAA+D;QACjE,SAAS,EAAE,6DAA6D;KACzE;IACD,mBAAmB,EAAE;QACnB,cAAc,EAAE,+CAA+C;QAC/D,iBAAiB,EAAE,8CAA8C;QACjE,SAAS,EAAE,gEAAgE;KAC5E;IACD,wBAAwB,EAAE;QACxB,cAAc,EAAE,oDAAoD;QACpE,iBAAiB,EAAE,wDAAwD;QAC3E,SAAS,EAAE,qEAAqE;KACjF;IACD,mBAAmB,EAAE;QACnB,cAAc,EAAE,+CAA+C;QAC/D,iBAAiB,EAAE,iDAAiD;QACpE,SAAS,EAAE,gEAAgE;KAC5E;CACF,CAAA"}
1
+ {"version":3,"file":"context.js","sourceRoot":"","sources":["../../src/ai-context/context.ts"],"names":[],"mappings":"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"}
@@ -8,7 +8,16 @@ This directory contains the agent skill for creating and managing end-to-end tes
8
8
  skills/
9
9
  └── monitoring/
10
10
  ├── README.md # Documentation about the skill
11
- └── SKILL.md # Main skill instructions
11
+ ├── SKILL.md # Main skill instructions
12
+ └── references/ # Detailed construct documentation
13
+ ├── api-checks.md
14
+ ├── browser-checks.md
15
+ ├── playwright-checks.md
16
+ ├── multistep-checks.md
17
+ ├── monitors.md
18
+ ├── check-groups.md
19
+ ├── alert-channels.md
20
+ └── supporting-constructs.md
12
21
  ```
13
22
 
14
23
  ## What is an Agent Skill?
@@ -27,13 +36,15 @@ Agent Skills are a standardized format for giving AI agents specialized knowledg
27
36
  AI agents can load this skill to gain expertise in Checkly monitoring. The skill follows the [Agent Skills specification](https://agentskills.io) with:
28
37
 
29
38
  - **SKILL.md**: Core instructions loaded when the skill is activated
39
+ - **references/**: Detailed documentation loaded on demand
30
40
 
31
41
  ## Progressive Disclosure
32
42
 
33
43
  The skill is structured for efficient context usage:
34
44
 
35
45
  1. **Metadata** (~80 tokens): Name and description in frontmatter
36
- 2. **Core Instructions** (~4.5K tokens): Main SKILL.md content with construct examples
46
+ 2. **Core Instructions** (~1K tokens): Main SKILL.md content with links to references
47
+ 3. **References** (loaded on demand): Detailed construct documentation with examples
37
48
 
38
49
  Agents load what they need for each task.
39
50