aws-cdk
Version:
AWS CDK CLI, the command line tool for CDK apps
36 lines • 4 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.guessAgent = guessAgent;
/**
* Guess whether we're being executed by an AI agent
*
* It's hard for us to say `false` for sure, so we only respond
* with `yes` or `don't know`.
*/
function guessAgent() {
const awsExecutionEnv = (process.env.AWS_EXECUTION_ENV ?? '').toLocaleLowerCase();
if (awsExecutionEnv.includes('amazonq') || awsExecutionEnv.includes('kiro')) {
return true;
}
if (process.env.CLAUDECODE) {
return true;
}
// Expecting CODEX_SANDBOX, CODEX_THREAD_ID
if (Object.keys(process.env).some(x => x.startsWith('CODEX_'))) {
return true;
}
if (process.env.CURSOR_AGENT) {
return true;
}
// https://code.visualstudio.com/updates/v1_121#_agentaware-terminal-commands
if (process.env.VSCODE_AGENT) {
return true;
}
// Cline -- not sure if it sets these, but users might to configure Cline.
if (Object.keys(process.env).some(x => x.startsWith('CLINE_'))) {
return true;
}
// Copilot doesn't set an envvar (at least not in VS Code)
return undefined;
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3Vlc3MtYWdlbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJndWVzcy1hZ2VudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQU9BLGdDQWdDQztBQXRDRDs7Ozs7R0FLRztBQUNILFNBQWdCLFVBQVU7SUFDeEIsTUFBTSxlQUFlLEdBQUcsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLGlCQUFpQixJQUFJLEVBQUUsQ0FBQyxDQUFDLGlCQUFpQixFQUFFLENBQUM7SUFDbEYsSUFBSSxlQUFlLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxJQUFJLGVBQWUsQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQztRQUM1RSxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRCxJQUFJLE9BQU8sQ0FBQyxHQUFHLENBQUMsVUFBVSxFQUFFLENBQUM7UUFDM0IsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQsMkNBQTJDO0lBQzNDLElBQUksTUFBTSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsQ0FBQyxFQUFFLENBQUM7UUFDL0QsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQsSUFBSSxPQUFPLENBQUMsR0FBRyxDQUFDLFlBQVksRUFBRSxDQUFDO1FBQzdCLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVELDZFQUE2RTtJQUM3RSxJQUFJLE9BQU8sQ0FBQyxHQUFHLENBQUMsWUFBWSxFQUFFLENBQUM7UUFDN0IsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQsMEVBQTBFO0lBQzFFLElBQUksTUFBTSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsQ0FBQyxFQUFFLENBQUM7UUFDL0QsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQsMERBQTBEO0lBRTFELE9BQU8sU0FBUyxDQUFDO0FBQ25CLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJcbi8qKlxuICogR3Vlc3Mgd2hldGhlciB3ZSdyZSBiZWluZyBleGVjdXRlZCBieSBhbiBBSSBhZ2VudFxuICpcbiAqIEl0J3MgaGFyZCBmb3IgdXMgdG8gc2F5IGBmYWxzZWAgZm9yIHN1cmUsIHNvIHdlIG9ubHkgcmVzcG9uZFxuICogd2l0aCBgeWVzYCBvciBgZG9uJ3Qga25vd2AuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBndWVzc0FnZW50KCk6IHRydWUgfCB1bmRlZmluZWQge1xuICBjb25zdCBhd3NFeGVjdXRpb25FbnYgPSAocHJvY2Vzcy5lbnYuQVdTX0VYRUNVVElPTl9FTlYgPz8gJycpLnRvTG9jYWxlTG93ZXJDYXNlKCk7XG4gIGlmIChhd3NFeGVjdXRpb25FbnYuaW5jbHVkZXMoJ2FtYXpvbnEnKSB8fCBhd3NFeGVjdXRpb25FbnYuaW5jbHVkZXMoJ2tpcm8nKSkge1xuICAgIHJldHVybiB0cnVlO1xuICB9XG5cbiAgaWYgKHByb2Nlc3MuZW52LkNMQVVERUNPREUpIHtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIC8vIEV4cGVjdGluZyBDT0RFWF9TQU5EQk9YLCBDT0RFWF9USFJFQURfSURcbiAgaWYgKE9iamVjdC5rZXlzKHByb2Nlc3MuZW52KS5zb21lKHggPT4geC5zdGFydHNXaXRoKCdDT0RFWF8nKSkpIHtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIGlmIChwcm9jZXNzLmVudi5DVVJTT1JfQUdFTlQpIHtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIC8vIGh0dHBzOi8vY29kZS52aXN1YWxzdHVkaW8uY29tL3VwZGF0ZXMvdjFfMTIxI19hZ2VudGF3YXJlLXRlcm1pbmFsLWNvbW1hbmRzXG4gIGlmIChwcm9jZXNzLmVudi5WU0NPREVfQUdFTlQpIHtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIC8vIENsaW5lIC0tIG5vdCBzdXJlIGlmIGl0IHNldHMgdGhlc2UsIGJ1dCB1c2VycyBtaWdodCB0byBjb25maWd1cmUgQ2xpbmUuXG4gIGlmIChPYmplY3Qua2V5cyhwcm9jZXNzLmVudikuc29tZSh4ID0+IHguc3RhcnRzV2l0aCgnQ0xJTkVfJykpKSB7XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuICAvLyBDb3BpbG90IGRvZXNuJ3Qgc2V0IGFuIGVudnZhciAoYXQgbGVhc3Qgbm90IGluIFZTIENvZGUpXG5cbiAgcmV0dXJuIHVuZGVmaW5lZDtcbn1cbiJdfQ==