Skip to content

Commit cb1456f

Browse files
add amp + opencode alias (#2)
1 parent 9876647 commit cb1456f

3 files changed

Lines changed: 43 additions & 1 deletion

File tree

src/AgentDetector.php

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ public static function detect(): AgentResult
2525
return new AgentResult(true, 'gemini');
2626
}
2727

28-
if (getenv('CODEX_SANDBOX') !== false) {
28+
if (getenv('CODEX_SANDBOX') !== false || getenv('CODEX_THREAD_ID') !== false) {
2929
return new AgentResult(true, 'codex');
3030
}
3131

@@ -37,6 +37,10 @@ public static function detect(): AgentResult
3737
return new AgentResult(true, 'opencode');
3838
}
3939

40+
if (getenv('AMP_CURRENT_THREAD_ID') !== false) {
41+
return new AgentResult(true, 'amp');
42+
}
43+
4044
if (getenv('CLAUDECODE') !== false || getenv('CLAUDE_CODE') !== false) {
4145
return new AgentResult(true, 'claude');
4246
}

src/KnownAgent.php

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,4 +15,5 @@ enum KnownAgent: string
1515
case Codex = 'codex';
1616
case AugmentCli = 'augment-cli';
1717
case Opencode = 'opencode';
18+
case Amp = 'amp';
1819
}

tests/AgentDetectorTest.php

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,8 +14,11 @@
1414
'CURSOR_AGENT',
1515
'GEMINI_CLI',
1616
'CODEX_SANDBOX',
17+
'CODEX_THREAD_ID',
1718
'AUGMENT_AGENT',
1819
'OPENCODE_CLIENT',
20+
'OPENCODE',
21+
'AMP_CURRENT_THREAD_ID',
1922
'CLAUDECODE',
2023
'CLAUDE_CODE',
2124
'REPL_ID',
@@ -33,8 +36,11 @@
3336
'CURSOR_AGENT',
3437
'GEMINI_CLI',
3538
'CODEX_SANDBOX',
39+
'CODEX_THREAD_ID',
3640
'AUGMENT_AGENT',
3741
'OPENCODE_CLIENT',
42+
'OPENCODE',
43+
'AMP_CURRENT_THREAD_ID',
3844
'CLAUDECODE',
3945
'CLAUDE_CODE',
4046
'REPL_ID',
@@ -104,6 +110,16 @@
104110
->and($result->knownAgent())->toBe(KnownAgent::Codex);
105111
});
106112

113+
it('detects codex via CODEX_THREAD_ID', function (): void {
114+
putenv('CODEX_THREAD_ID=some-thread-id');
115+
116+
$result = AgentDetector::detect();
117+
118+
expect($result->isAgent)->toBeTrue()
119+
->and($result->name)->toBe('codex')
120+
->and($result->knownAgent())->toBe(KnownAgent::Codex);
121+
});
122+
107123
it('detects augment-cli via AUGMENT_AGENT', function (): void {
108124
putenv('AUGMENT_AGENT=true');
109125

@@ -124,6 +140,26 @@
124140
->and($result->knownAgent())->toBe(KnownAgent::Opencode);
125141
});
126142

143+
it('detects opencode via OPENCODE', function (): void {
144+
putenv('OPENCODE=true');
145+
146+
$result = AgentDetector::detect();
147+
148+
expect($result->isAgent)->toBeTrue()
149+
->and($result->name)->toBe('opencode')
150+
->and($result->knownAgent())->toBe(KnownAgent::Opencode);
151+
});
152+
153+
it('detects amp via AMP_CURRENT_THREAD_ID', function (): void {
154+
putenv('AMP_CURRENT_THREAD_ID=some-thread-id');
155+
156+
$result = AgentDetector::detect();
157+
158+
expect($result->isAgent)->toBeTrue()
159+
->and($result->name)->toBe('amp')
160+
->and($result->knownAgent())->toBe(KnownAgent::Amp);
161+
});
162+
127163
it('detects claude via CLAUDECODE', function (): void {
128164
putenv('CLAUDECODE=1');
129165

@@ -265,6 +301,7 @@
265301
'codex' => ['CODEX_SANDBOX', 'true', KnownAgent::Codex],
266302
'augment-cli' => ['AUGMENT_AGENT', 'true', KnownAgent::AugmentCli],
267303
'opencode' => ['OPENCODE_CLIENT', 'true', KnownAgent::Opencode],
304+
'amp' => ['AMP_CURRENT_THREAD_ID', 'thread-id', KnownAgent::Amp],
268305
'claude' => ['CLAUDECODE', '1', KnownAgent::Claude],
269306
'replit' => ['REPL_ID', 'id', KnownAgent::Replit],
270307
]);

0 commit comments

Comments
 (0)