diff --git a/external/eyrie b/external/eyrie index 7296fe66..9debb70a 160000 --- a/external/eyrie +++ b/external/eyrie @@ -1 +1 @@ -Subproject commit 7296fe66d8d47c60ddec39372ab59585fd57202e +Subproject commit 9debb70adde30758b560f0405ee9be8c8db69840 diff --git a/external/hawk-core-contracts b/external/hawk-core-contracts index ceb290ff..5889b853 160000 --- a/external/hawk-core-contracts +++ b/external/hawk-core-contracts @@ -1 +1 @@ -Subproject commit ceb290ffdc7e102b0e404eb4e191be0d8982e181 +Subproject commit 5889b85394c2aecbdb998c8bbe00a602f2839f1c diff --git a/go.mod b/go.mod index 5551661e..e2bcda63 100644 --- a/go.mod +++ b/go.mod @@ -11,8 +11,8 @@ require ( charm.land/bubbles/v2 v2.1.0 charm.land/bubbletea/v2 v2.0.7 charm.land/lipgloss/v2 v2.0.3 - github.com/GrayCodeAI/eyrie v0.2.2-0.20260721084712-7296fe66d8d4 - github.com/GrayCodeAI/hawk-core-contracts v0.1.7-0.20260720234904-ceb290ffdc7e + github.com/GrayCodeAI/eyrie v0.2.2-0.20260722174513-9debb70adde3 + github.com/GrayCodeAI/hawk-core-contracts v0.1.8 github.com/GrayCodeAI/inspect v0.1.4 github.com/GrayCodeAI/sight v0.1.4 github.com/GrayCodeAI/tok v0.1.4 diff --git a/go.sum b/go.sum index 9f80244b..90d2f15b 100644 --- a/go.sum +++ b/go.sum @@ -16,10 +16,10 @@ github.com/BobuSumisu/aho-corasick v1.0.3 h1:uuf+JHwU9CHP2Vx+wAy6jcksJThhJS9ehR8 github.com/BobuSumisu/aho-corasick v1.0.3/go.mod h1:hm4jLcvZKI2vRF2WDU1N4p/jpWtpOzp3nLmi9AzX/XE= github.com/BurntSushi/toml v1.6.0 h1:dRaEfpa2VI55EwlIW72hMRHdWouJeRF7TPYhI+AUQjk= github.com/BurntSushi/toml v1.6.0/go.mod h1:ukJfTF/6rtPPRCnwkur4qwRxa8vTRFBF0uk2lLoLwho= -github.com/GrayCodeAI/eyrie v0.2.2-0.20260721084712-7296fe66d8d4 h1:wfjrbbFrx6HC9D3Tzr/cQf/QoS2Z3VPWsB3UeYmLn5Q= -github.com/GrayCodeAI/eyrie v0.2.2-0.20260721084712-7296fe66d8d4/go.mod h1:xLOdncvu2kUbjlU9RlK9A3QClmxFrsEvNruuQwhW5BM= -github.com/GrayCodeAI/hawk-core-contracts v0.1.7-0.20260720234904-ceb290ffdc7e h1:bRhh1OZOtzUPnFA7/Qa2+NxWuYGZPt5OSju/DbjIgAM= -github.com/GrayCodeAI/hawk-core-contracts v0.1.7-0.20260720234904-ceb290ffdc7e/go.mod h1:BXbh68YrCf+s9HVqND5F8DAvl2MnE5NcOwZZZB56HGA= +github.com/GrayCodeAI/eyrie v0.2.2-0.20260722174513-9debb70adde3 h1:1mwlXTbQmT72M9v1vuE6QlvzbaxgKti2A8udtD1MvC8= +github.com/GrayCodeAI/eyrie v0.2.2-0.20260722174513-9debb70adde3/go.mod h1:R7O6akZA5nkZaoSF9PCz3NqznuEFqbGNToj25RH4O/4= +github.com/GrayCodeAI/hawk-core-contracts v0.1.8 h1:SkDsGZJXL+3DYG0Fi3NXvNe/NlhP/KZn+Feofnx35Zc= +github.com/GrayCodeAI/hawk-core-contracts v0.1.8/go.mod h1:BXbh68YrCf+s9HVqND5F8DAvl2MnE5NcOwZZZB56HGA= github.com/GrayCodeAI/inspect v0.1.4 h1:tQAcD9UuHkrqA20CZqdTcBgWKU/lhxxHBh8hlXY3FVw= github.com/GrayCodeAI/inspect v0.1.4/go.mod h1:MfZT8sWGr6M0G9RJyLEwO+WzzYe4cw0k07kLYEcr1Lk= github.com/GrayCodeAI/sight v0.1.4 h1:wFfRdbwoI0RIRnaj2H1Ytsed5B2pGBu+1csFRvpuMzA= diff --git a/internal/provider/gateway/engine_client.go b/internal/provider/gateway/engine_client.go index 427fea0a..f6d9ada1 100644 --- a/internal/provider/gateway/engine_client.go +++ b/internal/provider/gateway/engine_client.go @@ -35,7 +35,7 @@ type Provider interface { // Generator is the chat transport facet: the only part the ChatClient path uses. type Generator interface { Generate(ctx context.Context, req eyrieengine.GenerateRequest) (*eyrieengine.GenerateResponse, error) - Stream(ctx context.Context, req eyrieengine.GenerateRequest) (*eyrieengine.Stream, error) + Stream(ctx context.Context, req eyrieengine.GenerateRequest) (eyrieengine.EventStreamer, error) } // NativeCompactor is the provider-native-compaction facet. @@ -123,7 +123,7 @@ func (p *engineProvider) Generate(ctx context.Context, req eyrieengine.GenerateR return p.eng.Generate(ctx, req) } -func (p *engineProvider) Stream(ctx context.Context, req eyrieengine.GenerateRequest) (*eyrieengine.Stream, error) { +func (p *engineProvider) Stream(ctx context.Context, req eyrieengine.GenerateRequest) (eyrieengine.EventStreamer, error) { return p.eng.Stream(ctx, req) } diff --git a/internal/provider/gateway/provider_stub_test.go b/internal/provider/gateway/provider_stub_test.go index 82468f0a..67434e77 100644 --- a/internal/provider/gateway/provider_stub_test.go +++ b/internal/provider/gateway/provider_stub_test.go @@ -24,7 +24,7 @@ func (s *stubProvider) Generate(context.Context, eyrieengine.GenerateRequest) (* return s.resp, s.err } -func (s *stubProvider) Stream(context.Context, eyrieengine.GenerateRequest) (*eyrieengine.Stream, error) { +func (s *stubProvider) Stream(context.Context, eyrieengine.GenerateRequest) (eyrieengine.EventStreamer, error) { return nil, nil } diff --git a/internal/session/conversion.go b/internal/session/conversion.go index 35b74da6..a8584137 100644 --- a/internal/session/conversion.go +++ b/internal/session/conversion.go @@ -23,35 +23,14 @@ func FromRuntimeMessages(in []types.EyrieMessage) []Message { } // FromRuntimeToolCalls converts Hawk runtime tool calls into persisted contracts. +// types.ToolCall and session.ToolCall are identical (both alias tools.ToolCall). func FromRuntimeToolCalls(in []types.ToolCall) []ToolCall { - if len(in) == 0 { - return nil - } - out := make([]ToolCall, len(in)) - for i, tc := range in { - out[i] = ToolCall{ - ID: tc.ID, - Name: tc.Name, - Arguments: tc.Arguments, - } - } - return out + return in } // FromRuntimeToolResults converts Hawk runtime tool results into persisted contracts. func FromRuntimeToolResults(in []types.ToolResult) []ToolResult { - if len(in) == 0 { - return nil - } - out := make([]ToolResult, len(in)) - for i, tr := range in { - out[i] = ToolResult{ - ToolUseID: tr.ToolUseID, - Content: tr.Content, - IsError: tr.IsError, - } - } - return out + return in } // ToRuntimeMessages converts persisted session messages back into Hawk runtime messages. @@ -76,32 +55,10 @@ func ToRuntimeMessages(in []Message) []types.EyrieMessage { // ToRuntimeToolCalls converts persisted contracts back into Hawk runtime tool calls. func ToRuntimeToolCalls(in []ToolCall) []types.ToolCall { - if len(in) == 0 { - return nil - } - out := make([]types.ToolCall, len(in)) - for i, tc := range in { - out[i] = types.ToolCall{ - ID: tc.ID, - Name: tc.Name, - Arguments: tc.Arguments, - } - } - return out + return in } // ToRuntimeToolResults converts persisted contracts back into Hawk runtime tool results. func ToRuntimeToolResults(in []ToolResult) []types.ToolResult { - if len(in) == 0 { - return nil - } - out := make([]types.ToolResult, len(in)) - for i, tr := range in { - out[i] = types.ToolResult{ - ToolUseID: tr.ToolUseID, - Content: tr.Content, - IsError: tr.IsError, - } - } - return out + return in }