diff options
Diffstat (limited to 'src/integration/assets/antigravity_cli/herdr-agent-state.ps1')
| -rw-r--r-- | src/integration/assets/antigravity_cli/herdr-agent-state.ps1 | 57 |
1 files changed, 57 insertions, 0 deletions
diff --git a/src/integration/assets/antigravity_cli/herdr-agent-state.ps1 b/src/integration/assets/antigravity_cli/herdr-agent-state.ps1 new file mode 100644 index 00000000..aecb42a9 --- /dev/null +++ b/src/integration/assets/antigravity_cli/herdr-agent-state.ps1 @@ -0,0 +1,57 @@ +# installed by herdr +# managed by herdr; reinstalling or updating the integration overwrites this file. +# add custom hooks beside this file instead of editing it. +# HERDR_INTEGRATION_ID=antigravity_cli +# HERDR_INTEGRATION_VERSION=1 + +# Session-only: this hook reports the Antigravity conversation so Herdr can +# resume the pane. Lifecycle state comes from Herdr's screen detection. + +param([string]$Action = "") + +# Antigravity CLI expects a JSON object on stdout and this hook never injects +# anything, so every exit path emits an empty object. +function Exit-Hook { + Write-Output "{}" + exit 0 +} + +if ($Action -ne "session") { Exit-Hook } +if ($env:HERDR_ENV -ne "1") { Exit-Hook } +if ([string]::IsNullOrWhiteSpace($env:HERDR_PANE_ID)) { Exit-Hook } + +$inputText = [Console]::In.ReadToEnd() +try { + $payload = if ([string]::IsNullOrWhiteSpace($inputText)) { $null } else { $inputText | ConvertFrom-Json } +} catch { + Exit-Hook +} + +if ($null -eq $payload) { Exit-Hook } + +$conversationId = if ($payload.conversationId -is [string]) { $payload.conversationId } else { $null } +if ([string]::IsNullOrWhiteSpace($conversationId)) { Exit-Hook } + +$seq = [DateTimeOffset]::UtcNow.ToUnixTimeMilliseconds() +try { + $sessionArgs = @( + "pane", + "report-agent-session", + $env:HERDR_PANE_ID, + "--source", + "herdr:antigravity_cli", + "--agent", + "agy", + "--seq", + "$seq", + "--agent-session-id", + "$conversationId" + ) + if ($payload.transcriptPath -is [string] -and -not [string]::IsNullOrWhiteSpace($payload.transcriptPath)) { + $sessionArgs += @("--agent-session-path", "$($payload.transcriptPath)") + } + & herdr @sessionArgs 2>$null | Out-Null +} catch { +} + +Exit-Hook |
