on main help sign in
improve cache
8e16048Kujtim Hoxha
internal/llm/provider/anthropic.go+7−6
@@ -57,16 +57,18 @@ func newAnthropicClient(opts providerClientOptions) AnthropicClient {
57}
57}
58
58
59func (a *anthropicClient) convertMessages(messages []message.Message) (anthropicMessages []anthropic.MessageParam) {
59func (a *anthropicClient) convertMessages(messages []message.Message) (anthropicMessages []anthropic.MessageParam) {
60− cachedBlocks := 0
61− for _, msg := range messages {
60+ for i, msg := range messages {
61+ cache := false
62+ if len(messages)-3 > i {
63+ cache = true
64+ }
62 switch msg.Role {
65 switch msg.Role {
63 case message.User:
66 case message.User:
64 content := anthropic.NewTextBlock(msg.Content().String())
67 content := anthropic.NewTextBlock(msg.Content().String())
65− if cachedBlocks < 2 && !a.options.disableCache {
68+ if cache && !a.options.disableCache {
66 content.OfRequestTextBlock.CacheControl = anthropic.CacheControlEphemeralParam{
69 content.OfRequestTextBlock.CacheControl = anthropic.CacheControlEphemeralParam{
67 Type: "ephemeral",
70 Type: "ephemeral",
68 }
71 }
69− cachedBlocks++
70 }
72 }
71 anthropicMessages = append(anthropicMessages, anthropic.NewUserMessage(content))
73 anthropicMessages = append(anthropicMessages, anthropic.NewUserMessage(content))
72
74
@@ -74,11 +76,10 @@ func (a *anthropicClient) convertMessages(messages []message.Message) (anthropic
74 blocks := []anthropic.ContentBlockParamUnion{}
76 blocks := []anthropic.ContentBlockParamUnion{}
75 if msg.Content().String() != "" {
77 if msg.Content().String() != "" {
76 content := anthropic.NewTextBlock(msg.Content().String())
78 content := anthropic.NewTextBlock(msg.Content().String())
77− if cachedBlocks < 2 && !a.options.disableCache {
79+ if cache && !a.options.disableCache {
78 content.OfRequestTextBlock.CacheControl = anthropic.CacheControlEphemeralParam{
80 content.OfRequestTextBlock.CacheControl = anthropic.CacheControlEphemeralParam{
79 Type: "ephemeral",
81 Type: "ephemeral",
80 }
82 }
81− cachedBlocks++
82 }
83 }
83 blocks = append(blocks, content)
84 blocks = append(blocks, content)
84 }
85 }
internal/tui/components/dialog/permission.go+6−1
@@ -375,6 +375,9 @@ func (p *permissionDialogCmp) render() string {
375 contentFinal = p.renderDefaultContent()
375 contentFinal = p.renderDefaultContent()
376 }
376 }
377
377
378+ // Add help text
379+ helpText := styles.BaseStyle.Width(p.width - 4).Padding(0, 1).Foreground(styles.ForgroundDim).Render("←/→/tab: switch options a: allow A: allow for session d: deny enter/space: confirm")
380+
378 content := lipgloss.JoinVertical(
381 content := lipgloss.JoinVertical(
379 lipgloss.Top,
382 lipgloss.Top,
380 title,
383 title,
@@ -382,6 +385,8 @@ func (p *permissionDialogCmp) render() string {
382 headerContent,
385 headerContent,
383 contentFinal,
386 contentFinal,
384 buttons,
387 buttons,
388+ styles.BaseStyle.Render(strings.Repeat(" ", p.width - 4)),
389+ helpText,
385 )
390 )
386
391
387 return styles.BaseStyle.
392 return styles.BaseStyle.
@@ -401,7 +406,7 @@ func (p *permissionDialogCmp) View() string {
401}
406}
402
407
403func (p *permissionDialogCmp) BindingKeys() []key.Binding {
408func (p *permissionDialogCmp) BindingKeys() []key.Binding {
404− return layout.KeyMapToSlice(helpKeys)
409+ return layout.KeyMapToSlice(permissionsKeys)
405}
410}
406
411
407func (p *permissionDialogCmp) SetSize() tea.Cmd {
412func (p *permissionDialogCmp) SetSize() tea.Cmd {