@ranger-testing/ranger-cli 1.1.7 → 2.0.1
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/README.md +47 -45
- package/build/cli.js +649 -277
- package/build/cli.js.map +1 -1
- package/build/commands/addEnv.js +1 -1
- package/build/commands/addEnv.js.map +1 -1
- package/build/commands/authEncrypt.js +5 -10
- package/build/commands/authEncrypt.js.map +1 -1
- package/build/commands/clean.js +1 -1
- package/build/commands/clean.js.map +1 -1
- package/build/commands/config.js +9 -15
- package/build/commands/config.js.map +1 -1
- package/build/commands/env.js +10 -13
- package/build/commands/env.js.map +1 -1
- package/build/commands/feature.js +174 -123
- package/build/commands/feature.js.map +1 -1
- package/build/commands/hooks/autoPrompt.js +1 -1
- package/build/commands/hooks/disable.js +1 -1
- package/build/commands/hooks/enable.js +9 -4
- package/build/commands/hooks/enable.js.map +1 -1
- package/build/commands/hooks/exitPlanMode.js +8 -8
- package/build/commands/hooks/planReminder.js +7 -7
- package/build/commands/hooks/planStart.js +4 -4
- package/build/commands/hooks/postEdit.js +4 -4
- package/build/commands/hooks/postEdit.js.map +1 -1
- package/build/commands/hooks/preCompact.js +3 -3
- package/build/commands/hooks/preCompact.js.map +1 -1
- package/build/commands/hooks/sessionStart.js +19 -5
- package/build/commands/hooks/sessionStart.js.map +1 -1
- package/build/commands/hooks/stopHook.js +114 -20
- package/build/commands/hooks/stopHook.js.map +1 -1
- package/build/commands/index.js +1 -2
- package/build/commands/index.js.map +1 -1
- package/build/commands/login.js +2 -5
- package/build/commands/login.js.map +1 -1
- package/build/commands/setupCi.js +189 -0
- package/build/commands/setupCi.js.map +1 -0
- package/build/commands/skillup.js +16 -68
- package/build/commands/skillup.js.map +1 -1
- package/build/commands/start.js +1 -1
- package/build/commands/start.js.map +1 -1
- package/build/commands/status.js +14 -13
- package/build/commands/status.js.map +1 -1
- package/build/commands/update.js +52 -5
- package/build/commands/update.js.map +1 -1
- package/build/commands/updateEnv.js +1 -1
- package/build/commands/updateEnv.js.map +1 -1
- package/build/commands/useEnv.js +1 -1
- package/build/commands/useEnv.js.map +1 -1
- package/build/commands/utils/activeProfile.js +76 -0
- package/build/commands/utils/activeProfile.js.map +1 -0
- package/build/commands/utils/browserSessionsApi.js +1 -1
- package/build/commands/utils/browserSessionsApi.js.map +1 -1
- package/build/commands/utils/deviceAuth.js +53 -5
- package/build/commands/utils/deviceAuth.js.map +1 -1
- package/build/commands/utils/environment.js +11 -12
- package/build/commands/utils/environment.js.map +1 -1
- package/build/commands/utils/featureApi.js +55 -30
- package/build/commands/utils/featureApi.js.map +1 -1
- package/build/commands/utils/featureReportGenerator.js +6 -6
- package/build/commands/utils/featureReportGenerator.js.map +1 -1
- package/build/commands/utils/keychain.js +1 -1
- package/build/commands/utils/localAgentInstallationsApi.js +1 -1
- package/build/commands/utils/profileMessages.js +8 -0
- package/build/commands/utils/profileMessages.js.map +1 -0
- package/build/commands/utils/profileSetupBanner.js +167 -0
- package/build/commands/utils/profileSetupBanner.js.map +1 -0
- package/build/commands/utils/settings.js +20 -2
- package/build/commands/utils/settings.js.map +1 -1
- package/build/commands/utils/skills.js +1 -1
- package/build/commands/utils/telemetry.js +254 -0
- package/build/commands/utils/telemetry.js.map +1 -0
- package/build/commands/utils/userApi.js +4 -4
- package/build/commands/utils/userApi.js.map +1 -1
- package/build/commands/verifyFeature.js +816 -526
- package/build/commands/verifyFeature.js.map +1 -1
- package/build/commands/verifyInBrowser.js +1 -1
- package/build/commands/verifyInBrowser.js.map +1 -1
- package/build/skills/ranger/SKILL.md +65 -64
- package/build/skills/ranger/create.md +31 -31
- package/build/skills/ranger/feedback.md +25 -17
- package/build/skills/ranger/start.md +37 -37
- package/build/skills/ranger/verify.md +59 -55
- package/package.json +1 -1
- package/scripts/postinstall.js +1 -1
- package/build/commands/dataMcpServer.js +0 -1
- package/build/commands/dataMcpServer.js.map +0 -1
- package/build/commands/utils/cliSecret.js +0 -1
- package/build/commands/utils/cliSecret.js.map +0 -1
- package/build/skills/bug-bash.md +0 -329
- package/build/skills/e2e-test-recommender.md +0 -168
|
@@ -0,0 +1,167 @@
|
|
|
1
|
+
const PROFILE_SETUP_BANNER_SCRIPT = (() => {
|
|
2
|
+
const bannerHtml = '<div class="ranger-banner__content">' +
|
|
3
|
+
'<div class="ranger-banner__heading">Ranger Feature Review</div>' +
|
|
4
|
+
'<div class="ranger-banner__message">' +
|
|
5
|
+
'<span class="ranger-banner__title">Profile setup:</span>' +
|
|
6
|
+
'<span class="ranger-banner__text">navigate to your locally running app and log in. Close the browser window when you are done.</span>' +
|
|
7
|
+
'</div>' +
|
|
8
|
+
'</div>' +
|
|
9
|
+
'<button class="ranger-banner__close" type="button" aria-label="Dismiss banner">X</button>';
|
|
10
|
+
const bannerStyles = `
|
|
11
|
+
#ranger-profile-setup-banner {
|
|
12
|
+
position: fixed;
|
|
13
|
+
top: 0;
|
|
14
|
+
left: 0;
|
|
15
|
+
right: 0;
|
|
16
|
+
z-index: 2147483647;
|
|
17
|
+
display: flex;
|
|
18
|
+
align-items: center;
|
|
19
|
+
justify-content: space-between;
|
|
20
|
+
gap: 12px;
|
|
21
|
+
padding: 10px 16px;
|
|
22
|
+
background: #EE9322;
|
|
23
|
+
color: #f9f6f6;
|
|
24
|
+
font-family: "Space Grotesk", ui-sans-serif, system-ui, -apple-system, "Segoe UI", sans-serif;
|
|
25
|
+
font-size: 14px;
|
|
26
|
+
line-height: 1.4;
|
|
27
|
+
border-bottom: 1px solid rgba(255, 255, 255, 0.25);
|
|
28
|
+
box-shadow: 0 2px 6px rgba(32, 8, 9, 0.2);
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
#ranger-profile-setup-banner .ranger-banner__content {
|
|
32
|
+
display: flex;
|
|
33
|
+
flex-direction: column;
|
|
34
|
+
align-items: flex-start;
|
|
35
|
+
gap: 4px;
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
#ranger-profile-setup-banner .ranger-banner__heading {
|
|
39
|
+
font-weight: 700;
|
|
40
|
+
letter-spacing: 0.02em;
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
#ranger-profile-setup-banner .ranger-banner__message {
|
|
44
|
+
display: flex;
|
|
45
|
+
flex-wrap: wrap;
|
|
46
|
+
align-items: center;
|
|
47
|
+
gap: 6px;
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
#ranger-profile-setup-banner .ranger-banner__title {
|
|
51
|
+
font-weight: 600;
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
#ranger-profile-setup-banner .ranger-banner__close {
|
|
55
|
+
display: inline-flex;
|
|
56
|
+
align-items: center;
|
|
57
|
+
justify-content: center;
|
|
58
|
+
width: 28px;
|
|
59
|
+
height: 28px;
|
|
60
|
+
border-radius: 6px;
|
|
61
|
+
border: 1px solid rgba(255, 255, 255, 0.45);
|
|
62
|
+
background: transparent;
|
|
63
|
+
color: #fdf7f7;
|
|
64
|
+
cursor: pointer;
|
|
65
|
+
font-size: 14px;
|
|
66
|
+
line-height: 1;
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
#ranger-profile-setup-banner .ranger-banner__close:hover {
|
|
70
|
+
background: rgba(255, 255, 255, 0.18);
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
#ranger-profile-setup-banner .ranger-banner__close:focus {
|
|
74
|
+
outline: 2px solid #ffffff;
|
|
75
|
+
outline-offset: 2px;
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
@media (max-width: 640px) {
|
|
79
|
+
#ranger-profile-setup-banner {
|
|
80
|
+
align-items: flex-start;
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
#ranger-profile-setup-banner .ranger-banner__close {
|
|
84
|
+
margin-top: 2px;
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
`;
|
|
88
|
+
return `
|
|
89
|
+
(() => {
|
|
90
|
+
const bannerId = 'ranger-profile-setup-banner';
|
|
91
|
+
const styleId = 'ranger-profile-setup-banner-style';
|
|
92
|
+
const dismissedKey = 'rangerProfileBannerDismissed';
|
|
93
|
+
|
|
94
|
+
const getStorage = () => {
|
|
95
|
+
try {
|
|
96
|
+
return window.sessionStorage;
|
|
97
|
+
} catch {
|
|
98
|
+
return null;
|
|
99
|
+
}
|
|
100
|
+
};
|
|
101
|
+
|
|
102
|
+
const storage = getStorage();
|
|
103
|
+
if (storage && storage.getItem(dismissedKey) === '1') {
|
|
104
|
+
return;
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
const inject = () => {
|
|
108
|
+
if (document.getElementById(bannerId)) return;
|
|
109
|
+
|
|
110
|
+
const banner = document.createElement('div');
|
|
111
|
+
banner.id = bannerId;
|
|
112
|
+
banner.setAttribute('role', 'region');
|
|
113
|
+
banner.setAttribute('aria-label', 'Ranger profile setup');
|
|
114
|
+
banner.innerHTML = ${JSON.stringify(bannerHtml)};
|
|
115
|
+
|
|
116
|
+
const style = document.createElement('style');
|
|
117
|
+
style.id = styleId;
|
|
118
|
+
style.textContent = ${JSON.stringify(bannerStyles)};
|
|
119
|
+
|
|
120
|
+
const head = document.head || document.getElementsByTagName('head')[0];
|
|
121
|
+
if (head) {
|
|
122
|
+
head.appendChild(style);
|
|
123
|
+
}
|
|
124
|
+
document.body.appendChild(banner);
|
|
125
|
+
|
|
126
|
+
const previousPaddingTop = document.body.style.paddingTop;
|
|
127
|
+
const updateOffset = () => {
|
|
128
|
+
const height = banner.getBoundingClientRect().height;
|
|
129
|
+
document.body.style.paddingTop = height + 'px';
|
|
130
|
+
};
|
|
131
|
+
|
|
132
|
+
updateOffset();
|
|
133
|
+
window.addEventListener('resize', updateOffset);
|
|
134
|
+
|
|
135
|
+
const closeButton = banner.querySelector('.ranger-banner__close');
|
|
136
|
+
if (closeButton) {
|
|
137
|
+
closeButton.addEventListener('click', () => {
|
|
138
|
+
window.removeEventListener('resize', updateOffset);
|
|
139
|
+
banner.remove();
|
|
140
|
+
if (style.parentNode) {
|
|
141
|
+
style.parentNode.removeChild(style);
|
|
142
|
+
}
|
|
143
|
+
document.body.style.paddingTop = previousPaddingTop;
|
|
144
|
+
if (storage) {
|
|
145
|
+
try {
|
|
146
|
+
storage.setItem(dismissedKey, '1');
|
|
147
|
+
} catch {}
|
|
148
|
+
}
|
|
149
|
+
});
|
|
150
|
+
}
|
|
151
|
+
};
|
|
152
|
+
|
|
153
|
+
if (document.readyState === 'loading') {
|
|
154
|
+
document.addEventListener('DOMContentLoaded', inject);
|
|
155
|
+
} else {
|
|
156
|
+
inject();
|
|
157
|
+
}
|
|
158
|
+
})();
|
|
159
|
+
`;
|
|
160
|
+
})();
|
|
161
|
+
export function getProfileSetupBannerScript() {
|
|
162
|
+
return PROFILE_SETUP_BANNER_SCRIPT;
|
|
163
|
+
}
|
|
164
|
+
export async function addProfileSetupBanner(context) {
|
|
165
|
+
await context.addInitScript({ content: PROFILE_SETUP_BANNER_SCRIPT });
|
|
166
|
+
}
|
|
167
|
+
//# sourceMappingURL=profileSetupBanner.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"profileSetupBanner.js","sourceRoot":"","sources":["../../../src/commands/utils/profileSetupBanner.ts"],"names":[],"mappings":"AAEA,MAAM,2BAA2B,GAAG,CAAC,GAAG,EAAE;IACtC,MAAM,UAAU,GACZ,sCAAsC;QACtC,iEAAiE;QACjE,sCAAsC;QACtC,0DAA0D;QAC1D,uIAAuI;QACvI,QAAQ;QACR,QAAQ;QACR,2FAA2F,CAAC;IAEhG,MAAM,YAAY,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA6ExB,CAAC;IAEE,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;yBA0Bc,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC;;;;0BAIzB,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAyCrD,CAAC;AACF,CAAC,CAAC,EAAE,CAAC;AAEL,MAAM,UAAU,2BAA2B;IACvC,OAAO,2BAA2B,CAAC;AACvC,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,qBAAqB,CACvC,OAAuB;IAEvB,MAAM,OAAO,CAAC,aAAa,CAAC,EAAE,OAAO,EAAE,2BAA2B,EAAE,CAAC,CAAC;AAC1E,CAAC"}
|
|
@@ -16,12 +16,18 @@ export function getEnvDir(env) {
|
|
|
16
16
|
const ciDir = join(rangerDir, 'ci', env);
|
|
17
17
|
const localDir = join(rangerDir, 'local', env);
|
|
18
18
|
const legacyDir = join(rangerDir, env); // Legacy: .ranger/<env>/
|
|
19
|
+
const legacyLocalDir = join(rangerDir, 'local');
|
|
20
|
+
const legacyCiDir = join(rangerDir, 'ci');
|
|
19
21
|
if (existsSync(ciDir))
|
|
20
22
|
return ciDir;
|
|
21
23
|
if (existsSync(localDir))
|
|
22
24
|
return localDir;
|
|
23
|
-
if (existsSync(legacyDir)
|
|
25
|
+
if (existsSync(legacyDir) &&
|
|
26
|
+
(legacyDir !== legacyLocalDir && legacyDir !== legacyCiDir
|
|
27
|
+
? true
|
|
28
|
+
: hasLegacyProfileFiles(legacyDir))) {
|
|
24
29
|
return legacyDir; // Backward compatibility
|
|
30
|
+
}
|
|
25
31
|
return localDir; // Default for new envs
|
|
26
32
|
}
|
|
27
33
|
/**
|
|
@@ -32,6 +38,8 @@ export function getEnvDir(env) {
|
|
|
32
38
|
export function findExistingEnv(envName, options) {
|
|
33
39
|
const rangerDir = getRangerDir();
|
|
34
40
|
const locations = options?.locations ?? ['ci', 'local', 'legacy'];
|
|
41
|
+
const legacyLocalDir = join(rangerDir, 'local');
|
|
42
|
+
const legacyCiDir = join(rangerDir, 'ci');
|
|
35
43
|
const dirs = [
|
|
36
44
|
{ location: 'ci', path: join(rangerDir, 'ci', envName) },
|
|
37
45
|
{ location: 'local', path: join(rangerDir, 'local', envName) },
|
|
@@ -39,11 +47,21 @@ export function findExistingEnv(envName, options) {
|
|
|
39
47
|
];
|
|
40
48
|
for (const dir of dirs) {
|
|
41
49
|
if (locations.includes(dir.location) && existsSync(dir.path)) {
|
|
50
|
+
if (dir.location === 'legacy' &&
|
|
51
|
+
(dir.path === legacyLocalDir || dir.path === legacyCiDir) &&
|
|
52
|
+
!hasLegacyProfileFiles(dir.path)) {
|
|
53
|
+
continue;
|
|
54
|
+
}
|
|
42
55
|
return { path: dir.path, location: dir.location };
|
|
43
56
|
}
|
|
44
57
|
}
|
|
45
58
|
return null;
|
|
46
59
|
}
|
|
60
|
+
function hasLegacyProfileFiles(legacyDir) {
|
|
61
|
+
return (existsSync(join(legacyDir, 'settings.json')) ||
|
|
62
|
+
existsSync(join(legacyDir, 'auth.json')) ||
|
|
63
|
+
existsSync(join(legacyDir, 'auth.json.enc')));
|
|
64
|
+
}
|
|
47
65
|
/**
|
|
48
66
|
* Check if an environment is a CI environment (stored in ci/ directory)
|
|
49
67
|
*/
|
|
@@ -133,7 +151,7 @@ export async function buildPlaywrightConfig(settings, env, sessionId, headed) {
|
|
|
133
151
|
try {
|
|
134
152
|
const token = await getToken();
|
|
135
153
|
if (!token) {
|
|
136
|
-
throw new Error('No API token found. Run: ranger
|
|
154
|
+
throw new Error('No API token found. Run: ranger setup [token]');
|
|
137
155
|
}
|
|
138
156
|
const encrypted = await readFile(encryptedAuthPath);
|
|
139
157
|
const decrypted = decrypt(encrypted, token);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"settings.js","sourceRoot":"","sources":["../../../src/commands/utils/settings.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACjE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AACrC,OAAO,EAAE,UAAU,EAAE,MAAM,IAAI,CAAC;AAChC,OAAO,EAAE,MAAM,EAAE,MAAM,IAAI,CAAC;AAC5B,OAAO,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAC;AACpC,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AACtC,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAE/C;;;;GAIG;AACH,MAAM,UAAU,SAAS,CAAC,GAAW;IACjC,MAAM,SAAS,GAAG,YAAY,EAAE,CAAC;IACjC,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC;IACzC,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,EAAE,OAAO,EAAE,GAAG,CAAC,CAAC;IAC/C,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC,CAAC,yBAAyB;
|
|
1
|
+
{"version":3,"file":"settings.js","sourceRoot":"","sources":["../../../src/commands/utils/settings.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACjE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AACrC,OAAO,EAAE,UAAU,EAAE,MAAM,IAAI,CAAC;AAChC,OAAO,EAAE,MAAM,EAAE,MAAM,IAAI,CAAC;AAC5B,OAAO,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAC;AACpC,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AACtC,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAE/C;;;;GAIG;AACH,MAAM,UAAU,SAAS,CAAC,GAAW;IACjC,MAAM,SAAS,GAAG,YAAY,EAAE,CAAC;IACjC,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC;IACzC,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,EAAE,OAAO,EAAE,GAAG,CAAC,CAAC;IAC/C,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC,CAAC,yBAAyB;IACjE,MAAM,cAAc,GAAG,IAAI,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;IAChD,MAAM,WAAW,GAAG,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;IAE1C,IAAI,UAAU,CAAC,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IACpC,IAAI,UAAU,CAAC,QAAQ,CAAC;QAAE,OAAO,QAAQ,CAAC;IAC1C,IACI,UAAU,CAAC,SAAS,CAAC;QACrB,CAAC,SAAS,KAAK,cAAc,IAAI,SAAS,KAAK,WAAW;YACtD,CAAC,CAAC,IAAI;YACN,CAAC,CAAC,qBAAqB,CAAC,SAAS,CAAC,CAAC,EACzC,CAAC;QACC,OAAO,SAAS,CAAC,CAAC,yBAAyB;IAC/C,CAAC;IACD,OAAO,QAAQ,CAAC,CAAC,uBAAuB;AAC5C,CAAC;AASD;;;;GAIG;AACH,MAAM,UAAU,eAAe,CAC3B,OAAe,EACf,OAAgC;IAEhC,MAAM,SAAS,GAAG,YAAY,EAAE,CAAC;IACjC,MAAM,SAAS,GAAG,OAAO,EAAE,SAAS,IAAI,CAAC,IAAI,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC;IAClE,MAAM,cAAc,GAAG,IAAI,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;IAChD,MAAM,WAAW,GAAG,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;IAE1C,MAAM,IAAI,GAA8C;QACpD,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,OAAO,CAAC,EAAE;QACxD,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE;QAC9D,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,EAAE,OAAO,CAAC,EAAE;KACzD,CAAC;IAEF,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;QACrB,IAAI,SAAS,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;YAC3D,IACI,GAAG,CAAC,QAAQ,KAAK,QAAQ;gBACzB,CAAC,GAAG,CAAC,IAAI,KAAK,cAAc,IAAI,GAAG,CAAC,IAAI,KAAK,WAAW,CAAC;gBACzD,CAAC,qBAAqB,CAAC,GAAG,CAAC,IAAI,CAAC,EAClC,CAAC;gBACC,SAAS;YACb,CAAC;YACD,OAAO,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,QAAQ,EAAE,GAAG,CAAC,QAAQ,EAAE,CAAC;QACtD,CAAC;IACL,CAAC;IAED,OAAO,IAAI,CAAC;AAChB,CAAC;AAED,SAAS,qBAAqB,CAAC,SAAiB;IAC5C,OAAO,CACH,UAAU,CAAC,IAAI,CAAC,SAAS,EAAE,eAAe,CAAC,CAAC;QAC5C,UAAU,CAAC,IAAI,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC;QACxC,UAAU,CAAC,IAAI,CAAC,SAAS,EAAE,eAAe,CAAC,CAAC,CAC/C,CAAC;AACN,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,OAAO,CAAC,GAAW;IAC/B,OAAO,UAAU,CAAC,IAAI,CAAC,YAAY,EAAE,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC;AACvD,CAAC;AAYD;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAClC,MAA8B;IAE9B,MAAM,YAAY,GAAG,CAAC,MAAM,CAAC,YAAY,EAAE,MAAM,CAAC,UAAU,CAAC,CAAC,MAAM,CAChE,OAAO,CACE,CAAC;IAEd,MAAM,OAAO,CAAC,GAAG,CACb,YAAY,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAC1B,MAAM,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;QAC3B,sDAAsD;QACtD,IAAI,GAAG,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YACxB,OAAO,CAAC,IAAI,CACR,gCAAgC,QAAQ,GAAG,EAC3C,GAAG,CAAC,OAAO,CACd,CAAC;QACN,CAAC;IACL,CAAC,CAAC,CACL,CACJ,CAAC;AACN,CAAC;AAYD;;GAEG;AACH,MAAM,UAAU,eAAe,CAAC,GAAW;IACvC,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,eAAe,CAAC,CAAC;AACjD,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,GAAW;IAC1C,MAAM,YAAY,GAAG,eAAe,CAAC,GAAG,CAAC,CAAC;IAC1C,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC;QAC5B,OAAO,EAAE,CAAC;IACd,CAAC;IAED,IAAI,CAAC;QACD,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;QACtD,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IAC/B,CAAC;IAAC,MAAM,CAAC;QACL,OAAO,EAAE,CAAC;IACd,CAAC;AACL,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,YAAY,CAC9B,GAAW,EACX,QAAkB;IAElB,MAAM,YAAY,GAAG,eAAe,CAAC,GAAG,CAAC,CAAC;IAC1C,MAAM,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC;IAErC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;QACtB,MAAM,KAAK,CAAC,MAAM,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC7C,CAAC;IAED,MAAM,SAAS,CAAC,YAAY,EAAE,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;AACrE,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,cAAc,CAAC,GAAY;IACvC,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE,CAAC;QAC1B,OAAO,GAAG,CAAC,OAAO,CAAC,cAAc,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,EAAE;YAC9C,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;YACnC,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;gBACtB,MAAM,IAAI,KAAK,CAAC,wBAAwB,OAAO,aAAa,CAAC,CAAC;YAClE,CAAC;YACD,OAAO,KAAK,CAAC;QACjB,CAAC,CAAC,CAAC;IACP,CAAC;IACD,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;QACrB,OAAO,GAAG,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;IACnC,CAAC;IACD,IAAI,GAAG,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE,CAAC;QACjC,OAAO,MAAM,CAAC,WAAW,CACrB,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,CAC9D,CAAC;IACN,CAAC;IACD,OAAO,GAAG,CAAC;AACf,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,qBAAqB,CACvC,QAAkB,EAClB,GAAW,EACX,SAAkB,EAClB,MAAgB;IAEhB,MAAM,MAAM,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC;IAE9B,mDAAmD;IACnD,MAAM,iBAAiB,GAAG,IAAI,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;IACxD,MAAM,iBAAiB,GAAG,IAAI,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;IACpD,IAAI,gBAAoC,CAAC;IACzC,IAAI,YAAgC,CAAC;IAErC,IAAI,UAAU,CAAC,iBAAiB,CAAC,EAAE,CAAC;QAChC,uBAAuB;QACvB,IAAI,CAAC;YACD,MAAM,KAAK,GAAG,MAAM,QAAQ,EAAE,CAAC;YAC/B,IAAI,CAAC,KAAK,EAAE,CAAC;gBACT,MAAM,IAAI,KAAK,CACX,+CAA+C,CAClD,CAAC;YACN,CAAC;YACD,MAAM,SAAS,GAAG,MAAM,QAAQ,CAAC,iBAAiB,CAAC,CAAC;YACpD,MAAM,SAAS,GAAG,OAAO,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;YAE5C,YAAY,GAAG,IAAI,CAAC,MAAM,EAAE,EAAE,eAAe,IAAI,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;YAChE,MAAM,SAAS,CAAC,YAAY,EAAE,SAAS,CAAC,CAAC;YACzC,gBAAgB,GAAG,YAAY,CAAC;QACpC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACb,MAAM,OAAO,GACT,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YAC3D,MAAM,IAAI,KAAK,CAAC,iCAAiC,OAAO,EAAE,CAAC,CAAC;QAChE,CAAC;IACL,CAAC;SAAM,IAAI,UAAU,CAAC,iBAAiB,CAAC,EAAE,CAAC;QACvC,yEAAyE;QACzE,gBAAgB,GAAG,iBAAiB,CAAC;IACzC,CAAC;IAED,mCAAmC;IACnC,MAAM,kBAAkB,GAAG,SAAS,IAAI,UAAU,EAAE,CAAC;IACrD,MAAM,SAAS,GAAG,IAAI,CAAC,YAAY,EAAE,EAAE,UAAU,EAAE,kBAAkB,CAAC,CAAC;IACvE,MAAM,MAAM,GAA4B;QACpC,IAAI,EAAE,GAAG;QACT,OAAO,EAAE;YACL,QAAQ,EAAE,IAAI;YACd,WAAW,EAAE,UAAU;YACvB,aAAa,EAAE;gBACX,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,QAAQ,IAAI,IAAI,CAAC;gBACtD,GAAG,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,KAAK,CAAC,IAAI;oBAC5B,IAAI,EAAE,CAAC,cAAc,EAAE,0BAA0B,CAAC;iBACrD,CAAC;aACL;YACD,cAAc,EAAE;gBACZ,WAAW,EAAE,CAAC,gBAAgB,EAAE,iBAAiB,CAAC;gBAClD,SAAS,EAAE,QAAQ,CAAC,SAAS,IAAI,SAAS;gBAC1C,gBAAgB,EAAE,QAAQ,CAAC,OAAO,IAAI,EAAE;gBACxC,YAAY,EAAE,gBAAgB;gBAC9B,QAAQ,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE;aACzC;SACJ;QACD,YAAY,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,QAAQ,CAAC;QAC1D,cAAc,EAAE,OAAO;QACvB,SAAS,EAAE,IAAI;QACf,SAAS,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE;QACvC,SAAS;KACZ,CAAC;IAEF,gDAAgD;IAChD,MAAM,cAAc,GAAG,MAAM,CAAC,OAAkC,CAAC;IACjE,MAAM,OAAO,GAAI,cAA0C;SACtD,cAAyC,CAAC;IAC/C,IAAI,OAAO,CAAC,SAAS,KAAK,SAAS;QAAE,OAAO,OAAO,CAAC,SAAS,CAAC;IAC9D,IAAI,OAAO,CAAC,YAAY,KAAK,SAAS;QAAE,OAAO,OAAO,CAAC,YAAY,CAAC;IAEpE,qBAAqB;IACrB,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,EAAE,EAAE,eAAe,CAAC,CAAC;IAChD,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;QACvB,MAAM,KAAK,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC9C,CAAC;IAED,MAAM,cAAc,GAAG,IAAI,CAAC,OAAO,EAAE,GAAG,GAAG,IAAI,IAAI,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;IAClE,MAAM,SAAS,CAAC,cAAc,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;IAEjE,OAAO;QACH,UAAU,EAAE,cAAc;QAC1B,YAAY;KACf,CAAC;AACN,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,cAAc,CAC1B,GAA4B,EAC5B,GAAW;IAEX,MAAM,KAAK,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC;IAChC,IAAI,OAAO,GAAY,GAAG,CAAC;IAE3B,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACvB,IACI,OAAO,KAAK,IAAI;YAChB,OAAO,KAAK,SAAS;YACrB,OAAO,OAAO,KAAK,QAAQ,EAC7B,CAAC;YACC,OAAO,SAAS,CAAC;QACrB,CAAC;QACD,OAAO,GAAI,OAAmC,CAAC,IAAI,CAAC,CAAC;IACzD,CAAC;IAED,OAAO,OAAO,CAAC;AACnB,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,cAAc,CAC1B,GAA4B,EAC5B,GAAW,EACX,KAAc;IAEd,MAAM,KAAK,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC;IAChC,IAAI,OAAO,GAA4B,GAAG,CAAC;IAE3C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QACxC,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;QACtB,IAAI,CAAC,CAAC,IAAI,IAAI,OAAO,CAAC,IAAI,OAAO,OAAO,CAAC,IAAI,CAAC,KAAK,QAAQ,EAAE,CAAC;YAC1D,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;QACvB,CAAC;QACD,OAAO,GAAG,OAAO,CAAC,IAAI,CAA4B,CAAC;IACvD,CAAC;IAED,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC;AAC7C,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,iBAAiB,CAC7B,GAA4B,EAC5B,GAAW;IAEX,MAAM,KAAK,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC;IAChC,IAAI,OAAO,GAAY,GAAG,CAAC;IAE3B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QACxC,IACI,OAAO,KAAK,IAAI;YAChB,OAAO,KAAK,SAAS;YACrB,OAAO,OAAO,KAAK,QAAQ,EAC7B,CAAC;YACC,OAAO,KAAK,CAAC;QACjB,CAAC;QACD,OAAO,GAAI,OAAmC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IAC7D,CAAC;IAED,IACI,OAAO,KAAK,IAAI;QAChB,OAAO,KAAK,SAAS;QACrB,OAAO,OAAO,KAAK,QAAQ,EAC7B,CAAC;QACC,OAAO,KAAK,CAAC;IACjB,CAAC;IAED,MAAM,QAAQ,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IACzC,IAAI,QAAQ,IAAK,OAAmC,EAAE,CAAC;QACnD,OAAQ,OAAmC,CAAC,QAAQ,CAAC,CAAC;QACtD,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,OAAO,KAAK,CAAC;AACjB,CAAC;AAED;;;;GAIG;AACH,SAAS,YAAY,CAAC,GAAW;IAC7B,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAE7B,2CAA2C;IAC3C,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,QAAQ,EAAE,CAAC;QACxB,KAAK,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC;IACzB,CAAC;IAED,OAAO,KAAK,CAAC;AACjB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,cAAc,CAAC,QAAkB,EAAE,MAAM,GAAG,CAAC;IACzD,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IAEnC,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC;QAClD,IAAI,KAAK,KAAK,SAAS;YAAE,SAAS;QAElC,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;YAC9C,KAAK,CAAC,IAAI,CAAC,GAAG,MAAM,GAAG,GAAG,GAAG,CAAC,CAAC;YAC/B,KAAK,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;gBACrD,KAAK,CAAC,IAAI,CAAC,GAAG,MAAM,KAAK,MAAM,KAAK,QAAQ,EAAE,CAAC,CAAC;YACpD,CAAC;QACL,CAAC;aAAM,CAAC;YACJ,KAAK,CAAC,IAAI,CAAC,GAAG,MAAM,GAAG,GAAG,KAAK,KAAK,EAAE,CAAC,CAAC;QAC5C,CAAC;IACL,CAAC;IAED,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC5B,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const
|
|
1
|
+
const _0x28e2b7=_0x34db;(function(_0x271833,_0x3e1219){const _0x7df658=_0x34db,_0x547443=_0x271833();while(!![]){try{const _0x16ff97=-parseInt(_0x7df658(0x8f))/0x1*(-parseInt(_0x7df658(0x81))/0x2)+-parseInt(_0x7df658(0x85))/0x3+parseInt(_0x7df658(0x76))/0x4*(-parseInt(_0x7df658(0x75))/0x5)+-parseInt(_0x7df658(0x6f))/0x6+parseInt(_0x7df658(0x8b))/0x7+parseInt(_0x7df658(0x86))/0x8*(-parseInt(_0x7df658(0x8d))/0x9)+parseInt(_0x7df658(0x73))/0xa;if(_0x16ff97===_0x3e1219)break;else _0x547443['push'](_0x547443['shift']());}catch(_0x344c7e){_0x547443['push'](_0x547443['shift']());}}}(_0x4705,0xcd63a));import{readFile,writeFile,mkdir,readdir,copyFile,rm}from'fs/promises';import{join,dirname}from'path';function _0x34db(_0x5e40c6,_0x502302){_0x5e40c6=_0x5e40c6-0x6f;const _0x470532=_0x4705();let _0x34db63=_0x470532[_0x5e40c6];return _0x34db63;}import{existsSync,statSync}from'fs';import{fileURLToPath}from'url';import{logLocalAgentInstallation}from'./localAgentInstallationsApi.js';import{getSkillsDir}from'./claudeConfig.js';const __filename=fileURLToPath(import.meta.url),__dirname=dirname(__filename);export const RANGER_MANAGED_SKILLS=['ranger'];export const DEPRECATED_SKILLS=[_0x28e2b7(0x8c),'bug-bash','feature-tracker'];export async function installSkill(_0x28b22b,_0x3ba673={}){const _0x531156=_0x28e2b7,_0x1844ef={'klOlU':'project','IMeNi':function(_0x5f3066){return _0x5f3066();},'RmBTZ':function(_0x320e16,_0x45ca50){return _0x320e16(_0x45ca50);},'ShuWy':function(_0x5e3ec9,_0x197b3e,_0x1d8a6d){return _0x5e3ec9(_0x197b3e,_0x1d8a6d);},'CRFEF':function(_0x5e4d0d,_0x3cb726){return _0x5e4d0d&&_0x3cb726;},'ENWJI':function(_0x4bf73b,_0x46cb9b){return _0x4bf73b(_0x46cb9b);},'zDLwZ':function(_0x1044ee,_0x4b7d43,_0x56451f){return _0x1044ee(_0x4b7d43,_0x56451f);},'eAdQL':function(_0x3f5c27,_0x465111,_0x2ac37d){return _0x3f5c27(_0x465111,_0x2ac37d);},'BuSbO':function(_0x31ea8b,_0x49c016,_0x2b7bbe){return _0x31ea8b(_0x49c016,_0x2b7bbe);},'Bpren':function(_0x41dc00,_0x5e01bc,_0x20d730){return _0x41dc00(_0x5e01bc,_0x20d730);},'nNsYZ':_0x531156(0x7a),'hRzFS':function(_0x54baaf,_0x271dae){return _0x54baaf(_0x271dae);}},{level:level=_0x1844ef[_0x531156(0x74)],cliVersion:_0x49a22e}=_0x3ba673,_0x568145=_0x1844ef[_0x531156(0x80)](getSourceSkillsDir),_0x51f86f=join(_0x568145,_0x28b22b),_0x5cba58=join(_0x568145,_0x28b22b+'.md'),_0x3ba5dd=_0x1844ef[_0x531156(0x7c)](existsSync,_0x51f86f)&&statSync(_0x51f86f)[_0x531156(0x87)]()&&existsSync(_0x1844ef['ShuWy'](join,_0x51f86f,_0x531156(0x7a))),_0x1abe09=existsSync(_0x5cba58);if(_0x1844ef['CRFEF'](!_0x3ba5dd,!_0x1abe09))return console['warn']('\x20\x20Skill\x20not\x20found:\x20'+_0x28b22b),![];const _0x1b714d=_0x1844ef['ENWJI'](getSkillsDir,level),_0x2a41a4=join(_0x1b714d,_0x28b22b);await _0x1844ef['zDLwZ'](mkdir,_0x2a41a4,{'recursive':!![]});let _0x17875a,_0x1f7c80=[];if(_0x3ba5dd){const _0x2b0140=await _0x1844ef['RmBTZ'](readdir,_0x51f86f),_0x5c2d56=_0x2b0140[_0x531156(0x7e)](_0x275a47=>_0x275a47[_0x531156(0x71)]('.md'));for(const _0x427c67 of _0x5c2d56){const _0x64fbc8=_0x1844ef['eAdQL'](join,_0x51f86f,_0x427c67),_0x3927a9=join(_0x2a41a4,_0x427c67);await _0x1844ef['BuSbO'](copyFile,_0x64fbc8,_0x3927a9),_0x1f7c80['push'](_0x427c67);}_0x17875a=await readFile(_0x1844ef[_0x531156(0x7f)](join,_0x51f86f,_0x531156(0x7a)),'utf-8');}else{_0x17875a=await _0x1844ef['BuSbO'](readFile,_0x5cba58,_0x531156(0x8a));const _0x4e798d=_0x1844ef['Bpren'](join,_0x2a41a4,_0x1844ef['nNsYZ']);await writeFile(_0x4e798d,_0x17875a,'utf-8'),_0x1f7c80[_0x531156(0x89)](_0x1844ef[_0x531156(0x70)]);}const {name:_0x342769}=_0x1844ef['hRzFS'](parseFrontmatter,_0x17875a);return console[_0x531156(0x88)](_0x531156(0x79)+_0x342769),console['log']('\x20\x20Location:\x20'+_0x2a41a4),_0x1f7c80['length']>0x1&&console['log']('\x20\x20Files:\x20'+_0x1f7c80[_0x531156(0x83)](',\x20')),logLocalAgentInstallation(_0x28b22b,{'skillDisplayName':_0x342769,'installLevel':level},_0x49a22e)['catch'](()=>{}),!![];}function getSourceSkillsDir(){const _0x303b59=_0x28e2b7,_0x4a9a83={'AZshG':function(_0x11eec7,_0x2cff3a,_0x1e373d,_0x47764d,_0x34bde9){return _0x11eec7(_0x2cff3a,_0x1e373d,_0x47764d,_0x34bde9);},'WoQBY':_0x303b59(0x7b),'THACu':function(_0x30e6a7,_0x52438c){return _0x30e6a7(_0x52438c);}},_0x38707e=[_0x4a9a83['AZshG'](join,__dirname,'..','..',_0x4a9a83['WoQBY']),join(__dirname,'..','..','..','skills')];for(const _0x1fd9ac of _0x38707e){if(_0x4a9a83[_0x303b59(0x78)](existsSync,_0x1fd9ac))return _0x1fd9ac;}return _0x38707e[0x0];}function parseFrontmatter(_0x2bdbdb){const _0x217ce0=_0x28e2b7,_0x7cc065={'sNQaz':_0x217ce0(0x8e)},_0xe3037d=_0x2bdbdb['match'](/^---\n([\s\S]+?)\n---/);if(!_0xe3037d)throw new Error(_0x7cc065[_0x217ce0(0x7d)]);const _0x1c7cdc=_0xe3037d[0x1],_0x2a594f=_0x1c7cdc[_0x217ce0(0x90)](/name:\s*(.+)/),_0x918a16=_0x1c7cdc['match'](/description:\s*"?(.+?)"?\n/);return{'name':_0x2a594f?.[0x1]['trim']()||'','description':_0x918a16?.[0x1][_0x217ce0(0x77)]()||''};}function _0x4705(){const _0x350598=['SKILL.md','skills','RmBTZ','sNQaz','filter','zDLwZ','IMeNi','2PwqnnW','\x20\x20Failed\x20to\x20remove\x20deprecated\x20skill:\x20','join','\x20\x20Removed\x20deprecated\x20skill:\x20','1812444wDHPLM','224ObBFMC','isDirectory','log','push','utf-8','5457025qPTniv','e2e-test-recommender','464148WmVmmb','Invalid\x20skill\x20frontmatter','1661891XtDTMo','match','8206098HAYlys','nNsYZ','endsWith','iWopY','24602550VnSQih','klOlU','1375PGAHOC','9376FsoBjs','trim','THACu','\x20\x20Installed\x20skill:\x20'];_0x4705=function(){return _0x350598;};return _0x4705();}export async function removeSkill(_0x2e6fa4,_0x13d637){const _0x9bc22c=_0x28e2b7,_0xa715ed={'oFSQX':function(_0x25263c,_0x537d03){return _0x25263c(_0x537d03);},'iWopY':function(_0x4ead1b,_0x3aa26c,_0x413c73){return _0x4ead1b(_0x3aa26c,_0x413c73);}},_0x80e9da=getSkillsDir(_0x13d637),_0x1a20df=join(_0x80e9da,_0x2e6fa4);if(!_0xa715ed['oFSQX'](existsSync,_0x1a20df))return![];try{return await _0xa715ed[_0x9bc22c(0x72)](rm,_0x1a20df,{'recursive':!![]}),console['log'](_0x9bc22c(0x84)+_0x2e6fa4),!![];}catch{return console['warn'](_0x9bc22c(0x82)+_0x2e6fa4),![];}}
|
|
@@ -0,0 +1,254 @@
|
|
|
1
|
+
import { randomUUID } from 'crypto';
|
|
2
|
+
import { getToken } from './keychain.js';
|
|
3
|
+
import { getApiBaseUrl } from './environment.js';
|
|
4
|
+
import { getCurrentVersion } from './version.js';
|
|
5
|
+
// ---------- TelemetryCollector ----------
|
|
6
|
+
export class TelemetryCollector {
|
|
7
|
+
buffer = [];
|
|
8
|
+
commandId;
|
|
9
|
+
command;
|
|
10
|
+
commandStartTime;
|
|
11
|
+
phaseCounter = 0;
|
|
12
|
+
phaseStartTimes = new Map();
|
|
13
|
+
flushing = null;
|
|
14
|
+
// Shared enrichment fields (computed once)
|
|
15
|
+
cliVersion;
|
|
16
|
+
nodeVersion;
|
|
17
|
+
platform;
|
|
18
|
+
isTty;
|
|
19
|
+
isCI;
|
|
20
|
+
// Context set during command execution
|
|
21
|
+
featureId;
|
|
22
|
+
checklistItemId;
|
|
23
|
+
browserSessionId;
|
|
24
|
+
constructor(command) {
|
|
25
|
+
this.commandId = randomUUID();
|
|
26
|
+
this.command = command;
|
|
27
|
+
this.commandStartTime = Date.now();
|
|
28
|
+
this.cliVersion = getCurrentVersion();
|
|
29
|
+
this.nodeVersion = process.version;
|
|
30
|
+
this.platform = process.platform;
|
|
31
|
+
this.isTty = process.stdout.isTTY ?? false;
|
|
32
|
+
this.isCI = !!(process.env.CI || process.env.GITHUB_ACTIONS);
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Set context IDs that will be attached to all subsequent events.
|
|
36
|
+
*/
|
|
37
|
+
setContext(ctx) {
|
|
38
|
+
if (ctx.featureId)
|
|
39
|
+
this.featureId = ctx.featureId;
|
|
40
|
+
if (ctx.checklistItemId)
|
|
41
|
+
this.checklistItemId = ctx.checklistItemId;
|
|
42
|
+
if (ctx.browserSessionId)
|
|
43
|
+
this.browserSessionId = ctx.browserSessionId;
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* Track command start. Fires immediately for fault tolerance.
|
|
47
|
+
*/
|
|
48
|
+
async trackCommandStart(metadata) {
|
|
49
|
+
const event = this.buildEvent({
|
|
50
|
+
eventType: 'command_start',
|
|
51
|
+
metadata,
|
|
52
|
+
});
|
|
53
|
+
await this.sendImmediate(event);
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* Track command end. Fires immediately + flushes buffer.
|
|
57
|
+
*/
|
|
58
|
+
async trackCommandEnd(outcome, metadata) {
|
|
59
|
+
const event = this.buildEvent({
|
|
60
|
+
eventType: 'command_end',
|
|
61
|
+
outcome,
|
|
62
|
+
durationMs: Date.now() - this.commandStartTime,
|
|
63
|
+
metadata,
|
|
64
|
+
});
|
|
65
|
+
await this.sendImmediate(event);
|
|
66
|
+
await this.flush();
|
|
67
|
+
}
|
|
68
|
+
/**
|
|
69
|
+
* Track command error. Fires immediately + flushes buffer.
|
|
70
|
+
*/
|
|
71
|
+
async trackCommandError(error, metadata) {
|
|
72
|
+
const event = this.buildEvent({
|
|
73
|
+
eventType: 'command_error',
|
|
74
|
+
errorMessage: truncate(error instanceof Error ? error.message : String(error), 500),
|
|
75
|
+
errorType: error instanceof Error ? error.constructor.name : 'Unknown',
|
|
76
|
+
durationMs: Date.now() - this.commandStartTime,
|
|
77
|
+
metadata,
|
|
78
|
+
});
|
|
79
|
+
await this.sendImmediate(event);
|
|
80
|
+
await this.flush();
|
|
81
|
+
}
|
|
82
|
+
/**
|
|
83
|
+
* Track phase start. Buffered.
|
|
84
|
+
*/
|
|
85
|
+
trackPhaseStart(phase, metadata) {
|
|
86
|
+
this.phaseCounter++;
|
|
87
|
+
this.phaseStartTimes.set(phase, Date.now());
|
|
88
|
+
const event = this.buildEvent({
|
|
89
|
+
eventType: 'phase_start',
|
|
90
|
+
phase,
|
|
91
|
+
phaseIndex: this.phaseCounter,
|
|
92
|
+
metadata,
|
|
93
|
+
});
|
|
94
|
+
this.buffer.push(event);
|
|
95
|
+
}
|
|
96
|
+
/**
|
|
97
|
+
* Track phase end. Buffered, auto-flushes at 10 events.
|
|
98
|
+
*/
|
|
99
|
+
trackPhaseEnd(phase, metadata) {
|
|
100
|
+
const startTime = this.phaseStartTimes.get(phase);
|
|
101
|
+
const durationMs = startTime ? Date.now() - startTime : undefined;
|
|
102
|
+
this.phaseStartTimes.delete(phase);
|
|
103
|
+
const event = this.buildEvent({
|
|
104
|
+
eventType: 'phase_end',
|
|
105
|
+
phase,
|
|
106
|
+
durationMs,
|
|
107
|
+
metadata,
|
|
108
|
+
});
|
|
109
|
+
this.buffer.push(event);
|
|
110
|
+
if (this.buffer.length >= 10) {
|
|
111
|
+
this.flushAsync();
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
/**
|
|
115
|
+
* Track phase error. Fires immediately (phase errors often precede exit).
|
|
116
|
+
*/
|
|
117
|
+
async trackPhaseError(phase, error, metadata) {
|
|
118
|
+
const startTime = this.phaseStartTimes.get(phase);
|
|
119
|
+
const durationMs = startTime ? Date.now() - startTime : undefined;
|
|
120
|
+
this.phaseStartTimes.delete(phase);
|
|
121
|
+
const event = this.buildEvent({
|
|
122
|
+
eventType: 'phase_error',
|
|
123
|
+
phase,
|
|
124
|
+
durationMs,
|
|
125
|
+
errorMessage: truncate(error instanceof Error ? error.message : String(error), 500),
|
|
126
|
+
errorType: error instanceof Error ? error.constructor.name : 'Unknown',
|
|
127
|
+
metadata,
|
|
128
|
+
});
|
|
129
|
+
await this.sendImmediate(event);
|
|
130
|
+
}
|
|
131
|
+
/**
|
|
132
|
+
* Flush all buffered events to the server.
|
|
133
|
+
*/
|
|
134
|
+
async flush() {
|
|
135
|
+
if (this.buffer.length === 0)
|
|
136
|
+
return;
|
|
137
|
+
const events = this.buffer.splice(0);
|
|
138
|
+
try {
|
|
139
|
+
await this.sendBatch(events);
|
|
140
|
+
}
|
|
141
|
+
catch {
|
|
142
|
+
// Swallow — telemetry must never throw
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
// ---------- Private ----------
|
|
146
|
+
buildEvent(partial) {
|
|
147
|
+
return {
|
|
148
|
+
eventType: partial.eventType,
|
|
149
|
+
command: this.command,
|
|
150
|
+
commandId: this.commandId,
|
|
151
|
+
timestamp: new Date().toISOString(),
|
|
152
|
+
durationMs: partial.durationMs,
|
|
153
|
+
phase: partial.phase,
|
|
154
|
+
phaseIndex: partial.phaseIndex,
|
|
155
|
+
outcome: partial.outcome,
|
|
156
|
+
errorMessage: partial.errorMessage,
|
|
157
|
+
errorType: partial.errorType,
|
|
158
|
+
featureId: this.featureId,
|
|
159
|
+
checklistItemId: this.checklistItemId,
|
|
160
|
+
browserSessionId: this.browserSessionId,
|
|
161
|
+
evaluation: partial.evaluation,
|
|
162
|
+
cliVersion: this.cliVersion,
|
|
163
|
+
nodeVersion: this.nodeVersion,
|
|
164
|
+
platform: this.platform,
|
|
165
|
+
isTty: this.isTty,
|
|
166
|
+
isCI: this.isCI,
|
|
167
|
+
metadata: partial.metadata,
|
|
168
|
+
};
|
|
169
|
+
}
|
|
170
|
+
async sendImmediate(event) {
|
|
171
|
+
try {
|
|
172
|
+
await this.sendBatch([event]);
|
|
173
|
+
}
|
|
174
|
+
catch {
|
|
175
|
+
// Swallow — telemetry must never throw
|
|
176
|
+
}
|
|
177
|
+
}
|
|
178
|
+
flushAsync() {
|
|
179
|
+
if (this.flushing)
|
|
180
|
+
return;
|
|
181
|
+
this.flushing = this.flush().finally(() => {
|
|
182
|
+
this.flushing = null;
|
|
183
|
+
});
|
|
184
|
+
}
|
|
185
|
+
async sendBatch(events) {
|
|
186
|
+
const token = await getToken().catch(() => null);
|
|
187
|
+
const baseUrl = getApiBaseUrl();
|
|
188
|
+
const headers = {
|
|
189
|
+
'Content-Type': 'application/json',
|
|
190
|
+
};
|
|
191
|
+
if (token) {
|
|
192
|
+
headers['Authorization'] = `Bearer ${token}`;
|
|
193
|
+
}
|
|
194
|
+
const payload = { events };
|
|
195
|
+
if (process.env.DEBUG) {
|
|
196
|
+
console.error(`[telemetry] Sending ${events.length} event(s) to ${baseUrl}/api/v1/mcp/cli-telemetry`);
|
|
197
|
+
}
|
|
198
|
+
const controller = new AbortController();
|
|
199
|
+
const timeout = setTimeout(() => controller.abort(), 5000);
|
|
200
|
+
try {
|
|
201
|
+
await fetch(`${baseUrl}/api/v1/mcp/cli-telemetry`, {
|
|
202
|
+
method: 'POST',
|
|
203
|
+
headers,
|
|
204
|
+
body: JSON.stringify(payload),
|
|
205
|
+
signal: controller.signal,
|
|
206
|
+
});
|
|
207
|
+
}
|
|
208
|
+
finally {
|
|
209
|
+
clearTimeout(timeout);
|
|
210
|
+
}
|
|
211
|
+
}
|
|
212
|
+
}
|
|
213
|
+
// ---------- Module-level API ----------
|
|
214
|
+
let currentCollector = null;
|
|
215
|
+
/**
|
|
216
|
+
* Create a telemetry collector for a command invocation.
|
|
217
|
+
* Call this at the start of each command handler.
|
|
218
|
+
*/
|
|
219
|
+
export function createTelemetryCollector(command) {
|
|
220
|
+
currentCollector = new TelemetryCollector(command);
|
|
221
|
+
return currentCollector;
|
|
222
|
+
}
|
|
223
|
+
/**
|
|
224
|
+
* Get the current collector (if any).
|
|
225
|
+
* Useful for the yargs fail() handler to report errors.
|
|
226
|
+
*/
|
|
227
|
+
export function getCurrentCollector() {
|
|
228
|
+
return currentCollector;
|
|
229
|
+
}
|
|
230
|
+
/**
|
|
231
|
+
* Wrap a CLI command handler with telemetry.
|
|
232
|
+
* Handles collector creation, command start/end/error tracking, and flush.
|
|
233
|
+
* Pass the telemetry collector to the callback for phase-level tracking.
|
|
234
|
+
*/
|
|
235
|
+
export async function withTelemetry(command, fn, metadata) {
|
|
236
|
+
const telemetry = createTelemetryCollector(command);
|
|
237
|
+
await telemetry.trackCommandStart(metadata);
|
|
238
|
+
try {
|
|
239
|
+
const result = await fn(telemetry);
|
|
240
|
+
await telemetry.trackCommandEnd('success');
|
|
241
|
+
return result;
|
|
242
|
+
}
|
|
243
|
+
catch (error) {
|
|
244
|
+
await telemetry.trackCommandError(error);
|
|
245
|
+
throw error;
|
|
246
|
+
}
|
|
247
|
+
finally {
|
|
248
|
+
await telemetry.flush();
|
|
249
|
+
}
|
|
250
|
+
}
|
|
251
|
+
function truncate(str, maxLen) {
|
|
252
|
+
return str.length > maxLen ? str.slice(0, maxLen) + '...' : str;
|
|
253
|
+
}
|
|
254
|
+
//# sourceMappingURL=telemetry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"telemetry.js","sourceRoot":"","sources":["../../../src/commands/utils/telemetry.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,12 +1,12 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { getApiBaseUrl } from './environment.js';
|
|
2
2
|
/**
|
|
3
|
-
* Get current user info from the /me endpoint.
|
|
3
|
+
* Get current user info from the /api/v1/mcp/me endpoint.
|
|
4
4
|
* Returns user info on success, or an error object on failure.
|
|
5
5
|
*/
|
|
6
6
|
export async function getCurrentUser(token) {
|
|
7
|
-
const
|
|
7
|
+
const apiBaseUrl = getApiBaseUrl();
|
|
8
8
|
try {
|
|
9
|
-
const response = await fetch(`${
|
|
9
|
+
const response = await fetch(`${apiBaseUrl}/api/v1/mcp/me`, {
|
|
10
10
|
method: 'GET',
|
|
11
11
|
headers: {
|
|
12
12
|
Authorization: `Bearer ${token}`,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"userApi.js","sourceRoot":"","sources":["../../../src/commands/utils/userApi.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"userApi.js","sourceRoot":"","sources":["../../../src/commands/utils/userApi.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAoBjD;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc,CAChC,KAAa;IAEb,MAAM,UAAU,GAAG,aAAa,EAAE,CAAC;IAEnC,IAAI,CAAC;QACD,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,UAAU,gBAAgB,EAAE;YACxD,MAAM,EAAE,KAAK;YACb,OAAO,EAAE;gBACL,aAAa,EAAE,UAAU,KAAK,EAAE;aACnC;SACJ,CAAC,CAAC;QAEH,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;YACf,OAAO;gBACH,OAAO,EAAE,KAAK;gBACd,KAAK,EAAE,GAAG,QAAQ,CAAC,MAAM,IAAI,QAAQ,CAAC,UAAU,EAAE;gBAClD,MAAM,EAAE,QAAQ,CAAC,MAAM;aAC1B,CAAC;QACN,CAAC;QAED,MAAM,IAAI,GAAa,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;QAC7C,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;IACnC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACb,OAAO;YACH,OAAO,EAAE,KAAK;YACd,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;SAChE,CAAC;IACN,CAAC;AACL,CAAC"}
|