@ranger-testing/ranger-cli 1.1.0 → 1.1.2
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 +87 -250
- package/build/cli.js +28 -5
- 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 +2 -2
- package/build/commands/authEncrypt.js.map +1 -1
- package/build/commands/clean.js +1 -1
- package/build/commands/config.js +5 -7
- package/build/commands/config.js.map +1 -1
- package/build/commands/dataMcpServer.js +1 -1
- package/build/commands/env.js +62 -14
- package/build/commands/env.js.map +1 -1
- package/build/commands/feature.js +3 -0
- package/build/commands/feature.js.map +1 -1
- package/build/commands/hook.js +2 -1
- package/build/commands/hook.js.map +1 -1
- package/build/commands/hooks/disable.js +8 -3
- package/build/commands/hooks/disable.js.map +1 -1
- package/build/commands/hooks/enable.js +10 -3
- package/build/commands/hooks/enable.js.map +1 -1
- package/build/commands/hooks/index.js +1 -0
- package/build/commands/hooks/index.js.map +1 -1
- package/build/commands/hooks/postEdit.js +3 -1
- package/build/commands/hooks/postEdit.js.map +1 -1
- package/build/commands/hooks/sessionEnd.js +21 -0
- package/build/commands/hooks/sessionEnd.js.map +1 -0
- package/build/commands/hooks/sessionStart.js +41 -1
- package/build/commands/hooks/sessionStart.js.map +1 -1
- package/build/commands/skillup.js +2 -3
- 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/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/browserSessionsApi.js +1 -1
- package/build/commands/utils/browserSessionsApi.js.map +1 -1
- package/build/commands/utils/cliSecret.js +1 -1
- package/build/commands/utils/desirePathLog.js +134 -0
- package/build/commands/utils/desirePathLog.js.map +1 -0
- package/build/commands/utils/featureApi.js.map +1 -1
- package/build/commands/utils/keychain.js +1 -1
- package/build/commands/utils/localAgentInstallationsApi.js +1 -1
- package/build/commands/utils/sessionCache.js +159 -10
- package/build/commands/utils/sessionCache.js.map +1 -1
- package/build/commands/utils/settings.js +26 -2
- package/build/commands/utils/settings.js.map +1 -1
- package/build/commands/utils/skills.js +1 -1
- package/build/commands/verifyFeature.js +46 -12
- package/build/commands/verifyFeature.js.map +1 -1
- package/build/commands/verifyInBrowser.js +1 -1
- package/build/skills/ranger/SKILL.md +21 -1
- package/build/skills/ranger/create.md +14 -7
- package/build/skills/ranger/verify.md +15 -0
- package/package.json +2 -3
|
@@ -0,0 +1,134 @@
|
|
|
1
|
+
import { getToken } from './keychain.js';
|
|
2
|
+
import { getApiBaseUrl } from './environment.js';
|
|
3
|
+
import { getCurrentVersion } from './version.js';
|
|
4
|
+
const SENSITIVE_FLAGS = new Set([
|
|
5
|
+
'--token',
|
|
6
|
+
'-t',
|
|
7
|
+
'--secret',
|
|
8
|
+
'--api-key',
|
|
9
|
+
'--apikey',
|
|
10
|
+
'--key',
|
|
11
|
+
'--password',
|
|
12
|
+
'--pass',
|
|
13
|
+
'--auth',
|
|
14
|
+
'--authorization',
|
|
15
|
+
'--header',
|
|
16
|
+
'--cookie',
|
|
17
|
+
'--credentials',
|
|
18
|
+
]);
|
|
19
|
+
const TOKEN_PATTERNS = [
|
|
20
|
+
/^(ranger_|rngr_|sk-|pk-|api[_-]?)/i,
|
|
21
|
+
/^[a-zA-Z0-9_-]{32,}$/,
|
|
22
|
+
/^eyJ[a-zA-Z0-9_-]+\.[a-zA-Z0-9_-]+/,
|
|
23
|
+
];
|
|
24
|
+
function looksLikeToken(value) {
|
|
25
|
+
return TOKEN_PATTERNS.some((pattern) => pattern.test(value));
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Sanitize command arguments to mask sensitive values like tokens and secrets.
|
|
29
|
+
*/
|
|
30
|
+
export function sanitizeArgs(argv) {
|
|
31
|
+
const result = [];
|
|
32
|
+
let maskNext = false;
|
|
33
|
+
for (let i = 0; i < argv.length; i++) {
|
|
34
|
+
const arg = argv[i];
|
|
35
|
+
if (maskNext) {
|
|
36
|
+
result.push('[REDACTED]');
|
|
37
|
+
maskNext = false;
|
|
38
|
+
continue;
|
|
39
|
+
}
|
|
40
|
+
if (arg.startsWith('--') || arg.startsWith('-')) {
|
|
41
|
+
const eqIndex = arg.indexOf('=');
|
|
42
|
+
if (eqIndex !== -1) {
|
|
43
|
+
const flag = arg.slice(0, eqIndex).toLowerCase();
|
|
44
|
+
if (SENSITIVE_FLAGS.has(flag)) {
|
|
45
|
+
result.push(`${arg.slice(0, eqIndex)}=[REDACTED]`);
|
|
46
|
+
continue;
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
else {
|
|
50
|
+
const flag = arg.toLowerCase();
|
|
51
|
+
if (SENSITIVE_FLAGS.has(flag)) {
|
|
52
|
+
maskNext = true;
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
result.push(arg);
|
|
56
|
+
}
|
|
57
|
+
else if (looksLikeToken(arg)) {
|
|
58
|
+
result.push('[REDACTED]');
|
|
59
|
+
}
|
|
60
|
+
else {
|
|
61
|
+
result.push(arg);
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
return result.join(' ');
|
|
65
|
+
}
|
|
66
|
+
/**
|
|
67
|
+
* Fire-and-forget logging for CLI command errors.
|
|
68
|
+
* Never blocks CLI execution or throws errors.
|
|
69
|
+
*/
|
|
70
|
+
export function logDesirePath(data) {
|
|
71
|
+
(async () => {
|
|
72
|
+
try {
|
|
73
|
+
const token = await getToken().catch(() => null);
|
|
74
|
+
const baseUrl = getApiBaseUrl();
|
|
75
|
+
const cliVersion = getCurrentVersion();
|
|
76
|
+
const authStatus = token ? 'has_token' : 'no_token';
|
|
77
|
+
const enrichedMetadata = {
|
|
78
|
+
...data.metadata,
|
|
79
|
+
authStatus,
|
|
80
|
+
isTty: process.stdout.isTTY ?? false,
|
|
81
|
+
};
|
|
82
|
+
const headers = {
|
|
83
|
+
'Content-Type': 'application/json',
|
|
84
|
+
};
|
|
85
|
+
if (token) {
|
|
86
|
+
headers['Authorization'] = `Bearer ${token}`;
|
|
87
|
+
}
|
|
88
|
+
fetch(`${baseUrl}/api/v1/mcp/desire-path-logs`, {
|
|
89
|
+
method: 'POST',
|
|
90
|
+
headers,
|
|
91
|
+
body: JSON.stringify({
|
|
92
|
+
rawCommand: data.rawCommand,
|
|
93
|
+
errorMessage: data.errorMessage,
|
|
94
|
+
errorType: data.errorType,
|
|
95
|
+
featureId: data.featureId,
|
|
96
|
+
sessionId: data.sessionId,
|
|
97
|
+
metadata: enrichedMetadata,
|
|
98
|
+
cliVersion,
|
|
99
|
+
}),
|
|
100
|
+
}).catch(() => { });
|
|
101
|
+
}
|
|
102
|
+
catch {
|
|
103
|
+
// Silently ignore all errors
|
|
104
|
+
}
|
|
105
|
+
})();
|
|
106
|
+
}
|
|
107
|
+
/**
|
|
108
|
+
* Categorize the error type based on yargs error message patterns.
|
|
109
|
+
*/
|
|
110
|
+
export function getErrorType(msg, err) {
|
|
111
|
+
if (err) {
|
|
112
|
+
return 'runtime_error';
|
|
113
|
+
}
|
|
114
|
+
if (!msg) {
|
|
115
|
+
return 'unknown';
|
|
116
|
+
}
|
|
117
|
+
if (msg.includes('Unknown command')) {
|
|
118
|
+
return 'unknown_command';
|
|
119
|
+
}
|
|
120
|
+
if (msg.includes('Unknown argument')) {
|
|
121
|
+
return 'unknown_argument';
|
|
122
|
+
}
|
|
123
|
+
if (msg.includes('Not enough non-option arguments')) {
|
|
124
|
+
return 'missing_required_argument';
|
|
125
|
+
}
|
|
126
|
+
if (msg.includes('Invalid values')) {
|
|
127
|
+
return 'invalid_option_value';
|
|
128
|
+
}
|
|
129
|
+
if (msg.includes('Missing required argument')) {
|
|
130
|
+
return 'missing_option';
|
|
131
|
+
}
|
|
132
|
+
return 'syntax_error';
|
|
133
|
+
}
|
|
134
|
+
//# sourceMappingURL=desirePathLog.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"desirePathLog.js","sourceRoot":"","sources":["../../../src/commands/utils/desirePathLog.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"featureApi.js","sourceRoot":"","sources":["../../../src/commands/utils/featureApi.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"featureApi.js","sourceRoot":"","sources":["../../../src/commands/utils/featureApi.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAwHjD;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,IAMnC;IACG,MAAM,KAAK,GAAG,MAAM,QAAQ,EAAE,CAAC;IAC/B,IAAI,CAAC,KAAK,EAAE,CAAC;QACT,MAAM,IAAI,KAAK,CAAC,oDAAoD,CAAC,CAAC;IAC1E,CAAC;IAED,MAAM,OAAO,GAAG,aAAa,EAAE,CAAC;IAChC,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,OAAO,sBAAsB,EAAE;QAC3D,MAAM,EAAE,MAAM;QACd,OAAO,EAAE;YACL,aAAa,EAAE,UAAU,KAAK,EAAE;YAChC,cAAc,EAAE,kBAAkB;SACrC;QACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;KAC7B,CAAC,CAAC;IAEH,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;QACf,MAAM,KAAK,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;QACpC,MAAM,IAAI,KAAK,CAAC,6BAA6B,KAAK,EAAE,CAAC,CAAC;IAC1D,CAAC;IAED,OAAO,QAAQ,CAAC,IAAI,EAAE,CAAC;AAC3B,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,OAKlC;IAMG,MAAM,KAAK,GAAG,MAAM,QAAQ,EAAE,CAAC;IAC/B,IAAI,CAAC,KAAK,EAAE,CAAC;QACT,MAAM,IAAI,KAAK,CAAC,oDAAoD,CAAC,CAAC;IAC1E,CAAC;IAED,MAAM,OAAO,GAAG,aAAa,EAAE,CAAC;IAChC,MAAM,MAAM,GAAG,IAAI,eAAe,EAAE,CAAC;IACrC,IAAI,OAAO,EAAE,UAAU;QAAE,MAAM,CAAC,GAAG,CAAC,YAAY,EAAE,OAAO,CAAC,UAAU,CAAC,CAAC;IACtE,IAAI,OAAO,EAAE,SAAS;QAAE,MAAM,CAAC,GAAG,CAAC,WAAW,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC;IACnE,IAAI,OAAO,EAAE,KAAK;QAAE,MAAM,CAAC,GAAG,CAAC,OAAO,EAAE,OAAO,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC;IAClE,IAAI,OAAO,EAAE,MAAM;QAAE,MAAM,CAAC,GAAG,CAAC,QAAQ,EAAE,OAAO,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC;IAErE,MAAM,GAAG,GAAG,GAAG,OAAO,uBAAuB,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;IAChG,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE;QAC9B,MAAM,EAAE,KAAK;QACb,OAAO,EAAE;YACL,aAAa,EAAE,UAAU,KAAK,EAAE;SACnC;KACJ,CAAC,CAAC;IAEH,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;QACf,MAAM,KAAK,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;QACpC,MAAM,IAAI,KAAK,CAAC,4BAA4B,KAAK,EAAE,CAAC,CAAC;IACzD,CAAC;IAED,OAAO,QAAQ,CAAC,IAAI,EAAE,CAAC;AAC3B,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,EAAU;IACvC,MAAM,KAAK,GAAG,MAAM,QAAQ,EAAE,CAAC;IAC/B,IAAI,CAAC,KAAK,EAAE,CAAC;QACT,MAAM,IAAI,KAAK,CAAC,oDAAoD,CAAC,CAAC;IAC1E,CAAC;IAED,MAAM,OAAO,GAAG,aAAa,EAAE,CAAC;IAChC,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,OAAO,wBAAwB,EAAE,EAAE,EAAE;QACjE,MAAM,EAAE,KAAK;QACb,OAAO,EAAE;YACL,aAAa,EAAE,UAAU,KAAK,EAAE;SACnC;KACJ,CAAC,CAAC;IAEH,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;QACf,MAAM,KAAK,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;QACpC,MAAM,IAAI,KAAK,CAAC,0BAA0B,KAAK,EAAE,CAAC,CAAC;IACvD,CAAC;IAED,OAAO,QAAQ,CAAC,IAAI,EAAE,CAAC;AAC3B,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa,CAC/B,EAAU,EACV,OAIC;IAED,MAAM,KAAK,GAAG,MAAM,QAAQ,EAAE,CAAC;IAC/B,IAAI,CAAC,KAAK,EAAE,CAAC;QACT,MAAM,IAAI,KAAK,CAAC,oDAAoD,CAAC,CAAC;IAC1E,CAAC;IAED,MAAM,OAAO,GAAG,aAAa,EAAE,CAAC;IAChC,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,OAAO,wBAAwB,EAAE,EAAE,EAAE;QACjE,MAAM,EAAE,OAAO;QACf,OAAO,EAAE;YACL,aAAa,EAAE,UAAU,KAAK,EAAE;YAChC,cAAc,EAAE,kBAAkB;SACrC;QACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC;KAChC,CAAC,CAAC;IAEH,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;QACf,MAAM,KAAK,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;QACpC,MAAM,IAAI,KAAK,CAAC,6BAA6B,KAAK,EAAE,CAAC,CAAC;IAC1D,CAAC;IAED,OAAO,QAAQ,CAAC,IAAI,EAAE,CAAC;AAC3B,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,mBAAmB,CACrC,SAAiB,EACjB,WAAmB,EACnB,QAAiB;IAEjB,MAAM,KAAK,GAAG,MAAM,QAAQ,EAAE,CAAC;IAC/B,IAAI,CAAC,KAAK,EAAE,CAAC;QACT,MAAM,IAAI,KAAK,CAAC,oDAAoD,CAAC,CAAC;IAC1E,CAAC;IAED,MAAM,OAAO,GAAG,aAAa,EAAE,CAAC;IAChC,MAAM,QAAQ,GAAG,MAAM,KAAK,CACxB,GAAG,OAAO,wBAAwB,SAAS,YAAY,EACvD;QACI,MAAM,EAAE,MAAM;QACd,OAAO,EAAE;YACL,aAAa,EAAE,UAAU,KAAK,EAAE;YAChC,cAAc,EAAE,kBAAkB;SACrC;QACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,WAAW,EAAE,QAAQ,EAAE,CAAC;KAClD,CACJ,CAAC;IAEF,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;QACf,MAAM,KAAK,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;QACpC,MAAM,IAAI,KAAK,CAAC,oCAAoC,KAAK,EAAE,CAAC,CAAC;IACjE,CAAC;IAED,OAAO,QAAQ,CAAC,IAAI,EAAE,CAAC;AAC3B,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,mBAAmB,CACrC,SAAiB,EACjB,MAAc,EACd,OAcC;IAED,MAAM,KAAK,GAAG,MAAM,QAAQ,EAAE,CAAC;IAC/B,IAAI,CAAC,KAAK,EAAE,CAAC;QACT,MAAM,IAAI,KAAK,CAAC,oDAAoD,CAAC,CAAC;IAC1E,CAAC;IAED,MAAM,OAAO,GAAG,aAAa,EAAE,CAAC;IAChC,MAAM,QAAQ,GAAG,MAAM,KAAK,CACxB,GAAG,OAAO,wBAAwB,SAAS,cAAc,MAAM,EAAE,EACjE;QACI,MAAM,EAAE,OAAO;QACf,OAAO,EAAE;YACL,aAAa,EAAE,UAAU,KAAK,EAAE;YAChC,cAAc,EAAE,kBAAkB;SACrC;QACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC;KAChC,CACJ,CAAC;IAEF,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;QACf,MAAM,KAAK,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;QACpC,MAAM,IAAI,KAAK,CAAC,oCAAoC,KAAK,EAAE,CAAC,CAAC;IACjE,CAAC;IAED,OAAO,QAAQ,CAAC,IAAI,EAAE,CAAC;AAC3B,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAC,EAAU;IAC7C,MAAM,KAAK,GAAG,MAAM,QAAQ,EAAE,CAAC;IAC/B,IAAI,CAAC,KAAK,EAAE,CAAC;QACT,MAAM,IAAI,KAAK,CAAC,oDAAoD,CAAC,CAAC;IAC1E,CAAC;IAED,MAAM,OAAO,GAAG,aAAa,EAAE,CAAC;IAChC,MAAM,QAAQ,GAAG,MAAM,KAAK,CACxB,GAAG,OAAO,wBAAwB,EAAE,SAAS,EAC7C;QACI,MAAM,EAAE,KAAK;QACb,OAAO,EAAE;YACL,aAAa,EAAE,UAAU,KAAK,EAAE;SACnC;KACJ,CACJ,CAAC;IAEF,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;QACf,MAAM,KAAK,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;QACpC,MAAM,IAAI,KAAK,CAAC,iCAAiC,KAAK,EAAE,CAAC,CAAC;IAC9D,CAAC;IAED,OAAO,QAAQ,CAAC,IAAI,EAAE,CAAC;AAC3B,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,wBAAwB,CAC1C,EAAU,EACV,OAAwC;IAExC,MAAM,KAAK,GAAG,MAAM,QAAQ,EAAE,CAAC;IAC/B,IAAI,CAAC,KAAK,EAAE,CAAC;QACT,MAAM,IAAI,KAAK,CAAC,oDAAoD,CAAC,CAAC;IAC1E,CAAC;IAED,MAAM,OAAO,GAAG,aAAa,EAAE,CAAC;IAChC,MAAM,MAAM,GAAG,IAAI,eAAe,EAAE,CAAC;IACrC,IAAI,OAAO,EAAE,KAAK,EAAE,CAAC;QACjB,MAAM,CAAC,GAAG,CAAC,OAAO,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;IACvC,CAAC;IAED,MAAM,GAAG,GAAG,GAAG,OAAO,wBAAwB,EAAE,mBAAmB,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;IACtH,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE;QAC9B,MAAM,EAAE,KAAK;QACb,OAAO,EAAE;YACL,aAAa,EAAE,UAAU,KAAK,EAAE;SACnC;KACJ,CAAC,CAAC;IAEH,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;QACf,MAAM,KAAK,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;QACpC,MAAM,IAAI,KAAK,CAAC,0CAA0C,KAAK,EAAE,CAAC,CAAC;IACvE,CAAC;IAED,OAAO,QAAQ,CAAC,IAAI,EAAE,CAAC;AAC3B,CAAC;AAiBD;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,mBAAmB,CACrC,SAAiB;IAEjB,MAAM,KAAK,GAAG,MAAM,QAAQ,EAAE,CAAC;IAC/B,IAAI,CAAC,KAAK,EAAE,CAAC;QACT,MAAM,IAAI,KAAK,CAAC,oDAAoD,CAAC,CAAC;IAC1E,CAAC;IAED,MAAM,OAAO,GAAG,aAAa,EAAE,CAAC;IAChC,MAAM,QAAQ,GAAG,MAAM,KAAK,CACxB,GAAG,OAAO,wBAAwB,SAAS,WAAW,EACtD;QACI,MAAM,EAAE,KAAK;QACb,OAAO,EAAE;YACL,aAAa,EAAE,UAAU,KAAK,EAAE;SACnC;KACJ,CACJ,CAAC;IAEF,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;QACf,MAAM,KAAK,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;QACpC,MAAM,IAAI,KAAK,CAAC,4BAA4B,KAAK,EAAE,CAAC,CAAC;IACzD,CAAC;IAED,OAAO,QAAQ,CAAC,IAAI,EAAE,CAAC;AAC3B,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,YAAY,CAC9B,SAAiB,EACjB,SAAiB;IAEjB,MAAM,KAAK,GAAG,MAAM,QAAQ,EAAE,CAAC;IAC/B,IAAI,CAAC,KAAK,EAAE,CAAC;QACT,MAAM,IAAI,KAAK,CAAC,oDAAoD,CAAC,CAAC;IAC1E,CAAC;IAED,MAAM,OAAO,GAAG,aAAa,EAAE,CAAC;IAChC,MAAM,QAAQ,GAAG,MAAM,KAAK,CACxB,GAAG,OAAO,wBAAwB,SAAS,aAAa,SAAS,QAAQ,EACzE;QACI,MAAM,EAAE,MAAM;QACd,OAAO,EAAE;YACL,aAAa,EAAE,UAAU,KAAK,EAAE;SACnC;KACJ,CACJ,CAAC;IAEF,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;QACf,MAAM,KAAK,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;QACpC,MAAM,IAAI,KAAK,CAAC,4BAA4B,KAAK,EAAE,CAAC,CAAC;IACzD,CAAC;IAED,OAAO,QAAQ,CAAC,IAAI,EAAE,CAAC;AAC3B,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe,CACjC,SAAiB,EACjB,SAAiB;IAEjB,MAAM,KAAK,GAAG,MAAM,QAAQ,EAAE,CAAC;IAC/B,IAAI,CAAC,KAAK,EAAE,CAAC;QACT,MAAM,IAAI,KAAK,CAAC,oDAAoD,CAAC,CAAC;IAC1E,CAAC;IAED,MAAM,OAAO,GAAG,aAAa,EAAE,CAAC;IAChC,MAAM,QAAQ,GAAG,MAAM,KAAK,CACxB,GAAG,OAAO,wBAAwB,SAAS,aAAa,SAAS,WAAW,EAC5E;QACI,MAAM,EAAE,MAAM;QACd,OAAO,EAAE;YACL,aAAa,EAAE,UAAU,KAAK,EAAE;SACnC;KACJ,CACJ,CAAC;IAEF,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;QACf,MAAM,KAAK,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;QACpC,MAAM,IAAI,KAAK,CAAC,+BAA+B,KAAK,EAAE,CAAC,CAAC;IAC5D,CAAC;IAED,OAAO,QAAQ,CAAC,IAAI,EAAE,CAAC;AAC3B,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const
|
|
1
|
+
const _0x56f82c=_0x590e;(function(_0x344aa4,_0xc1afff){const _0x16962a=_0x590e,_0x24841f=_0x344aa4();while(!![]){try{const _0x4984dc=-parseInt(_0x16962a(0x8b))/0x1+-parseInt(_0x16962a(0xa2))/0x2+-parseInt(_0x16962a(0xa1))/0x3+parseInt(_0x16962a(0x9a))/0x4+parseInt(_0x16962a(0x9c))/0x5+-parseInt(_0x16962a(0x96))/0x6*(-parseInt(_0x16962a(0x9f))/0x7)+-parseInt(_0x16962a(0x91))/0x8*(-parseInt(_0x16962a(0x90))/0x9);if(_0x4984dc===_0xc1afff)break;else _0x24841f['push'](_0x24841f['shift']());}catch(_0x1ab7a0){_0x24841f['push'](_0x24841f['shift']());}}}(_0x1235,0x5f872));const _0x1ba657=(function(){const _0x144cf3=_0x590e,_0x1263f7={'QSoAn':_0x144cf3(0x92)};let _0x3327b5=!![];return function(_0x14943f,_0x488378){const _0x25e8d7=_0x3327b5?function(){const _0x3d89ba=_0x590e;if(_0x1263f7[_0x3d89ba(0x99)]===_0x1263f7['QSoAn']){if(_0x488378){const _0x227804=_0x488378['apply'](_0x14943f,arguments);return _0x488378=null,_0x227804;}}else return _0x459c61[_0x3d89ba(0x9e)][_0x59cccf];}:function(){};return _0x3327b5=![],_0x25e8d7;};}()),_0x4607c8=_0x1ba657(this,function(){const _0x30418d=_0x590e,_0x5dd572={'oCDqI':_0x30418d(0x98)};return _0x4607c8[_0x30418d(0x8c)]()[_0x30418d(0x95)](_0x5dd572[_0x30418d(0x8d)])[_0x30418d(0x8c)]()[_0x30418d(0xa0)](_0x4607c8)[_0x30418d(0x95)](_0x30418d(0x98));});_0x4607c8();function _0x590e(_0x1b5ef8,_0x434432){_0x1b5ef8=_0x1b5ef8-0x8b;const _0x3e6516=_0x1235();let _0x4607c8=_0x3e6516[_0x1b5ef8];if(_0x590e['iqvVbI']===undefined){var _0x1ba657=function(_0xc3a658){const _0x30936c='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x3fe5a2='',_0x3f3f93='',_0x5b5460=_0x3fe5a2+_0x1ba657;for(let _0x923c0a=0x0,_0x2bbc4e,_0x45c7dc,_0x152df8=0x0;_0x45c7dc=_0xc3a658['charAt'](_0x152df8++);~_0x45c7dc&&(_0x2bbc4e=_0x923c0a%0x4?_0x2bbc4e*0x40+_0x45c7dc:_0x45c7dc,_0x923c0a++%0x4)?_0x3fe5a2+=_0x5b5460['charCodeAt'](_0x152df8+0xa)-0xa!==0x0?String['fromCharCode'](0xff&_0x2bbc4e>>(-0x2*_0x923c0a&0x6)):_0x923c0a:0x0){_0x45c7dc=_0x30936c['indexOf'](_0x45c7dc);}for(let _0xe12656=0x0,_0x2a9e31=_0x3fe5a2['length'];_0xe12656<_0x2a9e31;_0xe12656++){_0x3f3f93+='%'+('00'+_0x3fe5a2['charCodeAt'](_0xe12656)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x3f3f93);};_0x590e['BpdjKF']=_0x1ba657,_0x590e['OTDxsJ']={},_0x590e['iqvVbI']=!![];}const _0x123536=_0x3e6516[0x0],_0x590ea0=_0x1b5ef8+_0x123536,_0x16cba3=_0x590e['OTDxsJ'][_0x590ea0];if(!_0x16cba3){const _0x221181=function(_0x504308){this['ZyBnJy']=_0x504308,this['bWKCWP']=[0x1,0x0,0x0],this['SBRUta']=function(){return'newState';},this['NChNIr']='\x5cw+\x20*\x5c(\x5c)\x20*{\x5cw+\x20*',this['IWYrNP']='[\x27|\x22].+[\x27|\x22];?\x20*}';};_0x221181['prototype']['xBHERL']=function(){const _0x5eb0b5=new RegExp(this['NChNIr']+this['IWYrNP']),_0x46bf16=_0x5eb0b5['test'](this['SBRUta']['toString']())?--this['bWKCWP'][0x1]:--this['bWKCWP'][0x0];return this['IdxJCY'](_0x46bf16);},_0x221181['prototype']['IdxJCY']=function(_0x2721d8){if(!Boolean(~_0x2721d8))return _0x2721d8;return this['XQcRmb'](this['ZyBnJy']);},_0x221181['prototype']['XQcRmb']=function(_0x3e17ee){for(let _0x1dae98=0x0,_0x4c04c8=this['bWKCWP']['length'];_0x1dae98<_0x4c04c8;_0x1dae98++){this['bWKCWP']['push'](Math['round'](Math['random']())),_0x4c04c8=this['bWKCWP']['length'];}return _0x3e17ee(this['bWKCWP'][0x0]);},new _0x221181(_0x590e)['xBHERL'](),_0x4607c8=_0x590e['BpdjKF'](_0x4607c8),_0x590e['OTDxsJ'][_0x590ea0]=_0x4607c8;}else _0x4607c8=_0x16cba3;return _0x4607c8;}import _0x378170 from'keytar';function _0x1235(){const _0x1c8800=['mtyXmdu4mhjtuw15EG','uMHpv1q','mtyYotiYmfvltw9RrW','CMfUz2vYlwnSAq','zw52','mJqWmuHovw1jtW','y29UC3rYDwn0B3i','mte3mdmZnLj5s2DyqW','mtuXndm3mMf2qwf4vW','r0Lusfvcx0vovG','nZe3ndG3B1rnwhvs','Dg9tDhjPBMC','B0neCuK','C2v0ugfZC3DVCMq','twP5wxi','mJm0mJyWmvvvDu5nzW','mJrnsvb1AK8','EevdqLG','z2v0ugfZC3DVCMq','A3LpyvC','C2vHCMnO','mtmWnJj4BLnqqMS','yxbPlxrVA2vU','kcGOlISPkYKRksSK','uvnVqw4'];_0x1235=function(){return _0x1c8800;};return _0x1235();}import{appendFile}from'fs/promises';const SERVICE_NAME=_0x56f82c(0x9d),ACCOUNT_TOKEN=_0x56f82c(0x97),ENV_TOKEN='RANGER_MCP_TOKEN';function isGitHubCI(){const _0x1041a2=_0x56f82c;return!!process[_0x1041a2(0x9e)][_0x1041a2(0xa3)];}async function writeToGitHubEnv(_0x4f0d10,_0x542d13){const _0x315a9e=_0x56f82c,_0x4f0a99={'RhOWT':function(_0x3cf030,_0x2d57be,_0x567384){return _0x3cf030(_0x2d57be,_0x567384);}},_0x277313=process[_0x315a9e(0x9e)][_0x315a9e(0xa3)];_0x277313&&await _0x4f0a99[_0x315a9e(0x9b)](appendFile,_0x277313,_0x4f0d10+'='+_0x542d13+'\x0a');}export async function storeToken(_0x906c21){const _0x19d6c7=_0x56f82c,_0x2fc1cc={'kyOaW':function(_0x4ab8ad){return _0x4ab8ad();},'MjyYr':function(_0x18958b,_0x39f1af,_0x4dec2f){return _0x18958b(_0x39f1af,_0x4dec2f);}};_0x2fc1cc[_0x19d6c7(0x94)](isGitHubCI)?await _0x2fc1cc[_0x19d6c7(0x8f)](writeToGitHubEnv,ENV_TOKEN,_0x906c21):await _0x378170[_0x19d6c7(0x8e)](SERVICE_NAME,ACCOUNT_TOKEN,_0x906c21);}export async function getToken(){const _0x1d203b=_0x56f82c;if(process[_0x1d203b(0x9e)][ENV_TOKEN])return process[_0x1d203b(0x9e)][ENV_TOKEN];return await _0x378170[_0x1d203b(0x93)](SERVICE_NAME,ACCOUNT_TOKEN);}export async function deleteToken(){return await _0x378170['deletePassword'](SERVICE_NAME,ACCOUNT_TOKEN);}export async function deleteAllCredentials(){const _0x3189f6={'VSiXH':function(_0x2d2adf){return _0x2d2adf();}};await _0x3189f6['VSiXH'](deleteToken);}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
(function(
|
|
1
|
+
(function(_0x4a561c,_0x554bf0){const _0x4c7dc2=_0x3162,_0x55f88d=_0x4a561c();while(!![]){try{const _0x484874=-parseInt(_0x4c7dc2(0x1f8))/0x1+parseInt(_0x4c7dc2(0x202))/0x2*(-parseInt(_0x4c7dc2(0x1fe))/0x3)+parseInt(_0x4c7dc2(0x1f5))/0x4*(-parseInt(_0x4c7dc2(0x206))/0x5)+parseInt(_0x4c7dc2(0x1f9))/0x6*(-parseInt(_0x4c7dc2(0x1f7))/0x7)+parseInt(_0x4c7dc2(0x208))/0x8+-parseInt(_0x4c7dc2(0x1f1))/0x9*(parseInt(_0x4c7dc2(0x200))/0xa)+parseInt(_0x4c7dc2(0x205))/0xb;if(_0x484874===_0x554bf0)break;else _0x55f88d['push'](_0x55f88d['shift']());}catch(_0x3a1084){_0x55f88d['push'](_0x55f88d['shift']());}}}(_0x4591,0xa7338));const _0x1cd143=(function(){const _0x2c16f4=_0x3162,_0x234689={'pKGMS':function(_0x751770,_0x25e7ab){return _0x751770===_0x25e7ab;},'YiAaP':_0x2c16f4(0x20a)};let _0x2bfd5d=!![];return function(_0x315afd,_0x4b5bc8){const _0x49519e=_0x2c16f4;if(_0x234689[_0x49519e(0x1f3)](_0x234689[_0x49519e(0x1fb)],_0x49519e(0x20a))){const _0x1e5dd2=_0x2bfd5d?function(){const _0x20906e=_0x49519e;if(_0x4b5bc8){const _0xf1f03c=_0x4b5bc8[_0x20906e(0x207)](_0x315afd,arguments);return _0x4b5bc8=null,_0xf1f03c;}}:function(){};return _0x2bfd5d=![],_0x1e5dd2;}else{const _0x1cdc79=_0x460958?function(){if(_0x202ff9){const _0x129261=_0x1de9a2['apply'](_0x1d03c2,arguments);return _0x1a42e7=null,_0x129261;}}:function(){};return _0x28c0ed=![],_0x1cdc79;}};}()),_0x55fa30=_0x1cd143(this,function(){const _0x3c37b1=_0x3162,_0x298e31={'amsSf':'(((.+)+)+)+$'};return _0x55fa30[_0x3c37b1(0x1f6)]()['search'](_0x298e31['amsSf'])[_0x3c37b1(0x1f6)]()[_0x3c37b1(0x1fd)](_0x55fa30)[_0x3c37b1(0x1f4)](_0x298e31['amsSf']);});function _0x3162(_0x240157,_0x1bfbbc){_0x240157=_0x240157-0x1f1;const _0x420bc3=_0x4591();let _0x55fa30=_0x420bc3[_0x240157];if(_0x3162['XhcDqk']===undefined){var _0x1cd143=function(_0x26aec3){const _0x50bc84='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x129941='',_0x4d3308='',_0x3b0e5c=_0x129941+_0x1cd143;for(let _0x18f07f=0x0,_0x49b7d9,_0x123bfe,_0x536959=0x0;_0x123bfe=_0x26aec3['charAt'](_0x536959++);~_0x123bfe&&(_0x49b7d9=_0x18f07f%0x4?_0x49b7d9*0x40+_0x123bfe:_0x123bfe,_0x18f07f++%0x4)?_0x129941+=_0x3b0e5c['charCodeAt'](_0x536959+0xa)-0xa!==0x0?String['fromCharCode'](0xff&_0x49b7d9>>(-0x2*_0x18f07f&0x6)):_0x18f07f:0x0){_0x123bfe=_0x50bc84['indexOf'](_0x123bfe);}for(let _0x383613=0x0,_0x55cb5b=_0x129941['length'];_0x383613<_0x55cb5b;_0x383613++){_0x4d3308+='%'+('00'+_0x129941['charCodeAt'](_0x383613)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x4d3308);};_0x3162['fpYOLq']=_0x1cd143,_0x3162['varNwN']={},_0x3162['XhcDqk']=!![];}const _0x459103=_0x420bc3[0x0],_0x3162c2=_0x240157+_0x459103,_0x241bdc=_0x3162['varNwN'][_0x3162c2];if(!_0x241bdc){const _0x460958=function(_0x53298b){this['ObFxdj']=_0x53298b,this['QVmZDM']=[0x1,0x0,0x0],this['sXefec']=function(){return'newState';},this['Zznigh']='\x5cw+\x20*\x5c(\x5c)\x20*{\x5cw+\x20*',this['oReQvH']='[\x27|\x22].+[\x27|\x22];?\x20*}';};_0x460958['prototype']['FDUAXy']=function(){const _0x52d410=new RegExp(this['Zznigh']+this['oReQvH']),_0x147461=_0x52d410['test'](this['sXefec']['toString']())?--this['QVmZDM'][0x1]:--this['QVmZDM'][0x0];return this['uggTgA'](_0x147461);},_0x460958['prototype']['uggTgA']=function(_0x173a96){if(!Boolean(~_0x173a96))return _0x173a96;return this['INIplp'](this['ObFxdj']);},_0x460958['prototype']['INIplp']=function(_0x28c0ed){for(let _0x202ff9=0x0,_0x3543a2=this['QVmZDM']['length'];_0x202ff9<_0x3543a2;_0x202ff9++){this['QVmZDM']['push'](Math['round'](Math['random']())),_0x3543a2=this['QVmZDM']['length'];}return _0x28c0ed(this['QVmZDM'][0x0]);},new _0x460958(_0x3162)['FDUAXy'](),_0x55fa30=_0x3162['fpYOLq'](_0x55fa30),_0x3162['varNwN'][_0x3162c2]=_0x55fa30;}else _0x55fa30=_0x241bdc;return _0x55fa30;}function _0x4591(){const _0x107642=['CeThtvm','C2vHCMnO','odK2AwHjs3nc','Dg9tDhjPBMC','ntzwuuf0BKG','ntiXnJaWzg5ez09Q','ntu2mde0C1vAEfHx','Dgv4Da','wwLbyva','qMvHCMvYia','y29UC3rYDwn0B3i','m0ndsvjuCW','wvzrrKm','mtmWsfD4ENrI','C3rYAw5NAwz5','mtyWnZm5mgHWuhzbCq','zg1sr3i','zxjYB3i','mZKZntC3ntHjvK9Tq0y','mJe4nJbhuK5UzLm','yxbWBhK','odmWmZC2ofvbrxPQuG','l2fWAs92ms9Ty3aVBg9JywWTywDLBNqTAw5ZDgfSBgf0Aw9UCW','Afrrz1C','rMfPBgvKihrVigXVzYbZA2LSBcbPBNn0ywXSyxrPB246ia','nJeYnZC0rerZrfjq','ue9tva'];_0x4591=function(){return _0x107642;};return _0x4591();}_0x55fa30();import{getToken}from'./keychain.js';import{getApiBaseUrl}from'./environment.js';export async function logLocalAgentInstallation(_0x20dc71,_0x3dfbcc,_0x2fe65c){const _0x3cf319=_0x3162,_0x3c6d83={'YVQFC':function(_0x5af3ed){return _0x5af3ed();},'dmRGr':function(_0x479764,_0x1aced5,_0x1da6a6){return _0x479764(_0x1aced5,_0x1da6a6);},'DGEXD':'application/json'},_0x3f61be=await _0x3c6d83[_0x3cf319(0x1ff)](getToken);if(!_0x3f61be)return;const _0xf4d2ac=_0x3c6d83['YVQFC'](getApiBaseUrl),_0x368202=await _0x3c6d83[_0x3cf319(0x203)](fetch,_0xf4d2ac+_0x3cf319(0x209),{'method':_0x3cf319(0x1f2),'headers':{'Authorization':_0x3cf319(0x1fc)+_0x3f61be,'Content-Type':_0x3c6d83['DGEXD']},'body':JSON[_0x3cf319(0x201)]({'skillName':_0x20dc71,'cliVersion':_0x2fe65c,'metadata':_0x3dfbcc})});if(!_0x368202['ok']){const _0x57dc88=await _0x368202[_0x3cf319(0x1fa)]();console[_0x3cf319(0x204)](_0x3cf319(0x20b)+_0x57dc88);}}
|
|
@@ -1,20 +1,21 @@
|
|
|
1
1
|
import * as fs from 'fs';
|
|
2
2
|
import * as path from 'path';
|
|
3
3
|
import * as os from 'os';
|
|
4
|
+
import { execSync } from 'child_process';
|
|
4
5
|
const CACHE_FILE = path.join(os.homedir(), '.claude', '.ranger_cache.json');
|
|
5
6
|
function createEmptyCache() {
|
|
6
|
-
return { version:
|
|
7
|
+
return { version: 3, sessions: {}, branches: {} };
|
|
7
8
|
}
|
|
8
9
|
function loadCache() {
|
|
9
10
|
try {
|
|
10
11
|
if (fs.existsSync(CACHE_FILE)) {
|
|
11
12
|
const data = JSON.parse(fs.readFileSync(CACHE_FILE, 'utf-8'));
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
}
|
|
13
|
+
return {
|
|
14
|
+
version: 3,
|
|
15
|
+
sessions: data.sessions || {},
|
|
16
|
+
branches: data.branches || {},
|
|
17
|
+
lastEnabledSessionClearedAt: data.lastEnabledSessionClearedAt,
|
|
18
|
+
};
|
|
18
19
|
}
|
|
19
20
|
}
|
|
20
21
|
catch {
|
|
@@ -34,6 +35,51 @@ function saveCache(cache) {
|
|
|
34
35
|
// Ignore errors
|
|
35
36
|
}
|
|
36
37
|
}
|
|
38
|
+
// ============ Git Helpers ============
|
|
39
|
+
/**
|
|
40
|
+
* Get the current git branch name.
|
|
41
|
+
* Returns null if not in a git repo, in detached HEAD state, or on error.
|
|
42
|
+
*/
|
|
43
|
+
export function getCurrentBranch() {
|
|
44
|
+
try {
|
|
45
|
+
const branch = execSync('git rev-parse --abbrev-ref HEAD', {
|
|
46
|
+
encoding: 'utf-8',
|
|
47
|
+
stdio: ['pipe', 'pipe', 'pipe'],
|
|
48
|
+
}).trim();
|
|
49
|
+
// Return null for empty string or detached HEAD state
|
|
50
|
+
if (!branch || branch === 'HEAD') {
|
|
51
|
+
return null;
|
|
52
|
+
}
|
|
53
|
+
return branch;
|
|
54
|
+
}
|
|
55
|
+
catch {
|
|
56
|
+
return null;
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
// ============ Branch Functions ============
|
|
60
|
+
/**
|
|
61
|
+
* Enable Ranger for a branch (persists across sessions)
|
|
62
|
+
*/
|
|
63
|
+
export function enableBranch(branchName) {
|
|
64
|
+
const cache = loadCache();
|
|
65
|
+
cache.branches[branchName] = true;
|
|
66
|
+
saveCache(cache);
|
|
67
|
+
}
|
|
68
|
+
/**
|
|
69
|
+
* Disable Ranger for a branch
|
|
70
|
+
*/
|
|
71
|
+
export function disableBranch(branchName) {
|
|
72
|
+
const cache = loadCache();
|
|
73
|
+
delete cache.branches[branchName];
|
|
74
|
+
saveCache(cache);
|
|
75
|
+
}
|
|
76
|
+
/**
|
|
77
|
+
* Check if Ranger is enabled for a branch
|
|
78
|
+
*/
|
|
79
|
+
export function isBranchEnabled(branchName) {
|
|
80
|
+
const cache = loadCache();
|
|
81
|
+
return cache.branches[branchName] === true;
|
|
82
|
+
}
|
|
37
83
|
// ============ Session Functions ============
|
|
38
84
|
/**
|
|
39
85
|
* Get session entry, creating if needed
|
|
@@ -45,20 +91,37 @@ function getOrCreateSession(cache, sessionId) {
|
|
|
45
91
|
return cache.sessions[sessionId];
|
|
46
92
|
}
|
|
47
93
|
/**
|
|
48
|
-
* Enable Ranger hooks for a Claude session
|
|
94
|
+
* Enable Ranger hooks for a Claude session.
|
|
95
|
+
* If on a non-main branch, also enables that branch.
|
|
49
96
|
*/
|
|
50
97
|
export function enableSession(claudeSessionId) {
|
|
51
98
|
const cache = loadCache();
|
|
52
99
|
const session = getOrCreateSession(cache, claudeSessionId);
|
|
53
100
|
session.enabled = true;
|
|
101
|
+
// Auto-enable branch if not on main
|
|
102
|
+
const branch = getCurrentBranch();
|
|
103
|
+
if (branch && branch !== 'main' && branch !== 'master') {
|
|
104
|
+
cache.branches[branch] = true;
|
|
105
|
+
session.currentBranch = branch;
|
|
106
|
+
}
|
|
54
107
|
saveCache(cache);
|
|
55
108
|
}
|
|
56
109
|
/**
|
|
57
|
-
* Check if Ranger hooks are enabled for a Claude session
|
|
110
|
+
* Check if Ranger hooks are enabled for a Claude session.
|
|
111
|
+
* - On main/master: only checks session-level enabled flag
|
|
112
|
+
* - On other branches: enabled if branch is enabled OR session is enabled
|
|
58
113
|
*/
|
|
59
114
|
export function isSessionEnabled(claudeSessionId) {
|
|
60
115
|
const cache = loadCache();
|
|
61
|
-
|
|
116
|
+
const branch = getCurrentBranch();
|
|
117
|
+
// On main/master, only session-level enabling works
|
|
118
|
+
if (!branch || branch === 'main' || branch === 'master') {
|
|
119
|
+
return cache.sessions[claudeSessionId]?.enabled === true;
|
|
120
|
+
}
|
|
121
|
+
// On other branches: enabled if branch is enabled OR session is enabled
|
|
122
|
+
const branchEnabled = cache.branches[branch] === true;
|
|
123
|
+
const sessionEnabled = cache.sessions[claudeSessionId]?.enabled === true;
|
|
124
|
+
return branchEnabled || sessionEnabled;
|
|
62
125
|
}
|
|
63
126
|
/**
|
|
64
127
|
* Disable Ranger hooks for a Claude session
|
|
@@ -69,6 +132,92 @@ export function disableSession(claudeSessionId) {
|
|
|
69
132
|
session.enabled = false;
|
|
70
133
|
saveCache(cache);
|
|
71
134
|
}
|
|
135
|
+
/**
|
|
136
|
+
* Update branch tracking on PostToolUse.
|
|
137
|
+
* If session is enabled and switched to a new non-main branch, auto-enable it.
|
|
138
|
+
*/
|
|
139
|
+
export function updateBranchTracking(claudeSessionId) {
|
|
140
|
+
const cache = loadCache();
|
|
141
|
+
const session = cache.sessions[claudeSessionId];
|
|
142
|
+
if (!session?.enabled) {
|
|
143
|
+
return;
|
|
144
|
+
}
|
|
145
|
+
const branch = getCurrentBranch();
|
|
146
|
+
if (!branch || branch === 'main' || branch === 'master') {
|
|
147
|
+
return;
|
|
148
|
+
}
|
|
149
|
+
// If we switched branches while enabled, auto-enable the new branch
|
|
150
|
+
if (session.currentBranch !== branch) {
|
|
151
|
+
cache.branches[branch] = true;
|
|
152
|
+
session.currentBranch = branch;
|
|
153
|
+
saveCache(cache);
|
|
154
|
+
}
|
|
155
|
+
}
|
|
156
|
+
/**
|
|
157
|
+
* Initialize branch tracking on session start.
|
|
158
|
+
* If starting on an already-enabled branch, auto-enable the session.
|
|
159
|
+
*/
|
|
160
|
+
export function initBranchTracking(claudeSessionId) {
|
|
161
|
+
const cache = loadCache();
|
|
162
|
+
const branch = getCurrentBranch();
|
|
163
|
+
if (!branch || branch === 'main' || branch === 'master') {
|
|
164
|
+
return;
|
|
165
|
+
}
|
|
166
|
+
// If branch is already enabled, auto-enable this session
|
|
167
|
+
if (cache.branches[branch] === true) {
|
|
168
|
+
const session = getOrCreateSession(cache, claudeSessionId);
|
|
169
|
+
session.enabled = true;
|
|
170
|
+
session.currentBranch = branch;
|
|
171
|
+
saveCache(cache);
|
|
172
|
+
}
|
|
173
|
+
}
|
|
174
|
+
// ============ Session Clear Tracking ============
|
|
175
|
+
const CLEAR_AUTO_ENABLE_WINDOW_MS = 5000; // 5 seconds
|
|
176
|
+
/**
|
|
177
|
+
* Record that an enabled session was cleared.
|
|
178
|
+
* Called on SessionEnd with reason === 'clear' if session was enabled.
|
|
179
|
+
*/
|
|
180
|
+
export function recordEnabledSessionCleared(claudeSessionId) {
|
|
181
|
+
const cache = loadCache();
|
|
182
|
+
const session = cache.sessions[claudeSessionId];
|
|
183
|
+
// Only record if the session was enabled
|
|
184
|
+
if (session?.enabled) {
|
|
185
|
+
cache.lastEnabledSessionClearedAt = Date.now();
|
|
186
|
+
saveCache(cache);
|
|
187
|
+
}
|
|
188
|
+
}
|
|
189
|
+
/**
|
|
190
|
+
* Check if we should auto-enable due to a recent clear.
|
|
191
|
+
* Returns true if source is 'clear' and within window of last enabled session clear.
|
|
192
|
+
*/
|
|
193
|
+
export function shouldAutoEnableAfterClear(source) {
|
|
194
|
+
if (source !== 'clear') {
|
|
195
|
+
return false;
|
|
196
|
+
}
|
|
197
|
+
const cache = loadCache();
|
|
198
|
+
const lastCleared = cache.lastEnabledSessionClearedAt;
|
|
199
|
+
if (!lastCleared) {
|
|
200
|
+
return false;
|
|
201
|
+
}
|
|
202
|
+
const elapsed = Date.now() - lastCleared;
|
|
203
|
+
return elapsed <= CLEAR_AUTO_ENABLE_WINDOW_MS;
|
|
204
|
+
}
|
|
205
|
+
/**
|
|
206
|
+
* Auto-enable a session after clear (preserves enabled state across /clear).
|
|
207
|
+
*/
|
|
208
|
+
export function autoEnableAfterClear(claudeSessionId) {
|
|
209
|
+
const cache = loadCache();
|
|
210
|
+
const session = getOrCreateSession(cache, claudeSessionId);
|
|
211
|
+
session.enabled = true;
|
|
212
|
+
// Also track current branch
|
|
213
|
+
const branch = getCurrentBranch();
|
|
214
|
+
if (branch && branch !== 'main' && branch !== 'master') {
|
|
215
|
+
session.currentBranch = branch;
|
|
216
|
+
}
|
|
217
|
+
// Clear the timestamp so we don't re-trigger
|
|
218
|
+
delete cache.lastEnabledSessionClearedAt;
|
|
219
|
+
saveCache(cache);
|
|
220
|
+
}
|
|
72
221
|
/**
|
|
73
222
|
* Register a Claude session as working on a Ranger feature
|
|
74
223
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sessionCache.js","sourceRoot":"","sources":["../../../src/commands/utils/sessionCache.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AACzB,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAC7B,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"sessionCache.js","sourceRoot":"","sources":["../../../src/commands/utils/sessionCache.ts"],"names":[],"mappings":"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"}
|
|
@@ -6,6 +6,30 @@ import { randomUUID } from 'crypto';
|
|
|
6
6
|
import { decrypt } from './crypto.js';
|
|
7
7
|
import { getToken } from './keychain.js';
|
|
8
8
|
import { getRangerDir } from './rangerRoot.js';
|
|
9
|
+
/**
|
|
10
|
+
* Get the directory path for an environment, checking ci/, local/, and legacy root level.
|
|
11
|
+
* For existing environments, returns the path where it exists.
|
|
12
|
+
* For new environments, defaults to local/.
|
|
13
|
+
*/
|
|
14
|
+
export function getEnvDir(env) {
|
|
15
|
+
const rangerDir = getRangerDir();
|
|
16
|
+
const ciDir = join(rangerDir, 'ci', env);
|
|
17
|
+
const localDir = join(rangerDir, 'local', env);
|
|
18
|
+
const legacyDir = join(rangerDir, env); // Legacy: .ranger/<env>/
|
|
19
|
+
if (existsSync(ciDir))
|
|
20
|
+
return ciDir;
|
|
21
|
+
if (existsSync(localDir))
|
|
22
|
+
return localDir;
|
|
23
|
+
if (existsSync(legacyDir))
|
|
24
|
+
return legacyDir; // Backward compatibility
|
|
25
|
+
return localDir; // Default for new envs
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Check if an environment is a CI environment (stored in ci/ directory)
|
|
29
|
+
*/
|
|
30
|
+
export function isEnvCi(env) {
|
|
31
|
+
return existsSync(join(getRangerDir(), 'ci', env));
|
|
32
|
+
}
|
|
9
33
|
/**
|
|
10
34
|
* Clean up temporary files created during config building
|
|
11
35
|
* Ignores ENOENT errors (file already deleted)
|
|
@@ -23,7 +47,7 @@ export async function cleanupTempFiles(result) {
|
|
|
23
47
|
* Get the path to the settings.json file for an environment
|
|
24
48
|
*/
|
|
25
49
|
export function getSettingsPath(env) {
|
|
26
|
-
return join(
|
|
50
|
+
return join(getEnvDir(env), 'settings.json');
|
|
27
51
|
}
|
|
28
52
|
/**
|
|
29
53
|
* Load settings.json for an environment
|
|
@@ -78,7 +102,7 @@ export function resolveEnvVars(obj) {
|
|
|
78
102
|
* Returns paths to created temp files that should be cleaned up after use
|
|
79
103
|
*/
|
|
80
104
|
export async function buildPlaywrightConfig(settings, env, sessionId, headed) {
|
|
81
|
-
const envDir =
|
|
105
|
+
const envDir = getEnvDir(env);
|
|
82
106
|
// Auto-detect auth file (encrypted takes priority)
|
|
83
107
|
const encryptedAuthPath = join(envDir, 'auth.json.enc');
|
|
84
108
|
const plaintextAuthPath = join(envDir, 'auth.json');
|
|
@@ -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;
|
|
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;IAEjE,IAAI,UAAU,CAAC,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IACpC,IAAI,UAAU,CAAC,QAAQ,CAAC;QAAE,OAAO,QAAQ,CAAC;IAC1C,IAAI,UAAU,CAAC,SAAS,CAAC;QAAE,OAAO,SAAS,CAAC,CAAC,yBAAyB;IACtE,OAAO,QAAQ,CAAC,CAAC,uBAAuB;AAC5C,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;aACzD;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"}
|