Files
pulse/internal/agentcapabilities/transcript.go
rcourtman 57ead19484 Preserve Patrol evidence and surface action submission failures
Live funded qualification found hidden tool results and misleading action
submission outcomes. Share the result-bearing transcript across stored chat
and product history, render the retained evidence, and distinguish captured
proposals from broker acceptance. Keep review usable while Patrol is paused.

Record Gemini route pricing and exact qualification limits. Integrate current
main and repeat browser proof for the incoming login flow. Approved/rejected
recovery remains unqualified without the development command agent.
2026-09-06 20:09:54 +01:00

46 lines
1.5 KiB
Go

package agentcapabilities
import "encoding/json"
// TranscriptToolCall preserves a stored invocation and its observed result.
// Provider requests use ProviderToolCall instead of the product history shape.
type TranscriptToolCall struct {
ID string `json:"id"`
Name string `json:"name"`
Input map[string]interface{} `json:"input"`
Output string `json:"output,omitempty"`
Success *bool `json:"success,omitempty"`
ThoughtSignature json.RawMessage `json:"thought_signature,omitempty"`
}
func (t TranscriptToolCall) NormalizeCollections() TranscriptToolCall {
providerCall := ProviderToolCall{
ID: t.ID,
Name: t.Name,
Input: t.Input,
ThoughtSignature: t.ThoughtSignature,
}.NormalizeCollections()
t.ID = providerCall.ID
t.Name = providerCall.Name
t.Input = providerCall.Input
t.ThoughtSignature = providerCall.ThoughtSignature
if t.Success != nil {
success := *t.Success
t.Success = &success
}
return t
}
// ProviderToolCall projects a stored Assistant transcript call back to the
// shared provider-facing shape, deliberately excluding in-app output/success
// display fields.
func (t TranscriptToolCall) ProviderToolCall() ProviderToolCall {
t = t.NormalizeCollections()
return ProviderToolCall{
ID: t.ID,
Name: t.Name,
Input: t.Input,
ThoughtSignature: t.ThoughtSignature,
}.NormalizeCollections()
}