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.
- package/dist/ai-context/checkly.rules.md +36 -32
- package/dist/ai-context/onboarding-boilerplate/__checks__/api.check.ts +22 -0
- package/dist/ai-context/onboarding-boilerplate/__checks__/heartbeat.check.ts +16 -0
- package/dist/ai-context/onboarding-boilerplate/__checks__/homepage.spec.ts +12 -0
- package/dist/ai-context/onboarding-boilerplate/__checks__/url.check.ts +18 -0
- package/dist/ai-context/onboarding-boilerplate/checkly-config-template.ts +50 -0
- package/dist/ai-context/onboarding-prompts/base.md +1 -0
- package/dist/ai-context/onboarding-prompts/playwright.md +1 -0
- package/dist/ai-context/public-skills/checkly/SKILL.md +1 -1
- package/dist/ai-context/skills-command/references/configure-api-checks.md +16 -7
- package/dist/ai-context/skills-command/references/configure-browser-checks.md +3 -6
- package/dist/ai-context/skills-command/references/configure-dns-monitors.md +1 -0
- package/dist/ai-context/skills-command/references/configure-heartbeat-monitors.md +1 -6
- package/dist/ai-context/skills-command/references/configure-icmp-monitors.md +1 -0
- package/dist/ai-context/skills-command/references/configure-tcp-monitors.md +2 -6
- package/dist/ai-context/skills-command/references/configure-url-monitors.md +3 -6
- package/dist/ai-context/skills-command/references/configure.md +9 -1
- package/dist/ai-context/skills-command/references/initialize.md +8 -8
- package/dist/ai-context/skills-command/references/manage.md +23 -0
- package/dist/commands/authCommand.d.ts +2 -1
- package/dist/commands/authCommand.js +5 -7
- package/dist/commands/authCommand.js.map +1 -1
- package/dist/commands/baseCommand.js +0 -1
- package/dist/commands/baseCommand.js.map +1 -1
- package/dist/commands/checks/get.js +19 -2
- package/dist/commands/checks/get.js.map +1 -1
- package/dist/commands/deploy.js +21 -17
- package/dist/commands/deploy.js.map +1 -1
- package/dist/commands/destroy.js +34 -18
- package/dist/commands/destroy.js.map +1 -1
- package/dist/commands/env/rm.js +16 -21
- package/dist/commands/env/rm.js.map +1 -1
- package/dist/commands/init.d.ts +23 -0
- package/dist/commands/init.js +278 -0
- package/dist/commands/init.js.map +1 -0
- package/dist/commands/pw-test.d.ts +1 -0
- package/dist/commands/pw-test.js +6 -2
- package/dist/commands/pw-test.js.map +1 -1
- package/dist/commands/rca/get.d.ts +15 -0
- package/dist/commands/rca/get.js +95 -0
- package/dist/commands/rca/get.js.map +1 -0
- package/dist/commands/rca/run.d.ts +13 -0
- package/dist/commands/rca/run.js +102 -0
- package/dist/commands/rca/run.js.map +1 -0
- package/dist/commands/skills/install.d.ts +6 -0
- package/dist/commands/skills/install.js +82 -48
- package/dist/commands/skills/install.js.map +1 -1
- package/dist/commands/test.d.ts +1 -0
- package/dist/commands/test.js +6 -2
- package/dist/commands/test.js.map +1 -1
- package/dist/commands/trigger.d.ts +1 -0
- package/dist/commands/trigger.js +6 -2
- package/dist/commands/trigger.js.map +1 -1
- package/dist/formatters/checks.js +19 -1
- package/dist/formatters/checks.js.map +1 -1
- package/dist/formatters/rca.d.ts +36 -0
- package/dist/formatters/rca.js +149 -0
- package/dist/formatters/rca.js.map +1 -0
- package/dist/help/help-extension.js +22 -0
- package/dist/help/help-extension.js.map +1 -1
- package/dist/help/skills.d.ts +7 -0
- package/dist/help/skills.js +23 -0
- package/dist/help/skills.js.map +1 -0
- package/dist/helpers/cli-mode.d.ts +1 -0
- package/dist/helpers/cli-mode.js +13 -1
- package/dist/helpers/cli-mode.js.map +1 -1
- package/dist/helpers/command-preview.js +5 -0
- package/dist/helpers/command-preview.js.map +1 -1
- package/dist/helpers/onboarding/boilerplate.d.ts +15 -0
- package/dist/helpers/onboarding/boilerplate.js +176 -0
- package/dist/helpers/onboarding/boilerplate.js.map +1 -0
- package/dist/helpers/onboarding/clipboard.d.ts +1 -0
- package/dist/helpers/onboarding/clipboard.js +32 -0
- package/dist/helpers/onboarding/clipboard.js.map +1 -0
- package/dist/helpers/onboarding/detect-project.d.ts +10 -0
- package/dist/helpers/onboarding/detect-project.js +35 -0
- package/dist/helpers/onboarding/detect-project.js.map +1 -0
- package/dist/helpers/onboarding/index.d.ts +7 -0
- package/dist/helpers/onboarding/index.js +26 -0
- package/dist/helpers/onboarding/index.js.map +1 -0
- package/dist/helpers/onboarding/messages.d.ts +5 -0
- package/dist/helpers/onboarding/messages.js +152 -0
- package/dist/helpers/onboarding/messages.js.map +1 -0
- package/dist/helpers/onboarding/prompt-display.d.ts +1 -0
- package/dist/helpers/onboarding/prompt-display.js +83 -0
- package/dist/helpers/onboarding/prompt-display.js.map +1 -0
- package/dist/helpers/onboarding/prompts-helpers.d.ts +2 -0
- package/dist/helpers/onboarding/prompts-helpers.js +19 -0
- package/dist/helpers/onboarding/prompts-helpers.js.map +1 -0
- package/dist/helpers/onboarding/skill-install.d.ts +10 -0
- package/dist/helpers/onboarding/skill-install.js +93 -0
- package/dist/helpers/onboarding/skill-install.js.map +1 -0
- package/dist/helpers/onboarding/template-prompt.d.ts +2 -0
- package/dist/helpers/onboarding/template-prompt.js +16 -0
- package/dist/helpers/onboarding/template-prompt.js.map +1 -0
- package/dist/rest/api.d.ts +2 -0
- package/dist/rest/api.js +3 -1
- package/dist/rest/api.js.map +1 -1
- package/dist/rest/error-groups.d.ts +31 -0
- package/dist/rest/error-groups.js.map +1 -1
- package/dist/rest/rca.d.ts +13 -0
- package/dist/rest/rca.js +27 -0
- package/dist/rest/rca.js.map +1 -0
- package/dist/rest/test-sessions.d.ts +2 -0
- package/dist/rest/test-sessions.js.map +1 -1
- package/dist/services/check-parser/package-files/package-manager.d.ts +2 -0
- package/dist/services/check-parser/package-files/package-manager.js +8 -6
- package/dist/services/check-parser/package-files/package-manager.js.map +1 -1
- package/dist/services/test-runner.d.ts +2 -1
- package/dist/services/test-runner.js +4 -1
- package/dist/services/test-runner.js.map +1 -1
- package/dist/services/trigger-runner.d.ts +2 -1
- package/dist/services/trigger-runner.js +4 -1
- package/dist/services/trigger-runner.js.map +1 -1
- package/dist/services/util.js +1 -1
- package/dist/services/util.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/oclif.manifest.json +309 -141
- 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":";;;;;AAAA,sCAA2C;
|
|
1
|
+
{"version":3,"file":"help-extension.js","sourceRoot":"","sources":["../../src/help/help-extension.ts"],"names":[],"mappings":"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"}
|
|
@@ -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"}
|
package/dist/helpers/cli-mode.js
CHANGED
|
@@ -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;
|
|
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"}
|