checkly 7.7.0 → 7.8.0-prerelease-9bdcdb2

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 (119) hide show
  1. package/dist/ai-context/checkly.rules.md +36 -32
  2. package/dist/ai-context/onboarding-boilerplate/__checks__/api.check.ts +22 -0
  3. package/dist/ai-context/onboarding-boilerplate/__checks__/heartbeat.check.ts +16 -0
  4. package/dist/ai-context/onboarding-boilerplate/__checks__/homepage.spec.ts +12 -0
  5. package/dist/ai-context/onboarding-boilerplate/__checks__/url.check.ts +18 -0
  6. package/dist/ai-context/onboarding-boilerplate/checkly-config-template.ts +50 -0
  7. package/dist/ai-context/onboarding-prompts/base.md +1 -0
  8. package/dist/ai-context/onboarding-prompts/playwright.md +1 -0
  9. package/dist/ai-context/public-skills/checkly/SKILL.md +1 -1
  10. package/dist/ai-context/skills-command/references/configure-api-checks.md +16 -7
  11. package/dist/ai-context/skills-command/references/configure-browser-checks.md +3 -6
  12. package/dist/ai-context/skills-command/references/configure-dns-monitors.md +1 -0
  13. package/dist/ai-context/skills-command/references/configure-heartbeat-monitors.md +1 -6
  14. package/dist/ai-context/skills-command/references/configure-icmp-monitors.md +1 -0
  15. package/dist/ai-context/skills-command/references/configure-tcp-monitors.md +2 -6
  16. package/dist/ai-context/skills-command/references/configure-url-monitors.md +3 -6
  17. package/dist/ai-context/skills-command/references/configure.md +9 -1
  18. package/dist/ai-context/skills-command/references/initialize.md +8 -8
  19. package/dist/ai-context/skills-command/references/manage.md +23 -0
  20. package/dist/commands/authCommand.d.ts +2 -1
  21. package/dist/commands/authCommand.js +5 -7
  22. package/dist/commands/authCommand.js.map +1 -1
  23. package/dist/commands/baseCommand.js +0 -1
  24. package/dist/commands/baseCommand.js.map +1 -1
  25. package/dist/commands/checks/get.js +19 -2
  26. package/dist/commands/checks/get.js.map +1 -1
  27. package/dist/commands/deploy.js +21 -17
  28. package/dist/commands/deploy.js.map +1 -1
  29. package/dist/commands/destroy.js +34 -18
  30. package/dist/commands/destroy.js.map +1 -1
  31. package/dist/commands/env/rm.js +16 -21
  32. package/dist/commands/env/rm.js.map +1 -1
  33. package/dist/commands/init.d.ts +23 -0
  34. package/dist/commands/init.js +278 -0
  35. package/dist/commands/init.js.map +1 -0
  36. package/dist/commands/pw-test.d.ts +1 -0
  37. package/dist/commands/pw-test.js +6 -2
  38. package/dist/commands/pw-test.js.map +1 -1
  39. package/dist/commands/rca/get.d.ts +15 -0
  40. package/dist/commands/rca/get.js +95 -0
  41. package/dist/commands/rca/get.js.map +1 -0
  42. package/dist/commands/rca/run.d.ts +13 -0
  43. package/dist/commands/rca/run.js +102 -0
  44. package/dist/commands/rca/run.js.map +1 -0
  45. package/dist/commands/skills/install.d.ts +6 -0
  46. package/dist/commands/skills/install.js +82 -48
  47. package/dist/commands/skills/install.js.map +1 -1
  48. package/dist/commands/test.d.ts +1 -0
  49. package/dist/commands/test.js +6 -2
  50. package/dist/commands/test.js.map +1 -1
  51. package/dist/commands/trigger.d.ts +1 -0
  52. package/dist/commands/trigger.js +6 -2
  53. package/dist/commands/trigger.js.map +1 -1
  54. package/dist/formatters/checks.js +19 -1
  55. package/dist/formatters/checks.js.map +1 -1
  56. package/dist/formatters/rca.d.ts +36 -0
  57. package/dist/formatters/rca.js +149 -0
  58. package/dist/formatters/rca.js.map +1 -0
  59. package/dist/help/help-extension.js +22 -0
  60. package/dist/help/help-extension.js.map +1 -1
  61. package/dist/help/skills.d.ts +7 -0
  62. package/dist/help/skills.js +23 -0
  63. package/dist/help/skills.js.map +1 -0
  64. package/dist/helpers/cli-mode.d.ts +1 -0
  65. package/dist/helpers/cli-mode.js +13 -1
  66. package/dist/helpers/cli-mode.js.map +1 -1
  67. package/dist/helpers/command-preview.js +5 -0
  68. package/dist/helpers/command-preview.js.map +1 -1
  69. package/dist/helpers/onboarding/boilerplate.d.ts +15 -0
  70. package/dist/helpers/onboarding/boilerplate.js +176 -0
  71. package/dist/helpers/onboarding/boilerplate.js.map +1 -0
  72. package/dist/helpers/onboarding/clipboard.d.ts +1 -0
  73. package/dist/helpers/onboarding/clipboard.js +32 -0
  74. package/dist/helpers/onboarding/clipboard.js.map +1 -0
  75. package/dist/helpers/onboarding/detect-project.d.ts +10 -0
  76. package/dist/helpers/onboarding/detect-project.js +35 -0
  77. package/dist/helpers/onboarding/detect-project.js.map +1 -0
  78. package/dist/helpers/onboarding/index.d.ts +7 -0
  79. package/dist/helpers/onboarding/index.js +26 -0
  80. package/dist/helpers/onboarding/index.js.map +1 -0
  81. package/dist/helpers/onboarding/messages.d.ts +5 -0
  82. package/dist/helpers/onboarding/messages.js +152 -0
  83. package/dist/helpers/onboarding/messages.js.map +1 -0
  84. package/dist/helpers/onboarding/prompt-display.d.ts +1 -0
  85. package/dist/helpers/onboarding/prompt-display.js +83 -0
  86. package/dist/helpers/onboarding/prompt-display.js.map +1 -0
  87. package/dist/helpers/onboarding/prompts-helpers.d.ts +2 -0
  88. package/dist/helpers/onboarding/prompts-helpers.js +19 -0
  89. package/dist/helpers/onboarding/prompts-helpers.js.map +1 -0
  90. package/dist/helpers/onboarding/skill-install.d.ts +10 -0
  91. package/dist/helpers/onboarding/skill-install.js +93 -0
  92. package/dist/helpers/onboarding/skill-install.js.map +1 -0
  93. package/dist/helpers/onboarding/template-prompt.d.ts +2 -0
  94. package/dist/helpers/onboarding/template-prompt.js +16 -0
  95. package/dist/helpers/onboarding/template-prompt.js.map +1 -0
  96. package/dist/rest/api.d.ts +2 -0
  97. package/dist/rest/api.js +3 -1
  98. package/dist/rest/api.js.map +1 -1
  99. package/dist/rest/error-groups.d.ts +31 -0
  100. package/dist/rest/error-groups.js.map +1 -1
  101. package/dist/rest/rca.d.ts +13 -0
  102. package/dist/rest/rca.js +27 -0
  103. package/dist/rest/rca.js.map +1 -0
  104. package/dist/rest/test-sessions.d.ts +2 -0
  105. package/dist/rest/test-sessions.js.map +1 -1
  106. package/dist/services/check-parser/package-files/package-manager.d.ts +2 -0
  107. package/dist/services/check-parser/package-files/package-manager.js +8 -6
  108. package/dist/services/check-parser/package-files/package-manager.js.map +1 -1
  109. package/dist/services/test-runner.d.ts +2 -1
  110. package/dist/services/test-runner.js +4 -1
  111. package/dist/services/test-runner.js.map +1 -1
  112. package/dist/services/trigger-runner.d.ts +2 -1
  113. package/dist/services/trigger-runner.js +4 -1
  114. package/dist/services/trigger-runner.js.map +1 -1
  115. package/dist/services/util.js +1 -1
  116. package/dist/services/util.js.map +1 -1
  117. package/dist/tsconfig.tsbuildinfo +1 -1
  118. package/oclif.manifest.json +309 -141
  119. package/package.json +4 -1
@@ -0,0 +1,149 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.transformErrorGroupForJson = exports.formatRcaCompleted = exports.formatRcaPending = exports.formatRcaHint = exports.formatRcaDetail = void 0;
7
+ const chalk_1 = __importDefault(require("chalk"));
8
+ const render_1 = require("./render");
9
+ function label(text, width = 16) {
10
+ return chalk_1.default.dim(text.padEnd(width));
11
+ }
12
+ function formatRcaDetail(rca, format) {
13
+ if (format === 'md') {
14
+ return formatRcaMd(rca);
15
+ }
16
+ return formatRcaTerminal(rca);
17
+ }
18
+ exports.formatRcaDetail = formatRcaDetail;
19
+ function formatRcaTerminal(rca) {
20
+ const a = rca.analysis;
21
+ const lines = [];
22
+ lines.push((0, render_1.heading)('ROOT CAUSE ANALYSIS', 1, 'terminal'));
23
+ lines.push('');
24
+ lines.push(`${label('Classification:')}${chalk_1.default.cyan(a.classification)}`);
25
+ lines.push(`${label('Root cause:')}${a.rootCause}`);
26
+ lines.push(`${label('User impact:')}${a.userImpact}`);
27
+ if (a.codeFix) {
28
+ lines.push(`${label('Code fix:')}${a.codeFix}`);
29
+ }
30
+ if (a.evidence && a.evidence.length > 0) {
31
+ lines.push('');
32
+ lines.push(` ${(0, render_1.heading)('EVIDENCE', 2, 'terminal')}`);
33
+ for (const e of a.evidence) {
34
+ const artifacts = e.artifacts.map(ar => `${ar.name} (${ar.type})`).join(', ');
35
+ lines.push(` ${chalk_1.default.dim('·')} ${chalk_1.default.bold(artifacts)} — ${e.description}`);
36
+ }
37
+ }
38
+ if (a.referenceLinks && a.referenceLinks.length > 0) {
39
+ lines.push('');
40
+ lines.push(` ${(0, render_1.heading)('REFERENCES', 2, 'terminal')}`);
41
+ for (const ref of a.referenceLinks) {
42
+ lines.push(` ${chalk_1.default.dim('·')} ${ref.title} ${chalk_1.default.dim(ref.url)}`);
43
+ }
44
+ }
45
+ return lines.join('\n');
46
+ }
47
+ function formatRcaMd(rca) {
48
+ const a = rca.analysis;
49
+ const lines = [];
50
+ lines.push('## Root Cause Analysis');
51
+ lines.push('');
52
+ lines.push(`**Classification:** ${a.classification}`);
53
+ lines.push('');
54
+ lines.push(`**Root Cause:** ${a.rootCause}`);
55
+ lines.push('');
56
+ lines.push(`**User Impact:** ${a.userImpact}`);
57
+ if (a.codeFix) {
58
+ lines.push('');
59
+ lines.push(`**Code Fix:** ${a.codeFix}`);
60
+ }
61
+ if (a.evidence && a.evidence.length > 0) {
62
+ lines.push('');
63
+ lines.push('### Evidence');
64
+ for (const e of a.evidence) {
65
+ const artifacts = e.artifacts.map(ar => `${ar.name} (${ar.type})`).join(', ');
66
+ lines.push(`- **${artifacts}** — ${e.description}`);
67
+ }
68
+ }
69
+ if (a.referenceLinks && a.referenceLinks.length > 0) {
70
+ lines.push('');
71
+ lines.push('### References');
72
+ for (const ref of a.referenceLinks) {
73
+ lines.push(`- [${ref.title}](${ref.url})`);
74
+ }
75
+ }
76
+ return lines.join('\n');
77
+ }
78
+ function formatRcaHint(count, format) {
79
+ if (count <= 1)
80
+ return '';
81
+ const more = count - 1;
82
+ const text = `(${more} more ${more === 1 ? 'analysis' : 'analyses'} available)`;
83
+ return format === 'terminal' ? chalk_1.default.dim(text) : `*${text}*`;
84
+ }
85
+ exports.formatRcaHint = formatRcaHint;
86
+ function formatRcaPending(info, format) {
87
+ if (format === 'json') {
88
+ return JSON.stringify({
89
+ id: info.rcaId,
90
+ status: 'pending',
91
+ errorGroupId: info.errorGroupId,
92
+ }, null, 2);
93
+ }
94
+ if (format === 'md') {
95
+ return [
96
+ '# Root Cause Analysis',
97
+ '',
98
+ '| Field | Value |',
99
+ '| --- | --- |',
100
+ `| RCA ID | ${info.rcaId} |`,
101
+ `| Error group | ${info.errorGroupId} |`,
102
+ '| Status | pending |',
103
+ ].join('\n');
104
+ }
105
+ const lines = [];
106
+ lines.push(chalk_1.default.bold('Root cause analysis triggered.'));
107
+ lines.push('');
108
+ lines.push(`${label('RCA ID:')}${info.rcaId}`);
109
+ lines.push(`${label('Error group:')}${info.errorGroupId}`);
110
+ lines.push(`${label('Status:')}${chalk_1.default.yellow('pending')}`);
111
+ lines.push('');
112
+ lines.push(` ${chalk_1.default.dim('Watch progress:')} checkly rca get ${info.rcaId} --watch`);
113
+ lines.push(` ${chalk_1.default.dim('View result:')} checkly checks get ${info.checkId} --error-group ${info.errorGroupId}`);
114
+ return lines.join('\n');
115
+ }
116
+ exports.formatRcaPending = formatRcaPending;
117
+ function formatRcaCompleted(rca, format) {
118
+ if (format === 'json') {
119
+ return JSON.stringify(rca, null, 2);
120
+ }
121
+ return formatRcaDetail(rca, format);
122
+ }
123
+ exports.formatRcaCompleted = formatRcaCompleted;
124
+ function transformErrorGroupForJson(errorGroup) {
125
+ const { rootCauseAnalyses, ...rest } = errorGroup;
126
+ const rcas = rootCauseAnalyses ?? [];
127
+ const latest = rcas[0] ?? null;
128
+ return {
129
+ ...rest,
130
+ latestRootCauseAnalysis: latest
131
+ ? {
132
+ id: latest.id,
133
+ classification: latest.analysis.classification,
134
+ rootCause: latest.analysis.rootCause,
135
+ userImpact: latest.analysis.userImpact,
136
+ codeFix: latest.analysis.codeFix,
137
+ evidence: latest.analysis.evidence,
138
+ referenceLinks: latest.analysis.referenceLinks,
139
+ provider: latest.provider,
140
+ model: latest.model,
141
+ durationMs: latest.durationMs,
142
+ created_at: latest.created_at,
143
+ }
144
+ : null,
145
+ rootCauseAnalysisCount: rcas.length,
146
+ };
147
+ }
148
+ exports.transformErrorGroupForJson = transformErrorGroupForJson;
149
+ //# sourceMappingURL=rca.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rca.js","sourceRoot":"","sources":["../../src/formatters/rca.ts"],"names":[],"mappings":"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"}
@@ -3,8 +3,11 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
+ const fs_1 = require("fs");
7
+ const path_1 = require("path");
6
8
  const core_1 = require("@oclif/core");
7
9
  const examples_1 = __importDefault(require("./examples"));
10
+ const skills_1 = require("./skills");
8
11
  class ChecklyHelpClass extends core_1.Help {
9
12
  formatAllCommands(commands, topics) {
10
13
  if (commands.length === 0)
@@ -52,6 +55,18 @@ class ChecklyHelpClass extends core_1.Help {
52
55
  ? `${this.config.bin} is deprecated`
53
56
  : `${this.config.bin} is in ${state}.\n`);
54
57
  }
58
+ // Nudge when no Checkly project is detected
59
+ const cwd = process.cwd();
60
+ const hasConfig = ['checkly.config.ts', 'checkly.config.js', 'checkly.config.mts', 'checkly.config.mjs']
61
+ .some(name => (0, fs_1.existsSync)((0, path_1.join)(cwd, name)));
62
+ if (!hasConfig) {
63
+ this.log('');
64
+ this.log('No Checkly project detected. Get started with:');
65
+ this.log('');
66
+ this.log(' npx checkly init Set up Checkly in this project');
67
+ this.log(' npx checkly skills install Install the AI agent skill');
68
+ this.log('');
69
+ }
55
70
  this.log(this.formatRoot());
56
71
  this.log('');
57
72
  if (this.sortedCommands.length > 0) {
@@ -62,6 +77,13 @@ class ChecklyHelpClass extends core_1.Help {
62
77
  CHECKLY_ACCOUNT_ID Checkly account ID.
63
78
  CHECKLY_API_KEY Checkly User API Key.
64
79
  `));
80
+ const skillsCommands = this.renderList(skills_1.skills.map(s => [s.command, s.description]), {
81
+ spacer: '\n',
82
+ stripAnsi: this.opts.stripAnsi,
83
+ indentation: 2,
84
+ });
85
+ this.log(this.section('DOCS & AGENT SKILLS', skills_1.skillsDescription + '\n' + skillsCommands));
86
+ this.log('');
65
87
  const examplesString = examples_1.default.reduce((accumulator, example) => {
66
88
  return accumulator + `${example.description}\n\n${this.indent('$ ' + example.command)}\n\n`;
67
89
  }, '');
@@ -1 +1 @@
1
- {"version":3,"file":"help-extension.js","sourceRoot":"","sources":["../../src/help/help-extension.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"help-extension.js","sourceRoot":"","sources":["../../src/help/help-extension.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ type Skill = {
2
+ command: string;
3
+ description: string;
4
+ };
5
+ export declare const skillsDescription = "The CLI provides product documentation and agent workflows via the `npx checkly skills` command.\n";
6
+ export declare const skills: Array<Skill>;
7
+ export {};
@@ -0,0 +1,23 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.skills = exports.skillsDescription = void 0;
4
+ exports.skillsDescription = 'The CLI provides product documentation and agent workflows via the `npx checkly skills` command.\n';
5
+ exports.skills = [
6
+ {
7
+ command: 'npx checkly skills install',
8
+ description: 'Install the Checkly agent skill into your project.',
9
+ },
10
+ {
11
+ command: 'npx checkly skills',
12
+ description: 'Show available documentation and workflows.',
13
+ },
14
+ {
15
+ command: 'npx checkly skills configure',
16
+ description: 'Show general configuration reference.',
17
+ },
18
+ {
19
+ command: 'npx checkly skills configure api-checks',
20
+ description: 'Show API Checks configuration reference.',
21
+ },
22
+ ];
23
+ //# sourceMappingURL=skills.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"skills.js","sourceRoot":"","sources":["../../src/help/skills.ts"],"names":[],"mappings":";;;AAKa,QAAA,iBAAiB,GAAG,oGAAoG,CAAA;AAExH,QAAA,MAAM,GAAiB;IAClC;QACE,OAAO,EAAE,4BAA4B;QACrC,WAAW,EAAE,oDAAoD;KAClE;IACD;QACE,OAAO,EAAE,oBAAoB;QAC7B,WAAW,EAAE,6CAA6C;KAC3D;IACD;QACE,OAAO,EAAE,8BAA8B;QACvC,WAAW,EAAE,uCAAuC;KACrD;IACD;QACE,OAAO,EAAE,yCAAyC;QAClD,WAAW,EAAE,0CAA0C;KACxD;CACF,CAAA"}
@@ -1,3 +1,4 @@
1
1
  export type CliMode = 'interactive' | 'ci' | 'agent';
2
2
  export declare function detectOperator(): string;
3
+ export declare const OPERATOR_TO_PLATFORM: Record<string, string>;
3
4
  export declare function detectCliMode(): CliMode;
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.detectCliMode = exports.detectOperator = void 0;
3
+ exports.detectCliMode = exports.OPERATOR_TO_PLATFORM = exports.detectOperator = void 0;
4
4
  const VALID_CLI_MODES = new Set(['interactive', 'ci', 'agent']);
5
5
  const AGENT_OPERATORS = new Set([
6
6
  'claude-code', 'cursor', 'windsurf', 'aider', 'github-copilot',
@@ -39,6 +39,18 @@ function detectOperator() {
39
39
  return 'manual';
40
40
  }
41
41
  exports.detectOperator = detectOperator;
42
+ exports.OPERATOR_TO_PLATFORM = {
43
+ 'claude-code': 'claude',
44
+ 'cursor': 'cursor',
45
+ 'windsurf': 'windsurf',
46
+ 'github-copilot': 'github-copilot',
47
+ 'vscode': 'github-copilot',
48
+ 'cline': 'cline',
49
+ 'codex-cli': 'codex',
50
+ 'gemini-cli': 'gemini-cli',
51
+ 'aider': 'claude',
52
+ 'opencode': 'opencode',
53
+ };
42
54
  function detectCliMode() {
43
55
  const envMode = process.env.CHECKLY_CLI_MODE;
44
56
  if (envMode && VALID_CLI_MODES.has(envMode)) {
@@ -1 +1 @@
1
- {"version":3,"file":"cli-mode.js","sourceRoot":"","sources":["../../src/helpers/cli-mode.ts"],"names":[],"mappings":";;;AAEA,MAAM,eAAe,GAAwB,IAAI,GAAG,CAAC,CAAC,aAAa,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC,CAAA;AAEpF,MAAM,eAAe,GAAwB,IAAI,GAAG,CAAC;IACnD,aAAa,EAAE,QAAQ,EAAE,UAAU,EAAE,OAAO,EAAE,gBAAgB;IAC9D,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,UAAU;CAC/C,CAAC,CAAA;AAEF,MAAM,YAAY,GAAwB,IAAI,GAAG,CAAC;IAChD,gBAAgB,EAAE,WAAW,EAAE,IAAI;CACpC,CAAC,CAAA;AAEF,SAAgB,cAAc;IAC5B,IAAI,OAAO,CAAC,GAAG,CAAC,UAAU;QAAE,OAAO,aAAa,CAAA;IAChD,IAAI,OAAO,CAAC,GAAG,CAAC,eAAe,IAAI,OAAO,CAAC,GAAG,CAAC,YAAY;QAAE,OAAO,QAAQ,CAAA;IAC5E,IAAI,OAAO,CAAC,GAAG,CAAC,cAAc;QAAE,OAAO,gBAAgB,CAAA;IACvD,IAAI,OAAO,CAAC,GAAG,CAAC,KAAK;QAAE,OAAO,OAAO,CAAA;IACrC,IAAI,OAAO,CAAC,GAAG,CAAC,QAAQ,IAAI,OAAO,CAAC,GAAG,CAAC,WAAW;QAAE,OAAO,UAAU,CAAA;IACtE,IAAI,OAAO,CAAC,GAAG,CAAC,YAAY;QAAE,OAAO,OAAO,CAAA;IAC5C,IAAI,OAAO,CAAC,GAAG,CAAC,aAAa,IAAI,OAAO,CAAC,GAAG,CAAC,eAAe;QAAE,OAAO,WAAW,CAAA;IAChF,IAAI,OAAO,CAAC,GAAG,CAAC,UAAU;QAAE,OAAO,YAAY,CAAA;IAC/C,IAAI,OAAO,CAAC,GAAG,CAAC,QAAQ;QAAE,OAAO,UAAU,CAAA;IAC3C,IAAI,OAAO,CAAC,GAAG,CAAC,YAAY,KAAK,QAAQ;QAAE,OAAO,QAAQ,CAAA;IAC1D,IAAI,OAAO,CAAC,GAAG,CAAC,cAAc;QAAE,OAAO,gBAAgB,CAAA;IACvD,IAAI,OAAO,CAAC,GAAG,CAAC,SAAS;QAAE,OAAO,WAAW,CAAA;IAC7C,IAAI,OAAO,CAAC,GAAG,CAAC,EAAE;QAAE,OAAO,IAAI,CAAA;IAC/B,OAAO,QAAQ,CAAA;AACjB,CAAC;AAfD,wCAeC;AAED,SAAgB,aAAa;IAC3B,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAA;IAC5C,IAAI,OAAO,IAAI,eAAe,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC;QAC5C,OAAO,OAAkB,CAAA;IAC3B,CAAC;IAED,MAAM,QAAQ,GAAG,cAAc,EAAE,CAAA;IAEjC,IAAI,eAAe,CAAC,GAAG,CAAC,QAAQ,CAAC;QAAE,OAAO,OAAO,CAAA;IACjD,IAAI,YAAY,CAAC,GAAG,CAAC,QAAQ,CAAC;QAAE,OAAO,IAAI,CAAA;IAC3C,OAAO,aAAa,CAAA;AACtB,CAAC;AAXD,sCAWC"}
1
+ {"version":3,"file":"cli-mode.js","sourceRoot":"","sources":["../../src/helpers/cli-mode.ts"],"names":[],"mappings":";;;AAEA,MAAM,eAAe,GAAwB,IAAI,GAAG,CAAC,CAAC,aAAa,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC,CAAA;AAEpF,MAAM,eAAe,GAAwB,IAAI,GAAG,CAAC;IACnD,aAAa,EAAE,QAAQ,EAAE,UAAU,EAAE,OAAO,EAAE,gBAAgB;IAC9D,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,UAAU;CAC/C,CAAC,CAAA;AAEF,MAAM,YAAY,GAAwB,IAAI,GAAG,CAAC;IAChD,gBAAgB,EAAE,WAAW,EAAE,IAAI;CACpC,CAAC,CAAA;AAEF,SAAgB,cAAc;IAC5B,IAAI,OAAO,CAAC,GAAG,CAAC,UAAU;QAAE,OAAO,aAAa,CAAA;IAChD,IAAI,OAAO,CAAC,GAAG,CAAC,eAAe,IAAI,OAAO,CAAC,GAAG,CAAC,YAAY;QAAE,OAAO,QAAQ,CAAA;IAC5E,IAAI,OAAO,CAAC,GAAG,CAAC,cAAc;QAAE,OAAO,gBAAgB,CAAA;IACvD,IAAI,OAAO,CAAC,GAAG,CAAC,KAAK;QAAE,OAAO,OAAO,CAAA;IACrC,IAAI,OAAO,CAAC,GAAG,CAAC,QAAQ,IAAI,OAAO,CAAC,GAAG,CAAC,WAAW;QAAE,OAAO,UAAU,CAAA;IACtE,IAAI,OAAO,CAAC,GAAG,CAAC,YAAY;QAAE,OAAO,OAAO,CAAA;IAC5C,IAAI,OAAO,CAAC,GAAG,CAAC,aAAa,IAAI,OAAO,CAAC,GAAG,CAAC,eAAe;QAAE,OAAO,WAAW,CAAA;IAChF,IAAI,OAAO,CAAC,GAAG,CAAC,UAAU;QAAE,OAAO,YAAY,CAAA;IAC/C,IAAI,OAAO,CAAC,GAAG,CAAC,QAAQ;QAAE,OAAO,UAAU,CAAA;IAC3C,IAAI,OAAO,CAAC,GAAG,CAAC,YAAY,KAAK,QAAQ;QAAE,OAAO,QAAQ,CAAA;IAC1D,IAAI,OAAO,CAAC,GAAG,CAAC,cAAc;QAAE,OAAO,gBAAgB,CAAA;IACvD,IAAI,OAAO,CAAC,GAAG,CAAC,SAAS;QAAE,OAAO,WAAW,CAAA;IAC7C,IAAI,OAAO,CAAC,GAAG,CAAC,EAAE;QAAE,OAAO,IAAI,CAAA;IAC/B,OAAO,QAAQ,CAAA;AACjB,CAAC;AAfD,wCAeC;AAEY,QAAA,oBAAoB,GAA2B;IAC1D,aAAa,EAAE,QAAQ;IACvB,QAAQ,EAAE,QAAQ;IAClB,UAAU,EAAE,UAAU;IACtB,gBAAgB,EAAE,gBAAgB;IAClC,QAAQ,EAAE,gBAAgB;IAC1B,OAAO,EAAE,OAAO;IAChB,WAAW,EAAE,OAAO;IACpB,YAAY,EAAE,YAAY;IAC1B,OAAO,EAAE,QAAQ;IACjB,UAAU,EAAE,UAAU;CACvB,CAAA;AAED,SAAgB,aAAa;IAC3B,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAA;IAC5C,IAAI,OAAO,IAAI,eAAe,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC;QAC5C,OAAO,OAAkB,CAAA;IAC3B,CAAC;IAED,MAAM,QAAQ,GAAG,cAAc,EAAE,CAAA;IAEjC,IAAI,eAAe,CAAC,GAAG,CAAC,QAAQ,CAAC;QAAE,OAAO,OAAO,CAAA;IACjD,IAAI,YAAY,CAAC,GAAG,CAAC,QAAQ,CAAC;QAAE,OAAO,IAAI,CAAA;IAC3C,OAAO,aAAa,CAAA;AACtB,CAAC;AAXD,sCAWC"}
@@ -12,6 +12,8 @@ function buildConfirmCommand(command, flags, args) {
12
12
  for (const [key, value] of Object.entries(flags)) {
13
13
  if (OMITTED_FLAGS.has(key))
14
14
  continue;
15
+ if (value === undefined || value === null)
16
+ continue;
15
17
  if (Array.isArray(value)) {
16
18
  for (const item of value) {
17
19
  parts.push(`--${key}="${item}"`);
@@ -40,6 +42,9 @@ function formatPreviewForAgent(preview, status) {
40
42
  }
41
43
  exports.formatPreviewForAgent = formatPreviewForAgent;
42
44
  function formatPreviewForTerminal(preview) {
45
+ if (preview.changes.length === 1) {
46
+ return `This will ${preview.changes[0]}`;
47
+ }
43
48
  const lines = [];
44
49
  lines.push('This will:');
45
50
  for (const change of preview.changes) {
@@ -1 +1 @@
1
- {"version":3,"file":"command-preview.js","sourceRoot":"","sources":["../../src/helpers/command-preview.ts"],"names":[],"mappings":";;;AAwBA,MAAM,aAAa,GAAwB,IAAI,GAAG,CAAC,CAAC,QAAQ,EAAE,OAAO,EAAE,SAAS,CAAC,CAAC,CAAA;AAElF,SAAgB,mBAAmB,CACjC,OAAe,EACf,KAA8B,EAC9B,IAA8B;IAE9B,MAAM,KAAK,GAAG,CAAC,SAAS,EAAE,OAAO,CAAC,CAAA;IAElC,IAAI,IAAI,EAAE,CAAC;QACT,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC;YACxC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAA;QAC3B,CAAC;IACH,CAAC;IAED,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACjD,IAAI,aAAa,CAAC,GAAG,CAAC,GAAG,CAAC;YAAE,SAAQ;QAEpC,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;YACzB,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;gBACzB,KAAK,CAAC,IAAI,CAAC,KAAK,GAAG,KAAK,IAAI,GAAG,CAAC,CAAA;YAClC,CAAC;QACH,CAAC;aAAM,IAAI,OAAO,KAAK,KAAK,SAAS,EAAE,CAAC;YACtC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE,CAAC,CAAC,CAAC,QAAQ,GAAG,EAAE,CAAC,CAAA;QAChD,CAAC;aAAM,CAAC;YACN,KAAK,CAAC,IAAI,CAAC,KAAK,GAAG,KAAK,KAAK,GAAG,CAAC,CAAA;QACnC,CAAC;IACH,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;IACrB,OAAO,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;AACxB,CAAC;AA7BD,kDA6BC;AAED,SAAgB,qBAAqB,CACnC,OAAuB,EACvB,MAA2C;IAE3C,OAAO;QACL,MAAM;QACN,OAAO,EAAE,OAAO,CAAC,OAAO;QACxB,WAAW,EAAE,OAAO,CAAC,WAAW;QAChC,cAAc,EAAE,OAAO,CAAC,cAAc;QACtC,OAAO,EAAE,OAAO,CAAC,OAAO;QACxB,cAAc,EAAE,mBAAmB,CAAC,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,IAAI,CAAC;KAClF,CAAA;AACH,CAAC;AAZD,sDAYC;AAED,SAAgB,wBAAwB,CAAE,OAAuB;IAC/D,MAAM,KAAK,GAAa,EAAE,CAAA;IAC1B,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,CAAA;IACxB,KAAK,MAAM,MAAM,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;QACrC,KAAK,CAAC,IAAI,CAAC,OAAO,MAAM,EAAE,CAAC,CAAA;IAC7B,CAAC;IACD,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;AACzB,CAAC;AAPD,4DAOC"}
1
+ {"version":3,"file":"command-preview.js","sourceRoot":"","sources":["../../src/helpers/command-preview.ts"],"names":[],"mappings":";;;AAwBA,MAAM,aAAa,GAAwB,IAAI,GAAG,CAAC,CAAC,QAAQ,EAAE,OAAO,EAAE,SAAS,CAAC,CAAC,CAAA;AAElF,SAAgB,mBAAmB,CACjC,OAAe,EACf,KAA8B,EAC9B,IAA8B;IAE9B,MAAM,KAAK,GAAG,CAAC,SAAS,EAAE,OAAO,CAAC,CAAA;IAElC,IAAI,IAAI,EAAE,CAAC;QACT,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC;YACxC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAA;QAC3B,CAAC;IACH,CAAC;IAED,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACjD,IAAI,aAAa,CAAC,GAAG,CAAC,GAAG,CAAC;YAAE,SAAQ;QACpC,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI;YAAE,SAAQ;QAEnD,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;YACzB,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;gBACzB,KAAK,CAAC,IAAI,CAAC,KAAK,GAAG,KAAK,IAAI,GAAG,CAAC,CAAA;YAClC,CAAC;QACH,CAAC;aAAM,IAAI,OAAO,KAAK,KAAK,SAAS,EAAE,CAAC;YACtC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE,CAAC,CAAC,CAAC,QAAQ,GAAG,EAAE,CAAC,CAAA;QAChD,CAAC;aAAM,CAAC;YACN,KAAK,CAAC,IAAI,CAAC,KAAK,GAAG,KAAK,KAAK,GAAG,CAAC,CAAA;QACnC,CAAC;IACH,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;IACrB,OAAO,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;AACxB,CAAC;AA9BD,kDA8BC;AAED,SAAgB,qBAAqB,CACnC,OAAuB,EACvB,MAA2C;IAE3C,OAAO;QACL,MAAM;QACN,OAAO,EAAE,OAAO,CAAC,OAAO;QACxB,WAAW,EAAE,OAAO,CAAC,WAAW;QAChC,cAAc,EAAE,OAAO,CAAC,cAAc;QACtC,OAAO,EAAE,OAAO,CAAC,OAAO;QACxB,cAAc,EAAE,mBAAmB,CAAC,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,IAAI,CAAC;KAClF,CAAA;AACH,CAAC;AAZD,sDAYC;AAED,SAAgB,wBAAwB,CAAE,OAAuB;IAC/D,IAAI,OAAO,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACjC,OAAO,aAAa,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAA;IAC1C,CAAC;IAED,MAAM,KAAK,GAAa,EAAE,CAAA;IAC1B,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,CAAA;IACxB,KAAK,MAAM,MAAM,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;QACrC,KAAK,CAAC,IAAI,CAAC,OAAO,MAAM,EAAE,CAAC,CAAA;IAC7B,CAAC;IACD,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;AACzB,CAAC;AAXD,4DAWC"}
@@ -0,0 +1,15 @@
1
+ export interface DepsInstallOptions {
2
+ skipPrompts?: boolean;
3
+ }
4
+ export interface ConfigCreationResult {
5
+ ok: boolean;
6
+ created: boolean;
7
+ }
8
+ export interface DepsInstallResult {
9
+ ok: boolean;
10
+ packageJsonUpdated: boolean;
11
+ installed: boolean;
12
+ }
13
+ export declare function createConfig(projectDir: string, log: (msg: string) => void): ConfigCreationResult;
14
+ export declare function copyChecks(projectDir: string, log: (msg: string) => void): void;
15
+ export declare function runDepsInstall(projectDir: string, log: (msg: string) => void, options?: DepsInstallOptions): Promise<DepsInstallResult>;
@@ -0,0 +1,176 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.runDepsInstall = exports.copyChecks = exports.createConfig = void 0;
7
+ const fs_1 = require("fs");
8
+ const child_process_1 = require("child_process");
9
+ const path_1 = require("path");
10
+ const chalk_1 = __importDefault(require("chalk"));
11
+ const prompts_1 = __importDefault(require("prompts"));
12
+ const package_manager_1 = require("../../services/check-parser/package-files/package-manager");
13
+ const prompts_helpers_1 = require("./prompts-helpers");
14
+ // Path resolves at runtime from dist/helpers/onboarding/ to dist/ai-context/onboarding-boilerplate/
15
+ const CONFIG_TEMPLATE_PATH = (0, path_1.join)(__dirname, '../../ai-context/onboarding-boilerplate/checkly-config-template.ts');
16
+ const BOILERPLATE_CHECKS_PATH = (0, path_1.join)(__dirname, '../../ai-context/onboarding-boilerplate/__checks__');
17
+ function sanitizeLogicalId(name) {
18
+ return name
19
+ .replace(/[^a-zA-Z0-9-]/g, '-')
20
+ .replace(/-{2,}/g, '-')
21
+ .replace(/^-+|-+$/g, '')
22
+ || 'checkly-project';
23
+ }
24
+ async function detectProjectPackageManager(projectDir) {
25
+ // Skip user agent detection — when invoked via npx, it always reports npm
26
+ // regardless of the project's actual package manager. Lockfile/config detection is reliable.
27
+ const pm = await (0, package_manager_1.detectPackageManager)(projectDir, { skipUserAgent: true });
28
+ const runnable = pm.installCommand();
29
+ return { name: pm.name, installCmd: runnable.unsafeDisplayCommand };
30
+ }
31
+ // Using direct readFileSync instead of PackageJsonFile to avoid async overhead for a known local path
32
+ function getProjectName(projectDir) {
33
+ const pkgPath = (0, path_1.join)(projectDir, 'package.json');
34
+ if ((0, fs_1.existsSync)(pkgPath)) {
35
+ try {
36
+ const pkg = JSON.parse((0, fs_1.readFileSync)(pkgPath, 'utf-8'));
37
+ if (pkg.name) {
38
+ return pkg.name;
39
+ }
40
+ }
41
+ catch {
42
+ // fall through
43
+ }
44
+ }
45
+ return 'my-project';
46
+ }
47
+ function addDepsToPackageJson(projectDir, pkg, log) {
48
+ const pkgPath = (0, path_1.join)(projectDir, 'package.json');
49
+ try {
50
+ pkg.devDependencies = pkg.devDependencies ?? {};
51
+ pkg.devDependencies.checkly = 'latest';
52
+ pkg.devDependencies.jiti = 'latest';
53
+ (0, fs_1.writeFileSync)(pkgPath, JSON.stringify(pkg, null, 2) + '\n');
54
+ return true;
55
+ }
56
+ catch {
57
+ log(chalk_1.default.red('Could not update package.json — it may contain invalid JSON.'));
58
+ return false;
59
+ }
60
+ }
61
+ function createConfig(projectDir, log) {
62
+ const configPath = (0, path_1.join)(projectDir, 'checkly.config.ts');
63
+ if ((0, fs_1.existsSync)(configPath)) {
64
+ log(chalk_1.default.yellow('checkly.config.ts already exists, skipping'));
65
+ return { ok: true, created: false };
66
+ }
67
+ let template;
68
+ try {
69
+ template = (0, fs_1.readFileSync)(CONFIG_TEMPLATE_PATH, 'utf-8');
70
+ }
71
+ catch {
72
+ log(chalk_1.default.red('Could not read config template. Try reinstalling the checkly package.'));
73
+ return { ok: false, created: false };
74
+ }
75
+ const projectName = getProjectName(projectDir);
76
+ const logicalId = sanitizeLogicalId(projectName);
77
+ const content = template
78
+ .replaceAll('{{projectName}}', projectName)
79
+ .replaceAll('{{logicalId}}', logicalId);
80
+ try {
81
+ (0, fs_1.writeFileSync)(configPath, content);
82
+ }
83
+ catch {
84
+ log(chalk_1.default.red('Could not write checkly.config.ts.'));
85
+ return { ok: false, created: false };
86
+ }
87
+ log((0, prompts_helpers_1.successMessage)('Created checkly.config.ts'));
88
+ return { ok: true, created: true };
89
+ }
90
+ exports.createConfig = createConfig;
91
+ function copyChecks(projectDir, log) {
92
+ const checksDir = (0, path_1.join)(projectDir, '__checks__');
93
+ if ((0, fs_1.existsSync)(checksDir)) {
94
+ log(chalk_1.default.yellow('__checks__/ already exists, skipping'));
95
+ return;
96
+ }
97
+ try {
98
+ (0, fs_1.cpSync)(BOILERPLATE_CHECKS_PATH, checksDir, { recursive: true });
99
+ log((0, prompts_helpers_1.successMessage)('Created __checks__/ with example checks'));
100
+ }
101
+ catch {
102
+ log(chalk_1.default.red('Could not copy example checks.'));
103
+ }
104
+ }
105
+ exports.copyChecks = copyChecks;
106
+ function readPackageJson(projectDir) {
107
+ const pkgPath = (0, path_1.join)(projectDir, 'package.json');
108
+ try {
109
+ return JSON.parse((0, fs_1.readFileSync)(pkgPath, 'utf-8'));
110
+ }
111
+ catch {
112
+ return null;
113
+ }
114
+ }
115
+ function installDependencies(projectDir, installCmd, log) {
116
+ try {
117
+ (0, child_process_1.execSync)(installCmd, { cwd: projectDir, stdio: 'pipe' });
118
+ log((0, prompts_helpers_1.successMessage)('Installed dependencies'));
119
+ return {
120
+ ok: true,
121
+ packageJsonUpdated: true,
122
+ installed: true,
123
+ };
124
+ }
125
+ catch (error) {
126
+ log(chalk_1.default.red(`Failed to install dependencies. Run ${chalk_1.default.bold(installCmd)} manually. ${error.message?.slice(0, 200) ?? ''}`));
127
+ return {
128
+ ok: false,
129
+ packageJsonUpdated: true,
130
+ installed: false,
131
+ };
132
+ }
133
+ }
134
+ async function runDepsInstall(projectDir, log, options = {}) {
135
+ const pm = await detectProjectPackageManager(projectDir);
136
+ const pkg = readPackageJson(projectDir);
137
+ if (!pkg) {
138
+ log(chalk_1.default.red('Could not read package.json — it may contain invalid JSON.'));
139
+ return {
140
+ ok: false,
141
+ packageJsonUpdated: false,
142
+ installed: false,
143
+ };
144
+ }
145
+ // Always add checkly and jiti to package.json — even if user declines running install
146
+ if (!addDepsToPackageJson(projectDir, pkg, log)) {
147
+ return {
148
+ ok: false,
149
+ packageJsonUpdated: false,
150
+ installed: false,
151
+ };
152
+ }
153
+ log((0, prompts_helpers_1.successMessage)('Added checkly and jiti to package.json'));
154
+ if (options.skipPrompts) {
155
+ return installDependencies(projectDir, pm.installCmd, log);
156
+ }
157
+ const { install } = await (0, prompts_1.default)({
158
+ type: 'confirm',
159
+ name: 'install',
160
+ message: `Run ${pm.name} install to install them now?`,
161
+ initial: true,
162
+ }, {
163
+ onCancel: (0, prompts_helpers_1.makeOnCancel)(log),
164
+ });
165
+ if (install) {
166
+ return installDependencies(projectDir, pm.installCmd, log);
167
+ }
168
+ log(`\nRun ${chalk_1.default.bold(pm.installCmd)} when you're ready.`);
169
+ return {
170
+ ok: true,
171
+ packageJsonUpdated: true,
172
+ installed: false,
173
+ };
174
+ }
175
+ exports.runDepsInstall = runDepsInstall;
176
+ //# sourceMappingURL=boilerplate.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"boilerplate.js","sourceRoot":"","sources":["../../../src/helpers/onboarding/boilerplate.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export declare function copyToClipboard(text: string): boolean;
@@ -0,0 +1,32 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.copyToClipboard = void 0;
4
+ const child_process_1 = require("child_process");
5
+ function copyToClipboard(text) {
6
+ try {
7
+ const platform = process.platform;
8
+ if (platform === 'darwin') {
9
+ (0, child_process_1.execSync)('pbcopy', { input: text, stdio: ['pipe', 'ignore', 'ignore'] });
10
+ }
11
+ else if (platform === 'linux') {
12
+ try {
13
+ (0, child_process_1.execSync)('xclip -selection clipboard', { input: text, stdio: ['pipe', 'ignore', 'ignore'] });
14
+ }
15
+ catch {
16
+ (0, child_process_1.execSync)('xsel --clipboard --input', { input: text, stdio: ['pipe', 'ignore', 'ignore'] });
17
+ }
18
+ }
19
+ else if (platform === 'win32') {
20
+ (0, child_process_1.execSync)('clip', { input: text, stdio: ['pipe', 'ignore', 'ignore'] });
21
+ }
22
+ else {
23
+ return false;
24
+ }
25
+ return true;
26
+ }
27
+ catch {
28
+ return false;
29
+ }
30
+ }
31
+ exports.copyToClipboard = copyToClipboard;
32
+ //# sourceMappingURL=clipboard.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"clipboard.js","sourceRoot":"","sources":["../../../src/helpers/onboarding/clipboard.ts"],"names":[],"mappings":";;;AAAA,iDAAwC;AAExC,SAAgB,eAAe,CAAE,IAAY;IAC3C,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAA;QACjC,IAAI,QAAQ,KAAK,QAAQ,EAAE,CAAC;YAC1B,IAAA,wBAAQ,EAAC,QAAQ,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,MAAM,EAAE,QAAQ,EAAE,QAAQ,CAAC,EAAE,CAAC,CAAA;QAC1E,CAAC;aAAM,IAAI,QAAQ,KAAK,OAAO,EAAE,CAAC;YAChC,IAAI,CAAC;gBACH,IAAA,wBAAQ,EAAC,4BAA4B,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,MAAM,EAAE,QAAQ,EAAE,QAAQ,CAAC,EAAE,CAAC,CAAA;YAC9F,CAAC;YAAC,MAAM,CAAC;gBACP,IAAA,wBAAQ,EAAC,0BAA0B,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,MAAM,EAAE,QAAQ,EAAE,QAAQ,CAAC,EAAE,CAAC,CAAA;YAC5F,CAAC;QACH,CAAC;aAAM,IAAI,QAAQ,KAAK,OAAO,EAAE,CAAC;YAChC,IAAA,wBAAQ,EAAC,MAAM,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,MAAM,EAAE,QAAQ,EAAE,QAAQ,CAAC,EAAE,CAAC,CAAA;QACxE,CAAC;aAAM,CAAC;YACN,OAAO,KAAK,CAAA;QACd,CAAC;QACD,OAAO,IAAI,CAAA;IACb,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAA;IACd,CAAC;AACH,CAAC;AApBD,0CAoBC"}
@@ -0,0 +1,10 @@
1
+ export interface ProjectContext {
2
+ isExistingProject: boolean;
3
+ hasPlaywrightConfig: boolean;
4
+ playwrightConfigPath: string | null;
5
+ hasChecklyConfig: boolean;
6
+ hasChecksDir: boolean;
7
+ hasSkillInstalled: boolean;
8
+ skillPath: string | null;
9
+ }
10
+ export declare function detectProjectContext(projectDir: string): ProjectContext;
@@ -0,0 +1,35 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.detectProjectContext = void 0;
4
+ const fs_1 = require("fs");
5
+ const path_1 = require("path");
6
+ const install_1 = require("../../commands/skills/install");
7
+ const util_1 = require("../../services/util");
8
+ const checkly_config_loader_1 = require("../../services/checkly-config-loader");
9
+ // Derive from PLATFORM_TARGETS so they stay in sync automatically
10
+ const SKILL_DIRECTORIES = [...new Set(Object.values(install_1.PLATFORM_TARGETS))];
11
+ function detectProjectContext(projectDir) {
12
+ const isExistingProject = (0, fs_1.existsSync)((0, path_1.join)(projectDir, 'package.json'));
13
+ const playwrightConfigPath = (0, util_1.findPlaywrightConfigPath)(projectDir) ?? null;
14
+ const hasChecklyConfig = checkly_config_loader_1.defaultFilenames.some(name => (0, fs_1.existsSync)((0, path_1.join)(projectDir, name)));
15
+ const hasChecksDir = (0, fs_1.existsSync)((0, path_1.join)(projectDir, '__checks__'));
16
+ let skillPath = null;
17
+ for (const dir of SKILL_DIRECTORIES) {
18
+ const fullPath = (0, path_1.join)(projectDir, dir, 'SKILL.md');
19
+ if ((0, fs_1.existsSync)(fullPath)) {
20
+ skillPath = fullPath;
21
+ break;
22
+ }
23
+ }
24
+ return {
25
+ isExistingProject,
26
+ hasPlaywrightConfig: playwrightConfigPath !== null,
27
+ playwrightConfigPath,
28
+ hasChecklyConfig,
29
+ hasChecksDir,
30
+ hasSkillInstalled: skillPath !== null,
31
+ skillPath,
32
+ };
33
+ }
34
+ exports.detectProjectContext = detectProjectContext;
35
+ //# sourceMappingURL=detect-project.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"detect-project.js","sourceRoot":"","sources":["../../../src/helpers/onboarding/detect-project.ts"],"names":[],"mappings":";;;AAAA,2BAA+B;AAC/B,+BAA2B;AAE3B,2DAAgE;AAChE,8CAA8D;AAC9D,gFAA+F;AAY/F,kEAAkE;AAClE,MAAM,iBAAiB,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,0BAAgB,CAAC,CAAC,CAAC,CAAA;AAEvE,SAAgB,oBAAoB,CAAE,UAAkB;IACtD,MAAM,iBAAiB,GAAG,IAAA,eAAU,EAAC,IAAA,WAAI,EAAC,UAAU,EAAE,cAAc,CAAC,CAAC,CAAA;IAEtE,MAAM,oBAAoB,GAAG,IAAA,+BAAwB,EAAC,UAAU,CAAC,IAAI,IAAI,CAAA;IAEzE,MAAM,gBAAgB,GAAG,wCAAoB,CAAC,IAAI,CAChD,IAAI,CAAC,EAAE,CAAC,IAAA,eAAU,EAAC,IAAA,WAAI,EAAC,UAAU,EAAE,IAAI,CAAC,CAAC,CAC3C,CAAA;IAED,MAAM,YAAY,GAAG,IAAA,eAAU,EAAC,IAAA,WAAI,EAAC,UAAU,EAAE,YAAY,CAAC,CAAC,CAAA;IAE/D,IAAI,SAAS,GAAkB,IAAI,CAAA;IACnC,KAAK,MAAM,GAAG,IAAI,iBAAiB,EAAE,CAAC;QACpC,MAAM,QAAQ,GAAG,IAAA,WAAI,EAAC,UAAU,EAAE,GAAG,EAAE,UAAU,CAAC,CAAA;QAClD,IAAI,IAAA,eAAU,EAAC,QAAQ,CAAC,EAAE,CAAC;YACzB,SAAS,GAAG,QAAQ,CAAA;YACpB,MAAK;QACP,CAAC;IACH,CAAC;IAED,OAAO;QACL,iBAAiB;QACjB,mBAAmB,EAAE,oBAAoB,KAAK,IAAI;QAClD,oBAAoB;QACpB,gBAAgB;QAChB,YAAY;QACZ,iBAAiB,EAAE,SAAS,KAAK,IAAI;QACrC,SAAS;KACV,CAAA;AACH,CAAC;AA7BD,oDA6BC"}