summaryrefslogtreecommitdiff
path: root/docs
diff options
context:
space:
mode:
authorPaul Buetow <paul@buetow.org>2025-09-07 11:49:38 +0300
committerPaul Buetow <paul@buetow.org>2025-09-07 11:49:38 +0300
commit5ed470a093ffb7d28c88f9687429f238959935da (patch)
treef4fd4e0bae2e5312de675d9de708c6543f2299e0 /docs
parent9a901054e8828054f7b26514b72b6e938f97e4a7 (diff)
test: add seams for RunTUI and client; expand hexaiaction tests; cover lsp initialized and testutil fixtures
Diffstat (limited to 'docs')
-rw-r--r--docs/coverage.html410
-rw-r--r--docs/coverage.out4205
2 files changed, 3175 insertions, 1440 deletions
diff --git a/docs/coverage.html b/docs/coverage.html
index 8f6eb62..90eae60 100644
--- a/docs/coverage.html
+++ b/docs/coverage.html
@@ -63,13 +63,13 @@
<option value="file3">codeberg.org/snonux/hexai/internal/appconfig/config.go (91.6%)</option>
- <option value="file4">codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go (76.5%)</option>
+ <option value="file4">codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go (81.5%)</option>
<option value="file5">codeberg.org/snonux/hexai/internal/hexaiaction/parse.go (92.6%)</option>
<option value="file6">codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go (91.9%)</option>
- <option value="file7">codeberg.org/snonux/hexai/internal/hexaiaction/run.go (48.7%)</option>
+ <option value="file7">codeberg.org/snonux/hexai/internal/hexaiaction/run.go (71.8%)</option>
<option value="file8">codeberg.org/snonux/hexai/internal/hexaiaction/tui.go (65.5%)</option>
@@ -109,7 +109,7 @@
<option value="file26">codeberg.org/snonux/hexai/internal/lsp/handlers_execute.go (75.0%)</option>
- <option value="file27">codeberg.org/snonux/hexai/internal/lsp/handlers_init.go (55.6%)</option>
+ <option value="file27">codeberg.org/snonux/hexai/internal/lsp/handlers_init.go (66.7%)</option>
<option value="file28">codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go (89.0%)</option>
@@ -117,7 +117,7 @@
<option value="file30">codeberg.org/snonux/hexai/internal/lsp/transport.go (71.4%)</option>
- <option value="file31">codeberg.org/snonux/hexai/internal/testutil/fixtures.go (60.0%)</option>
+ <option value="file31">codeberg.org/snonux/hexai/internal/testutil/fixtures.go (100.0%)</option>
<option value="file32">codeberg.org/snonux/hexai/internal/textutil/textutil.go (89.0%)</option>
@@ -321,7 +321,7 @@ type App struct {
}
// Constructor: defaults for App (kept first among functions)
-func newDefaultConfig() App <span class="cov5" title="14">{
+func newDefaultConfig() App <span class="cov5" title="16">{
// Coding-friendly default temperature across providers
// Users can override per provider in config.toml (including 0.0).
t := 0.2
@@ -372,17 +372,17 @@ func newDefaultConfig() App <span class="cov5" title="14">{
// Load reads configuration from a file and merges with defaults.
// It respects the XDG Base Directory Specification.
-func Load(logger *log.Logger) App <span class="cov5" title="13">{
+func Load(logger *log.Logger) App <span class="cov5" title="15">{
cfg := newDefaultConfig()
if logger == nil </span><span class="cov3" title="4">{
return cfg // Return defaults if no logger is provided (e.g. in tests)
}</span>
- <span class="cov4" title="9">configPath, err := getConfigPath()
+ <span class="cov4" title="11">configPath, err := getConfigPath()
if err != nil </span><span class="cov0" title="0">{
logger.Printf("%v", err)
// Even if config path cannot be resolved, still allow env overrides below.
- }</span> else<span class="cov4" title="9"> {
+ }</span> else<span class="cov4" title="11"> {
if fileCfg, err := loadFromFile(configPath, logger); err == nil &amp;&amp; fileCfg != nil </span><span class="cov3" title="4">{
cfg.mergeWith(fileCfg)
}</span>
@@ -391,10 +391,10 @@ func Load(logger *log.Logger) App <span class="cov5" title="13">{
}
// Environment overrides (take precedence over file)
- <span class="cov4" title="9">if envCfg := loadFromEnv(logger); envCfg != nil </span><span class="cov1" title="1">{
+ <span class="cov4" title="11">if envCfg := loadFromEnv(logger); envCfg != nil </span><span class="cov1" title="1">{
cfg.mergeWith(envCfg)
}</span>
- <span class="cov4" title="9">return cfg</span>
+ <span class="cov4" title="11">return cfg</span>
}
// Private helpers
@@ -665,16 +665,16 @@ func (fc *fileConfig) toApp() App <span class="cov3" title="4">{
<span class="cov3" title="4">return out</span>
}
-func loadFromFile(path string, logger *log.Logger) (*App, error) <span class="cov4" title="10">{
+func loadFromFile(path string, logger *log.Logger) (*App, error) <span class="cov5" title="12">{
b, err := os.ReadFile(path)
- if err != nil </span><span class="cov3" title="4">{
+ if err != nil </span><span class="cov3" title="6">{
if !os.IsNotExist(err) &amp;&amp; logger != nil </span><span class="cov0" title="0">{
logger.Printf("cannot open TOML config file %s: %v", path, err)
}</span>
- <span class="cov3" title="4">return nil, err</span>
+ <span class="cov3" title="6">return nil, err</span>
}
- <span class="cov4" title="6">var tables fileConfig
+ <span class="cov3" title="6">var tables fileConfig
errTables := toml.NewDecoder(strings.NewReader(string(b))).Decode(&amp;tables)
// Raw map for validation/presence checks
var raw map[string]any
@@ -747,50 +747,50 @@ func (a *App) mergeWith(other *App) <span class="cov3" title="5">{
}</span>
// mergeBasics merges general (non-provider) fields.
-func (a *App) mergeBasics(other *App) <span class="cov6" title="20">{
+func (a *App) mergeBasics(other *App) <span class="cov5" title="20">{
if other.MaxTokens &gt; 0 </span><span class="cov4" title="7">{
a.MaxTokens = other.MaxTokens
}</span>
- <span class="cov6" title="20">if s := strings.TrimSpace(other.ContextMode); s != "" </span><span class="cov4" title="7">{
+ <span class="cov5" title="20">if s := strings.TrimSpace(other.ContextMode); s != "" </span><span class="cov4" title="7">{
a.ContextMode = s
}</span>
- <span class="cov6" title="20">if other.ContextWindowLines &gt; 0 </span><span class="cov4" title="7">{
+ <span class="cov5" title="20">if other.ContextWindowLines &gt; 0 </span><span class="cov4" title="7">{
a.ContextWindowLines = other.ContextWindowLines
}</span>
- <span class="cov6" title="20">if other.MaxContextTokens &gt; 0 </span><span class="cov4" title="7">{
+ <span class="cov5" title="20">if other.MaxContextTokens &gt; 0 </span><span class="cov4" title="7">{
a.MaxContextTokens = other.MaxContextTokens
}</span>
- <span class="cov6" title="20">if other.LogPreviewLimit &gt;= 0 </span><span class="cov6" title="20">{
+ <span class="cov5" title="20">if other.LogPreviewLimit &gt;= 0 </span><span class="cov5" title="20">{
a.LogPreviewLimit = other.LogPreviewLimit
}</span>
- <span class="cov6" title="20">if other.CodingTemperature != nil </span><span class="cov4" title="7">{ // allow explicit 0.0
+ <span class="cov5" title="20">if other.CodingTemperature != nil </span><span class="cov4" title="7">{ // allow explicit 0.0
a.CodingTemperature = other.CodingTemperature
}</span>
- <span class="cov6" title="20">if other.ManualInvokeMinPrefix &gt;= 0 </span><span class="cov6" title="20">{
+ <span class="cov5" title="20">if other.ManualInvokeMinPrefix &gt;= 0 </span><span class="cov5" title="20">{
a.ManualInvokeMinPrefix = other.ManualInvokeMinPrefix
}</span>
- <span class="cov6" title="20">if other.CompletionDebounceMs &gt; 0 </span><span class="cov4" title="7">{
+ <span class="cov5" title="20">if other.CompletionDebounceMs &gt; 0 </span><span class="cov4" title="7">{
a.CompletionDebounceMs = other.CompletionDebounceMs
}</span>
- <span class="cov6" title="20">if other.CompletionThrottleMs &gt; 0 </span><span class="cov4" title="7">{
+ <span class="cov5" title="20">if other.CompletionThrottleMs &gt; 0 </span><span class="cov4" title="7">{
a.CompletionThrottleMs = other.CompletionThrottleMs
}</span>
- <span class="cov6" title="20">if len(other.TriggerCharacters) &gt; 0 </span><span class="cov4" title="7">{
+ <span class="cov5" title="20">if len(other.TriggerCharacters) &gt; 0 </span><span class="cov4" title="7">{
a.TriggerCharacters = slices.Clone(other.TriggerCharacters)
}</span>
- <span class="cov6" title="20">if s := strings.TrimSpace(other.InlineOpen); s != "" </span><span class="cov2" title="2">{
+ <span class="cov5" title="20">if s := strings.TrimSpace(other.InlineOpen); s != "" </span><span class="cov2" title="2">{
a.InlineOpen = s
}</span>
- <span class="cov6" title="20">if s := strings.TrimSpace(other.InlineClose); s != "" </span><span class="cov2" title="2">{
+ <span class="cov5" title="20">if s := strings.TrimSpace(other.InlineClose); s != "" </span><span class="cov2" title="2">{
a.InlineClose = s
}</span>
- <span class="cov6" title="20">if s := strings.TrimSpace(other.ChatSuffix); s != "" </span><span class="cov2" title="2">{
+ <span class="cov5" title="20">if s := strings.TrimSpace(other.ChatSuffix); s != "" </span><span class="cov2" title="2">{
a.ChatSuffix = s
}</span>
- <span class="cov6" title="20">if len(other.ChatPrefixes) &gt; 0 </span><span class="cov2" title="2">{
+ <span class="cov5" title="20">if len(other.ChatPrefixes) &gt; 0 </span><span class="cov2" title="2">{
a.ChatPrefixes = slices.Clone(other.ChatPrefixes)
}</span>
- <span class="cov6" title="20">if s := strings.TrimSpace(other.Provider); s != "" </span><span class="cov4" title="7">{
+ <span class="cov5" title="20">if s := strings.TrimSpace(other.Provider); s != "" </span><span class="cov4" title="7">{
a.Provider = s
}</span>
}
@@ -889,33 +889,33 @@ func (a *App) mergeProviderFields(other *App) <span class="cov5" title="14">{
}</span>
}
-func getConfigPath() (string, error) <span class="cov4" title="10">{
+func getConfigPath() (string, error) <span class="cov5" title="12">{
var configPath string
if xdgConfigHome := os.Getenv("XDG_CONFIG_HOME"); xdgConfigHome != "" </span><span class="cov4" title="7">{
configPath = filepath.Join(xdgConfigHome, "hexai", "config.toml")
- }</span> else<span class="cov2" title="3"> {
+ }</span> else<span class="cov3" title="5"> {
home, err := os.UserHomeDir()
if err != nil </span><span class="cov0" title="0">{
return "", fmt.Errorf("cannot find user home directory: %v", err)
}</span>
- <span class="cov2" title="3">configPath = filepath.Join(home, ".config", "hexai", "config.toml")</span>
+ <span class="cov3" title="5">configPath = filepath.Join(home, ".config", "hexai", "config.toml")</span>
}
- <span class="cov4" title="10">return configPath, nil</span>
+ <span class="cov5" title="12">return configPath, nil</span>
}
// --- Environment overrides ---
// loadFromEnv constructs an App containing only fields set via HEXAI_* env vars.
// These values should take precedence over file config when merged.
-func loadFromEnv(logger *log.Logger) *App <span class="cov4" title="9">{
+func loadFromEnv(logger *log.Logger) *App <span class="cov4" title="11">{
var out App
var any bool
// helpers
- getenv := func(k string) string </span><span class="cov10" title="216">{ return strings.TrimSpace(os.Getenv(k)) }</span>
- <span class="cov4" title="9">parseInt := func(k string) (int, bool) </span><span class="cov7" title="63">{
+ getenv := func(k string) string </span><span class="cov10" title="264">{ return strings.TrimSpace(os.Getenv(k)) }</span>
+ <span class="cov4" title="11">parseInt := func(k string) (int, bool) </span><span class="cov8" title="77">{
v := getenv(k)
- if v == "" </span><span class="cov7" title="56">{
+ if v == "" </span><span class="cov7" title="70">{
return 0, false
}</span>
<span class="cov4" title="7">n, err := strconv.Atoi(v)
@@ -927,9 +927,9 @@ func loadFromEnv(logger *log.Logger) *App <span class="cov4" title="9">{
}
<span class="cov4" title="7">return n, true</span>
}
- <span class="cov4" title="9">parseFloatPtr := func(k string) (*float64, bool) </span><span class="cov7" title="36">{
+ <span class="cov4" title="11">parseFloatPtr := func(k string) (*float64, bool) </span><span class="cov7" title="44">{
v := getenv(k)
- if v == "" </span><span class="cov6" title="32">{
+ if v == "" </span><span class="cov6" title="40">{
return nil, false
}</span>
<span class="cov3" title="4">f, err := strconv.ParseFloat(v, 64)
@@ -942,43 +942,43 @@ func loadFromEnv(logger *log.Logger) *App <span class="cov4" title="9">{
<span class="cov3" title="4">return &amp;f, true</span>
}
- <span class="cov4" title="9">if n, ok := parseInt("HEXAI_MAX_TOKENS"); ok </span><span class="cov1" title="1">{
+ <span class="cov4" title="11">if n, ok := parseInt("HEXAI_MAX_TOKENS"); ok </span><span class="cov1" title="1">{
out.MaxTokens = n
any = true
}</span>
- <span class="cov4" title="9">if s := getenv("HEXAI_CONTEXT_MODE"); s != "" </span><span class="cov1" title="1">{
+ <span class="cov4" title="11">if s := getenv("HEXAI_CONTEXT_MODE"); s != "" </span><span class="cov1" title="1">{
out.ContextMode = s
any = true
}</span>
- <span class="cov4" title="9">if n, ok := parseInt("HEXAI_CONTEXT_WINDOW_LINES"); ok </span><span class="cov1" title="1">{
+ <span class="cov4" title="11">if n, ok := parseInt("HEXAI_CONTEXT_WINDOW_LINES"); ok </span><span class="cov1" title="1">{
out.ContextWindowLines = n
any = true
}</span>
- <span class="cov4" title="9">if n, ok := parseInt("HEXAI_MAX_CONTEXT_TOKENS"); ok </span><span class="cov1" title="1">{
+ <span class="cov4" title="11">if n, ok := parseInt("HEXAI_MAX_CONTEXT_TOKENS"); ok </span><span class="cov1" title="1">{
out.MaxContextTokens = n
any = true
}</span>
- <span class="cov4" title="9">if n, ok := parseInt("HEXAI_LOG_PREVIEW_LIMIT"); ok </span><span class="cov1" title="1">{
+ <span class="cov4" title="11">if n, ok := parseInt("HEXAI_LOG_PREVIEW_LIMIT"); ok </span><span class="cov1" title="1">{
out.LogPreviewLimit = n
any = true
}</span>
- <span class="cov4" title="9">if n, ok := parseInt("HEXAI_MANUAL_INVOKE_MIN_PREFIX"); ok </span><span class="cov1" title="1">{
+ <span class="cov4" title="11">if n, ok := parseInt("HEXAI_MANUAL_INVOKE_MIN_PREFIX"); ok </span><span class="cov1" title="1">{
out.ManualInvokeMinPrefix = n
any = true
}</span>
- <span class="cov4" title="9">if n, ok := parseInt("HEXAI_COMPLETION_DEBOUNCE_MS"); ok </span><span class="cov1" title="1">{
+ <span class="cov4" title="11">if n, ok := parseInt("HEXAI_COMPLETION_DEBOUNCE_MS"); ok </span><span class="cov1" title="1">{
out.CompletionDebounceMs = n
any = true
}</span>
- <span class="cov4" title="9">if n, ok := parseInt("HEXAI_COMPLETION_THROTTLE_MS"); ok </span><span class="cov1" title="1">{
+ <span class="cov4" title="11">if n, ok := parseInt("HEXAI_COMPLETION_THROTTLE_MS"); ok </span><span class="cov1" title="1">{
out.CompletionThrottleMs = n
any = true
}</span>
- <span class="cov4" title="9">if f, ok := parseFloatPtr("HEXAI_CODING_TEMPERATURE"); ok </span><span class="cov1" title="1">{
+ <span class="cov4" title="11">if f, ok := parseFloatPtr("HEXAI_CODING_TEMPERATURE"); ok </span><span class="cov1" title="1">{
out.CodingTemperature = f
any = true
}</span>
- <span class="cov4" title="9">if s := getenv("HEXAI_TRIGGER_CHARACTERS"); s != "" </span><span class="cov1" title="1">{
+ <span class="cov4" title="11">if s := getenv("HEXAI_TRIGGER_CHARACTERS"); s != "" </span><span class="cov1" title="1">{
parts := strings.Split(s, ",")
out.TriggerCharacters = nil
for _, p := range parts </span><span class="cov2" title="3">{
@@ -988,19 +988,19 @@ func loadFromEnv(logger *log.Logger) *App <span class="cov4" title="9">{
}
<span class="cov1" title="1">any = true</span>
}
- <span class="cov4" title="9">if s := getenv("HEXAI_INLINE_OPEN"); s != "" </span><span class="cov0" title="0">{
+ <span class="cov4" title="11">if s := getenv("HEXAI_INLINE_OPEN"); s != "" </span><span class="cov0" title="0">{
out.InlineOpen = s
any = true
}</span>
- <span class="cov4" title="9">if s := getenv("HEXAI_INLINE_CLOSE"); s != "" </span><span class="cov0" title="0">{
+ <span class="cov4" title="11">if s := getenv("HEXAI_INLINE_CLOSE"); s != "" </span><span class="cov0" title="0">{
out.InlineClose = s
any = true
}</span>
- <span class="cov4" title="9">if s := getenv("HEXAI_CHAT_SUFFIX"); s != "" </span><span class="cov0" title="0">{
+ <span class="cov4" title="11">if s := getenv("HEXAI_CHAT_SUFFIX"); s != "" </span><span class="cov0" title="0">{
out.ChatSuffix = s
any = true
}</span>
- <span class="cov4" title="9">if s := getenv("HEXAI_CHAT_PREFIXES"); s != "" </span><span class="cov0" title="0">{
+ <span class="cov4" title="11">if s := getenv("HEXAI_CHAT_PREFIXES"); s != "" </span><span class="cov0" title="0">{
parts := strings.Split(s, ",")
out.ChatPrefixes = nil
for _, p := range parts </span><span class="cov0" title="0">{
@@ -1010,52 +1010,52 @@ func loadFromEnv(logger *log.Logger) *App <span class="cov4" title="9">{
}
<span class="cov0" title="0">any = true</span>
}
- <span class="cov4" title="9">if s := getenv("HEXAI_PROVIDER"); s != "" </span><span class="cov1" title="1">{
+ <span class="cov4" title="11">if s := getenv("HEXAI_PROVIDER"); s != "" </span><span class="cov1" title="1">{
out.Provider = s
any = true
}</span>
// Provider-specific
- <span class="cov4" title="9">if s := getenv("HEXAI_OPENAI_BASE_URL"); s != "" </span><span class="cov1" title="1">{
+ <span class="cov4" title="11">if s := getenv("HEXAI_OPENAI_BASE_URL"); s != "" </span><span class="cov1" title="1">{
out.OpenAIBaseURL = s
any = true
}</span>
- <span class="cov4" title="9">if s := getenv("HEXAI_OPENAI_MODEL"); s != "" </span><span class="cov1" title="1">{
+ <span class="cov4" title="11">if s := getenv("HEXAI_OPENAI_MODEL"); s != "" </span><span class="cov1" title="1">{
out.OpenAIModel = s
any = true
}</span>
- <span class="cov4" title="9">if f, ok := parseFloatPtr("HEXAI_OPENAI_TEMPERATURE"); ok </span><span class="cov1" title="1">{
+ <span class="cov4" title="11">if f, ok := parseFloatPtr("HEXAI_OPENAI_TEMPERATURE"); ok </span><span class="cov1" title="1">{
out.OpenAITemperature = f
any = true
}</span>
- <span class="cov4" title="9">if s := getenv("HEXAI_OLLAMA_BASE_URL"); s != "" </span><span class="cov1" title="1">{
+ <span class="cov4" title="11">if s := getenv("HEXAI_OLLAMA_BASE_URL"); s != "" </span><span class="cov1" title="1">{
out.OllamaBaseURL = s
any = true
}</span>
- <span class="cov4" title="9">if s := getenv("HEXAI_OLLAMA_MODEL"); s != "" </span><span class="cov1" title="1">{
+ <span class="cov4" title="11">if s := getenv("HEXAI_OLLAMA_MODEL"); s != "" </span><span class="cov1" title="1">{
out.OllamaModel = s
any = true
}</span>
- <span class="cov4" title="9">if f, ok := parseFloatPtr("HEXAI_OLLAMA_TEMPERATURE"); ok </span><span class="cov1" title="1">{
+ <span class="cov4" title="11">if f, ok := parseFloatPtr("HEXAI_OLLAMA_TEMPERATURE"); ok </span><span class="cov1" title="1">{
out.OllamaTemperature = f
any = true
}</span>
- <span class="cov4" title="9">if s := getenv("HEXAI_COPILOT_BASE_URL"); s != "" </span><span class="cov1" title="1">{
+ <span class="cov4" title="11">if s := getenv("HEXAI_COPILOT_BASE_URL"); s != "" </span><span class="cov1" title="1">{
out.CopilotBaseURL = s
any = true
}</span>
- <span class="cov4" title="9">if s := getenv("HEXAI_COPILOT_MODEL"); s != "" </span><span class="cov1" title="1">{
+ <span class="cov4" title="11">if s := getenv("HEXAI_COPILOT_MODEL"); s != "" </span><span class="cov1" title="1">{
out.CopilotModel = s
any = true
}</span>
- <span class="cov4" title="9">if f, ok := parseFloatPtr("HEXAI_COPILOT_TEMPERATURE"); ok </span><span class="cov1" title="1">{
+ <span class="cov4" title="11">if f, ok := parseFloatPtr("HEXAI_COPILOT_TEMPERATURE"); ok </span><span class="cov1" title="1">{
out.CopilotTemperature = f
any = true
}</span>
- <span class="cov4" title="9">if !any </span><span class="cov4" title="8">{
+ <span class="cov4" title="11">if !any </span><span class="cov4" title="10">{
return nil
}</span>
<span class="cov1" title="1">return &amp;out</span>
@@ -1090,22 +1090,22 @@ type Options struct {
// RunCommand is the CLI orchestrator used by cmd/hexai-action. It decides whether
// to run inline, in a tmux split pane, or in child mode; then delegates to Run.
-func RunCommand(ctx context.Context, opts Options, stdin io.Reader, stdout, stderr io.Writer) error <span class="cov0" title="0">{
- if opts.UIChild </span><span class="cov0" title="0">{
+func RunCommand(ctx context.Context, opts Options, stdin io.Reader, stdout, stderr io.Writer) error <span class="cov6" title="3">{
+ if opts.UIChild </span><span class="cov1" title="1">{
return runChild(ctx, opts.Infile, opts.Outfile, stdout, stderr)
}</span>
- <span class="cov0" title="0">if shouldRunInTmux(opts.ForceTmux, opts.NoTmux) </span><span class="cov0" title="0">{
+ <span class="cov4" title="2">if shouldRunInTmux(opts.ForceTmux, opts.NoTmux) </span><span class="cov1" title="1">{
return runInTmuxParent(stdin, stdout, opts.TmuxTarget, opts.TmuxSplit, opts.TmuxPercent)
}</span>
// Inline path: only if we have a TTY for UI; otherwise echo input
- <span class="cov0" title="0">if isTTYFn(os.Stdout.Fd()) &amp;&amp; isTTYFn(os.Stdin.Fd()) </span><span class="cov0" title="0">{
+ <span class="cov1" title="1">if isTTYFn(os.Stdout.Fd()) &amp;&amp; isTTYFn(os.Stdin.Fd()) </span><span class="cov0" title="0">{
in, out, closeIn, closeOut, err := openIO(opts.Infile, opts.Outfile)
if err != nil </span><span class="cov0" title="0">{ return err }</span>
<span class="cov0" title="0">defer closeIn(); defer closeOut()
return Run(ctx, in, out, stderr)</span>
}
// Fallback: echo
- <span class="cov0" title="0">return echoThrough(opts.Infile, opts.Outfile, stdin, stdout)</span>
+ <span class="cov1" title="1">return echoThrough(opts.Infile, opts.Outfile, stdin, stdout)</span>
}
// seams for unit tests
@@ -1115,36 +1115,36 @@ var splitRunFn = tmux.SplitRun
var osExecutableFn = os.Executable
var runFn = Run
-func shouldRunInTmux(forceTmux, noTmux bool) bool <span class="cov10" title="5">{
- if noTmux </span><span class="cov1" title="1">{ return false }</span>
- <span class="cov8" title="4">if forceTmux </span><span class="cov1" title="1">{ return true }</span>
- <span class="cov7" title="3">if !(isTTYFn(os.Stdin.Fd()) &amp;&amp; isTTYFn(os.Stdout.Fd())) &amp;&amp; tmuxAvailableFn() </span><span class="cov1" title="1">{ return true }</span>
+func shouldRunInTmux(forceTmux, noTmux bool) bool <span class="cov10" title="7">{
+ if noTmux </span><span class="cov4" title="2">{ return false }</span>
+ <span class="cov8" title="5">if forceTmux </span><span class="cov4" title="2">{ return true }</span>
+ <span class="cov6" title="3">if !(isTTYFn(os.Stdin.Fd()) &amp;&amp; isTTYFn(os.Stdout.Fd())) &amp;&amp; tmuxAvailableFn() </span><span class="cov1" title="1">{ return true }</span>
<span class="cov4" title="2">return false</span>
}
// openIO returns readers/writers for infile/outfile flags with deferred closers.
-func openIO(infile, outfile string) (io.Reader, io.Writer, func(), func(), error) <span class="cov4" title="2">{
+func openIO(infile, outfile string) (io.Reader, io.Writer, func(), func(), error) <span class="cov6" title="3">{
in := io.Reader(os.Stdin)
out := io.Writer(os.Stdout)
closeIn := func() </span>{<span class="cov0" title="0">}</span>
- <span class="cov4" title="2">closeOut := func() </span>{<span class="cov0" title="0">}</span>
- <span class="cov4" title="2">if path := infile; path != "" </span><span class="cov4" title="2">{
+ <span class="cov6" title="3">closeOut := func() </span>{<span class="cov0" title="0">}</span>
+ <span class="cov6" title="3">if path := infile; path != "" </span><span class="cov6" title="3">{
f, err := os.Open(path)
if err != nil </span><span class="cov0" title="0">{ return nil, nil, func()</span>{<span class="cov0" title="0">}</span>, func(){<span class="cov0" title="0">}</span>, fmt.Errorf("hexai-action: cannot open infile: %w", err) }
- <span class="cov4" title="2">in = f
- closeIn = func() </span><span class="cov4" title="2">{ _ = f.Close() }</span>
+ <span class="cov6" title="3">in = f
+ closeIn = func() </span><span class="cov6" title="3">{ _ = f.Close() }</span>
}
- <span class="cov4" title="2">if path := outfile; path != "" </span><span class="cov4" title="2">{
+ <span class="cov6" title="3">if path := outfile; path != "" </span><span class="cov6" title="3">{
f, err := os.Create(path)
if err != nil </span><span class="cov0" title="0">{ return nil, nil, func()</span>{<span class="cov0" title="0">}</span>, func(){<span class="cov0" title="0">}</span>, fmt.Errorf("hexai-action: cannot open outfile: %w", err) }
- <span class="cov4" title="2">out = f
- closeOut = func() </span><span class="cov4" title="2">{ _ = f.Close() }</span>
+ <span class="cov6" title="3">out = f
+ closeOut = func() </span><span class="cov6" title="3">{ _ = f.Close() }</span>
}
- <span class="cov4" title="2">return in, out, closeIn, closeOut, nil</span>
+ <span class="cov6" title="3">return in, out, closeIn, closeOut, nil</span>
}
// runChild runs the interactive flow and writes the final output atomically when outfile is set.
-func runChild(ctx context.Context, infile, outfile string, stdout, stderr io.Writer) error <span class="cov4" title="2">{
+func runChild(ctx context.Context, infile, outfile string, stdout, stderr io.Writer) error <span class="cov6" title="3">{
if outfile == "" </span><span class="cov1" title="1">{
// No atomic handoff needed; just run normally to provided stdout
var in io.Reader = os.Stdin
@@ -1156,63 +1156,63 @@ func runChild(ctx context.Context, infile, outfile string, stdout, stderr io.Wri
}
<span class="cov1" title="1">return runFn(ctx, in, stdout, stderr)</span>
}
- <span class="cov1" title="1">tmp := outfile + ".tmp"
+ <span class="cov4" title="2">tmp := outfile + ".tmp"
in, out, closeIn, closeOut, err := openIO(infile, tmp)
if err != nil </span><span class="cov0" title="0">{ return err }</span>
- <span class="cov1" title="1">defer closeIn()
+ <span class="cov4" title="2">defer closeIn()
if err := runFn(ctx, in, out, stderr); err != nil </span><span class="cov0" title="0">{
closeOut()
if copyErr := echoThrough(infile, tmp, os.Stdin, stdout); copyErr != nil </span><span class="cov0" title="0">{
return fmt.Errorf("hexai-action child: %v; echo failed: %v", err, copyErr)
}</span>
- } else<span class="cov1" title="1"> {
+ } else<span class="cov4" title="2"> {
closeOut()
}</span>
- <span class="cov1" title="1">return os.Rename(tmp, outfile)</span>
+ <span class="cov4" title="2">return os.Rename(tmp, outfile)</span>
}
-func runInTmuxParent(stdin io.Reader, stdout io.Writer, target, split string, percent int) error <span class="cov7" title="3">{
+func runInTmuxParent(stdin io.Reader, stdout io.Writer, target, split string, percent int) error <span class="cov7" title="4">{
dir, err := os.MkdirTemp("", "hexai-action-")
if err != nil </span><span class="cov0" title="0">{ return err }</span>
- <span class="cov7" title="3">defer func() </span><span class="cov7" title="3">{ _ = os.RemoveAll(dir) }</span>()
- <span class="cov7" title="3">inPath := filepath.Join(dir, "input.txt")
+ <span class="cov7" title="4">defer func() </span><span class="cov7" title="4">{ _ = os.RemoveAll(dir) }</span>()
+ <span class="cov7" title="4">inPath := filepath.Join(dir, "input.txt")
outPath := filepath.Join(dir, "reply.txt")
if err := persistStdin(inPath, stdin); err != nil </span><span class="cov0" title="0">{ return err }</span>
- <span class="cov7" title="3">exe, err := osExecutableFn()
+ <span class="cov7" title="4">exe, err := osExecutableFn()
if err != nil </span><span class="cov1" title="1">{ return err }</span>
- <span class="cov4" title="2">argv := []string{exe, "-ui-child", "-infile", inPath, "-outfile", outPath}
+ <span class="cov6" title="3">argv := []string{exe, "-ui-child", "-infile", inPath, "-outfile", outPath}
opts := tmux.SplitOpts{Target: target, Vertical: split != "h", Percent: percent}
if err := splitRunFn(opts, argv); err != nil </span><span class="cov1" title="1">{ return err }</span>
- <span class="cov1" title="1">if err := waitForFile(outPath, 60*time.Second); err != nil </span><span class="cov0" title="0">{ return err }</span>
- <span class="cov1" title="1">return catFileTo(stdout, outPath)</span>
+ <span class="cov4" title="2">if err := waitForFile(outPath, 60*time.Second); err != nil </span><span class="cov0" title="0">{ return err }</span>
+ <span class="cov4" title="2">return catFileTo(stdout, outPath)</span>
}
-func persistStdin(path string, stdin io.Reader) error <span class="cov8" title="4">{
+func persistStdin(path string, stdin io.Reader) error <span class="cov8" title="5">{
f, err := os.Create(path)
if err != nil </span><span class="cov0" title="0">{ return err }</span>
- <span class="cov8" title="4">defer func() </span><span class="cov8" title="4">{ _ = f.Close() }</span>()
- <span class="cov8" title="4">if _, err := io.Copy(f, stdin); err != nil </span><span class="cov0" title="0">{ return err }</span>
- <span class="cov8" title="4">return f.Sync()</span>
+ <span class="cov8" title="5">defer func() </span><span class="cov8" title="5">{ _ = f.Close() }</span>()
+ <span class="cov8" title="5">if _, err := io.Copy(f, stdin); err != nil </span><span class="cov0" title="0">{ return err }</span>
+ <span class="cov8" title="5">return f.Sync()</span>
}
-func waitForFile(path string, timeout time.Duration) error <span class="cov4" title="2">{
+func waitForFile(path string, timeout time.Duration) error <span class="cov6" title="3">{
deadline := time.Now().Add(timeout)
- for </span><span class="cov7" title="3">{
- if _, err := os.Stat(path); err == nil </span><span class="cov1" title="1">{ return nil }</span>
+ for </span><span class="cov7" title="4">{
+ if _, err := os.Stat(path); err == nil </span><span class="cov4" title="2">{ return nil }</span>
<span class="cov4" title="2">if time.Now().After(deadline) </span><span class="cov1" title="1">{ return fmt.Errorf("hexai-action: timeout waiting for reply file") }</span>
<span class="cov1" title="1">time.Sleep(200 * time.Millisecond)</span>
}
}
-func catFileTo(w io.Writer, path string) error <span class="cov1" title="1">{
+func catFileTo(w io.Writer, path string) error <span class="cov4" title="2">{
f, err := os.Open(path)
if err != nil </span><span class="cov0" title="0">{ return err }</span>
- <span class="cov1" title="1">defer func() </span><span class="cov1" title="1">{ _ = f.Close() }</span>()
- <span class="cov1" title="1">_, err = io.Copy(w, f)
+ <span class="cov4" title="2">defer func() </span><span class="cov4" title="2">{ _ = f.Close() }</span>()
+ <span class="cov4" title="2">_, err = io.Copy(w, f)
return err</span>
}
-func echoThrough(infile, outfile string, stdin io.Reader, stdout io.Writer) error <span class="cov4" title="2">{
+func echoThrough(infile, outfile string, stdin io.Reader, stdout io.Writer) error <span class="cov6" title="3">{
var in io.Reader = stdin
var out io.Writer = stdout
if infile != "" </span><span class="cov1" title="1">{
@@ -1221,13 +1221,13 @@ func echoThrough(infile, outfile string, stdin io.Reader, stdout io.Writer) erro
<span class="cov1" title="1">defer func() </span><span class="cov1" title="1">{ _ = f.Close() }</span>()
<span class="cov1" title="1">in = f</span>
}
- <span class="cov4" title="2">if outfile != "" </span><span class="cov1" title="1">{
+ <span class="cov6" title="3">if outfile != "" </span><span class="cov1" title="1">{
f, err := os.Create(outfile)
if err != nil </span><span class="cov0" title="0">{ return err }</span>
<span class="cov1" title="1">defer func() </span><span class="cov1" title="1">{ _ = f.Close() }</span>()
<span class="cov1" title="1">out = f</span>
}
- <span class="cov4" title="2">_, err := io.Copy(out, in)
+ <span class="cov6" title="3">_, err := io.Copy(out, in)
return err</span>
}
</pre>
@@ -1251,32 +1251,32 @@ import (
// &lt;rest is selection/code&gt;
//
// If the header is absent, the entire input is treated as selection.
-func ParseInput(r io.Reader) (InputParts, error) <span class="cov4" title="2">{
+func ParseInput(r io.Reader) (InputParts, error) <span class="cov7" title="4">{
b, err := io.ReadAll(bufio.NewReader(r))
if err != nil </span><span class="cov0" title="0">{
return InputParts{}, err
}</span>
- <span class="cov4" title="2">raw := strings.TrimSpace(string(b))
+ <span class="cov7" title="4">raw := strings.TrimSpace(string(b))
if raw == "" </span><span class="cov0" title="0">{
return InputParts{Selection: ""}, nil
}</span>
- <span class="cov4" title="2">lines := strings.Split(raw, "\n")
+ <span class="cov7" title="4">lines := strings.Split(raw, "\n")
// find a case-insensitive line equal to "diagnostics:"
diagsIdx := -1
- for i, ln := range lines </span><span class="cov4" title="2">{
+ for i, ln := range lines </span><span class="cov7" title="5">{
t := strings.TrimSpace(strings.ToLower(ln))
if t == "diagnostics:" </span><span class="cov1" title="1">{
diagsIdx = i
break</span>
}
}
- <span class="cov4" title="2">if diagsIdx &lt; 0 </span><span class="cov1" title="1">{
+ <span class="cov7" title="4">if diagsIdx &lt; 0 </span><span class="cov5" title="3">{
return InputParts{Selection: raw}, nil
}</span>
// collect diagnostics until a blank line or EOF
<span class="cov1" title="1">diags := []string{}
i := diagsIdx + 1
- for ; i &lt; len(lines); i++ </span><span class="cov6" title="3">{
+ for ; i &lt; len(lines); i++ </span><span class="cov5" title="3">{
t := strings.TrimSpace(lines[i])
if t == "" </span><span class="cov1" title="1">{
i++
@@ -1291,7 +1291,7 @@ func ParseInput(r io.Reader) (InputParts, error) <span class="cov4" title="2">{
// ExtractInstruction mirrors the LSP instructionFromSelection behavior (subset),
// scanning the first line for an instruction marker and removing it from the selection.
-func ExtractInstruction(sel string) (string, string) <span class="cov10" title="7">{ return textutil.InstructionFromSelection(sel) }</span>
+func ExtractInstruction(sel string) (string, string) <span class="cov10" title="8">{ return textutil.InstructionFromSelection(sel) }</span>
// findFirstInstructionInLine follows the same precedence as LSP:
// - ;text; (strict)
@@ -1316,16 +1316,16 @@ import (
)
// Render performs simple {{var}} replacement like LSP.
-func Render(t string, vars map[string]string) string <span class="cov9" title="8">{ return textutil.RenderTemplate(t, vars) }</span>
+func Render(t string, vars map[string]string) string <span class="cov9" title="9">{ return textutil.RenderTemplate(t, vars) }</span>
// StripFences removes surrounding markdown code fences.
-func StripFences(s string) string <span class="cov10" title="9">{ return textutil.StripCodeFences(s) }</span>
+func StripFences(s string) string <span class="cov10" title="10">{ return textutil.StripCodeFences(s) }</span>
type chatDoer interface {
Chat(ctx context.Context, msgs []llm.Message, opts ...llm.RequestOption) (string, error)
}
-func runRewrite(ctx context.Context, cfg appconfig.App, client chatDoer, instruction, selection string) (string, error) <span class="cov3" title="2">{
+func runRewrite(ctx context.Context, cfg appconfig.App, client chatDoer, instruction, selection string) (string, error) <span class="cov5" title="3">{
sys := cfg.PromptCodeActionRewriteSystem
user := Render(cfg.PromptCodeActionRewriteUser, map[string]string{"instruction": instruction, "selection": selection})
return runOnceWithOpts(ctx, client, sys, user, reqOptsFrom(cfg))
@@ -1368,26 +1368,26 @@ func runOnce(ctx context.Context, client chatDoer, sys, user string) (string, er
<span class="cov1" title="1">return strings.TrimSpace(StripFences(txt)), nil</span>
}
-func runOnceWithOpts(ctx context.Context, client chatDoer, sys, user string, opts []llm.RequestOption) (string, error) <span class="cov8" title="7">{
+func runOnceWithOpts(ctx context.Context, client chatDoer, sys, user string, opts []llm.RequestOption) (string, error) <span class="cov9" title="8">{
msgs := []llm.Message{{Role: "system", Content: sys}, {Role: "user", Content: user}}
txt, err := client.Chat(ctx, msgs, opts...)
if err != nil </span><span class="cov0" title="0">{
return "", err
}</span>
- <span class="cov8" title="7">return strings.TrimSpace(StripFences(txt)), nil</span>
+ <span class="cov9" title="8">return strings.TrimSpace(StripFences(txt)), nil</span>
}
// reqOptsFrom builds LLM request options similar to LSP behavior.
-func reqOptsFrom(cfg appconfig.App) []llm.RequestOption <span class="cov8" title="7">{
+func reqOptsFrom(cfg appconfig.App) []llm.RequestOption <span class="cov9" title="8">{
opts := []llm.RequestOption{llm.WithMaxTokens(cfg.MaxTokens)}
- if cfg.CodingTemperature != nil </span><span class="cov5" title="3">{
+ if cfg.CodingTemperature != nil </span><span class="cov6" title="4">{
opts = append(opts, llm.WithTemperature(*cfg.CodingTemperature))
}</span>
- <span class="cov8" title="7">return opts</span>
+ <span class="cov9" title="8">return opts</span>
}
// Timeout helpers to mirror LSP behavior.
-func timeout10s(parent context.Context) (context.Context, context.CancelFunc) <span class="cov3" title="2">{
+func timeout10s(parent context.Context) (context.Context, context.CancelFunc) <span class="cov5" title="3">{
return context.WithTimeout(parent, 10*time.Second)
}</span>
@@ -1411,45 +1411,49 @@ import (
)
// Run executes the hexai-action command flow.
-func Run(ctx context.Context, stdin io.Reader, stdout, stderr io.Writer) error <span class="cov1" title="1">{
- logger := log.New(stderr, "hexai-action ", log.LstdFlags|log.Lmsgprefix)
- cfg := appconfig.Load(logger)
- client, err := llmutils.NewClientFromApp(cfg)
- if err != nil </span><span class="cov1" title="1">{
- fmt.Fprintf(stderr, logging.AnsiBase+"hexai-action: LLM disabled: %v"+logging.AnsiReset+"\n", err)
- return err
- }</span>
- <span class="cov0" title="0">parts, err := ParseInput(stdin)
+// seams for testability
+var chooseActionFn = RunTUI
+var newClientFromApp = llmutils.NewClientFromApp
+
+func Run(ctx context.Context, stdin io.Reader, stdout, stderr io.Writer) error <span class="cov6" title="3">{
+ logger := log.New(stderr, "hexai-action ", log.LstdFlags|log.Lmsgprefix)
+ cfg := appconfig.Load(logger)
+ client, err := newClientFromApp(cfg)
+ if err != nil </span><span class="cov1" title="1">{
+ fmt.Fprintf(stderr, logging.AnsiBase+"hexai-action: LLM disabled: %v"+logging.AnsiReset+"\n", err)
+ return err
+ }</span>
+ <span class="cov4" title="2">parts, err := ParseInput(stdin)
if err != nil </span><span class="cov0" title="0">{
fmt.Fprintln(stderr, logging.AnsiBase+"hexai-action: failed to read input"+logging.AnsiReset)
return err
}</span>
- <span class="cov0" title="0">if strings.TrimSpace(parts.Selection) == "" </span><span class="cov0" title="0">{
+ <span class="cov4" title="2">if strings.TrimSpace(parts.Selection) == "" </span><span class="cov0" title="0">{
return fmt.Errorf("hexai-action: no input provided on stdin")
}</span>
- <span class="cov0" title="0">kind, err := RunTUI()
- if err != nil </span><span class="cov0" title="0">{
- return err
- }</span>
- <span class="cov0" title="0">out, err := executeAction(ctx, kind, parts, cfg, client, stderr)
+ <span class="cov4" title="2">kind, err := chooseActionFn()
+ if err != nil </span><span class="cov0" title="0">{
+ return err
+ }</span>
+ <span class="cov4" title="2">out, err := executeAction(ctx, kind, parts, cfg, client, stderr)
if err != nil </span><span class="cov0" title="0">{
return err
}</span>
- <span class="cov0" title="0">io.WriteString(stdout, out)
+ <span class="cov4" title="2">io.WriteString(stdout, out)
return nil</span>
}
-func executeAction(ctx context.Context, kind ActionKind, parts InputParts, cfg appconfig.App, client chatDoer, stderr io.Writer) (string, error) <span class="cov10" title="4">{
+func executeAction(ctx context.Context, kind ActionKind, parts InputParts, cfg appconfig.App, client chatDoer, stderr io.Writer) (string, error) <span class="cov10" title="6">{
switch kind </span>{
- case ActionSkip:<span class="cov1" title="1">
+ case ActionSkip:<span class="cov4" title="2">
return parts.Selection, nil</span>
- case ActionRewrite:<span class="cov1" title="1">
+ case ActionRewrite:<span class="cov4" title="2">
instr, cleaned := ExtractInstruction(parts.Selection)
if strings.TrimSpace(instr) == "" </span><span class="cov0" title="0">{
fmt.Fprintln(stderr, logging.AnsiBase+"hexai-action: no inline instruction found; echoing input"+logging.AnsiReset)
return parts.Selection, nil
}</span>
- <span class="cov1" title="1">cctx, cancel := timeout10s(ctx)
+ <span class="cov4" title="2">cctx, cancel := timeout10s(ctx)
defer cancel()
return runRewrite(cctx, cfg, client, instr, cleaned)</span>
case ActionDiagnostics:<span class="cov0" title="0">
@@ -2901,8 +2905,8 @@ type Options struct {
type RequestOption func(*Options)
func WithModel(model string) RequestOption <span class="cov1" title="1">{ return func(o *Options) </span><span class="cov1" title="1">{ o.Model = model }</span> }
-func WithTemperature(t float64) RequestOption <span class="cov4" title="4">{ return func(o *Options) </span><span class="cov1" title="1">{ o.Temperature = t }</span> }
-func WithMaxTokens(n int) RequestOption <span class="cov10" title="32">{ return func(o *Options) </span><span class="cov1" title="1">{ o.MaxTokens = n }</span> }
+func WithTemperature(t float64) RequestOption <span class="cov5" title="5">{ return func(o *Options) </span><span class="cov1" title="1">{ o.Temperature = t }</span> }
+func WithMaxTokens(n int) RequestOption <span class="cov10" title="33">{ return func(o *Options) </span><span class="cov1" title="1">{ o.MaxTokens = n }</span> }
func WithStop(stop ...string) RequestOption <span class="cov1" title="1">{
return func(o *Options) </span><span class="cov1" title="1">{ o.Stop = append([]string{}, stop...) }</span>
}
@@ -3069,11 +3073,11 @@ var std *log.Logger
func Bind(l *log.Logger) <span class="cov2" title="3">{ std = l }</span>
// Logf prints a formatted message with a module prefix and base ANSI style.
-func Logf(prefix, format string, args ...any) <span class="cov10" title="143">{
+func Logf(prefix, format string, args ...any) <span class="cov10" title="144">{
if std == nil </span><span class="cov9" title="103">{
return
}</span>
- <span class="cov7" title="40">msg := fmt.Sprintf(format, args...)
+ <span class="cov7" title="41">msg := fmt.Sprintf(format, args...)
std.Print(AnsiBase + prefix + msg + AnsiReset)</span>
}
@@ -5092,7 +5096,7 @@ func (s *Server) handleInitialize(req Request) <span class="cov10" title="2">{
s.reply(req.ID, res, nil)</span>
}
-func (s *Server) handleInitialized() <span class="cov0" title="0">{
+func (s *Server) handleInitialized() <span class="cov1" title="1">{
logging.Logf("lsp ", "client initialized")
}</span>
@@ -5694,70 +5698,70 @@ type ServerOptions struct {
PromptGoTestUser string
}
-func NewServer(r io.Reader, w io.Writer, logger *log.Logger, opts ServerOptions) *Server <span class="cov10" title="6">{
+func NewServer(r io.Reader, w io.Writer, logger *log.Logger, opts ServerOptions) *Server <span class="cov10" title="7">{
s := &amp;Server{in: bufio.NewReader(r), out: w, logger: logger, docs: make(map[string]*document), logContext: opts.LogContext}
maxTokens := opts.MaxTokens
- if maxTokens &lt;= 0 </span><span class="cov9" title="5">{
+ if maxTokens &lt;= 0 </span><span class="cov9" title="6">{
maxTokens = 500
}</span>
- <span class="cov10" title="6">s.maxTokens = maxTokens
+ <span class="cov10" title="7">s.maxTokens = maxTokens
contextMode := opts.ContextMode
- if contextMode == "" </span><span class="cov9" title="5">{
+ if contextMode == "" </span><span class="cov9" title="6">{
contextMode = "file-on-new-func"
}</span>
- <span class="cov10" title="6">windowLines := opts.WindowLines
- if windowLines &lt;= 0 </span><span class="cov9" title="5">{
+ <span class="cov10" title="7">windowLines := opts.WindowLines
+ if windowLines &lt;= 0 </span><span class="cov9" title="6">{
windowLines = 120
}</span>
- <span class="cov10" title="6">maxContextTokens := opts.MaxContextTokens
- if maxContextTokens &lt;= 0 </span><span class="cov9" title="5">{
+ <span class="cov10" title="7">maxContextTokens := opts.MaxContextTokens
+ if maxContextTokens &lt;= 0 </span><span class="cov9" title="6">{
maxContextTokens = 2000
}</span>
- <span class="cov10" title="6">s.contextMode = contextMode
+ <span class="cov10" title="7">s.contextMode = contextMode
s.windowLines = windowLines
s.maxContextTokens = maxContextTokens
s.startTime = time.Now()
s.llmClient = opts.Client
- if len(opts.TriggerCharacters) == 0 </span><span class="cov10" title="6">{
+ if len(opts.TriggerCharacters) == 0 </span><span class="cov10" title="7">{
// Defaults (no space to avoid auto-trigger after whitespace)
s.triggerChars = []string{".", ":", "/", "_", ")", "{"}
}</span> else<span class="cov0" title="0"> {
s.triggerChars = append([]string{}, opts.TriggerCharacters...)
}</span>
- <span class="cov10" title="6">s.codingTemperature = opts.CodingTemperature
+ <span class="cov10" title="7">s.codingTemperature = opts.CodingTemperature
s.compCache = make(map[string]string)
s.manualInvokeMinPrefix = opts.ManualInvokeMinPrefix
if opts.CompletionDebounceMs &gt; 0 </span><span class="cov1" title="1">{
s.completionDebounce = time.Duration(opts.CompletionDebounceMs) * time.Millisecond
}</span>
- <span class="cov10" title="6">if opts.CompletionThrottleMs &gt; 0 </span><span class="cov0" title="0">{
+ <span class="cov10" title="7">if opts.CompletionThrottleMs &gt; 0 </span><span class="cov0" title="0">{
s.throttleInterval = time.Duration(opts.CompletionThrottleMs) * time.Millisecond
}</span>
// Trigger character config (with sane defaults if missing)
- <span class="cov10" title="6">if strings.TrimSpace(opts.InlineOpen) == "" </span><span class="cov7" title="4">{
+ <span class="cov10" title="7">if strings.TrimSpace(opts.InlineOpen) == "" </span><span class="cov8" title="5">{
s.inlineOpen = "&gt;"
}</span> else<span class="cov4" title="2"> {
s.inlineOpen = opts.InlineOpen
}</span>
- <span class="cov10" title="6">if strings.TrimSpace(opts.InlineClose) == "" </span><span class="cov7" title="4">{
+ <span class="cov10" title="7">if strings.TrimSpace(opts.InlineClose) == "" </span><span class="cov8" title="5">{
s.inlineClose = "&gt;"
}</span> else<span class="cov4" title="2"> {
s.inlineClose = opts.InlineClose
}</span>
- <span class="cov10" title="6">if strings.TrimSpace(opts.ChatSuffix) == "" </span><span class="cov6" title="3">{
+ <span class="cov10" title="7">if strings.TrimSpace(opts.ChatSuffix) == "" </span><span class="cov7" title="4">{
s.chatSuffix = "&gt;"
}</span> else<span class="cov6" title="3"> {
s.chatSuffix = opts.ChatSuffix
}</span>
- <span class="cov10" title="6">if len(opts.ChatPrefixes) == 0 </span><span class="cov6" title="3">{
+ <span class="cov10" title="7">if len(opts.ChatPrefixes) == 0 </span><span class="cov7" title="4">{
s.chatPrefixes = []string{"?", "!", ":", ";"}
}</span> else<span class="cov6" title="3"> {
s.chatPrefixes = append([]string{}, opts.ChatPrefixes...)
}</span>
// Prompts
- <span class="cov10" title="6">s.promptCompSysGeneral = opts.PromptCompSysGeneral
+ <span class="cov10" title="7">s.promptCompSysGeneral = opts.PromptCompSysGeneral
s.promptCompSysParams = opts.PromptCompSysParams
s.promptCompSysInline = opts.PromptCompSysInline
s.promptCompUserGeneral = opts.PromptCompUserGeneral
@@ -5775,20 +5779,20 @@ func NewServer(r io.Reader, w io.Writer, logger *log.Logger, opts ServerOptions)
s.promptGoTestUser = opts.PromptGoTestUser
// Assign package-level inline trigger chars for free helper functions
- if s.inlineOpen != "" </span><span class="cov10" title="6">{
+ if s.inlineOpen != "" </span><span class="cov10" title="7">{
inlineOpenChar = s.inlineOpen[0]
}</span>
- <span class="cov10" title="6">if s.inlineClose != "" </span><span class="cov10" title="6">{
+ <span class="cov10" title="7">if s.inlineClose != "" </span><span class="cov10" title="7">{
inlineCloseChar = s.inlineClose[0]
}</span>
- <span class="cov10" title="6">if s.chatSuffix != "" </span><span class="cov10" title="6">{
+ <span class="cov10" title="7">if s.chatSuffix != "" </span><span class="cov10" title="7">{
chatSuffixChar = s.chatSuffix[0]
}</span>
- <span class="cov10" title="6">if len(s.chatPrefixes) &gt; 0 </span><span class="cov10" title="6">{
+ <span class="cov10" title="7">if len(s.chatPrefixes) &gt; 0 </span><span class="cov10" title="7">{
chatPrefixSingles = append([]string{}, s.chatPrefixes...)
}</span>
// Initialize dispatch table
- <span class="cov10" title="6">s.handlers = map[string]func(Request){
+ <span class="cov10" title="7">s.handlers = map[string]func(Request){
"initialize": s.handleInitialize,
"initialized": func(_ Request) </span><span class="cov0" title="0">{ s.handleInitialized() }</span>,
"shutdown": s.handleShutdown,
@@ -5801,7 +5805,7 @@ func NewServer(r io.Reader, w io.Writer, logger *log.Logger, opts ServerOptions)
"codeAction/resolve": s.handleCodeActionResolve,
"workspace/executeCommand": s.handleExecuteCommand,
}
- <span class="cov10" title="6">return s</span>
+ <span class="cov10" title="7">return s</span>
}
func (s *Server) Run() error <span class="cov1" title="1">{
@@ -5916,12 +5920,12 @@ func MultilineFunctionSuggestion() string <span class="cov8" title="1">{
}</span>
// MarkdownCodeFence returns a fenced markdown snippet used in post-processing tests.
-func MarkdownCodeFence() string <span class="cov0" title="0">{
+func MarkdownCodeFence() string <span class="cov8" title="1">{
return "```go\nname := value\n```"
}</span>
// MalformedJSON returns a deliberately malformed JSON string.
-func MalformedJSON() string <span class="cov0" title="0">{
+func MalformedJSON() string <span class="cov8" title="1">{
return "{\"choices\":[{\"delta\":{\"content\":\"oops\"}}]"
}</span>
</pre>
@@ -5931,51 +5935,51 @@ func MalformedJSON() string <span class="cov0" title="0">{
import "strings"
// RenderTemplate performs simple {{var}} replacement in a template string.
-func RenderTemplate(t string, vars map[string]string) string <span class="cov8" title="44">{
+func RenderTemplate(t string, vars map[string]string) string <span class="cov8" title="45">{
if t == "" || len(vars) == 0 </span><span class="cov5" title="11">{
return t
}</span>
- <span class="cov7" title="33">out := t
- for k, v := range vars </span><span class="cov9" title="91">{
+ <span class="cov7" title="34">out := t
+ for k, v := range vars </span><span class="cov9" title="93">{
out = strings.ReplaceAll(out, "{{"+k+"}}", v)
}</span>
- <span class="cov7" title="33">return out</span>
+ <span class="cov7" title="34">return out</span>
}
// StripCodeFences removes surrounding Markdown triple-backtick fences.
-func StripCodeFences(s string) string <span class="cov8" title="50">{
+func StripCodeFences(s string) string <span class="cov8" title="51">{
t := strings.TrimSpace(s)
if t == "" </span><span class="cov0" title="0">{
return t
}</span>
- <span class="cov8" title="50">lines := strings.Split(t, "\n")
+ <span class="cov8" title="51">lines := strings.Split(t, "\n")
start := 0
for start &lt; len(lines) &amp;&amp; strings.TrimSpace(lines[start]) == "" </span><span class="cov0" title="0">{
start++
}</span>
- <span class="cov8" title="50">end := len(lines) - 1
+ <span class="cov8" title="51">end := len(lines) - 1
for end &gt;= 0 &amp;&amp; strings.TrimSpace(lines[end]) == "" </span><span class="cov0" title="0">{
end--
}</span>
- <span class="cov8" title="50">if start &gt;= len(lines) || end &lt; 0 || start &gt; end </span><span class="cov0" title="0">{
+ <span class="cov8" title="51">if start &gt;= len(lines) || end &lt; 0 || start &gt; end </span><span class="cov0" title="0">{
return t
}</span>
- <span class="cov8" title="50">first := strings.TrimSpace(lines[start])
+ <span class="cov8" title="51">first := strings.TrimSpace(lines[start])
last := strings.TrimSpace(lines[end])
if strings.HasPrefix(first, "```") &amp;&amp; last == "```" &amp;&amp; end &gt; start </span><span class="cov6" title="20">{
inner := strings.Join(lines[start+1:end], "\n")
return inner
}</span>
- <span class="cov7" title="30">return t</span>
+ <span class="cov7" title="31">return t</span>
}
// InstructionFromSelection extracts the first inline instruction and returns
// (instruction, cleanedSelection). It detects markers on the earliest position
// per line in precedence: strict ;text;, /* */, &lt;!-- --&gt;, //, #, --.
-func InstructionFromSelection(sel string) (string, string) <span class="cov5" title="13">{
+func InstructionFromSelection(sel string) (string, string) <span class="cov6" title="14">{
lines := strings.Split(sel, "\n")
- for idx, line := range lines </span><span class="cov5" title="13">{
- if instr, cleaned, ok := FindFirstInstructionInLine(line); ok &amp;&amp; strings.TrimSpace(instr) != "" </span><span class="cov5" title="13">{
+ for idx, line := range lines </span><span class="cov6" title="14">{
+ if instr, cleaned, ok := FindFirstInstructionInLine(line); ok &amp;&amp; strings.TrimSpace(instr) != "" </span><span class="cov6" title="14">{
lines[idx] = cleaned
return instr, strings.Join(lines, "\n")
}</span>
@@ -5984,13 +5988,13 @@ func InstructionFromSelection(sel string) (string, string) <span class="cov5" ti
}
// FindFirstInstructionInLine returns (instruction, cleaned, ok) for a single line.
-func FindFirstInstructionInLine(line string) (instr, cleaned string, ok bool) <span class="cov6" title="14">{
+func FindFirstInstructionInLine(line string) (instr, cleaned string, ok bool) <span class="cov6" title="15">{
type cand struct{ start, end int; text string }
cands := []cand{}
- if t, l, r, ok := FindStrictInlineTag(line); ok </span><span class="cov3" title="4">{
+ if t, l, r, ok := FindStrictInlineTag(line); ok </span><span class="cov4" title="5">{
cands = append(cands, cand{start: l, end: r, text: t})
}</span>
- <span class="cov6" title="14">if i := strings.Index(line, "/*"); i &gt;= 0 </span><span class="cov2" title="2">{
+ <span class="cov6" title="15">if i := strings.Index(line, "/*"); i &gt;= 0 </span><span class="cov2" title="2">{
if j := strings.Index(line[i+2:], "*/"); j &gt;= 0 </span><span class="cov2" title="2">{
start := i
end := i + 2 + j + 2
@@ -5998,7 +6002,7 @@ func FindFirstInstructionInLine(line string) (instr, cleaned string, ok bool) <s
cands = append(cands, cand{start: start, end: end, text: text})
}</span>
}
- <span class="cov6" title="14">if i := strings.Index(line, "&lt;!--"); i &gt;= 0 </span><span class="cov2" title="2">{
+ <span class="cov6" title="15">if i := strings.Index(line, "&lt;!--"); i &gt;= 0 </span><span class="cov2" title="2">{
if j := strings.Index(line[i+4:], "--&gt;"); j &gt;= 0 </span><span class="cov2" title="2">{
start := i
end := i + 4 + j + 3
@@ -6006,34 +6010,34 @@ func FindFirstInstructionInLine(line string) (instr, cleaned string, ok bool) <s
cands = append(cands, cand{start: start, end: end, text: text})
}</span>
}
- <span class="cov6" title="14">if i := strings.Index(line, "//"); i &gt;= 0 </span><span class="cov3" title="3">{
+ <span class="cov6" title="15">if i := strings.Index(line, "//"); i &gt;= 0 </span><span class="cov3" title="3">{
cands = append(cands, cand{start: i, end: len(line), text: strings.TrimSpace(line[i+2:])})
}</span>
- <span class="cov6" title="14">if i := strings.Index(line, "#"); i &gt;= 0 </span><span class="cov2" title="2">{
+ <span class="cov6" title="15">if i := strings.Index(line, "#"); i &gt;= 0 </span><span class="cov2" title="2">{
cands = append(cands, cand{start: i, end: len(line), text: strings.TrimSpace(line[i+1:])})
}</span>
- <span class="cov6" title="14">if i := strings.Index(line, "--"); i &gt;= 0 </span><span class="cov3" title="4">{
+ <span class="cov6" title="15">if i := strings.Index(line, "--"); i &gt;= 0 </span><span class="cov3" title="4">{
cands = append(cands, cand{start: i, end: len(line), text: strings.TrimSpace(line[i+2:])})
}</span>
- <span class="cov6" title="14">if len(cands) == 0 </span><span class="cov0" title="0">{ return "", line, false }</span>
- <span class="cov6" title="14">best := cands[0]
+ <span class="cov6" title="15">if len(cands) == 0 </span><span class="cov0" title="0">{ return "", line, false }</span>
+ <span class="cov6" title="15">best := cands[0]
for _, c := range cands[1:] </span><span class="cov3" title="3">{
if c.start &gt;= 0 &amp;&amp; (best.start &lt; 0 || c.start &lt; best.start) </span><span class="cov0" title="0">{ best = c }</span>
}
- <span class="cov6" title="14">cleaned = strings.TrimRight(line[:best.start]+line[best.end:], " \t")
+ <span class="cov6" title="15">cleaned = strings.TrimRight(line[:best.start]+line[best.end:], " \t")
return best.text, cleaned, true</span>
}
// FindStrictInlineTag finds ;text; with no spaces after/before semicolons.
-func FindStrictInlineTag(line string) (text string, left, right int, ok bool) <span class="cov6" title="16">{
- for i := 0; i &lt; len(line); i++ </span><span class="cov10" title="112">{
+func FindStrictInlineTag(line string) (text string, left, right int, ok bool) <span class="cov6" title="17">{
+ for i := 0; i &lt; len(line); i++ </span><span class="cov10" title="113">{
if line[i] != ';' </span><span class="cov9" title="105">{ continue</span> }
- <span class="cov4" title="7">if i+1 &lt; len(line) &amp;&amp; line[i+1] == ' ' </span><span class="cov1" title="1">{ continue</span> }
- <span class="cov4" title="6">for j := i + 1; j &lt; len(line); j++ </span><span class="cov7" title="35">{
- if line[j] == ';' </span><span class="cov4" title="5">{
+ <span class="cov4" title="8">if i+1 &lt; len(line) &amp;&amp; line[i+1] == ' ' </span><span class="cov1" title="1">{ continue</span> }
+ <span class="cov4" title="7">for j := i + 1; j &lt; len(line); j++ </span><span class="cov8" title="41">{
+ if line[j] == ';' </span><span class="cov4" title="6">{
if j-1 &gt;= 0 &amp;&amp; line[j-1] == ' ' </span><span class="cov0" title="0">{ continue</span> }
- <span class="cov4" title="5">inner := strings.TrimSpace(line[i+1 : j])
- if inner != "" </span><span class="cov4" title="5">{ return inner, i, j + 1, true }</span>
+ <span class="cov4" title="6">inner := strings.TrimSpace(line[i+1 : j])
+ if inner != "" </span><span class="cov4" title="6">{ return inner, i, j + 1, true }</span>
}
}
}
diff --git a/docs/coverage.out b/docs/coverage.out
index bdd512c..e1b4e9b 100644
--- a/docs/coverage.out
+++ b/docs/coverage.out
@@ -407,26 +407,26 @@ codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:78.37,80.6 1 0
codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:81.5,81.16 1 0
codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:85.79,87.2 1 0
codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:89.78,91.2 1 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:16.80,20.16 4 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:20.16,23.3 2 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:24.2,25.16 2 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:25.16,28.3 2 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:29.2,29.46 1 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:29.46,31.3 1 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:32.2,33.16 2 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:33.16,35.3 1 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:36.2,37.16 2 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:37.16,39.3 1 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:40.2,41.12 2 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:44.146,45.14 1 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:46.18,47.30 1 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:48.21,50.37 2 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:50.37,53.4 2 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:54.3,56.55 3 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:57.25,60.79 3 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:61.22,64.57 3 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:65.20,68.55 3 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:69.10,70.30 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:20.80,24.19 4 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:24.19,27.6 2 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:28.5,29.16 2 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:29.16,32.3 2 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:33.2,33.46 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:33.46,35.3 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:36.5,37.19 2 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:37.19,39.6 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:40.2,41.16 2 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:41.16,43.3 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:44.2,45.12 2 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:48.146,49.14 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:50.18,51.30 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:52.21,54.37 2 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:54.37,57.4 2 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:58.3,60.55 3 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:61.25,64.79 3 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:65.22,68.57 3 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:69.20,72.55 3 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:73.10,74.30 1 0
codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:18.36,18.54 1 0
codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:19.36,19.53 1 0
codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:20.36,20.54 1 0
@@ -2143,26 +2143,26 @@ codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:78.37,80.6 1 0
codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:81.5,81.16 1 0
codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:85.79,87.2 1 0
codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:89.78,91.2 1 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:16.80,20.16 4 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:20.16,23.3 2 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:24.2,25.16 2 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:25.16,28.3 2 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:29.2,29.46 1 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:29.46,31.3 1 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:32.2,33.16 2 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:33.16,35.3 1 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:36.2,37.16 2 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:37.16,39.3 1 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:40.2,41.12 2 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:44.146,45.14 1 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:46.18,47.30 1 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:48.21,50.37 2 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:50.37,53.4 2 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:54.3,56.55 3 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:57.25,60.79 3 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:61.22,64.57 3 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:65.20,68.55 3 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:69.10,70.30 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:20.80,24.19 4 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:24.19,27.6 2 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:28.5,29.16 2 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:29.16,32.3 2 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:33.2,33.46 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:33.46,35.3 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:36.5,37.19 2 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:37.19,39.6 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:40.2,41.16 2 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:41.16,43.3 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:44.2,45.12 2 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:48.146,49.14 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:50.18,51.30 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:52.21,54.37 2 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:54.37,57.4 2 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:58.3,60.55 3 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:61.25,64.79 3 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:65.22,68.57 3 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:69.20,72.55 3 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:73.10,74.30 1 0
codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:18.36,18.54 1 0
codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:19.36,19.53 1 0
codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:20.36,20.54 1 0
@@ -3879,26 +3879,26 @@ codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:78.37,80.6 1 0
codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:81.5,81.16 1 0
codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:85.79,87.2 1 0
codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:89.78,91.2 1 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:16.80,20.16 4 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:20.16,23.3 2 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:24.2,25.16 2 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:25.16,28.3 2 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:29.2,29.46 1 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:29.46,31.3 1 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:32.2,33.16 2 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:33.16,35.3 1 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:36.2,37.16 2 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:37.16,39.3 1 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:40.2,41.12 2 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:44.146,45.14 1 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:46.18,47.30 1 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:48.21,50.37 2 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:50.37,53.4 2 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:54.3,56.55 3 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:57.25,60.79 3 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:61.22,64.57 3 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:65.20,68.55 3 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:69.10,70.30 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:20.80,24.19 4 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:24.19,27.6 2 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:28.5,29.16 2 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:29.16,32.3 2 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:33.2,33.46 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:33.46,35.3 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:36.5,37.19 2 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:37.19,39.6 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:40.2,41.16 2 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:41.16,43.3 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:44.2,45.12 2 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:48.146,49.14 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:50.18,51.30 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:52.21,54.37 2 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:54.37,57.4 2 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:58.3,60.55 3 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:61.25,64.79 3 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:65.22,68.57 3 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:69.20,72.55 3 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:73.10,74.30 1 0
codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:18.36,18.54 1 0
codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:19.36,19.53 1 0
codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:20.36,20.54 1 0
@@ -5615,26 +5615,26 @@ codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:78.37,80.6 1 0
codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:81.5,81.16 1 0
codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:85.79,87.2 1 0
codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:89.78,91.2 1 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:16.80,20.16 4 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:20.16,23.3 2 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:24.2,25.16 2 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:25.16,28.3 2 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:29.2,29.46 1 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:29.46,31.3 1 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:32.2,33.16 2 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:33.16,35.3 1 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:36.2,37.16 2 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:37.16,39.3 1 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:40.2,41.12 2 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:44.146,45.14 1 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:46.18,47.30 1 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:48.21,50.37 2 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:50.37,53.4 2 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:54.3,56.55 3 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:57.25,60.79 3 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:61.22,64.57 3 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:65.20,68.55 3 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:69.10,70.30 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:20.80,24.19 4 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:24.19,27.6 2 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:28.5,29.16 2 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:29.16,32.3 2 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:33.2,33.46 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:33.46,35.3 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:36.5,37.19 2 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:37.19,39.6 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:40.2,41.16 2 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:41.16,43.3 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:44.2,45.12 2 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:48.146,49.14 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:50.18,51.30 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:52.21,54.37 2 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:54.37,57.4 2 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:58.3,60.55 3 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:61.25,64.79 3 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:65.22,68.57 3 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:69.20,72.55 3 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:73.10,74.30 1 0
codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:18.36,18.54 1 0
codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:19.36,19.53 1 0
codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:20.36,20.54 1 0
@@ -6955,16 +6955,16 @@ codeberg.org/snonux/hexai/cmd/hexai-lsp/main.go:13.13,17.18 4 0
codeberg.org/snonux/hexai/cmd/hexai-lsp/main.go:17.18,20.3 2 0
codeberg.org/snonux/hexai/cmd/hexai-lsp/main.go:22.2,22.79 1 0
codeberg.org/snonux/hexai/cmd/hexai-lsp/main.go:22.79,24.3 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:89.29,136.2 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:140.35,142.19 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:142.19,144.3 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:146.2,147.16 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:89.29,136.2 2 4
+codeberg.org/snonux/hexai/internal/appconfig/config.go:140.35,142.19 2 4
+codeberg.org/snonux/hexai/internal/appconfig/config.go:142.19,144.3 1 2
+codeberg.org/snonux/hexai/internal/appconfig/config.go:146.2,147.16 2 2
codeberg.org/snonux/hexai/internal/appconfig/config.go:147.16,150.3 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:150.8,151.85 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:150.8,151.85 1 2
codeberg.org/snonux/hexai/internal/appconfig/config.go:151.85,153.4 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:159.2,159.50 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:159.2,159.50 1 2
codeberg.org/snonux/hexai/internal/appconfig/config.go:159.50,161.3 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:162.2,162.12 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:162.2,162.12 1 2
codeberg.org/snonux/hexai/internal/appconfig/config.go:278.35,282.77 2 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:282.77,291.3 2 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:294.2,294.38 1 0
@@ -7025,10 +7025,10 @@ codeberg.org/snonux/hexai/internal/appconfig/config.go:421.60,423.4 1 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:426.2,426.67 1 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:426.67,428.3 1 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:430.2,430.12 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:433.66,435.16 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:435.16,436.43 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:433.66,435.16 2 2
+codeberg.org/snonux/hexai/internal/appconfig/config.go:435.16,436.43 1 2
codeberg.org/snonux/hexai/internal/appconfig/config.go:436.43,438.4 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:439.3,439.18 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:439.3,439.18 1 2
codeberg.org/snonux/hexai/internal/appconfig/config.go:442.2,447.22 5 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:447.22,448.20 1 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:448.20,450.4 1 0
@@ -7138,86 +7138,86 @@ codeberg.org/snonux/hexai/internal/appconfig/config.go:649.2,649.57 1 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:649.57,651.3 1 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:652.2,652.37 1 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:652.37,654.3 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:657.38,659.72 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:657.38,659.72 2 2
codeberg.org/snonux/hexai/internal/appconfig/config.go:659.72,661.3 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:661.8,663.17 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:661.8,663.17 2 2
codeberg.org/snonux/hexai/internal/appconfig/config.go:663.17,665.4 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:666.3,666.70 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:668.2,668.24 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:675.43,680.34 3 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:680.34,680.76 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:681.2,681.41 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:681.41,683.14 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:683.14,685.4 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:666.3,666.70 1 2
+codeberg.org/snonux/hexai/internal/appconfig/config.go:668.2,668.24 1 2
+codeberg.org/snonux/hexai/internal/appconfig/config.go:675.43,680.34 3 2
+codeberg.org/snonux/hexai/internal/appconfig/config.go:680.34,680.76 1 48
+codeberg.org/snonux/hexai/internal/appconfig/config.go:681.2,681.41 1 2
+codeberg.org/snonux/hexai/internal/appconfig/config.go:681.41,683.14 2 14
+codeberg.org/snonux/hexai/internal/appconfig/config.go:683.14,685.4 1 14
codeberg.org/snonux/hexai/internal/appconfig/config.go:686.3,687.17 2 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:687.17,688.21 1 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:688.21,690.5 1 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:691.4,691.19 1 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:693.3,693.17 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:695.2,695.51 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:695.51,697.14 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:697.14,699.4 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:695.2,695.51 1 2
+codeberg.org/snonux/hexai/internal/appconfig/config.go:695.51,697.14 2 8
+codeberg.org/snonux/hexai/internal/appconfig/config.go:697.14,699.4 1 8
codeberg.org/snonux/hexai/internal/appconfig/config.go:700.3,701.17 2 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:701.17,702.21 1 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:702.21,704.5 1 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:705.4,705.21 1 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:707.3,707.18 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:710.2,710.47 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:710.2,710.47 1 2
codeberg.org/snonux/hexai/internal/appconfig/config.go:710.47,713.3 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:714.2,714.48 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:714.2,714.48 1 2
codeberg.org/snonux/hexai/internal/appconfig/config.go:714.48,717.3 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:718.2,718.57 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:718.2,718.57 1 2
codeberg.org/snonux/hexai/internal/appconfig/config.go:718.57,721.3 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:722.2,722.55 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:722.2,722.55 1 2
codeberg.org/snonux/hexai/internal/appconfig/config.go:722.55,725.3 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:726.2,726.54 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:726.2,726.54 1 2
codeberg.org/snonux/hexai/internal/appconfig/config.go:726.54,729.3 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:730.2,730.61 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:730.2,730.61 1 2
codeberg.org/snonux/hexai/internal/appconfig/config.go:730.61,733.3 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:734.2,734.59 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:734.2,734.59 1 2
codeberg.org/snonux/hexai/internal/appconfig/config.go:734.59,737.3 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:738.2,738.59 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:738.2,738.59 1 2
codeberg.org/snonux/hexai/internal/appconfig/config.go:738.59,741.3 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:742.2,742.60 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:742.2,742.60 1 2
codeberg.org/snonux/hexai/internal/appconfig/config.go:742.60,745.3 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:746.2,746.54 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:746.2,746.54 1 2
codeberg.org/snonux/hexai/internal/appconfig/config.go:746.54,749.27 3 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:749.27,750.42 1 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:750.42,752.5 1 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:754.3,754.13 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:756.2,756.47 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:756.2,756.47 1 2
codeberg.org/snonux/hexai/internal/appconfig/config.go:756.47,759.3 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:760.2,760.48 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:760.2,760.48 1 2
codeberg.org/snonux/hexai/internal/appconfig/config.go:760.48,763.3 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:764.2,764.47 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:764.2,764.47 1 2
codeberg.org/snonux/hexai/internal/appconfig/config.go:764.47,767.3 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:768.2,768.49 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:768.2,768.49 1 2
codeberg.org/snonux/hexai/internal/appconfig/config.go:768.49,771.27 3 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:771.27,772.42 1 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:772.42,774.5 1 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:776.3,776.13 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:778.2,778.44 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:778.2,778.44 1 2
codeberg.org/snonux/hexai/internal/appconfig/config.go:778.44,781.3 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:784.2,784.51 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:784.2,784.51 1 2
codeberg.org/snonux/hexai/internal/appconfig/config.go:784.51,787.3 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:788.2,788.48 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:788.2,788.48 1 2
codeberg.org/snonux/hexai/internal/appconfig/config.go:788.48,791.3 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:792.2,792.60 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:792.2,792.60 1 2
codeberg.org/snonux/hexai/internal/appconfig/config.go:792.60,795.3 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:797.2,797.51 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:797.2,797.51 1 2
codeberg.org/snonux/hexai/internal/appconfig/config.go:797.51,800.3 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:801.2,801.48 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:801.2,801.48 1 2
codeberg.org/snonux/hexai/internal/appconfig/config.go:801.48,804.3 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:805.2,805.60 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:805.2,805.60 1 2
codeberg.org/snonux/hexai/internal/appconfig/config.go:805.60,808.3 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:810.2,810.52 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:810.2,810.52 1 2
codeberg.org/snonux/hexai/internal/appconfig/config.go:810.52,813.3 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:814.2,814.49 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:814.2,814.49 1 2
codeberg.org/snonux/hexai/internal/appconfig/config.go:814.49,817.3 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:818.2,818.61 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:818.2,818.61 1 2
codeberg.org/snonux/hexai/internal/appconfig/config.go:818.61,821.3 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:823.2,823.10 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:823.10,825.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:823.2,823.10 1 2
+codeberg.org/snonux/hexai/internal/appconfig/config.go:823.10,825.3 1 2
codeberg.org/snonux/hexai/internal/appconfig/config.go:826.2,826.13 1 0
codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:29.101,30.21 1 0
codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:30.21,32.6 1 0
@@ -7351,26 +7351,26 @@ codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:78.37,80.6 1 0
codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:81.5,81.16 1 0
codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:85.79,87.2 1 0
codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:89.78,91.2 1 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:16.80,20.16 4 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:20.16,23.3 2 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:24.2,25.16 2 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:25.16,28.3 2 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:29.2,29.46 1 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:29.46,31.3 1 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:32.2,33.16 2 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:33.16,35.3 1 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:36.2,37.16 2 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:37.16,39.3 1 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:40.2,41.12 2 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:44.146,45.14 1 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:46.18,47.30 1 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:48.21,50.37 2 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:50.37,53.4 2 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:54.3,56.55 3 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:57.25,60.79 3 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:61.22,64.57 3 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:65.20,68.55 3 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:69.10,70.30 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:20.80,24.19 4 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:24.19,27.6 2 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:28.5,29.16 2 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:29.16,32.3 2 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:33.2,33.46 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:33.46,35.3 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:36.5,37.19 2 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:37.19,39.6 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:40.2,41.16 2 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:41.16,43.3 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:44.2,45.12 2 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:48.146,49.14 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:50.18,51.30 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:52.21,54.37 2 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:54.37,57.4 2 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:58.3,60.55 3 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:61.25,64.79 3 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:65.22,68.57 3 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:69.20,72.55 3 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:73.10,74.30 1 0
codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:18.36,18.54 1 0
codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:19.36,19.53 1 0
codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:20.36,20.54 1 0
@@ -7451,30 +7451,30 @@ codeberg.org/snonux/hexai/internal/hexaicli/run.go:133.3,134.26 2 0
codeberg.org/snonux/hexai/internal/hexaicli/run.go:136.2,139.12 3 0
codeberg.org/snonux/hexai/internal/hexaicli/run.go:143.59,145.2 1 0
codeberg.org/snonux/hexai/internal/hexaicli/run.go:148.65,150.2 1 0
-codeberg.org/snonux/hexai/internal/hexailsp/run.go:25.85,27.38 2 0
-codeberg.org/snonux/hexai/internal/hexailsp/run.go:27.38,29.17 2 0
+codeberg.org/snonux/hexai/internal/hexailsp/run.go:25.85,27.38 2 1
+codeberg.org/snonux/hexai/internal/hexailsp/run.go:27.38,29.17 2 1
codeberg.org/snonux/hexai/internal/hexailsp/run.go:29.17,31.4 1 0
-codeberg.org/snonux/hexai/internal/hexailsp/run.go:32.3,33.22 2 0
-codeberg.org/snonux/hexai/internal/hexailsp/run.go:35.2,37.70 3 0
-codeberg.org/snonux/hexai/internal/hexailsp/run.go:42.159,49.37 6 0
+codeberg.org/snonux/hexai/internal/hexailsp/run.go:32.3,33.22 2 1
+codeberg.org/snonux/hexai/internal/hexailsp/run.go:35.2,37.70 3 1
+codeberg.org/snonux/hexai/internal/hexailsp/run.go:42.159,49.37 6 7
codeberg.org/snonux/hexai/internal/hexailsp/run.go:49.37,51.3 1 0
-codeberg.org/snonux/hexai/internal/hexailsp/run.go:52.2,52.12 1 0
-codeberg.org/snonux/hexai/internal/hexailsp/run.go:57.49,59.30 2 0
-codeberg.org/snonux/hexai/internal/hexailsp/run.go:59.30,61.3 1 0
-codeberg.org/snonux/hexai/internal/hexailsp/run.go:64.72,65.19 1 0
+codeberg.org/snonux/hexai/internal/hexailsp/run.go:52.2,52.12 1 7
+codeberg.org/snonux/hexai/internal/hexailsp/run.go:57.49,59.30 2 7
+codeberg.org/snonux/hexai/internal/hexailsp/run.go:59.30,61.3 1 7
+codeberg.org/snonux/hexai/internal/hexailsp/run.go:64.72,65.19 1 7
codeberg.org/snonux/hexai/internal/hexailsp/run.go:65.19,67.3 1 0
-codeberg.org/snonux/hexai/internal/hexailsp/run.go:68.2,82.36 3 0
-codeberg.org/snonux/hexai/internal/hexailsp/run.go:82.36,84.3 1 0
-codeberg.org/snonux/hexai/internal/hexailsp/run.go:86.2,87.36 2 0
-codeberg.org/snonux/hexai/internal/hexailsp/run.go:87.36,89.3 1 0
-codeberg.org/snonux/hexai/internal/hexailsp/run.go:90.2,90.67 1 0
-codeberg.org/snonux/hexai/internal/hexailsp/run.go:90.67,93.3 2 0
-codeberg.org/snonux/hexai/internal/hexailsp/run.go:93.8,96.3 2 0
-codeberg.org/snonux/hexai/internal/hexailsp/run.go:99.57,100.20 1 0
-codeberg.org/snonux/hexai/internal/hexailsp/run.go:100.20,102.3 1 0
-codeberg.org/snonux/hexai/internal/hexailsp/run.go:103.2,103.97 1 0
-codeberg.org/snonux/hexai/internal/hexailsp/run.go:103.97,105.3 1 0
-codeberg.org/snonux/hexai/internal/hexailsp/run.go:108.97,144.2 1 0
+codeberg.org/snonux/hexai/internal/hexailsp/run.go:68.2,82.36 3 7
+codeberg.org/snonux/hexai/internal/hexailsp/run.go:82.36,84.3 1 7
+codeberg.org/snonux/hexai/internal/hexailsp/run.go:86.2,87.36 2 7
+codeberg.org/snonux/hexai/internal/hexailsp/run.go:87.36,89.3 1 7
+codeberg.org/snonux/hexai/internal/hexailsp/run.go:90.2,90.67 1 7
+codeberg.org/snonux/hexai/internal/hexailsp/run.go:90.67,93.3 2 1
+codeberg.org/snonux/hexai/internal/hexailsp/run.go:93.8,96.3 2 6
+codeberg.org/snonux/hexai/internal/hexailsp/run.go:99.57,100.20 1 7
+codeberg.org/snonux/hexai/internal/hexailsp/run.go:100.20,102.3 1 6
+codeberg.org/snonux/hexai/internal/hexailsp/run.go:103.2,103.97 1 1
+codeberg.org/snonux/hexai/internal/hexailsp/run.go:103.97,105.3 1 1
+codeberg.org/snonux/hexai/internal/hexailsp/run.go:108.97,144.2 1 7
codeberg.org/snonux/hexai/internal/llm/copilot.go:66.77,67.38 1 0
codeberg.org/snonux/hexai/internal/llm/copilot.go:67.38,69.3 1 0
codeberg.org/snonux/hexai/internal/llm/copilot.go:70.2,70.36 1 0
@@ -7581,11 +7581,11 @@ codeberg.org/snonux/hexai/internal/llm/copilot.go:382.2,383.25 2 0
codeberg.org/snonux/hexai/internal/llm/copilot.go:383.25,384.60 1 0
codeberg.org/snonux/hexai/internal/llm/copilot.go:384.60,386.4 1 0
codeberg.org/snonux/hexai/internal/llm/copilot.go:388.2,388.17 1 0
-codeberg.org/snonux/hexai/internal/llm/ollama.go:44.68,45.38 1 0
-codeberg.org/snonux/hexai/internal/llm/ollama.go:45.38,47.3 1 0
-codeberg.org/snonux/hexai/internal/llm/ollama.go:48.2,48.36 1 0
-codeberg.org/snonux/hexai/internal/llm/ollama.go:48.36,50.3 1 0
-codeberg.org/snonux/hexai/internal/llm/ollama.go:51.2,57.3 1 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:44.68,45.38 1 1
+codeberg.org/snonux/hexai/internal/llm/ollama.go:45.38,47.3 1 1
+codeberg.org/snonux/hexai/internal/llm/ollama.go:48.2,48.36 1 1
+codeberg.org/snonux/hexai/internal/llm/ollama.go:48.36,50.3 1 1
+codeberg.org/snonux/hexai/internal/llm/ollama.go:51.2,57.3 1 1
codeberg.org/snonux/hexai/internal/llm/ollama.go:60.108,62.27 2 0
codeberg.org/snonux/hexai/internal/llm/ollama.go:62.27,64.3 1 0
codeberg.org/snonux/hexai/internal/llm/ollama.go:65.2,65.19 1 0
@@ -7601,8 +7601,8 @@ codeberg.org/snonux/hexai/internal/llm/ollama.go:90.64,93.3 2 0
codeberg.org/snonux/hexai/internal/llm/ollama.go:94.2,94.50 1 0
codeberg.org/snonux/hexai/internal/llm/ollama.go:94.50,97.3 2 0
codeberg.org/snonux/hexai/internal/llm/ollama.go:98.2,100.21 3 0
-codeberg.org/snonux/hexai/internal/llm/ollama.go:104.45,104.64 1 0
-codeberg.org/snonux/hexai/internal/llm/ollama.go:105.45,105.70 1 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:104.45,104.64 1 1
+codeberg.org/snonux/hexai/internal/llm/ollama.go:105.45,105.70 1 1
codeberg.org/snonux/hexai/internal/llm/ollama.go:108.126,110.27 2 0
codeberg.org/snonux/hexai/internal/llm/ollama.go:110.27,112.3 1 0
codeberg.org/snonux/hexai/internal/llm/ollama.go:113.2,113.19 1 0
@@ -7649,11 +7649,11 @@ codeberg.org/snonux/hexai/internal/llm/ollama.go:205.53,207.3 1 0
codeberg.org/snonux/hexai/internal/llm/ollama.go:208.2,210.43 3 0
codeberg.org/snonux/hexai/internal/llm/ollama.go:210.43,213.3 2 0
codeberg.org/snonux/hexai/internal/llm/ollama.go:214.2,215.68 2 0
-codeberg.org/snonux/hexai/internal/llm/openai.go:78.76,79.38 1 0
-codeberg.org/snonux/hexai/internal/llm/openai.go:79.38,81.3 1 0
-codeberg.org/snonux/hexai/internal/llm/openai.go:82.2,82.36 1 0
-codeberg.org/snonux/hexai/internal/llm/openai.go:82.36,84.3 1 0
-codeberg.org/snonux/hexai/internal/llm/openai.go:85.2,92.3 1 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:78.76,79.38 1 5
+codeberg.org/snonux/hexai/internal/llm/openai.go:79.38,81.3 1 5
+codeberg.org/snonux/hexai/internal/llm/openai.go:82.2,82.36 1 5
+codeberg.org/snonux/hexai/internal/llm/openai.go:82.36,84.3 1 5
+codeberg.org/snonux/hexai/internal/llm/openai.go:85.2,92.3 1 5
codeberg.org/snonux/hexai/internal/llm/openai.go:95.108,96.20 1 0
codeberg.org/snonux/hexai/internal/llm/openai.go:96.20,98.3 1 0
codeberg.org/snonux/hexai/internal/llm/openai.go:99.2,100.27 2 0
@@ -7671,8 +7671,8 @@ codeberg.org/snonux/hexai/internal/llm/openai.go:128.16,130.3 1 0
codeberg.org/snonux/hexai/internal/llm/openai.go:131.2,131.27 1 0
codeberg.org/snonux/hexai/internal/llm/openai.go:131.27,134.3 2 0
codeberg.org/snonux/hexai/internal/llm/openai.go:135.2,137.21 3 0
-codeberg.org/snonux/hexai/internal/llm/openai.go:141.45,141.64 1 0
-codeberg.org/snonux/hexai/internal/llm/openai.go:142.45,142.70 1 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:141.45,141.64 1 5
+codeberg.org/snonux/hexai/internal/llm/openai.go:142.45,142.70 1 5
codeberg.org/snonux/hexai/internal/llm/openai.go:146.126,147.20 1 0
codeberg.org/snonux/hexai/internal/llm/openai.go:147.20,149.3 1 0
codeberg.org/snonux/hexai/internal/llm/openai.go:150.2,151.27 2 0
@@ -7744,17 +7744,17 @@ codeberg.org/snonux/hexai/internal/llm/provider.go:60.47,60.73 1 0
codeberg.org/snonux/hexai/internal/llm/provider.go:60.73,60.92 1 0
codeberg.org/snonux/hexai/internal/llm/provider.go:61.45,62.26 1 0
codeberg.org/snonux/hexai/internal/llm/provider.go:62.26,62.66 1 0
-codeberg.org/snonux/hexai/internal/llm/provider.go:85.84,87.13 2 0
-codeberg.org/snonux/hexai/internal/llm/provider.go:87.13,89.3 1 0
-codeberg.org/snonux/hexai/internal/llm/provider.go:90.2,90.11 1 0
-codeberg.org/snonux/hexai/internal/llm/provider.go:91.16,92.44 1 0
-codeberg.org/snonux/hexai/internal/llm/provider.go:92.44,94.4 1 0
-codeberg.org/snonux/hexai/internal/llm/provider.go:96.3,96.35 1 0
-codeberg.org/snonux/hexai/internal/llm/provider.go:96.35,99.4 2 0
-codeberg.org/snonux/hexai/internal/llm/provider.go:100.3,100.97 1 0
-codeberg.org/snonux/hexai/internal/llm/provider.go:101.16,102.35 1 0
+codeberg.org/snonux/hexai/internal/llm/provider.go:85.84,87.13 2 7
+codeberg.org/snonux/hexai/internal/llm/provider.go:87.13,89.3 1 6
+codeberg.org/snonux/hexai/internal/llm/provider.go:90.2,90.11 1 7
+codeberg.org/snonux/hexai/internal/llm/provider.go:91.16,92.44 1 6
+codeberg.org/snonux/hexai/internal/llm/provider.go:92.44,94.4 1 1
+codeberg.org/snonux/hexai/internal/llm/provider.go:96.3,96.35 1 5
+codeberg.org/snonux/hexai/internal/llm/provider.go:96.35,99.4 2 3
+codeberg.org/snonux/hexai/internal/llm/provider.go:100.3,100.97 1 5
+codeberg.org/snonux/hexai/internal/llm/provider.go:101.16,102.35 1 1
codeberg.org/snonux/hexai/internal/llm/provider.go:102.35,105.4 2 0
-codeberg.org/snonux/hexai/internal/llm/provider.go:106.3,106.83 1 0
+codeberg.org/snonux/hexai/internal/llm/provider.go:106.3,106.83 1 1
codeberg.org/snonux/hexai/internal/llm/provider.go:107.17,108.45 1 0
codeberg.org/snonux/hexai/internal/llm/provider.go:108.45,110.4 1 0
codeberg.org/snonux/hexai/internal/llm/provider.go:111.3,111.36 1 0
@@ -7767,20 +7767,20 @@ codeberg.org/snonux/hexai/internal/llmutils/client.go:26.39,28.6 1 0
codeberg.org/snonux/hexai/internal/llmutils/client.go:29.5,30.39 2 0
codeberg.org/snonux/hexai/internal/llmutils/client.go:30.39,32.6 1 0
codeberg.org/snonux/hexai/internal/llmutils/client.go:33.5,33.51 1 0
-codeberg.org/snonux/hexai/internal/logging/chatlogger.go:9.48,11.2 1 1
-codeberg.org/snonux/hexai/internal/logging/chatlogger.go:18.3,20.12 2 1
-codeberg.org/snonux/hexai/internal/logging/chatlogger.go:20.12,22.3 1 1
-codeberg.org/snonux/hexai/internal/logging/chatlogger.go:23.2,25.29 2 1
-codeberg.org/snonux/hexai/internal/logging/chatlogger.go:25.29,28.3 1 1
+codeberg.org/snonux/hexai/internal/logging/chatlogger.go:9.48,11.2 1 6
+codeberg.org/snonux/hexai/internal/logging/chatlogger.go:18.3,20.12 2 0
+codeberg.org/snonux/hexai/internal/logging/chatlogger.go:20.12,22.3 1 0
+codeberg.org/snonux/hexai/internal/logging/chatlogger.go:23.2,25.29 2 0
+codeberg.org/snonux/hexai/internal/logging/chatlogger.go:25.29,28.3 1 0
codeberg.org/snonux/hexai/internal/logging/logging.go:27.26,27.37 1 1
-codeberg.org/snonux/hexai/internal/logging/logging.go:30.47,31.16 1 3
-codeberg.org/snonux/hexai/internal/logging/logging.go:31.16,33.3 1 0
-codeberg.org/snonux/hexai/internal/logging/logging.go:34.2,35.48 2 3
-codeberg.org/snonux/hexai/internal/logging/logging.go:43.32,43.55 1 1
-codeberg.org/snonux/hexai/internal/logging/logging.go:46.37,47.25 1 2
-codeberg.org/snonux/hexai/internal/logging/logging.go:47.25,48.32 1 2
+codeberg.org/snonux/hexai/internal/logging/logging.go:30.47,31.16 1 7
+codeberg.org/snonux/hexai/internal/logging/logging.go:31.16,33.3 1 3
+codeberg.org/snonux/hexai/internal/logging/logging.go:34.2,35.48 2 4
+codeberg.org/snonux/hexai/internal/logging/logging.go:43.32,43.55 1 8
+codeberg.org/snonux/hexai/internal/logging/logging.go:46.37,47.25 1 1
+codeberg.org/snonux/hexai/internal/logging/logging.go:47.25,48.32 1 1
codeberg.org/snonux/hexai/internal/logging/logging.go:48.32,50.4 1 0
-codeberg.org/snonux/hexai/internal/logging/logging.go:51.3,51.37 1 2
+codeberg.org/snonux/hexai/internal/logging/logging.go:51.3,51.37 1 1
codeberg.org/snonux/hexai/internal/logging/logging.go:53.2,53.10 1 0
codeberg.org/snonux/hexai/internal/lsp/context.go:16.96,18.14 2 0
codeberg.org/snonux/hexai/internal/lsp/context.go:19.17,20.19 1 0
@@ -8527,48 +8527,48 @@ codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:453.3,454.50 2 0
codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:454.50,456.4 1 0
codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:457.3,458.22 2 0
codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:460.2,460.14 1 0
-codeberg.org/snonux/hexai/internal/lsp/server.go:126.90,129.20 3 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:126.90,129.20 3 1
codeberg.org/snonux/hexai/internal/lsp/server.go:129.20,131.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/server.go:132.2,134.23 3 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:132.2,134.23 3 1
codeberg.org/snonux/hexai/internal/lsp/server.go:134.23,136.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/server.go:137.2,138.22 2 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:137.2,138.22 2 1
codeberg.org/snonux/hexai/internal/lsp/server.go:138.22,140.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/server.go:141.2,142.27 2 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:141.2,142.27 2 1
codeberg.org/snonux/hexai/internal/lsp/server.go:142.27,144.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/server.go:145.2,151.38 6 0
-codeberg.org/snonux/hexai/internal/lsp/server.go:151.38,154.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:145.2,151.38 6 1
+codeberg.org/snonux/hexai/internal/lsp/server.go:151.38,154.3 1 1
codeberg.org/snonux/hexai/internal/lsp/server.go:154.8,156.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/server.go:157.2,160.35 4 0
-codeberg.org/snonux/hexai/internal/lsp/server.go:160.35,162.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/server.go:163.2,163.35 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:157.2,160.35 4 1
+codeberg.org/snonux/hexai/internal/lsp/server.go:160.35,162.3 1 1
+codeberg.org/snonux/hexai/internal/lsp/server.go:163.2,163.35 1 1
codeberg.org/snonux/hexai/internal/lsp/server.go:163.35,165.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/server.go:167.2,167.46 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:167.2,167.46 1 1
codeberg.org/snonux/hexai/internal/lsp/server.go:167.46,169.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/server.go:169.8,171.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/server.go:172.2,172.47 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:169.8,171.3 1 1
+codeberg.org/snonux/hexai/internal/lsp/server.go:172.2,172.47 1 1
codeberg.org/snonux/hexai/internal/lsp/server.go:172.47,174.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/server.go:174.8,176.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/server.go:177.2,177.46 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:174.8,176.3 1 1
+codeberg.org/snonux/hexai/internal/lsp/server.go:177.2,177.46 1 1
codeberg.org/snonux/hexai/internal/lsp/server.go:177.46,179.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/server.go:179.8,181.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/server.go:182.2,182.33 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:179.8,181.3 1 1
+codeberg.org/snonux/hexai/internal/lsp/server.go:182.2,182.33 1 1
codeberg.org/snonux/hexai/internal/lsp/server.go:182.33,184.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/server.go:184.8,186.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/server.go:189.2,207.24 17 0
-codeberg.org/snonux/hexai/internal/lsp/server.go:207.24,209.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/server.go:210.2,210.25 1 0
-codeberg.org/snonux/hexai/internal/lsp/server.go:210.25,212.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/server.go:213.2,213.24 1 0
-codeberg.org/snonux/hexai/internal/lsp/server.go:213.24,215.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/server.go:216.2,216.29 1 0
-codeberg.org/snonux/hexai/internal/lsp/server.go:216.29,218.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/server.go:220.2,222.47 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:184.8,186.3 1 1
+codeberg.org/snonux/hexai/internal/lsp/server.go:189.2,207.24 17 1
+codeberg.org/snonux/hexai/internal/lsp/server.go:207.24,209.3 1 1
+codeberg.org/snonux/hexai/internal/lsp/server.go:210.2,210.25 1 1
+codeberg.org/snonux/hexai/internal/lsp/server.go:210.25,212.3 1 1
+codeberg.org/snonux/hexai/internal/lsp/server.go:213.2,213.24 1 1
+codeberg.org/snonux/hexai/internal/lsp/server.go:213.24,215.3 1 1
+codeberg.org/snonux/hexai/internal/lsp/server.go:216.2,216.29 1 1
+codeberg.org/snonux/hexai/internal/lsp/server.go:216.29,218.3 1 1
+codeberg.org/snonux/hexai/internal/lsp/server.go:220.2,222.47 1 1
codeberg.org/snonux/hexai/internal/lsp/server.go:222.47,222.72 1 0
codeberg.org/snonux/hexai/internal/lsp/server.go:224.47,224.65 1 0
-codeberg.org/snonux/hexai/internal/lsp/server.go:233.2,233.10 1 0
-codeberg.org/snonux/hexai/internal/lsp/server.go:236.30,237.6 1 0
-codeberg.org/snonux/hexai/internal/lsp/server.go:237.6,239.20 2 0
-codeberg.org/snonux/hexai/internal/lsp/server.go:239.20,241.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:233.2,233.10 1 1
+codeberg.org/snonux/hexai/internal/lsp/server.go:236.30,237.6 1 1
+codeberg.org/snonux/hexai/internal/lsp/server.go:237.6,239.20 2 1
+codeberg.org/snonux/hexai/internal/lsp/server.go:239.20,241.4 1 1
codeberg.org/snonux/hexai/internal/lsp/server.go:242.3,242.17 1 0
codeberg.org/snonux/hexai/internal/lsp/server.go:242.17,244.4 1 0
codeberg.org/snonux/hexai/internal/lsp/server.go:245.3,246.52 2 0
@@ -8577,9 +8577,9 @@ codeberg.org/snonux/hexai/internal/lsp/server.go:250.3,250.23 1 0
codeberg.org/snonux/hexai/internal/lsp/server.go:250.23,252.12 1 0
codeberg.org/snonux/hexai/internal/lsp/server.go:254.3,255.15 2 0
codeberg.org/snonux/hexai/internal/lsp/server.go:255.15,257.4 1 0
-codeberg.org/snonux/hexai/internal/lsp/transport.go:15.48,18.6 3 0
-codeberg.org/snonux/hexai/internal/lsp/transport.go:18.6,20.17 2 0
-codeberg.org/snonux/hexai/internal/lsp/transport.go:20.17,22.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/transport.go:15.48,18.6 3 1
+codeberg.org/snonux/hexai/internal/lsp/transport.go:18.6,20.17 2 1
+codeberg.org/snonux/hexai/internal/lsp/transport.go:20.17,22.4 1 1
codeberg.org/snonux/hexai/internal/lsp/transport.go:23.3,23.17 1 0
codeberg.org/snonux/hexai/internal/lsp/transport.go:23.17,24.9 1 0
codeberg.org/snonux/hexai/internal/lsp/transport.go:26.3,27.22 2 0
@@ -9087,26 +9087,26 @@ codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:78.37,80.6 1 0
codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:81.5,81.16 1 0
codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:85.79,87.2 1 0
codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:89.78,91.2 1 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:16.80,20.16 4 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:20.16,23.3 2 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:24.2,25.16 2 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:25.16,28.3 2 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:29.2,29.46 1 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:29.46,31.3 1 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:32.2,33.16 2 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:33.16,35.3 1 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:36.2,37.16 2 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:37.16,39.3 1 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:40.2,41.12 2 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:44.146,45.14 1 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:46.18,47.30 1 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:48.21,50.37 2 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:50.37,53.4 2 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:54.3,56.55 3 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:57.25,60.79 3 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:61.22,64.57 3 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:65.20,68.55 3 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:69.10,70.30 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:20.80,24.19 4 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:24.19,27.6 2 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:28.5,29.16 2 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:29.16,32.3 2 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:33.2,33.46 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:33.46,35.3 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:36.5,37.19 2 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:37.19,39.6 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:40.2,41.16 2 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:41.16,43.3 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:44.2,45.12 2 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:48.146,49.14 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:50.18,51.30 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:52.21,54.37 2 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:54.37,57.4 2 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:58.3,60.55 3 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:61.25,64.79 3 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:65.22,68.57 3 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:69.20,72.55 3 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:73.10,74.30 1 0
codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:18.36,18.54 1 0
codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:19.36,19.53 1 0
codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:20.36,20.54 1 0
@@ -9317,11 +9317,11 @@ codeberg.org/snonux/hexai/internal/llm/copilot.go:382.2,383.25 2 0
codeberg.org/snonux/hexai/internal/llm/copilot.go:383.25,384.60 1 0
codeberg.org/snonux/hexai/internal/llm/copilot.go:384.60,386.4 1 0
codeberg.org/snonux/hexai/internal/llm/copilot.go:388.2,388.17 1 0
-codeberg.org/snonux/hexai/internal/llm/ollama.go:44.68,45.38 1 1
-codeberg.org/snonux/hexai/internal/llm/ollama.go:45.38,47.3 1 1
-codeberg.org/snonux/hexai/internal/llm/ollama.go:48.2,48.36 1 1
-codeberg.org/snonux/hexai/internal/llm/ollama.go:48.36,50.3 1 1
-codeberg.org/snonux/hexai/internal/llm/ollama.go:51.2,57.3 1 1
+codeberg.org/snonux/hexai/internal/llm/ollama.go:44.68,45.38 1 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:45.38,47.3 1 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:48.2,48.36 1 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:48.36,50.3 1 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:51.2,57.3 1 0
codeberg.org/snonux/hexai/internal/llm/ollama.go:60.108,62.27 2 0
codeberg.org/snonux/hexai/internal/llm/ollama.go:62.27,64.3 1 0
codeberg.org/snonux/hexai/internal/llm/ollama.go:65.2,65.19 1 0
@@ -9385,11 +9385,11 @@ codeberg.org/snonux/hexai/internal/llm/ollama.go:205.53,207.3 1 0
codeberg.org/snonux/hexai/internal/llm/ollama.go:208.2,210.43 3 0
codeberg.org/snonux/hexai/internal/llm/ollama.go:210.43,213.3 2 0
codeberg.org/snonux/hexai/internal/llm/ollama.go:214.2,215.68 2 0
-codeberg.org/snonux/hexai/internal/llm/openai.go:78.76,79.38 1 1
-codeberg.org/snonux/hexai/internal/llm/openai.go:79.38,81.3 1 1
-codeberg.org/snonux/hexai/internal/llm/openai.go:82.2,82.36 1 1
-codeberg.org/snonux/hexai/internal/llm/openai.go:82.36,84.3 1 1
-codeberg.org/snonux/hexai/internal/llm/openai.go:85.2,92.3 1 1
+codeberg.org/snonux/hexai/internal/llm/openai.go:78.76,79.38 1 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:79.38,81.3 1 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:82.2,82.36 1 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:82.36,84.3 1 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:85.2,92.3 1 0
codeberg.org/snonux/hexai/internal/llm/openai.go:95.108,96.20 1 0
codeberg.org/snonux/hexai/internal/llm/openai.go:96.20,98.3 1 0
codeberg.org/snonux/hexai/internal/llm/openai.go:99.2,100.27 2 0
@@ -9480,17 +9480,17 @@ codeberg.org/snonux/hexai/internal/llm/provider.go:60.47,60.73 1 0
codeberg.org/snonux/hexai/internal/llm/provider.go:60.73,60.92 1 0
codeberg.org/snonux/hexai/internal/llm/provider.go:61.45,62.26 1 0
codeberg.org/snonux/hexai/internal/llm/provider.go:62.26,62.66 1 0
-codeberg.org/snonux/hexai/internal/llm/provider.go:85.84,87.13 2 2
+codeberg.org/snonux/hexai/internal/llm/provider.go:85.84,87.13 2 0
codeberg.org/snonux/hexai/internal/llm/provider.go:87.13,89.3 1 0
-codeberg.org/snonux/hexai/internal/llm/provider.go:90.2,90.11 1 2
-codeberg.org/snonux/hexai/internal/llm/provider.go:91.16,92.44 1 1
+codeberg.org/snonux/hexai/internal/llm/provider.go:90.2,90.11 1 0
+codeberg.org/snonux/hexai/internal/llm/provider.go:91.16,92.44 1 0
codeberg.org/snonux/hexai/internal/llm/provider.go:92.44,94.4 1 0
-codeberg.org/snonux/hexai/internal/llm/provider.go:96.3,96.35 1 1
-codeberg.org/snonux/hexai/internal/llm/provider.go:96.35,99.4 2 1
-codeberg.org/snonux/hexai/internal/llm/provider.go:100.3,100.97 1 1
-codeberg.org/snonux/hexai/internal/llm/provider.go:101.16,102.35 1 1
-codeberg.org/snonux/hexai/internal/llm/provider.go:102.35,105.4 2 1
-codeberg.org/snonux/hexai/internal/llm/provider.go:106.3,106.83 1 1
+codeberg.org/snonux/hexai/internal/llm/provider.go:96.3,96.35 1 0
+codeberg.org/snonux/hexai/internal/llm/provider.go:96.35,99.4 2 0
+codeberg.org/snonux/hexai/internal/llm/provider.go:100.3,100.97 1 0
+codeberg.org/snonux/hexai/internal/llm/provider.go:101.16,102.35 1 0
+codeberg.org/snonux/hexai/internal/llm/provider.go:102.35,105.4 2 0
+codeberg.org/snonux/hexai/internal/llm/provider.go:106.3,106.83 1 0
codeberg.org/snonux/hexai/internal/llm/provider.go:107.17,108.45 1 0
codeberg.org/snonux/hexai/internal/llm/provider.go:108.45,110.4 1 0
codeberg.org/snonux/hexai/internal/llm/provider.go:111.3,111.36 1 0
@@ -9498,25 +9498,25 @@ codeberg.org/snonux/hexai/internal/llm/provider.go:111.36,114.4 2 0
codeberg.org/snonux/hexai/internal/llm/provider.go:115.3,115.102 1 0
codeberg.org/snonux/hexai/internal/llm/provider.go:116.10,117.55 1 0
codeberg.org/snonux/hexai/internal/llm/util.go:6.47,6.77 1 0
-codeberg.org/snonux/hexai/internal/llmutils/client.go:12.62,26.39 3 2
-codeberg.org/snonux/hexai/internal/llmutils/client.go:26.39,28.6 1 1
-codeberg.org/snonux/hexai/internal/llmutils/client.go:29.5,30.39 2 2
-codeberg.org/snonux/hexai/internal/llmutils/client.go:30.39,32.6 1 2
-codeberg.org/snonux/hexai/internal/llmutils/client.go:33.5,33.51 1 2
-codeberg.org/snonux/hexai/internal/logging/chatlogger.go:9.48,11.2 1 2
-codeberg.org/snonux/hexai/internal/logging/chatlogger.go:18.3,20.12 2 0
-codeberg.org/snonux/hexai/internal/logging/chatlogger.go:20.12,22.3 1 0
-codeberg.org/snonux/hexai/internal/logging/chatlogger.go:23.2,25.29 2 0
-codeberg.org/snonux/hexai/internal/logging/chatlogger.go:25.29,28.3 1 0
-codeberg.org/snonux/hexai/internal/logging/logging.go:27.26,27.37 1 0
-codeberg.org/snonux/hexai/internal/logging/logging.go:30.47,31.16 1 0
+codeberg.org/snonux/hexai/internal/llmutils/client.go:12.62,26.39 3 0
+codeberg.org/snonux/hexai/internal/llmutils/client.go:26.39,28.6 1 0
+codeberg.org/snonux/hexai/internal/llmutils/client.go:29.5,30.39 2 0
+codeberg.org/snonux/hexai/internal/llmutils/client.go:30.39,32.6 1 0
+codeberg.org/snonux/hexai/internal/llmutils/client.go:33.5,33.51 1 0
+codeberg.org/snonux/hexai/internal/logging/chatlogger.go:9.48,11.2 1 1
+codeberg.org/snonux/hexai/internal/logging/chatlogger.go:18.3,20.12 2 1
+codeberg.org/snonux/hexai/internal/logging/chatlogger.go:20.12,22.3 1 1
+codeberg.org/snonux/hexai/internal/logging/chatlogger.go:23.2,25.29 2 1
+codeberg.org/snonux/hexai/internal/logging/chatlogger.go:25.29,28.3 1 1
+codeberg.org/snonux/hexai/internal/logging/logging.go:27.26,27.37 1 1
+codeberg.org/snonux/hexai/internal/logging/logging.go:30.47,31.16 1 3
codeberg.org/snonux/hexai/internal/logging/logging.go:31.16,33.3 1 0
-codeberg.org/snonux/hexai/internal/logging/logging.go:34.2,35.48 2 0
-codeberg.org/snonux/hexai/internal/logging/logging.go:43.32,43.55 1 0
-codeberg.org/snonux/hexai/internal/logging/logging.go:46.37,47.25 1 0
-codeberg.org/snonux/hexai/internal/logging/logging.go:47.25,48.32 1 0
+codeberg.org/snonux/hexai/internal/logging/logging.go:34.2,35.48 2 3
+codeberg.org/snonux/hexai/internal/logging/logging.go:43.32,43.55 1 1
+codeberg.org/snonux/hexai/internal/logging/logging.go:46.37,47.25 1 2
+codeberg.org/snonux/hexai/internal/logging/logging.go:47.25,48.32 1 2
codeberg.org/snonux/hexai/internal/logging/logging.go:48.32,50.4 1 0
-codeberg.org/snonux/hexai/internal/logging/logging.go:51.3,51.37 1 0
+codeberg.org/snonux/hexai/internal/logging/logging.go:51.3,51.37 1 2
codeberg.org/snonux/hexai/internal/logging/logging.go:53.2,53.10 1 0
codeberg.org/snonux/hexai/internal/lsp/context.go:16.96,18.14 2 0
codeberg.org/snonux/hexai/internal/lsp/context.go:19.17,20.19 1 0
@@ -10427,16 +10427,16 @@ codeberg.org/snonux/hexai/cmd/hexai-lsp/main.go:13.13,17.18 4 0
codeberg.org/snonux/hexai/cmd/hexai-lsp/main.go:17.18,20.3 2 0
codeberg.org/snonux/hexai/cmd/hexai-lsp/main.go:22.2,22.79 1 0
codeberg.org/snonux/hexai/cmd/hexai-lsp/main.go:22.79,24.3 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:89.29,136.2 2 4
-codeberg.org/snonux/hexai/internal/appconfig/config.go:140.35,142.19 2 4
-codeberg.org/snonux/hexai/internal/appconfig/config.go:142.19,144.3 1 2
-codeberg.org/snonux/hexai/internal/appconfig/config.go:146.2,147.16 2 2
+codeberg.org/snonux/hexai/internal/appconfig/config.go:89.29,136.2 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:140.35,142.19 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:142.19,144.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:146.2,147.16 2 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:147.16,150.3 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:150.8,151.85 1 2
+codeberg.org/snonux/hexai/internal/appconfig/config.go:150.8,151.85 1 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:151.85,153.4 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:159.2,159.50 1 2
+codeberg.org/snonux/hexai/internal/appconfig/config.go:159.2,159.50 1 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:159.50,161.3 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:162.2,162.12 1 2
+codeberg.org/snonux/hexai/internal/appconfig/config.go:162.2,162.12 1 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:278.35,282.77 2 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:282.77,291.3 2 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:294.2,294.38 1 0
@@ -10497,10 +10497,10 @@ codeberg.org/snonux/hexai/internal/appconfig/config.go:421.60,423.4 1 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:426.2,426.67 1 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:426.67,428.3 1 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:430.2,430.12 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:433.66,435.16 2 2
-codeberg.org/snonux/hexai/internal/appconfig/config.go:435.16,436.43 1 2
+codeberg.org/snonux/hexai/internal/appconfig/config.go:433.66,435.16 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:435.16,436.43 1 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:436.43,438.4 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:439.3,439.18 1 2
+codeberg.org/snonux/hexai/internal/appconfig/config.go:439.3,439.18 1 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:442.2,447.22 5 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:447.22,448.20 1 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:448.20,450.4 1 0
@@ -10610,86 +10610,86 @@ codeberg.org/snonux/hexai/internal/appconfig/config.go:649.2,649.57 1 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:649.57,651.3 1 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:652.2,652.37 1 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:652.37,654.3 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:657.38,659.72 2 2
+codeberg.org/snonux/hexai/internal/appconfig/config.go:657.38,659.72 2 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:659.72,661.3 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:661.8,663.17 2 2
+codeberg.org/snonux/hexai/internal/appconfig/config.go:661.8,663.17 2 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:663.17,665.4 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:666.3,666.70 1 2
-codeberg.org/snonux/hexai/internal/appconfig/config.go:668.2,668.24 1 2
-codeberg.org/snonux/hexai/internal/appconfig/config.go:675.43,680.34 3 2
-codeberg.org/snonux/hexai/internal/appconfig/config.go:680.34,680.76 1 48
-codeberg.org/snonux/hexai/internal/appconfig/config.go:681.2,681.41 1 2
-codeberg.org/snonux/hexai/internal/appconfig/config.go:681.41,683.14 2 14
-codeberg.org/snonux/hexai/internal/appconfig/config.go:683.14,685.4 1 14
+codeberg.org/snonux/hexai/internal/appconfig/config.go:666.3,666.70 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:668.2,668.24 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:675.43,680.34 3 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:680.34,680.76 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:681.2,681.41 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:681.41,683.14 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:683.14,685.4 1 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:686.3,687.17 2 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:687.17,688.21 1 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:688.21,690.5 1 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:691.4,691.19 1 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:693.3,693.17 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:695.2,695.51 1 2
-codeberg.org/snonux/hexai/internal/appconfig/config.go:695.51,697.14 2 8
-codeberg.org/snonux/hexai/internal/appconfig/config.go:697.14,699.4 1 8
+codeberg.org/snonux/hexai/internal/appconfig/config.go:695.2,695.51 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:695.51,697.14 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:697.14,699.4 1 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:700.3,701.17 2 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:701.17,702.21 1 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:702.21,704.5 1 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:705.4,705.21 1 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:707.3,707.18 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:710.2,710.47 1 2
+codeberg.org/snonux/hexai/internal/appconfig/config.go:710.2,710.47 1 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:710.47,713.3 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:714.2,714.48 1 2
+codeberg.org/snonux/hexai/internal/appconfig/config.go:714.2,714.48 1 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:714.48,717.3 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:718.2,718.57 1 2
+codeberg.org/snonux/hexai/internal/appconfig/config.go:718.2,718.57 1 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:718.57,721.3 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:722.2,722.55 1 2
+codeberg.org/snonux/hexai/internal/appconfig/config.go:722.2,722.55 1 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:722.55,725.3 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:726.2,726.54 1 2
+codeberg.org/snonux/hexai/internal/appconfig/config.go:726.2,726.54 1 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:726.54,729.3 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:730.2,730.61 1 2
+codeberg.org/snonux/hexai/internal/appconfig/config.go:730.2,730.61 1 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:730.61,733.3 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:734.2,734.59 1 2
+codeberg.org/snonux/hexai/internal/appconfig/config.go:734.2,734.59 1 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:734.59,737.3 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:738.2,738.59 1 2
+codeberg.org/snonux/hexai/internal/appconfig/config.go:738.2,738.59 1 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:738.59,741.3 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:742.2,742.60 1 2
+codeberg.org/snonux/hexai/internal/appconfig/config.go:742.2,742.60 1 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:742.60,745.3 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:746.2,746.54 1 2
+codeberg.org/snonux/hexai/internal/appconfig/config.go:746.2,746.54 1 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:746.54,749.27 3 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:749.27,750.42 1 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:750.42,752.5 1 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:754.3,754.13 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:756.2,756.47 1 2
+codeberg.org/snonux/hexai/internal/appconfig/config.go:756.2,756.47 1 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:756.47,759.3 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:760.2,760.48 1 2
+codeberg.org/snonux/hexai/internal/appconfig/config.go:760.2,760.48 1 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:760.48,763.3 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:764.2,764.47 1 2
+codeberg.org/snonux/hexai/internal/appconfig/config.go:764.2,764.47 1 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:764.47,767.3 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:768.2,768.49 1 2
+codeberg.org/snonux/hexai/internal/appconfig/config.go:768.2,768.49 1 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:768.49,771.27 3 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:771.27,772.42 1 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:772.42,774.5 1 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:776.3,776.13 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:778.2,778.44 1 2
+codeberg.org/snonux/hexai/internal/appconfig/config.go:778.2,778.44 1 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:778.44,781.3 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:784.2,784.51 1 2
+codeberg.org/snonux/hexai/internal/appconfig/config.go:784.2,784.51 1 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:784.51,787.3 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:788.2,788.48 1 2
+codeberg.org/snonux/hexai/internal/appconfig/config.go:788.2,788.48 1 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:788.48,791.3 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:792.2,792.60 1 2
+codeberg.org/snonux/hexai/internal/appconfig/config.go:792.2,792.60 1 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:792.60,795.3 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:797.2,797.51 1 2
+codeberg.org/snonux/hexai/internal/appconfig/config.go:797.2,797.51 1 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:797.51,800.3 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:801.2,801.48 1 2
+codeberg.org/snonux/hexai/internal/appconfig/config.go:801.2,801.48 1 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:801.48,804.3 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:805.2,805.60 1 2
+codeberg.org/snonux/hexai/internal/appconfig/config.go:805.2,805.60 1 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:805.60,808.3 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:810.2,810.52 1 2
+codeberg.org/snonux/hexai/internal/appconfig/config.go:810.2,810.52 1 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:810.52,813.3 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:814.2,814.49 1 2
+codeberg.org/snonux/hexai/internal/appconfig/config.go:814.2,814.49 1 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:814.49,817.3 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:818.2,818.61 1 2
+codeberg.org/snonux/hexai/internal/appconfig/config.go:818.2,818.61 1 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:818.61,821.3 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:823.2,823.10 1 2
-codeberg.org/snonux/hexai/internal/appconfig/config.go:823.10,825.3 1 2
+codeberg.org/snonux/hexai/internal/appconfig/config.go:823.2,823.10 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:823.10,825.3 1 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:826.2,826.13 1 0
codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:29.101,30.21 1 0
codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:30.21,32.6 1 0
@@ -10823,26 +10823,26 @@ codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:78.37,80.6 1 0
codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:81.5,81.16 1 0
codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:85.79,87.2 1 0
codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:89.78,91.2 1 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:16.80,20.16 4 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:20.16,23.3 2 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:24.2,25.16 2 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:25.16,28.3 2 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:29.2,29.46 1 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:29.46,31.3 1 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:32.2,33.16 2 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:33.16,35.3 1 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:36.2,37.16 2 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:37.16,39.3 1 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:40.2,41.12 2 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:44.146,45.14 1 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:46.18,47.30 1 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:48.21,50.37 2 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:50.37,53.4 2 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:54.3,56.55 3 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:57.25,60.79 3 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:61.22,64.57 3 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:65.20,68.55 3 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:69.10,70.30 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:20.80,24.19 4 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:24.19,27.6 2 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:28.5,29.16 2 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:29.16,32.3 2 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:33.2,33.46 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:33.46,35.3 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:36.5,37.19 2 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:37.19,39.6 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:40.2,41.16 2 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:41.16,43.3 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:44.2,45.12 2 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:48.146,49.14 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:50.18,51.30 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:52.21,54.37 2 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:54.37,57.4 2 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:58.3,60.55 3 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:61.25,64.79 3 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:65.22,68.57 3 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:69.20,72.55 3 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:73.10,74.30 1 0
codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:18.36,18.54 1 0
codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:19.36,19.53 1 0
codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:20.36,20.54 1 0
@@ -10923,30 +10923,30 @@ codeberg.org/snonux/hexai/internal/hexaicli/run.go:133.3,134.26 2 0
codeberg.org/snonux/hexai/internal/hexaicli/run.go:136.2,139.12 3 0
codeberg.org/snonux/hexai/internal/hexaicli/run.go:143.59,145.2 1 0
codeberg.org/snonux/hexai/internal/hexaicli/run.go:148.65,150.2 1 0
-codeberg.org/snonux/hexai/internal/hexailsp/run.go:25.85,27.38 2 1
-codeberg.org/snonux/hexai/internal/hexailsp/run.go:27.38,29.17 2 1
+codeberg.org/snonux/hexai/internal/hexailsp/run.go:25.85,27.38 2 0
+codeberg.org/snonux/hexai/internal/hexailsp/run.go:27.38,29.17 2 0
codeberg.org/snonux/hexai/internal/hexailsp/run.go:29.17,31.4 1 0
-codeberg.org/snonux/hexai/internal/hexailsp/run.go:32.3,33.22 2 1
-codeberg.org/snonux/hexai/internal/hexailsp/run.go:35.2,37.70 3 1
-codeberg.org/snonux/hexai/internal/hexailsp/run.go:42.159,49.37 6 7
+codeberg.org/snonux/hexai/internal/hexailsp/run.go:32.3,33.22 2 0
+codeberg.org/snonux/hexai/internal/hexailsp/run.go:35.2,37.70 3 0
+codeberg.org/snonux/hexai/internal/hexailsp/run.go:42.159,49.37 6 0
codeberg.org/snonux/hexai/internal/hexailsp/run.go:49.37,51.3 1 0
-codeberg.org/snonux/hexai/internal/hexailsp/run.go:52.2,52.12 1 7
-codeberg.org/snonux/hexai/internal/hexailsp/run.go:57.49,59.30 2 7
-codeberg.org/snonux/hexai/internal/hexailsp/run.go:59.30,61.3 1 7
-codeberg.org/snonux/hexai/internal/hexailsp/run.go:64.72,65.19 1 7
+codeberg.org/snonux/hexai/internal/hexailsp/run.go:52.2,52.12 1 0
+codeberg.org/snonux/hexai/internal/hexailsp/run.go:57.49,59.30 2 0
+codeberg.org/snonux/hexai/internal/hexailsp/run.go:59.30,61.3 1 0
+codeberg.org/snonux/hexai/internal/hexailsp/run.go:64.72,65.19 1 0
codeberg.org/snonux/hexai/internal/hexailsp/run.go:65.19,67.3 1 0
-codeberg.org/snonux/hexai/internal/hexailsp/run.go:68.2,82.36 3 7
-codeberg.org/snonux/hexai/internal/hexailsp/run.go:82.36,84.3 1 7
-codeberg.org/snonux/hexai/internal/hexailsp/run.go:86.2,87.36 2 7
-codeberg.org/snonux/hexai/internal/hexailsp/run.go:87.36,89.3 1 7
-codeberg.org/snonux/hexai/internal/hexailsp/run.go:90.2,90.67 1 7
-codeberg.org/snonux/hexai/internal/hexailsp/run.go:90.67,93.3 2 1
-codeberg.org/snonux/hexai/internal/hexailsp/run.go:93.8,96.3 2 6
-codeberg.org/snonux/hexai/internal/hexailsp/run.go:99.57,100.20 1 7
-codeberg.org/snonux/hexai/internal/hexailsp/run.go:100.20,102.3 1 6
-codeberg.org/snonux/hexai/internal/hexailsp/run.go:103.2,103.97 1 1
-codeberg.org/snonux/hexai/internal/hexailsp/run.go:103.97,105.3 1 1
-codeberg.org/snonux/hexai/internal/hexailsp/run.go:108.97,144.2 1 7
+codeberg.org/snonux/hexai/internal/hexailsp/run.go:68.2,82.36 3 0
+codeberg.org/snonux/hexai/internal/hexailsp/run.go:82.36,84.3 1 0
+codeberg.org/snonux/hexai/internal/hexailsp/run.go:86.2,87.36 2 0
+codeberg.org/snonux/hexai/internal/hexailsp/run.go:87.36,89.3 1 0
+codeberg.org/snonux/hexai/internal/hexailsp/run.go:90.2,90.67 1 0
+codeberg.org/snonux/hexai/internal/hexailsp/run.go:90.67,93.3 2 0
+codeberg.org/snonux/hexai/internal/hexailsp/run.go:93.8,96.3 2 0
+codeberg.org/snonux/hexai/internal/hexailsp/run.go:99.57,100.20 1 0
+codeberg.org/snonux/hexai/internal/hexailsp/run.go:100.20,102.3 1 0
+codeberg.org/snonux/hexai/internal/hexailsp/run.go:103.2,103.97 1 0
+codeberg.org/snonux/hexai/internal/hexailsp/run.go:103.97,105.3 1 0
+codeberg.org/snonux/hexai/internal/hexailsp/run.go:108.97,144.2 1 0
codeberg.org/snonux/hexai/internal/llm/copilot.go:66.77,67.38 1 0
codeberg.org/snonux/hexai/internal/llm/copilot.go:67.38,69.3 1 0
codeberg.org/snonux/hexai/internal/llm/copilot.go:70.2,70.36 1 0
@@ -11073,8 +11073,8 @@ codeberg.org/snonux/hexai/internal/llm/ollama.go:90.64,93.3 2 0
codeberg.org/snonux/hexai/internal/llm/ollama.go:94.2,94.50 1 0
codeberg.org/snonux/hexai/internal/llm/ollama.go:94.50,97.3 2 0
codeberg.org/snonux/hexai/internal/llm/ollama.go:98.2,100.21 3 0
-codeberg.org/snonux/hexai/internal/llm/ollama.go:104.45,104.64 1 1
-codeberg.org/snonux/hexai/internal/llm/ollama.go:105.45,105.70 1 1
+codeberg.org/snonux/hexai/internal/llm/ollama.go:104.45,104.64 1 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:105.45,105.70 1 0
codeberg.org/snonux/hexai/internal/llm/ollama.go:108.126,110.27 2 0
codeberg.org/snonux/hexai/internal/llm/ollama.go:110.27,112.3 1 0
codeberg.org/snonux/hexai/internal/llm/ollama.go:113.2,113.19 1 0
@@ -11121,11 +11121,11 @@ codeberg.org/snonux/hexai/internal/llm/ollama.go:205.53,207.3 1 0
codeberg.org/snonux/hexai/internal/llm/ollama.go:208.2,210.43 3 0
codeberg.org/snonux/hexai/internal/llm/ollama.go:210.43,213.3 2 0
codeberg.org/snonux/hexai/internal/llm/ollama.go:214.2,215.68 2 0
-codeberg.org/snonux/hexai/internal/llm/openai.go:78.76,79.38 1 5
-codeberg.org/snonux/hexai/internal/llm/openai.go:79.38,81.3 1 5
-codeberg.org/snonux/hexai/internal/llm/openai.go:82.2,82.36 1 5
-codeberg.org/snonux/hexai/internal/llm/openai.go:82.36,84.3 1 5
-codeberg.org/snonux/hexai/internal/llm/openai.go:85.2,92.3 1 5
+codeberg.org/snonux/hexai/internal/llm/openai.go:78.76,79.38 1 1
+codeberg.org/snonux/hexai/internal/llm/openai.go:79.38,81.3 1 1
+codeberg.org/snonux/hexai/internal/llm/openai.go:82.2,82.36 1 1
+codeberg.org/snonux/hexai/internal/llm/openai.go:82.36,84.3 1 1
+codeberg.org/snonux/hexai/internal/llm/openai.go:85.2,92.3 1 1
codeberg.org/snonux/hexai/internal/llm/openai.go:95.108,96.20 1 0
codeberg.org/snonux/hexai/internal/llm/openai.go:96.20,98.3 1 0
codeberg.org/snonux/hexai/internal/llm/openai.go:99.2,100.27 2 0
@@ -11143,8 +11143,8 @@ codeberg.org/snonux/hexai/internal/llm/openai.go:128.16,130.3 1 0
codeberg.org/snonux/hexai/internal/llm/openai.go:131.2,131.27 1 0
codeberg.org/snonux/hexai/internal/llm/openai.go:131.27,134.3 2 0
codeberg.org/snonux/hexai/internal/llm/openai.go:135.2,137.21 3 0
-codeberg.org/snonux/hexai/internal/llm/openai.go:141.45,141.64 1 5
-codeberg.org/snonux/hexai/internal/llm/openai.go:142.45,142.70 1 5
+codeberg.org/snonux/hexai/internal/llm/openai.go:141.45,141.64 1 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:142.45,142.70 1 0
codeberg.org/snonux/hexai/internal/llm/openai.go:146.126,147.20 1 0
codeberg.org/snonux/hexai/internal/llm/openai.go:147.20,149.3 1 0
codeberg.org/snonux/hexai/internal/llm/openai.go:150.2,151.27 2 0
@@ -11216,16 +11216,16 @@ codeberg.org/snonux/hexai/internal/llm/provider.go:60.47,60.73 1 0
codeberg.org/snonux/hexai/internal/llm/provider.go:60.73,60.92 1 0
codeberg.org/snonux/hexai/internal/llm/provider.go:61.45,62.26 1 0
codeberg.org/snonux/hexai/internal/llm/provider.go:62.26,62.66 1 0
-codeberg.org/snonux/hexai/internal/llm/provider.go:85.84,87.13 2 7
-codeberg.org/snonux/hexai/internal/llm/provider.go:87.13,89.3 1 6
-codeberg.org/snonux/hexai/internal/llm/provider.go:90.2,90.11 1 7
-codeberg.org/snonux/hexai/internal/llm/provider.go:91.16,92.44 1 6
-codeberg.org/snonux/hexai/internal/llm/provider.go:92.44,94.4 1 1
-codeberg.org/snonux/hexai/internal/llm/provider.go:96.3,96.35 1 5
-codeberg.org/snonux/hexai/internal/llm/provider.go:96.35,99.4 2 3
-codeberg.org/snonux/hexai/internal/llm/provider.go:100.3,100.97 1 5
+codeberg.org/snonux/hexai/internal/llm/provider.go:85.84,87.13 2 2
+codeberg.org/snonux/hexai/internal/llm/provider.go:87.13,89.3 1 0
+codeberg.org/snonux/hexai/internal/llm/provider.go:90.2,90.11 1 2
+codeberg.org/snonux/hexai/internal/llm/provider.go:91.16,92.44 1 1
+codeberg.org/snonux/hexai/internal/llm/provider.go:92.44,94.4 1 0
+codeberg.org/snonux/hexai/internal/llm/provider.go:96.3,96.35 1 1
+codeberg.org/snonux/hexai/internal/llm/provider.go:96.35,99.4 2 1
+codeberg.org/snonux/hexai/internal/llm/provider.go:100.3,100.97 1 1
codeberg.org/snonux/hexai/internal/llm/provider.go:101.16,102.35 1 1
-codeberg.org/snonux/hexai/internal/llm/provider.go:102.35,105.4 2 0
+codeberg.org/snonux/hexai/internal/llm/provider.go:102.35,105.4 2 1
codeberg.org/snonux/hexai/internal/llm/provider.go:106.3,106.83 1 1
codeberg.org/snonux/hexai/internal/llm/provider.go:107.17,108.45 1 0
codeberg.org/snonux/hexai/internal/llm/provider.go:108.45,110.4 1 0
@@ -11234,25 +11234,25 @@ codeberg.org/snonux/hexai/internal/llm/provider.go:111.36,114.4 2 0
codeberg.org/snonux/hexai/internal/llm/provider.go:115.3,115.102 1 0
codeberg.org/snonux/hexai/internal/llm/provider.go:116.10,117.55 1 0
codeberg.org/snonux/hexai/internal/llm/util.go:6.47,6.77 1 0
-codeberg.org/snonux/hexai/internal/llmutils/client.go:12.62,26.39 3 0
-codeberg.org/snonux/hexai/internal/llmutils/client.go:26.39,28.6 1 0
-codeberg.org/snonux/hexai/internal/llmutils/client.go:29.5,30.39 2 0
-codeberg.org/snonux/hexai/internal/llmutils/client.go:30.39,32.6 1 0
-codeberg.org/snonux/hexai/internal/llmutils/client.go:33.5,33.51 1 0
-codeberg.org/snonux/hexai/internal/logging/chatlogger.go:9.48,11.2 1 6
+codeberg.org/snonux/hexai/internal/llmutils/client.go:12.62,26.39 3 2
+codeberg.org/snonux/hexai/internal/llmutils/client.go:26.39,28.6 1 1
+codeberg.org/snonux/hexai/internal/llmutils/client.go:29.5,30.39 2 2
+codeberg.org/snonux/hexai/internal/llmutils/client.go:30.39,32.6 1 2
+codeberg.org/snonux/hexai/internal/llmutils/client.go:33.5,33.51 1 2
+codeberg.org/snonux/hexai/internal/logging/chatlogger.go:9.48,11.2 1 2
codeberg.org/snonux/hexai/internal/logging/chatlogger.go:18.3,20.12 2 0
codeberg.org/snonux/hexai/internal/logging/chatlogger.go:20.12,22.3 1 0
codeberg.org/snonux/hexai/internal/logging/chatlogger.go:23.2,25.29 2 0
codeberg.org/snonux/hexai/internal/logging/chatlogger.go:25.29,28.3 1 0
-codeberg.org/snonux/hexai/internal/logging/logging.go:27.26,27.37 1 1
-codeberg.org/snonux/hexai/internal/logging/logging.go:30.47,31.16 1 7
-codeberg.org/snonux/hexai/internal/logging/logging.go:31.16,33.3 1 3
-codeberg.org/snonux/hexai/internal/logging/logging.go:34.2,35.48 2 4
-codeberg.org/snonux/hexai/internal/logging/logging.go:43.32,43.55 1 8
-codeberg.org/snonux/hexai/internal/logging/logging.go:46.37,47.25 1 1
-codeberg.org/snonux/hexai/internal/logging/logging.go:47.25,48.32 1 1
+codeberg.org/snonux/hexai/internal/logging/logging.go:27.26,27.37 1 0
+codeberg.org/snonux/hexai/internal/logging/logging.go:30.47,31.16 1 0
+codeberg.org/snonux/hexai/internal/logging/logging.go:31.16,33.3 1 0
+codeberg.org/snonux/hexai/internal/logging/logging.go:34.2,35.48 2 0
+codeberg.org/snonux/hexai/internal/logging/logging.go:43.32,43.55 1 0
+codeberg.org/snonux/hexai/internal/logging/logging.go:46.37,47.25 1 0
+codeberg.org/snonux/hexai/internal/logging/logging.go:47.25,48.32 1 0
codeberg.org/snonux/hexai/internal/logging/logging.go:48.32,50.4 1 0
-codeberg.org/snonux/hexai/internal/logging/logging.go:51.3,51.37 1 1
+codeberg.org/snonux/hexai/internal/logging/logging.go:51.3,51.37 1 0
codeberg.org/snonux/hexai/internal/logging/logging.go:53.2,53.10 1 0
codeberg.org/snonux/hexai/internal/lsp/context.go:16.96,18.14 2 0
codeberg.org/snonux/hexai/internal/lsp/context.go:19.17,20.19 1 0
@@ -11999,48 +11999,48 @@ codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:453.3,454.50 2 0
codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:454.50,456.4 1 0
codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:457.3,458.22 2 0
codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:460.2,460.14 1 0
-codeberg.org/snonux/hexai/internal/lsp/server.go:126.90,129.20 3 1
+codeberg.org/snonux/hexai/internal/lsp/server.go:126.90,129.20 3 0
codeberg.org/snonux/hexai/internal/lsp/server.go:129.20,131.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/server.go:132.2,134.23 3 1
+codeberg.org/snonux/hexai/internal/lsp/server.go:132.2,134.23 3 0
codeberg.org/snonux/hexai/internal/lsp/server.go:134.23,136.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/server.go:137.2,138.22 2 1
+codeberg.org/snonux/hexai/internal/lsp/server.go:137.2,138.22 2 0
codeberg.org/snonux/hexai/internal/lsp/server.go:138.22,140.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/server.go:141.2,142.27 2 1
+codeberg.org/snonux/hexai/internal/lsp/server.go:141.2,142.27 2 0
codeberg.org/snonux/hexai/internal/lsp/server.go:142.27,144.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/server.go:145.2,151.38 6 1
-codeberg.org/snonux/hexai/internal/lsp/server.go:151.38,154.3 1 1
+codeberg.org/snonux/hexai/internal/lsp/server.go:145.2,151.38 6 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:151.38,154.3 1 0
codeberg.org/snonux/hexai/internal/lsp/server.go:154.8,156.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/server.go:157.2,160.35 4 1
-codeberg.org/snonux/hexai/internal/lsp/server.go:160.35,162.3 1 1
-codeberg.org/snonux/hexai/internal/lsp/server.go:163.2,163.35 1 1
+codeberg.org/snonux/hexai/internal/lsp/server.go:157.2,160.35 4 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:160.35,162.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:163.2,163.35 1 0
codeberg.org/snonux/hexai/internal/lsp/server.go:163.35,165.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/server.go:167.2,167.46 1 1
+codeberg.org/snonux/hexai/internal/lsp/server.go:167.2,167.46 1 0
codeberg.org/snonux/hexai/internal/lsp/server.go:167.46,169.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/server.go:169.8,171.3 1 1
-codeberg.org/snonux/hexai/internal/lsp/server.go:172.2,172.47 1 1
+codeberg.org/snonux/hexai/internal/lsp/server.go:169.8,171.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:172.2,172.47 1 0
codeberg.org/snonux/hexai/internal/lsp/server.go:172.47,174.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/server.go:174.8,176.3 1 1
-codeberg.org/snonux/hexai/internal/lsp/server.go:177.2,177.46 1 1
+codeberg.org/snonux/hexai/internal/lsp/server.go:174.8,176.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:177.2,177.46 1 0
codeberg.org/snonux/hexai/internal/lsp/server.go:177.46,179.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/server.go:179.8,181.3 1 1
-codeberg.org/snonux/hexai/internal/lsp/server.go:182.2,182.33 1 1
+codeberg.org/snonux/hexai/internal/lsp/server.go:179.8,181.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:182.2,182.33 1 0
codeberg.org/snonux/hexai/internal/lsp/server.go:182.33,184.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/server.go:184.8,186.3 1 1
-codeberg.org/snonux/hexai/internal/lsp/server.go:189.2,207.24 17 1
-codeberg.org/snonux/hexai/internal/lsp/server.go:207.24,209.3 1 1
-codeberg.org/snonux/hexai/internal/lsp/server.go:210.2,210.25 1 1
-codeberg.org/snonux/hexai/internal/lsp/server.go:210.25,212.3 1 1
-codeberg.org/snonux/hexai/internal/lsp/server.go:213.2,213.24 1 1
-codeberg.org/snonux/hexai/internal/lsp/server.go:213.24,215.3 1 1
-codeberg.org/snonux/hexai/internal/lsp/server.go:216.2,216.29 1 1
-codeberg.org/snonux/hexai/internal/lsp/server.go:216.29,218.3 1 1
-codeberg.org/snonux/hexai/internal/lsp/server.go:220.2,222.47 1 1
+codeberg.org/snonux/hexai/internal/lsp/server.go:184.8,186.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:189.2,207.24 17 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:207.24,209.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:210.2,210.25 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:210.25,212.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:213.2,213.24 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:213.24,215.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:216.2,216.29 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:216.29,218.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:220.2,222.47 1 0
codeberg.org/snonux/hexai/internal/lsp/server.go:222.47,222.72 1 0
codeberg.org/snonux/hexai/internal/lsp/server.go:224.47,224.65 1 0
-codeberg.org/snonux/hexai/internal/lsp/server.go:233.2,233.10 1 1
-codeberg.org/snonux/hexai/internal/lsp/server.go:236.30,237.6 1 1
-codeberg.org/snonux/hexai/internal/lsp/server.go:237.6,239.20 2 1
-codeberg.org/snonux/hexai/internal/lsp/server.go:239.20,241.4 1 1
+codeberg.org/snonux/hexai/internal/lsp/server.go:233.2,233.10 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:236.30,237.6 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:237.6,239.20 2 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:239.20,241.4 1 0
codeberg.org/snonux/hexai/internal/lsp/server.go:242.3,242.17 1 0
codeberg.org/snonux/hexai/internal/lsp/server.go:242.17,244.4 1 0
codeberg.org/snonux/hexai/internal/lsp/server.go:245.3,246.52 2 0
@@ -12049,9 +12049,9 @@ codeberg.org/snonux/hexai/internal/lsp/server.go:250.3,250.23 1 0
codeberg.org/snonux/hexai/internal/lsp/server.go:250.23,252.12 1 0
codeberg.org/snonux/hexai/internal/lsp/server.go:254.3,255.15 2 0
codeberg.org/snonux/hexai/internal/lsp/server.go:255.15,257.4 1 0
-codeberg.org/snonux/hexai/internal/lsp/transport.go:15.48,18.6 3 1
-codeberg.org/snonux/hexai/internal/lsp/transport.go:18.6,20.17 2 1
-codeberg.org/snonux/hexai/internal/lsp/transport.go:20.17,22.4 1 1
+codeberg.org/snonux/hexai/internal/lsp/transport.go:15.48,18.6 3 0
+codeberg.org/snonux/hexai/internal/lsp/transport.go:18.6,20.17 2 0
+codeberg.org/snonux/hexai/internal/lsp/transport.go:20.17,22.4 1 0
codeberg.org/snonux/hexai/internal/lsp/transport.go:23.3,23.17 1 0
codeberg.org/snonux/hexai/internal/lsp/transport.go:23.17,24.9 1 0
codeberg.org/snonux/hexai/internal/lsp/transport.go:26.3,27.22 2 0
@@ -12559,26 +12559,26 @@ codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:78.37,80.6 1 0
codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:81.5,81.16 1 0
codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:85.79,87.2 1 0
codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:89.78,91.2 1 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:16.80,20.16 4 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:20.16,23.3 2 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:24.2,25.16 2 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:25.16,28.3 2 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:29.2,29.46 1 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:29.46,31.3 1 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:32.2,33.16 2 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:33.16,35.3 1 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:36.2,37.16 2 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:37.16,39.3 1 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:40.2,41.12 2 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:44.146,45.14 1 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:46.18,47.30 1 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:48.21,50.37 2 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:50.37,53.4 2 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:54.3,56.55 3 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:57.25,60.79 3 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:61.22,64.57 3 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:65.20,68.55 3 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:69.10,70.30 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:20.80,24.19 4 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:24.19,27.6 2 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:28.5,29.16 2 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:29.16,32.3 2 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:33.2,33.46 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:33.46,35.3 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:36.5,37.19 2 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:37.19,39.6 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:40.2,41.16 2 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:41.16,43.3 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:44.2,45.12 2 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:48.146,49.14 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:50.18,51.30 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:52.21,54.37 2 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:54.37,57.4 2 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:58.3,60.55 3 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:61.25,64.79 3 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:65.22,68.57 3 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:69.20,72.55 3 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:73.10,74.30 1 0
codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:18.36,18.54 1 0
codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:19.36,19.53 1 0
codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:20.36,20.54 1 0
@@ -12683,313 +12683,313 @@ codeberg.org/snonux/hexai/internal/hexailsp/run.go:100.20,102.3 1 0
codeberg.org/snonux/hexai/internal/hexailsp/run.go:103.2,103.97 1 0
codeberg.org/snonux/hexai/internal/hexailsp/run.go:103.97,105.3 1 0
codeberg.org/snonux/hexai/internal/hexailsp/run.go:108.97,144.2 1 0
-codeberg.org/snonux/hexai/internal/llm/copilot.go:66.77,67.38 1 9
-codeberg.org/snonux/hexai/internal/llm/copilot.go:67.38,69.3 1 1
-codeberg.org/snonux/hexai/internal/llm/copilot.go:70.2,70.36 1 9
+codeberg.org/snonux/hexai/internal/llm/copilot.go:66.77,67.38 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:67.38,69.3 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:70.2,70.36 1 0
codeberg.org/snonux/hexai/internal/llm/copilot.go:70.36,74.3 1 0
-codeberg.org/snonux/hexai/internal/llm/copilot.go:75.2,82.3 1 9
-codeberg.org/snonux/hexai/internal/llm/copilot.go:85.109,86.39 1 5
+codeberg.org/snonux/hexai/internal/llm/copilot.go:75.2,82.3 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:85.109,86.39 1 0
codeberg.org/snonux/hexai/internal/llm/copilot.go:86.39,88.3 1 0
-codeberg.org/snonux/hexai/internal/llm/copilot.go:90.2,90.45 1 5
+codeberg.org/snonux/hexai/internal/llm/copilot.go:90.2,90.45 1 0
codeberg.org/snonux/hexai/internal/llm/copilot.go:90.45,92.3 1 0
-codeberg.org/snonux/hexai/internal/llm/copilot.go:93.2,94.27 2 5
+codeberg.org/snonux/hexai/internal/llm/copilot.go:93.2,94.27 2 0
codeberg.org/snonux/hexai/internal/llm/copilot.go:94.27,96.3 1 0
-codeberg.org/snonux/hexai/internal/llm/copilot.go:97.2,97.19 1 5
+codeberg.org/snonux/hexai/internal/llm/copilot.go:97.2,97.19 1 0
codeberg.org/snonux/hexai/internal/llm/copilot.go:97.19,99.3 1 0
-codeberg.org/snonux/hexai/internal/llm/copilot.go:100.2,102.29 3 5
-codeberg.org/snonux/hexai/internal/llm/copilot.go:102.29,104.3 1 5
-codeberg.org/snonux/hexai/internal/llm/copilot.go:105.2,109.16 4 5
+codeberg.org/snonux/hexai/internal/llm/copilot.go:100.2,102.29 3 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:102.29,104.3 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:105.2,109.16 4 0
codeberg.org/snonux/hexai/internal/llm/copilot.go:109.16,112.3 2 0
-codeberg.org/snonux/hexai/internal/llm/copilot.go:114.2,117.16 4 5
+codeberg.org/snonux/hexai/internal/llm/copilot.go:114.2,117.16 4 0
codeberg.org/snonux/hexai/internal/llm/copilot.go:117.16,120.3 2 0
-codeberg.org/snonux/hexai/internal/llm/copilot.go:121.2,122.57 2 5
-codeberg.org/snonux/hexai/internal/llm/copilot.go:122.57,124.3 1 1
-codeberg.org/snonux/hexai/internal/llm/copilot.go:125.2,126.16 2 4
-codeberg.org/snonux/hexai/internal/llm/copilot.go:126.16,128.3 1 1
-codeberg.org/snonux/hexai/internal/llm/copilot.go:129.2,129.27 1 3
-codeberg.org/snonux/hexai/internal/llm/copilot.go:129.27,132.3 2 1
-codeberg.org/snonux/hexai/internal/llm/copilot.go:133.2,135.21 3 2
-codeberg.org/snonux/hexai/internal/llm/copilot.go:139.46,139.66 1 1
-codeberg.org/snonux/hexai/internal/llm/copilot.go:140.46,140.71 1 1
-codeberg.org/snonux/hexai/internal/llm/copilot.go:143.102,146.29 3 6
-codeberg.org/snonux/hexai/internal/llm/copilot.go:146.29,148.3 1 6
-codeberg.org/snonux/hexai/internal/llm/copilot.go:149.2,149.24 1 6
+codeberg.org/snonux/hexai/internal/llm/copilot.go:121.2,122.57 2 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:122.57,124.3 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:125.2,126.16 2 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:126.16,128.3 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:129.2,129.27 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:129.27,132.3 2 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:133.2,135.21 3 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:139.46,139.66 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:140.46,140.71 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:143.102,146.29 3 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:146.29,148.3 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:149.2,149.24 1 0
codeberg.org/snonux/hexai/internal/llm/copilot.go:149.24,151.3 1 0
-codeberg.org/snonux/hexai/internal/llm/copilot.go:151.8,151.31 1 6
-codeberg.org/snonux/hexai/internal/llm/copilot.go:151.31,154.3 2 6
-codeberg.org/snonux/hexai/internal/llm/copilot.go:155.2,155.21 1 6
-codeberg.org/snonux/hexai/internal/llm/copilot.go:155.21,157.3 1 1
-codeberg.org/snonux/hexai/internal/llm/copilot.go:158.2,158.21 1 6
-codeberg.org/snonux/hexai/internal/llm/copilot.go:158.21,160.3 1 1
-codeberg.org/snonux/hexai/internal/llm/copilot.go:161.2,161.12 1 6
-codeberg.org/snonux/hexai/internal/llm/copilot.go:164.130,166.16 2 8
+codeberg.org/snonux/hexai/internal/llm/copilot.go:151.8,151.31 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:151.31,154.3 2 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:155.2,155.21 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:155.21,157.3 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:158.2,158.21 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:158.21,160.3 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:161.2,161.12 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:164.130,166.16 2 0
codeberg.org/snonux/hexai/internal/llm/copilot.go:166.16,168.3 1 0
-codeberg.org/snonux/hexai/internal/llm/copilot.go:169.2,169.28 1 8
-codeberg.org/snonux/hexai/internal/llm/copilot.go:169.28,171.3 1 88
-codeberg.org/snonux/hexai/internal/llm/copilot.go:172.2,172.29 1 8
-codeberg.org/snonux/hexai/internal/llm/copilot.go:175.70,176.53 1 6
-codeberg.org/snonux/hexai/internal/llm/copilot.go:176.53,178.3 1 4
-codeberg.org/snonux/hexai/internal/llm/copilot.go:179.2,181.74 3 2
-codeberg.org/snonux/hexai/internal/llm/copilot.go:181.74,184.3 2 2
+codeberg.org/snonux/hexai/internal/llm/copilot.go:169.2,169.28 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:169.28,171.3 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:172.2,172.29 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:175.70,176.53 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:176.53,178.3 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:179.2,181.74 3 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:181.74,184.3 2 0
codeberg.org/snonux/hexai/internal/llm/copilot.go:185.2,186.69 2 0
-codeberg.org/snonux/hexai/internal/llm/copilot.go:189.91,191.64 2 4
-codeberg.org/snonux/hexai/internal/llm/copilot.go:191.64,194.3 2 1
-codeberg.org/snonux/hexai/internal/llm/copilot.go:195.2,195.17 1 3
-codeberg.org/snonux/hexai/internal/llm/copilot.go:204.66,206.82 1 16
-codeberg.org/snonux/hexai/internal/llm/copilot.go:206.82,208.3 1 8
-codeberg.org/snonux/hexai/internal/llm/copilot.go:209.2,209.39 1 8
+codeberg.org/snonux/hexai/internal/llm/copilot.go:189.91,191.64 2 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:191.64,194.3 2 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:195.2,195.17 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:204.66,206.82 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:206.82,208.3 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:209.2,209.39 1 0
codeberg.org/snonux/hexai/internal/llm/copilot.go:209.39,211.3 1 0
-codeberg.org/snonux/hexai/internal/llm/copilot.go:212.2,213.16 2 8
+codeberg.org/snonux/hexai/internal/llm/copilot.go:212.2,213.16 2 0
codeberg.org/snonux/hexai/internal/llm/copilot.go:213.16,215.3 1 0
-codeberg.org/snonux/hexai/internal/llm/copilot.go:216.2,220.16 5 8
+codeberg.org/snonux/hexai/internal/llm/copilot.go:216.2,220.16 5 0
codeberg.org/snonux/hexai/internal/llm/copilot.go:220.16,222.3 1 0
-codeberg.org/snonux/hexai/internal/llm/copilot.go:223.2,224.53 2 8
+codeberg.org/snonux/hexai/internal/llm/copilot.go:223.2,224.53 2 0
codeberg.org/snonux/hexai/internal/llm/copilot.go:224.53,226.3 1 0
-codeberg.org/snonux/hexai/internal/llm/copilot.go:227.2,228.64 2 8
+codeberg.org/snonux/hexai/internal/llm/copilot.go:227.2,228.64 2 0
codeberg.org/snonux/hexai/internal/llm/copilot.go:228.64,230.3 1 0
-codeberg.org/snonux/hexai/internal/llm/copilot.go:231.2,231.40 1 8
+codeberg.org/snonux/hexai/internal/llm/copilot.go:231.2,231.40 1 0
codeberg.org/snonux/hexai/internal/llm/copilot.go:231.40,233.3 1 0
-codeberg.org/snonux/hexai/internal/llm/copilot.go:235.2,236.18 2 8
-codeberg.org/snonux/hexai/internal/llm/copilot.go:236.18,238.3 1 8
-codeberg.org/snonux/hexai/internal/llm/copilot.go:239.2,241.12 3 8
-codeberg.org/snonux/hexai/internal/llm/copilot.go:246.42,248.20 2 9
-codeberg.org/snonux/hexai/internal/llm/copilot.go:248.20,250.3 1 8
-codeberg.org/snonux/hexai/internal/llm/copilot.go:251.2,252.16 2 1
+codeberg.org/snonux/hexai/internal/llm/copilot.go:235.2,236.18 2 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:236.18,238.3 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:239.2,241.12 3 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:246.42,248.20 2 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:248.20,250.3 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:251.2,252.16 2 0
codeberg.org/snonux/hexai/internal/llm/copilot.go:252.16,253.59 1 0
codeberg.org/snonux/hexai/internal/llm/copilot.go:253.59,254.48 1 0
codeberg.org/snonux/hexai/internal/llm/copilot.go:254.48,256.5 1 0
codeberg.org/snonux/hexai/internal/llm/copilot.go:258.3,258.21 1 0
-codeberg.org/snonux/hexai/internal/llm/copilot.go:260.2,264.22 3 1
+codeberg.org/snonux/hexai/internal/llm/copilot.go:260.2,264.22 3 0
codeberg.org/snonux/hexai/internal/llm/copilot.go:264.22,266.3 1 0
-codeberg.org/snonux/hexai/internal/llm/copilot.go:267.2,267.34 1 1
-codeberg.org/snonux/hexai/internal/llm/copilot.go:270.42,270.100 3 1
-codeberg.org/snonux/hexai/internal/llm/copilot.go:274.57,290.2 3 5
-codeberg.org/snonux/hexai/internal/llm/copilot.go:292.58,308.2 3 3
-codeberg.org/snonux/hexai/internal/llm/copilot.go:310.28,313.19 3 88
-codeberg.org/snonux/hexai/internal/llm/copilot.go:313.19,315.3 1 1024
-codeberg.org/snonux/hexai/internal/llm/copilot.go:316.2,316.18 1 88
-codeberg.org/snonux/hexai/internal/llm/copilot.go:322.153,323.39 1 3
+codeberg.org/snonux/hexai/internal/llm/copilot.go:267.2,267.34 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:270.42,270.100 3 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:274.57,290.2 3 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:292.58,308.2 3 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:310.28,313.19 3 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:313.19,315.3 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:316.2,316.18 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:322.153,323.39 1 0
codeberg.org/snonux/hexai/internal/llm/copilot.go:323.39,325.3 1 0
-codeberg.org/snonux/hexai/internal/llm/copilot.go:326.2,326.45 1 3
+codeberg.org/snonux/hexai/internal/llm/copilot.go:326.2,326.45 1 0
codeberg.org/snonux/hexai/internal/llm/copilot.go:326.45,328.3 1 0
-codeberg.org/snonux/hexai/internal/llm/copilot.go:329.2,329.12 1 3
+codeberg.org/snonux/hexai/internal/llm/copilot.go:329.2,329.12 1 0
codeberg.org/snonux/hexai/internal/llm/copilot.go:329.12,331.3 1 0
-codeberg.org/snonux/hexai/internal/llm/copilot.go:332.2,354.16 6 3
+codeberg.org/snonux/hexai/internal/llm/copilot.go:332.2,354.16 6 0
codeberg.org/snonux/hexai/internal/llm/copilot.go:354.16,356.3 1 0
-codeberg.org/snonux/hexai/internal/llm/copilot.go:357.2,358.53 2 3
+codeberg.org/snonux/hexai/internal/llm/copilot.go:357.2,358.53 2 0
codeberg.org/snonux/hexai/internal/llm/copilot.go:358.53,360.3 1 0
-codeberg.org/snonux/hexai/internal/llm/copilot.go:362.2,365.27 4 3
-codeberg.org/snonux/hexai/internal/llm/copilot.go:365.27,366.39 1 10
-codeberg.org/snonux/hexai/internal/llm/copilot.go:366.39,367.12 1 3
-codeberg.org/snonux/hexai/internal/llm/copilot.go:369.3,375.88 2 7
-codeberg.org/snonux/hexai/internal/llm/copilot.go:375.88,376.12 1 4
-codeberg.org/snonux/hexai/internal/llm/copilot.go:378.3,378.34 1 3
-codeberg.org/snonux/hexai/internal/llm/copilot.go:378.34,380.4 1 3
-codeberg.org/snonux/hexai/internal/llm/copilot.go:382.2,383.25 2 3
-codeberg.org/snonux/hexai/internal/llm/copilot.go:383.25,384.60 1 4
-codeberg.org/snonux/hexai/internal/llm/copilot.go:384.60,386.4 1 3
-codeberg.org/snonux/hexai/internal/llm/copilot.go:388.2,388.17 1 3
-codeberg.org/snonux/hexai/internal/llm/ollama.go:44.68,45.38 1 10
+codeberg.org/snonux/hexai/internal/llm/copilot.go:362.2,365.27 4 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:365.27,366.39 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:366.39,367.12 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:369.3,375.88 2 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:375.88,376.12 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:378.3,378.34 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:378.34,380.4 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:382.2,383.25 2 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:383.25,384.60 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:384.60,386.4 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:388.2,388.17 1 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:44.68,45.38 1 0
codeberg.org/snonux/hexai/internal/llm/ollama.go:45.38,47.3 1 0
-codeberg.org/snonux/hexai/internal/llm/ollama.go:48.2,48.36 1 10
+codeberg.org/snonux/hexai/internal/llm/ollama.go:48.2,48.36 1 0
codeberg.org/snonux/hexai/internal/llm/ollama.go:48.36,50.3 1 0
-codeberg.org/snonux/hexai/internal/llm/ollama.go:51.2,57.3 1 10
-codeberg.org/snonux/hexai/internal/llm/ollama.go:60.108,62.27 2 6
+codeberg.org/snonux/hexai/internal/llm/ollama.go:51.2,57.3 1 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:60.108,62.27 2 0
codeberg.org/snonux/hexai/internal/llm/ollama.go:62.27,64.3 1 0
-codeberg.org/snonux/hexai/internal/llm/ollama.go:65.2,65.19 1 6
+codeberg.org/snonux/hexai/internal/llm/ollama.go:65.2,65.19 1 0
codeberg.org/snonux/hexai/internal/llm/ollama.go:65.19,67.3 1 0
-codeberg.org/snonux/hexai/internal/llm/ollama.go:69.2,73.16 5 6
+codeberg.org/snonux/hexai/internal/llm/ollama.go:69.2,73.16 5 0
codeberg.org/snonux/hexai/internal/llm/ollama.go:73.16,75.3 1 0
-codeberg.org/snonux/hexai/internal/llm/ollama.go:77.2,80.16 4 6
-codeberg.org/snonux/hexai/internal/llm/ollama.go:80.16,83.3 2 1
-codeberg.org/snonux/hexai/internal/llm/ollama.go:84.2,85.56 2 5
-codeberg.org/snonux/hexai/internal/llm/ollama.go:85.56,87.3 1 2
-codeberg.org/snonux/hexai/internal/llm/ollama.go:89.2,90.64 2 3
-codeberg.org/snonux/hexai/internal/llm/ollama.go:90.64,93.3 2 1
-codeberg.org/snonux/hexai/internal/llm/ollama.go:94.2,94.50 1 2
-codeberg.org/snonux/hexai/internal/llm/ollama.go:94.50,97.3 2 1
-codeberg.org/snonux/hexai/internal/llm/ollama.go:98.2,100.21 3 1
-codeberg.org/snonux/hexai/internal/llm/ollama.go:104.45,104.64 1 1
-codeberg.org/snonux/hexai/internal/llm/ollama.go:105.45,105.70 1 1
-codeberg.org/snonux/hexai/internal/llm/ollama.go:108.126,110.27 2 3
+codeberg.org/snonux/hexai/internal/llm/ollama.go:77.2,80.16 4 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:80.16,83.3 2 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:84.2,85.56 2 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:85.56,87.3 1 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:89.2,90.64 2 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:90.64,93.3 2 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:94.2,94.50 1 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:94.50,97.3 2 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:98.2,100.21 3 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:104.45,104.64 1 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:105.45,105.70 1 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:108.126,110.27 2 0
codeberg.org/snonux/hexai/internal/llm/ollama.go:110.27,112.3 1 0
-codeberg.org/snonux/hexai/internal/llm/ollama.go:113.2,113.19 1 3
+codeberg.org/snonux/hexai/internal/llm/ollama.go:113.2,113.19 1 0
codeberg.org/snonux/hexai/internal/llm/ollama.go:113.19,115.3 1 0
-codeberg.org/snonux/hexai/internal/llm/ollama.go:117.2,121.16 5 3
+codeberg.org/snonux/hexai/internal/llm/ollama.go:117.2,121.16 5 0
codeberg.org/snonux/hexai/internal/llm/ollama.go:121.16,123.3 1 0
-codeberg.org/snonux/hexai/internal/llm/ollama.go:125.2,128.16 4 3
+codeberg.org/snonux/hexai/internal/llm/ollama.go:125.2,128.16 4 0
codeberg.org/snonux/hexai/internal/llm/ollama.go:128.16,131.3 2 0
-codeberg.org/snonux/hexai/internal/llm/ollama.go:132.2,133.56 2 3
+codeberg.org/snonux/hexai/internal/llm/ollama.go:132.2,133.56 2 0
codeberg.org/snonux/hexai/internal/llm/ollama.go:133.56,135.3 1 0
-codeberg.org/snonux/hexai/internal/llm/ollama.go:137.2,138.6 2 3
-codeberg.org/snonux/hexai/internal/llm/ollama.go:138.6,140.41 2 4
-codeberg.org/snonux/hexai/internal/llm/ollama.go:140.41,141.30 1 1
+codeberg.org/snonux/hexai/internal/llm/ollama.go:137.2,138.6 2 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:138.6,140.41 2 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:140.41,141.30 1 0
codeberg.org/snonux/hexai/internal/llm/ollama.go:141.30,142.10 1 0
-codeberg.org/snonux/hexai/internal/llm/ollama.go:144.4,145.14 2 1
-codeberg.org/snonux/hexai/internal/llm/ollama.go:147.3,147.40 1 3
-codeberg.org/snonux/hexai/internal/llm/ollama.go:147.40,150.4 2 1
-codeberg.org/snonux/hexai/internal/llm/ollama.go:151.3,151.58 1 2
-codeberg.org/snonux/hexai/internal/llm/ollama.go:151.58,153.4 1 2
-codeberg.org/snonux/hexai/internal/llm/ollama.go:154.3,154.14 1 2
-codeberg.org/snonux/hexai/internal/llm/ollama.go:154.14,155.9 1 1
-codeberg.org/snonux/hexai/internal/llm/ollama.go:158.2,159.12 2 1
-codeberg.org/snonux/hexai/internal/llm/ollama.go:163.76,165.29 2 9
-codeberg.org/snonux/hexai/internal/llm/ollama.go:165.29,167.3 1 9
-codeberg.org/snonux/hexai/internal/llm/ollama.go:168.2,168.89 1 9
-codeberg.org/snonux/hexai/internal/llm/ollama.go:171.109,174.29 3 12
-codeberg.org/snonux/hexai/internal/llm/ollama.go:174.29,176.3 1 12
-codeberg.org/snonux/hexai/internal/llm/ollama.go:177.2,178.24 2 12
-codeberg.org/snonux/hexai/internal/llm/ollama.go:178.24,180.3 1 1
-codeberg.org/snonux/hexai/internal/llm/ollama.go:180.8,180.31 1 11
-codeberg.org/snonux/hexai/internal/llm/ollama.go:180.31,182.3 1 3
-codeberg.org/snonux/hexai/internal/llm/ollama.go:183.2,183.21 1 12
-codeberg.org/snonux/hexai/internal/llm/ollama.go:183.21,185.3 1 2
-codeberg.org/snonux/hexai/internal/llm/ollama.go:186.2,186.21 1 12
-codeberg.org/snonux/hexai/internal/llm/ollama.go:186.21,188.3 1 2
-codeberg.org/snonux/hexai/internal/llm/ollama.go:189.2,189.22 1 12
-codeberg.org/snonux/hexai/internal/llm/ollama.go:189.22,191.3 1 4
-codeberg.org/snonux/hexai/internal/llm/ollama.go:192.2,192.12 1 12
-codeberg.org/snonux/hexai/internal/llm/ollama.go:195.100,197.16 2 9
+codeberg.org/snonux/hexai/internal/llm/ollama.go:144.4,145.14 2 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:147.3,147.40 1 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:147.40,150.4 2 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:151.3,151.58 1 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:151.58,153.4 1 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:154.3,154.14 1 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:154.14,155.9 1 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:158.2,159.12 2 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:163.76,165.29 2 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:165.29,167.3 1 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:168.2,168.89 1 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:171.109,174.29 3 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:174.29,176.3 1 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:177.2,178.24 2 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:178.24,180.3 1 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:180.8,180.31 1 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:180.31,182.3 1 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:183.2,183.21 1 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:183.21,185.3 1 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:186.2,186.21 1 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:186.21,188.3 1 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:189.2,189.22 1 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:189.22,191.3 1 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:192.2,192.12 1 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:195.100,197.16 2 0
codeberg.org/snonux/hexai/internal/llm/ollama.go:197.16,199.3 1 0
-codeberg.org/snonux/hexai/internal/llm/ollama.go:200.2,201.29 2 9
-codeberg.org/snonux/hexai/internal/llm/ollama.go:204.69,205.53 1 9
-codeberg.org/snonux/hexai/internal/llm/ollama.go:205.53,207.3 1 7
-codeberg.org/snonux/hexai/internal/llm/ollama.go:208.2,210.43 3 2
-codeberg.org/snonux/hexai/internal/llm/ollama.go:210.43,213.3 2 1
-codeberg.org/snonux/hexai/internal/llm/ollama.go:214.2,215.68 2 1
-codeberg.org/snonux/hexai/internal/llm/openai.go:78.76,79.38 1 11
+codeberg.org/snonux/hexai/internal/llm/ollama.go:200.2,201.29 2 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:204.69,205.53 1 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:205.53,207.3 1 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:208.2,210.43 3 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:210.43,213.3 2 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:214.2,215.68 2 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:78.76,79.38 1 0
codeberg.org/snonux/hexai/internal/llm/openai.go:79.38,81.3 1 0
-codeberg.org/snonux/hexai/internal/llm/openai.go:82.2,82.36 1 11
+codeberg.org/snonux/hexai/internal/llm/openai.go:82.2,82.36 1 0
codeberg.org/snonux/hexai/internal/llm/openai.go:82.36,84.3 1 0
-codeberg.org/snonux/hexai/internal/llm/openai.go:85.2,92.3 1 11
-codeberg.org/snonux/hexai/internal/llm/openai.go:95.108,96.20 1 6
-codeberg.org/snonux/hexai/internal/llm/openai.go:96.20,98.3 1 1
-codeberg.org/snonux/hexai/internal/llm/openai.go:99.2,100.27 2 5
+codeberg.org/snonux/hexai/internal/llm/openai.go:85.2,92.3 1 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:95.108,96.20 1 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:96.20,98.3 1 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:99.2,100.27 2 0
codeberg.org/snonux/hexai/internal/llm/openai.go:100.27,102.3 1 0
-codeberg.org/snonux/hexai/internal/llm/openai.go:103.2,103.19 1 5
+codeberg.org/snonux/hexai/internal/llm/openai.go:103.2,103.19 1 0
codeberg.org/snonux/hexai/internal/llm/openai.go:103.19,105.3 1 0
-codeberg.org/snonux/hexai/internal/llm/openai.go:106.2,110.16 5 5
+codeberg.org/snonux/hexai/internal/llm/openai.go:106.2,110.16 5 0
codeberg.org/snonux/hexai/internal/llm/openai.go:110.16,113.3 2 0
-codeberg.org/snonux/hexai/internal/llm/openai.go:114.2,119.16 4 5
+codeberg.org/snonux/hexai/internal/llm/openai.go:114.2,119.16 4 0
codeberg.org/snonux/hexai/internal/llm/openai.go:119.16,122.3 2 0
-codeberg.org/snonux/hexai/internal/llm/openai.go:123.2,124.56 2 5
-codeberg.org/snonux/hexai/internal/llm/openai.go:124.56,126.3 1 1
-codeberg.org/snonux/hexai/internal/llm/openai.go:127.2,128.16 2 4
-codeberg.org/snonux/hexai/internal/llm/openai.go:128.16,130.3 1 1
-codeberg.org/snonux/hexai/internal/llm/openai.go:131.2,131.27 1 3
-codeberg.org/snonux/hexai/internal/llm/openai.go:131.27,134.3 2 1
-codeberg.org/snonux/hexai/internal/llm/openai.go:135.2,137.21 3 2
-codeberg.org/snonux/hexai/internal/llm/openai.go:141.45,141.64 1 1
-codeberg.org/snonux/hexai/internal/llm/openai.go:142.45,142.70 1 1
-codeberg.org/snonux/hexai/internal/llm/openai.go:146.126,147.20 1 4
+codeberg.org/snonux/hexai/internal/llm/openai.go:123.2,124.56 2 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:124.56,126.3 1 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:127.2,128.16 2 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:128.16,130.3 1 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:131.2,131.27 1 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:131.27,134.3 2 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:135.2,137.21 3 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:141.45,141.64 1 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:142.45,142.70 1 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:146.126,147.20 1 0
codeberg.org/snonux/hexai/internal/llm/openai.go:147.20,149.3 1 0
-codeberg.org/snonux/hexai/internal/llm/openai.go:150.2,151.27 2 4
+codeberg.org/snonux/hexai/internal/llm/openai.go:150.2,151.27 2 0
codeberg.org/snonux/hexai/internal/llm/openai.go:151.27,153.3 1 0
-codeberg.org/snonux/hexai/internal/llm/openai.go:154.2,154.19 1 4
+codeberg.org/snonux/hexai/internal/llm/openai.go:154.2,154.19 1 0
codeberg.org/snonux/hexai/internal/llm/openai.go:154.19,156.3 1 0
-codeberg.org/snonux/hexai/internal/llm/openai.go:157.2,161.16 5 4
+codeberg.org/snonux/hexai/internal/llm/openai.go:157.2,161.16 5 0
codeberg.org/snonux/hexai/internal/llm/openai.go:161.16,164.3 2 0
-codeberg.org/snonux/hexai/internal/llm/openai.go:165.2,170.16 4 4
+codeberg.org/snonux/hexai/internal/llm/openai.go:165.2,170.16 4 0
codeberg.org/snonux/hexai/internal/llm/openai.go:170.16,173.3 2 0
-codeberg.org/snonux/hexai/internal/llm/openai.go:174.2,175.56 2 4
+codeberg.org/snonux/hexai/internal/llm/openai.go:174.2,175.56 2 0
codeberg.org/snonux/hexai/internal/llm/openai.go:175.56,177.3 1 0
-codeberg.org/snonux/hexai/internal/llm/openai.go:179.2,179.64 1 4
-codeberg.org/snonux/hexai/internal/llm/openai.go:179.64,181.3 1 1
-codeberg.org/snonux/hexai/internal/llm/openai.go:182.2,183.12 2 3
+codeberg.org/snonux/hexai/internal/llm/openai.go:179.2,179.64 1 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:179.64,181.3 1 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:182.2,183.12 2 0
codeberg.org/snonux/hexai/internal/llm/openai.go:187.56,187.104 1 0
-codeberg.org/snonux/hexai/internal/llm/openai.go:190.76,192.29 2 9
-codeberg.org/snonux/hexai/internal/llm/openai.go:192.29,194.3 1 9
-codeberg.org/snonux/hexai/internal/llm/openai.go:195.2,195.89 1 9
-codeberg.org/snonux/hexai/internal/llm/openai.go:198.105,201.29 3 11
-codeberg.org/snonux/hexai/internal/llm/openai.go:201.29,203.3 1 11
-codeberg.org/snonux/hexai/internal/llm/openai.go:204.2,204.24 1 11
+codeberg.org/snonux/hexai/internal/llm/openai.go:190.76,192.29 2 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:192.29,194.3 1 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:195.2,195.89 1 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:198.105,201.29 3 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:201.29,203.3 1 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:204.2,204.24 1 0
codeberg.org/snonux/hexai/internal/llm/openai.go:204.24,206.3 1 0
-codeberg.org/snonux/hexai/internal/llm/openai.go:206.8,206.31 1 11
-codeberg.org/snonux/hexai/internal/llm/openai.go:206.31,209.3 2 11
-codeberg.org/snonux/hexai/internal/llm/openai.go:210.2,210.21 1 11
-codeberg.org/snonux/hexai/internal/llm/openai.go:210.21,212.3 1 2
-codeberg.org/snonux/hexai/internal/llm/openai.go:213.2,213.21 1 11
-codeberg.org/snonux/hexai/internal/llm/openai.go:213.21,215.3 1 2
-codeberg.org/snonux/hexai/internal/llm/openai.go:216.2,216.12 1 11
-codeberg.org/snonux/hexai/internal/llm/openai.go:219.127,221.16 2 5
+codeberg.org/snonux/hexai/internal/llm/openai.go:206.8,206.31 1 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:206.31,209.3 2 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:210.2,210.21 1 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:210.21,212.3 1 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:213.2,213.21 1 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:213.21,215.3 1 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:216.2,216.12 1 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:219.127,221.16 2 0
codeberg.org/snonux/hexai/internal/llm/openai.go:221.16,223.3 1 0
-codeberg.org/snonux/hexai/internal/llm/openai.go:224.2,225.28 2 5
-codeberg.org/snonux/hexai/internal/llm/openai.go:225.28,227.3 1 5
-codeberg.org/snonux/hexai/internal/llm/openai.go:228.2,228.29 1 5
-codeberg.org/snonux/hexai/internal/llm/openai.go:231.152,233.16 2 4
+codeberg.org/snonux/hexai/internal/llm/openai.go:224.2,225.28 2 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:225.28,227.3 1 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:228.2,228.29 1 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:231.152,233.16 2 0
codeberg.org/snonux/hexai/internal/llm/openai.go:233.16,235.3 1 0
-codeberg.org/snonux/hexai/internal/llm/openai.go:236.2,238.28 3 4
-codeberg.org/snonux/hexai/internal/llm/openai.go:238.28,240.3 1 4
-codeberg.org/snonux/hexai/internal/llm/openai.go:241.2,241.29 1 4
-codeberg.org/snonux/hexai/internal/llm/openai.go:244.69,245.53 1 11
-codeberg.org/snonux/hexai/internal/llm/openai.go:245.53,247.3 1 8
-codeberg.org/snonux/hexai/internal/llm/openai.go:248.2,250.55 3 3
-codeberg.org/snonux/hexai/internal/llm/openai.go:250.55,253.3 2 2
-codeberg.org/snonux/hexai/internal/llm/openai.go:254.2,255.68 2 1
-codeberg.org/snonux/hexai/internal/llm/openai.go:258.85,260.64 2 4
-codeberg.org/snonux/hexai/internal/llm/openai.go:260.64,263.3 2 1
-codeberg.org/snonux/hexai/internal/llm/openai.go:264.2,264.17 1 3
-codeberg.org/snonux/hexai/internal/llm/openai.go:267.90,273.21 5 5
-codeberg.org/snonux/hexai/internal/llm/openai.go:273.21,275.41 2 11
-codeberg.org/snonux/hexai/internal/llm/openai.go:275.41,276.12 1 3
-codeberg.org/snonux/hexai/internal/llm/openai.go:278.3,279.45 2 8
-codeberg.org/snonux/hexai/internal/llm/openai.go:279.45,280.9 1 3
-codeberg.org/snonux/hexai/internal/llm/openai.go:282.3,283.65 2 5
-codeberg.org/snonux/hexai/internal/llm/openai.go:283.65,284.12 1 2
-codeberg.org/snonux/hexai/internal/llm/openai.go:286.3,286.54 1 3
-codeberg.org/snonux/hexai/internal/llm/openai.go:286.54,289.4 2 1
-codeberg.org/snonux/hexai/internal/llm/openai.go:290.3,290.36 1 2
-codeberg.org/snonux/hexai/internal/llm/openai.go:290.36,291.30 1 2
-codeberg.org/snonux/hexai/internal/llm/openai.go:291.30,293.5 1 2
-codeberg.org/snonux/hexai/internal/llm/openai.go:296.2,296.38 1 4
+codeberg.org/snonux/hexai/internal/llm/openai.go:236.2,238.28 3 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:238.28,240.3 1 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:241.2,241.29 1 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:244.69,245.53 1 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:245.53,247.3 1 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:248.2,250.55 3 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:250.55,253.3 2 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:254.2,255.68 2 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:258.85,260.64 2 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:260.64,263.3 2 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:264.2,264.17 1 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:267.90,273.21 5 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:273.21,275.41 2 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:275.41,276.12 1 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:278.3,279.45 2 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:279.45,280.9 1 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:282.3,283.65 2 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:283.65,284.12 1 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:286.3,286.54 1 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:286.54,289.4 2 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:290.3,290.36 1 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:290.36,291.30 1 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:291.30,293.5 1 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:296.2,296.38 1 0
codeberg.org/snonux/hexai/internal/llm/openai.go:296.38,299.3 2 0
-codeberg.org/snonux/hexai/internal/llm/openai.go:300.2,300.12 1 4
-codeberg.org/snonux/hexai/internal/llm/provider.go:58.47,58.73 1 1
-codeberg.org/snonux/hexai/internal/llm/provider.go:58.73,58.92 1 1
-codeberg.org/snonux/hexai/internal/llm/provider.go:59.47,59.73 1 1
-codeberg.org/snonux/hexai/internal/llm/provider.go:59.73,59.94 1 1
-codeberg.org/snonux/hexai/internal/llm/provider.go:60.47,60.73 1 1
-codeberg.org/snonux/hexai/internal/llm/provider.go:60.73,60.92 1 1
-codeberg.org/snonux/hexai/internal/llm/provider.go:61.45,62.26 1 1
-codeberg.org/snonux/hexai/internal/llm/provider.go:62.26,62.66 1 1
-codeberg.org/snonux/hexai/internal/llm/provider.go:85.84,87.13 2 6
+codeberg.org/snonux/hexai/internal/llm/openai.go:300.2,300.12 1 0
+codeberg.org/snonux/hexai/internal/llm/provider.go:58.47,58.73 1 0
+codeberg.org/snonux/hexai/internal/llm/provider.go:58.73,58.92 1 0
+codeberg.org/snonux/hexai/internal/llm/provider.go:59.47,59.73 1 0
+codeberg.org/snonux/hexai/internal/llm/provider.go:59.73,59.94 1 0
+codeberg.org/snonux/hexai/internal/llm/provider.go:60.47,60.73 1 0
+codeberg.org/snonux/hexai/internal/llm/provider.go:60.73,60.92 1 0
+codeberg.org/snonux/hexai/internal/llm/provider.go:61.45,62.26 1 0
+codeberg.org/snonux/hexai/internal/llm/provider.go:62.26,62.66 1 0
+codeberg.org/snonux/hexai/internal/llm/provider.go:85.84,87.13 2 0
codeberg.org/snonux/hexai/internal/llm/provider.go:87.13,89.3 1 0
-codeberg.org/snonux/hexai/internal/llm/provider.go:90.2,90.11 1 6
-codeberg.org/snonux/hexai/internal/llm/provider.go:91.16,92.44 1 2
-codeberg.org/snonux/hexai/internal/llm/provider.go:92.44,94.4 1 1
-codeberg.org/snonux/hexai/internal/llm/provider.go:96.3,96.35 1 1
-codeberg.org/snonux/hexai/internal/llm/provider.go:96.35,99.4 2 1
-codeberg.org/snonux/hexai/internal/llm/provider.go:100.3,100.97 1 1
+codeberg.org/snonux/hexai/internal/llm/provider.go:90.2,90.11 1 0
+codeberg.org/snonux/hexai/internal/llm/provider.go:91.16,92.44 1 0
+codeberg.org/snonux/hexai/internal/llm/provider.go:92.44,94.4 1 0
+codeberg.org/snonux/hexai/internal/llm/provider.go:96.3,96.35 1 0
+codeberg.org/snonux/hexai/internal/llm/provider.go:96.35,99.4 2 0
+codeberg.org/snonux/hexai/internal/llm/provider.go:100.3,100.97 1 0
codeberg.org/snonux/hexai/internal/llm/provider.go:101.16,102.35 1 0
codeberg.org/snonux/hexai/internal/llm/provider.go:102.35,105.4 2 0
codeberg.org/snonux/hexai/internal/llm/provider.go:106.3,106.83 1 0
-codeberg.org/snonux/hexai/internal/llm/provider.go:107.17,108.45 1 3
-codeberg.org/snonux/hexai/internal/llm/provider.go:108.45,110.4 1 1
-codeberg.org/snonux/hexai/internal/llm/provider.go:111.3,111.36 1 2
-codeberg.org/snonux/hexai/internal/llm/provider.go:111.36,114.4 2 2
-codeberg.org/snonux/hexai/internal/llm/provider.go:115.3,115.102 1 2
-codeberg.org/snonux/hexai/internal/llm/provider.go:116.10,117.55 1 1
-codeberg.org/snonux/hexai/internal/llm/util.go:6.47,6.77 1 2
+codeberg.org/snonux/hexai/internal/llm/provider.go:107.17,108.45 1 0
+codeberg.org/snonux/hexai/internal/llm/provider.go:108.45,110.4 1 0
+codeberg.org/snonux/hexai/internal/llm/provider.go:111.3,111.36 1 0
+codeberg.org/snonux/hexai/internal/llm/provider.go:111.36,114.4 2 0
+codeberg.org/snonux/hexai/internal/llm/provider.go:115.3,115.102 1 0
+codeberg.org/snonux/hexai/internal/llm/provider.go:116.10,117.55 1 0
+codeberg.org/snonux/hexai/internal/llm/util.go:6.47,6.77 1 0
codeberg.org/snonux/hexai/internal/llmutils/client.go:12.62,26.39 3 0
codeberg.org/snonux/hexai/internal/llmutils/client.go:26.39,28.6 1 0
codeberg.org/snonux/hexai/internal/llmutils/client.go:29.5,30.39 2 0
codeberg.org/snonux/hexai/internal/llmutils/client.go:30.39,32.6 1 0
codeberg.org/snonux/hexai/internal/llmutils/client.go:33.5,33.51 1 0
-codeberg.org/snonux/hexai/internal/logging/chatlogger.go:9.48,11.2 1 30
-codeberg.org/snonux/hexai/internal/logging/chatlogger.go:18.3,20.12 2 23
-codeberg.org/snonux/hexai/internal/logging/chatlogger.go:20.12,22.3 1 7
-codeberg.org/snonux/hexai/internal/logging/chatlogger.go:23.2,25.29 2 23
-codeberg.org/snonux/hexai/internal/logging/chatlogger.go:25.29,28.3 1 23
+codeberg.org/snonux/hexai/internal/logging/chatlogger.go:9.48,11.2 1 0
+codeberg.org/snonux/hexai/internal/logging/chatlogger.go:18.3,20.12 2 0
+codeberg.org/snonux/hexai/internal/logging/chatlogger.go:20.12,22.3 1 0
+codeberg.org/snonux/hexai/internal/logging/chatlogger.go:23.2,25.29 2 0
+codeberg.org/snonux/hexai/internal/logging/chatlogger.go:25.29,28.3 1 0
codeberg.org/snonux/hexai/internal/logging/logging.go:27.26,27.37 1 0
-codeberg.org/snonux/hexai/internal/logging/logging.go:30.47,31.16 1 95
-codeberg.org/snonux/hexai/internal/logging/logging.go:31.16,33.3 1 95
+codeberg.org/snonux/hexai/internal/logging/logging.go:30.47,31.16 1 0
+codeberg.org/snonux/hexai/internal/logging/logging.go:31.16,33.3 1 0
codeberg.org/snonux/hexai/internal/logging/logging.go:34.2,35.48 2 0
codeberg.org/snonux/hexai/internal/logging/logging.go:43.32,43.55 1 0
-codeberg.org/snonux/hexai/internal/logging/logging.go:46.37,47.25 1 28
+codeberg.org/snonux/hexai/internal/logging/logging.go:46.37,47.25 1 0
codeberg.org/snonux/hexai/internal/logging/logging.go:47.25,48.32 1 0
codeberg.org/snonux/hexai/internal/logging/logging.go:48.32,50.4 1 0
codeberg.org/snonux/hexai/internal/logging/logging.go:51.3,51.37 1 0
-codeberg.org/snonux/hexai/internal/logging/logging.go:53.2,53.10 1 28
+codeberg.org/snonux/hexai/internal/logging/logging.go:53.2,53.10 1 0
codeberg.org/snonux/hexai/internal/lsp/context.go:16.96,18.14 2 0
codeberg.org/snonux/hexai/internal/lsp/context.go:19.17,20.19 1 0
codeberg.org/snonux/hexai/internal/lsp/context.go:21.16,22.41 1 0
@@ -13812,58 +13812,58 @@ codeberg.org/snonux/hexai/internal/testutil/fixtures.go:9.34,11.2 1 0
codeberg.org/snonux/hexai/internal/testutil/fixtures.go:14.43,16.2 1 0
codeberg.org/snonux/hexai/internal/testutil/fixtures.go:19.33,21.2 1 0
codeberg.org/snonux/hexai/internal/testutil/fixtures.go:24.29,26.2 1 0
-codeberg.org/snonux/hexai/internal/textutil/textutil.go:6.62,7.34 1 0
-codeberg.org/snonux/hexai/internal/textutil/textutil.go:7.34,9.6 1 0
-codeberg.org/snonux/hexai/internal/textutil/textutil.go:10.5,11.28 2 0
-codeberg.org/snonux/hexai/internal/textutil/textutil.go:11.28,13.6 1 0
-codeberg.org/snonux/hexai/internal/textutil/textutil.go:14.5,14.15 1 0
-codeberg.org/snonux/hexai/internal/textutil/textutil.go:18.39,20.16 2 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:6.62,7.34 1 3
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:7.34,9.6 1 2
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:10.5,11.28 2 1
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:11.28,13.6 1 1
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:14.5,14.15 1 1
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:18.39,20.16 2 5
codeberg.org/snonux/hexai/internal/textutil/textutil.go:20.16,22.6 1 0
-codeberg.org/snonux/hexai/internal/textutil/textutil.go:23.5,25.69 3 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:23.5,25.69 3 5
codeberg.org/snonux/hexai/internal/textutil/textutil.go:25.69,27.6 1 0
-codeberg.org/snonux/hexai/internal/textutil/textutil.go:28.5,29.57 2 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:28.5,29.57 2 5
codeberg.org/snonux/hexai/internal/textutil/textutil.go:29.57,31.6 1 0
-codeberg.org/snonux/hexai/internal/textutil/textutil.go:32.5,32.54 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:32.5,32.54 1 5
codeberg.org/snonux/hexai/internal/textutil/textutil.go:32.54,34.6 1 0
-codeberg.org/snonux/hexai/internal/textutil/textutil.go:35.5,37.72 3 0
-codeberg.org/snonux/hexai/internal/textutil/textutil.go:37.72,40.6 2 0
-codeberg.org/snonux/hexai/internal/textutil/textutil.go:41.5,41.13 1 0
-codeberg.org/snonux/hexai/internal/textutil/textutil.go:47.60,49.34 2 0
-codeberg.org/snonux/hexai/internal/textutil/textutil.go:49.34,50.105 1 0
-codeberg.org/snonux/hexai/internal/textutil/textutil.go:50.105,53.10 2 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:35.5,37.72 3 5
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:37.72,40.6 2 3
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:41.5,41.13 1 2
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:47.60,49.34 2 6
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:49.34,50.105 1 6
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:50.105,53.10 2 6
codeberg.org/snonux/hexai/internal/textutil/textutil.go:55.5,55.19 1 0
-codeberg.org/snonux/hexai/internal/textutil/textutil.go:59.79,62.53 3 0
-codeberg.org/snonux/hexai/internal/textutil/textutil.go:62.53,64.6 1 0
-codeberg.org/snonux/hexai/internal/textutil/textutil.go:65.5,65.47 1 0
-codeberg.org/snonux/hexai/internal/textutil/textutil.go:65.47,66.57 1 0
-codeberg.org/snonux/hexai/internal/textutil/textutil.go:66.57,71.10 4 0
-codeberg.org/snonux/hexai/internal/textutil/textutil.go:73.5,73.49 1 0
-codeberg.org/snonux/hexai/internal/textutil/textutil.go:73.49,74.58 1 0
-codeberg.org/snonux/hexai/internal/textutil/textutil.go:74.58,79.10 4 0
-codeberg.org/snonux/hexai/internal/textutil/textutil.go:81.5,81.47 1 0
-codeberg.org/snonux/hexai/internal/textutil/textutil.go:81.47,83.6 1 0
-codeberg.org/snonux/hexai/internal/textutil/textutil.go:84.5,84.46 1 0
-codeberg.org/snonux/hexai/internal/textutil/textutil.go:84.46,86.6 1 0
-codeberg.org/snonux/hexai/internal/textutil/textutil.go:87.5,87.47 1 0
-codeberg.org/snonux/hexai/internal/textutil/textutil.go:87.47,89.6 1 0
-codeberg.org/snonux/hexai/internal/textutil/textutil.go:90.5,90.24 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:59.79,62.53 3 7
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:62.53,64.6 1 2
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:65.5,65.47 1 7
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:65.47,66.57 1 1
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:66.57,71.10 4 1
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:73.5,73.49 1 7
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:73.49,74.58 1 1
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:74.58,79.10 4 1
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:81.5,81.47 1 7
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:81.47,83.6 1 2
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:84.5,84.46 1 7
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:84.46,86.6 1 1
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:87.5,87.47 1 7
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:87.47,89.6 1 2
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:90.5,90.24 1 7
codeberg.org/snonux/hexai/internal/textutil/textutil.go:90.24,90.50 1 0
-codeberg.org/snonux/hexai/internal/textutil/textutil.go:91.5,92.33 2 0
-codeberg.org/snonux/hexai/internal/textutil/textutil.go:92.33,93.69 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:91.5,92.33 2 7
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:92.33,93.69 1 2
codeberg.org/snonux/hexai/internal/textutil/textutil.go:93.69,93.81 1 0
-codeberg.org/snonux/hexai/internal/textutil/textutil.go:95.5,96.36 2 0
-codeberg.org/snonux/hexai/internal/textutil/textutil.go:100.79,101.36 1 0
-codeberg.org/snonux/hexai/internal/textutil/textutil.go:101.36,102.27 1 0
-codeberg.org/snonux/hexai/internal/textutil/textutil.go:102.27,102.37 1 0
-codeberg.org/snonux/hexai/internal/textutil/textutil.go:103.9,103.48 1 0
-codeberg.org/snonux/hexai/internal/textutil/textutil.go:103.48,103.58 1 0
-codeberg.org/snonux/hexai/internal/textutil/textutil.go:104.9,104.44 1 0
-codeberg.org/snonux/hexai/internal/textutil/textutil.go:104.44,105.31 1 0
-codeberg.org/snonux/hexai/internal/textutil/textutil.go:105.31,106.49 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:95.5,96.36 2 7
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:100.79,101.36 1 9
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:101.36,102.27 1 58
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:102.27,102.37 1 53
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:103.9,103.48 1 5
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:103.48,103.58 1 1
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:104.9,104.44 1 4
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:104.44,105.31 1 15
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:105.31,106.49 1 3
codeberg.org/snonux/hexai/internal/textutil/textutil.go:106.49,106.59 1 0
-codeberg.org/snonux/hexai/internal/textutil/textutil.go:107.17,108.32 2 0
-codeberg.org/snonux/hexai/internal/textutil/textutil.go:108.32,108.64 1 0
-codeberg.org/snonux/hexai/internal/textutil/textutil.go:112.5,112.29 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:107.17,108.32 2 3
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:108.32,108.64 1 3
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:112.5,112.29 1 6
codeberg.org/snonux/hexai/internal/tmux/tmux.go:11.23,11.60 1 0
codeberg.org/snonux/hexai/internal/tmux/tmux.go:17.23,17.72 2 0
codeberg.org/snonux/hexai/internal/tmux/tmux.go:20.23,20.76 1 0
@@ -13899,16 +13899,16 @@ codeberg.org/snonux/hexai/cmd/hexai-lsp/main.go:13.13,17.18 4 0
codeberg.org/snonux/hexai/cmd/hexai-lsp/main.go:17.18,20.3 2 0
codeberg.org/snonux/hexai/cmd/hexai-lsp/main.go:22.2,22.79 1 0
codeberg.org/snonux/hexai/cmd/hexai-lsp/main.go:22.79,24.3 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:89.29,136.2 2 2
-codeberg.org/snonux/hexai/internal/appconfig/config.go:140.35,142.19 2 2
-codeberg.org/snonux/hexai/internal/appconfig/config.go:142.19,144.3 1 1
-codeberg.org/snonux/hexai/internal/appconfig/config.go:146.2,147.16 2 1
+codeberg.org/snonux/hexai/internal/appconfig/config.go:89.29,136.2 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:140.35,142.19 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:142.19,144.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:146.2,147.16 2 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:147.16,150.3 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:150.8,151.85 1 1
+codeberg.org/snonux/hexai/internal/appconfig/config.go:150.8,151.85 1 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:151.85,153.4 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:159.2,159.50 1 1
+codeberg.org/snonux/hexai/internal/appconfig/config.go:159.2,159.50 1 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:159.50,161.3 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:162.2,162.12 1 1
+codeberg.org/snonux/hexai/internal/appconfig/config.go:162.2,162.12 1 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:278.35,282.77 2 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:282.77,291.3 2 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:294.2,294.38 1 0
@@ -13969,10 +13969,10 @@ codeberg.org/snonux/hexai/internal/appconfig/config.go:421.60,423.4 1 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:426.2,426.67 1 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:426.67,428.3 1 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:430.2,430.12 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:433.66,435.16 2 1
-codeberg.org/snonux/hexai/internal/appconfig/config.go:435.16,436.43 1 1
+codeberg.org/snonux/hexai/internal/appconfig/config.go:433.66,435.16 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:435.16,436.43 1 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:436.43,438.4 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:439.3,439.18 1 1
+codeberg.org/snonux/hexai/internal/appconfig/config.go:439.3,439.18 1 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:442.2,447.22 5 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:447.22,448.20 1 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:448.20,450.4 1 0
@@ -14082,86 +14082,86 @@ codeberg.org/snonux/hexai/internal/appconfig/config.go:649.2,649.57 1 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:649.57,651.3 1 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:652.2,652.37 1 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:652.37,654.3 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:657.38,659.72 2 1
+codeberg.org/snonux/hexai/internal/appconfig/config.go:657.38,659.72 2 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:659.72,661.3 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:661.8,663.17 2 1
+codeberg.org/snonux/hexai/internal/appconfig/config.go:661.8,663.17 2 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:663.17,665.4 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:666.3,666.70 1 1
-codeberg.org/snonux/hexai/internal/appconfig/config.go:668.2,668.24 1 1
-codeberg.org/snonux/hexai/internal/appconfig/config.go:675.43,680.34 3 1
-codeberg.org/snonux/hexai/internal/appconfig/config.go:680.34,680.76 1 24
-codeberg.org/snonux/hexai/internal/appconfig/config.go:681.2,681.41 1 1
-codeberg.org/snonux/hexai/internal/appconfig/config.go:681.41,683.14 2 7
-codeberg.org/snonux/hexai/internal/appconfig/config.go:683.14,685.4 1 7
+codeberg.org/snonux/hexai/internal/appconfig/config.go:666.3,666.70 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:668.2,668.24 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:675.43,680.34 3 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:680.34,680.76 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:681.2,681.41 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:681.41,683.14 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:683.14,685.4 1 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:686.3,687.17 2 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:687.17,688.21 1 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:688.21,690.5 1 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:691.4,691.19 1 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:693.3,693.17 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:695.2,695.51 1 1
-codeberg.org/snonux/hexai/internal/appconfig/config.go:695.51,697.14 2 4
-codeberg.org/snonux/hexai/internal/appconfig/config.go:697.14,699.4 1 4
+codeberg.org/snonux/hexai/internal/appconfig/config.go:695.2,695.51 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:695.51,697.14 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:697.14,699.4 1 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:700.3,701.17 2 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:701.17,702.21 1 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:702.21,704.5 1 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:705.4,705.21 1 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:707.3,707.18 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:710.2,710.47 1 1
+codeberg.org/snonux/hexai/internal/appconfig/config.go:710.2,710.47 1 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:710.47,713.3 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:714.2,714.48 1 1
+codeberg.org/snonux/hexai/internal/appconfig/config.go:714.2,714.48 1 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:714.48,717.3 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:718.2,718.57 1 1
+codeberg.org/snonux/hexai/internal/appconfig/config.go:718.2,718.57 1 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:718.57,721.3 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:722.2,722.55 1 1
+codeberg.org/snonux/hexai/internal/appconfig/config.go:722.2,722.55 1 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:722.55,725.3 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:726.2,726.54 1 1
+codeberg.org/snonux/hexai/internal/appconfig/config.go:726.2,726.54 1 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:726.54,729.3 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:730.2,730.61 1 1
+codeberg.org/snonux/hexai/internal/appconfig/config.go:730.2,730.61 1 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:730.61,733.3 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:734.2,734.59 1 1
+codeberg.org/snonux/hexai/internal/appconfig/config.go:734.2,734.59 1 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:734.59,737.3 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:738.2,738.59 1 1
+codeberg.org/snonux/hexai/internal/appconfig/config.go:738.2,738.59 1 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:738.59,741.3 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:742.2,742.60 1 1
+codeberg.org/snonux/hexai/internal/appconfig/config.go:742.2,742.60 1 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:742.60,745.3 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:746.2,746.54 1 1
+codeberg.org/snonux/hexai/internal/appconfig/config.go:746.2,746.54 1 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:746.54,749.27 3 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:749.27,750.42 1 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:750.42,752.5 1 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:754.3,754.13 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:756.2,756.47 1 1
+codeberg.org/snonux/hexai/internal/appconfig/config.go:756.2,756.47 1 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:756.47,759.3 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:760.2,760.48 1 1
+codeberg.org/snonux/hexai/internal/appconfig/config.go:760.2,760.48 1 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:760.48,763.3 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:764.2,764.47 1 1
+codeberg.org/snonux/hexai/internal/appconfig/config.go:764.2,764.47 1 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:764.47,767.3 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:768.2,768.49 1 1
+codeberg.org/snonux/hexai/internal/appconfig/config.go:768.2,768.49 1 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:768.49,771.27 3 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:771.27,772.42 1 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:772.42,774.5 1 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:776.3,776.13 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:778.2,778.44 1 1
+codeberg.org/snonux/hexai/internal/appconfig/config.go:778.2,778.44 1 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:778.44,781.3 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:784.2,784.51 1 1
+codeberg.org/snonux/hexai/internal/appconfig/config.go:784.2,784.51 1 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:784.51,787.3 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:788.2,788.48 1 1
+codeberg.org/snonux/hexai/internal/appconfig/config.go:788.2,788.48 1 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:788.48,791.3 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:792.2,792.60 1 1
+codeberg.org/snonux/hexai/internal/appconfig/config.go:792.2,792.60 1 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:792.60,795.3 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:797.2,797.51 1 1
+codeberg.org/snonux/hexai/internal/appconfig/config.go:797.2,797.51 1 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:797.51,800.3 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:801.2,801.48 1 1
+codeberg.org/snonux/hexai/internal/appconfig/config.go:801.2,801.48 1 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:801.48,804.3 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:805.2,805.60 1 1
+codeberg.org/snonux/hexai/internal/appconfig/config.go:805.2,805.60 1 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:805.60,808.3 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:810.2,810.52 1 1
+codeberg.org/snonux/hexai/internal/appconfig/config.go:810.2,810.52 1 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:810.52,813.3 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:814.2,814.49 1 1
+codeberg.org/snonux/hexai/internal/appconfig/config.go:814.2,814.49 1 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:814.49,817.3 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:818.2,818.61 1 1
+codeberg.org/snonux/hexai/internal/appconfig/config.go:818.2,818.61 1 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:818.61,821.3 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:823.2,823.10 1 1
-codeberg.org/snonux/hexai/internal/appconfig/config.go:823.10,825.3 1 1
+codeberg.org/snonux/hexai/internal/appconfig/config.go:823.2,823.10 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:823.10,825.3 1 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:826.2,826.13 1 0
codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:29.101,30.21 1 0
codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:30.21,32.6 1 0
@@ -14173,176 +14173,176 @@ codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:39.23,39.37 1 0
codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:40.9,41.41 3 0
codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:44.5,44.65 1 0
codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:48.37,48.72 1 0
-codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:54.51,55.15 1 5
-codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:55.15,55.31 1 1
-codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:56.5,56.18 1 4
-codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:56.18,56.33 1 1
-codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:57.5,57.82 1 3
-codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:57.82,57.97 1 1
-codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:58.5,58.17 1 2
-codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:62.83,65.23 3 2
+codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:54.51,55.15 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:55.15,55.31 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:56.5,56.18 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:56.18,56.33 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:57.5,57.82 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:57.82,57.97 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:58.5,58.17 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:62.83,65.23 3 0
codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:65.24,65.25 0 0
-codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:66.5,66.24 1 2
+codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:66.5,66.24 1 0
codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:66.25,66.26 0 0
-codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:67.5,67.35 1 2
-codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:67.35,69.23 2 2
+codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:67.5,67.35 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:67.35,69.23 2 0
codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:69.23,69.48 1 0
codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:69.49,69.50 0 0
codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:69.59,69.60 0 0
-codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:70.9,71.26 2 2
-codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:71.26,71.43 1 2
-codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:73.5,73.36 1 2
-codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:73.36,75.23 2 2
+codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:70.9,71.26 2 0
+codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:71.26,71.43 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:73.5,73.36 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:73.36,75.23 2 0
codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:75.23,75.48 1 0
codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:75.49,75.50 0 0
codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:75.59,75.60 0 0
-codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:76.9,77.27 2 2
-codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:77.27,77.44 1 2
-codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:79.5,79.43 1 2
-codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:83.92,84.22 1 2
-codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:84.22,87.25 2 1
-codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:87.25,89.27 2 1
+codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:76.9,77.27 2 0
+codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:77.27,77.44 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:79.5,79.43 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:83.92,84.22 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:84.22,87.25 2 0
+codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:87.25,89.27 2 0
codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:89.27,89.41 1 0
-codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:90.13,90.25 1 1
-codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:90.25,90.42 1 1
-codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:91.13,91.19 1 1
-codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:93.9,93.46 1 1
-codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:95.5,97.19 3 1
+codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:90.13,90.25 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:90.25,90.42 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:91.13,91.19 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:93.9,93.46 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:95.5,97.19 3 0
codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:97.19,97.33 1 0
-codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:98.5,99.55 2 1
+codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:98.5,99.55 2 0
codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:99.55,101.82 2 0
codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:101.82,103.10 1 0
-codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:104.11,106.6 1 1
-codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:107.5,107.35 1 1
-codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:110.98,112.19 2 3
+codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:104.11,106.6 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:107.5,107.35 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:110.98,112.19 2 0
codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:112.19,112.33 1 0
-codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:113.5,113.18 1 3
-codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:113.18,113.43 1 3
-codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:114.5,116.55 3 3
+codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:113.5,113.18 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:113.18,113.43 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:114.5,116.55 3 0
codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:116.55,116.69 1 0
-codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:117.5,118.19 2 3
-codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:118.19,118.33 1 1
-codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:119.5,121.50 3 2
-codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:121.50,121.64 1 1
-codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:122.5,122.64 1 1
+codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:117.5,118.19 2 0
+codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:118.19,118.33 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:119.5,121.50 3 0
+codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:121.50,121.64 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:122.5,122.64 1 0
codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:122.64,122.78 1 0
-codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:123.5,123.38 1 1
-codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:126.55,128.19 2 4
+codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:123.5,123.38 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:126.55,128.19 2 0
codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:128.19,128.33 1 0
-codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:129.5,129.18 1 4
-codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:129.18,129.35 1 4
-codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:130.5,130.48 1 4
+codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:129.5,129.18 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:129.18,129.35 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:130.5,130.48 1 0
codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:130.48,130.62 1 0
-codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:131.5,131.20 1 4
-codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:134.60,136.9 2 2
-codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:136.9,137.48 1 3
-codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:137.48,137.62 1 1
-codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:138.9,138.39 1 2
-codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:138.39,138.108 1 1
-codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:139.9,139.43 1 1
-codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:143.48,145.19 2 1
+codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:131.5,131.20 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:134.60,136.9 2 0
+codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:136.9,137.48 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:137.48,137.62 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:138.9,138.39 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:138.39,138.108 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:139.9,139.43 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:143.48,145.19 2 0
codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:145.19,145.33 1 0
-codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:146.5,146.18 1 1
-codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:146.18,146.35 1 1
-codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:147.5,148.15 2 1
-codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:151.83,154.21 3 2
-codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:154.21,156.23 2 1
+codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:146.5,146.18 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:146.18,146.35 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:147.5,148.15 2 0
+codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:151.83,154.21 3 0
+codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:154.21,156.23 2 0
codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:156.23,156.37 1 0
-codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:157.9,157.22 1 1
-codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:157.22,157.39 1 1
-codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:158.9,158.15 1 1
-codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:160.5,160.22 1 2
-codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:160.22,162.23 2 1
+codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:157.9,157.22 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:157.22,157.39 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:158.9,158.15 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:160.5,160.22 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:160.22,162.23 2 0
codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:162.23,162.37 1 0
-codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:163.9,163.22 1 1
-codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:163.22,163.39 1 1
-codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:164.9,164.16 1 1
-codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:166.5,167.15 2 2
-codeberg.org/snonux/hexai/internal/hexaiaction/parse.go:20.50,22.16 2 2
+codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:163.9,163.22 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:163.22,163.39 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:164.9,164.16 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:166.5,167.15 2 0
+codeberg.org/snonux/hexai/internal/hexaiaction/parse.go:20.50,22.16 2 0
codeberg.org/snonux/hexai/internal/hexaiaction/parse.go:22.16,24.3 1 0
-codeberg.org/snonux/hexai/internal/hexaiaction/parse.go:25.2,26.15 2 2
+codeberg.org/snonux/hexai/internal/hexaiaction/parse.go:25.2,26.15 2 0
codeberg.org/snonux/hexai/internal/hexaiaction/parse.go:26.15,28.3 1 0
-codeberg.org/snonux/hexai/internal/hexaiaction/parse.go:29.2,32.27 3 2
-codeberg.org/snonux/hexai/internal/hexaiaction/parse.go:32.27,34.26 2 2
-codeberg.org/snonux/hexai/internal/hexaiaction/parse.go:34.26,36.9 2 1
-codeberg.org/snonux/hexai/internal/hexaiaction/parse.go:39.2,39.18 1 2
-codeberg.org/snonux/hexai/internal/hexaiaction/parse.go:39.18,41.3 1 1
-codeberg.org/snonux/hexai/internal/hexaiaction/parse.go:43.2,45.28 3 1
-codeberg.org/snonux/hexai/internal/hexaiaction/parse.go:45.28,47.14 2 3
-codeberg.org/snonux/hexai/internal/hexaiaction/parse.go:47.14,49.9 2 1
-codeberg.org/snonux/hexai/internal/hexaiaction/parse.go:51.3,51.27 1 2
-codeberg.org/snonux/hexai/internal/hexaiaction/parse.go:53.2,55.60 3 1
-codeberg.org/snonux/hexai/internal/hexaiaction/parse.go:60.54,60.103 1 7
-codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:14.54,14.97 1 8
-codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:17.35,17.73 1 9
-codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:23.121,27.2 3 2
-codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:29.128,31.26 2 1
-codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:31.26,32.33 1 2
+codeberg.org/snonux/hexai/internal/hexaiaction/parse.go:29.2,32.27 3 0
+codeberg.org/snonux/hexai/internal/hexaiaction/parse.go:32.27,34.26 2 0
+codeberg.org/snonux/hexai/internal/hexaiaction/parse.go:34.26,36.9 2 0
+codeberg.org/snonux/hexai/internal/hexaiaction/parse.go:39.2,39.18 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/parse.go:39.18,41.3 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/parse.go:43.2,45.28 3 0
+codeberg.org/snonux/hexai/internal/hexaiaction/parse.go:45.28,47.14 2 0
+codeberg.org/snonux/hexai/internal/hexaiaction/parse.go:47.14,49.9 2 0
+codeberg.org/snonux/hexai/internal/hexaiaction/parse.go:51.3,51.27 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/parse.go:53.2,55.60 3 0
+codeberg.org/snonux/hexai/internal/hexaiaction/parse.go:60.54,60.103 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:14.54,14.97 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:17.35,17.73 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:23.121,27.2 3 0
+codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:29.128,31.26 2 0
+codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:31.26,32.33 1 0
codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:32.33,33.12 1 0
-codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:35.3,36.23 2 2
-codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:36.23,38.4 1 1
-codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:40.2,42.69 3 1
-codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:45.109,49.2 3 2
-codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:51.106,55.2 3 2
-codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:57.86,60.19 3 1
+codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:35.3,36.23 2 0
+codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:36.23,38.4 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:40.2,42.69 3 0
+codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:45.109,49.2 3 0
+codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:51.106,55.2 3 0
+codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:57.86,60.19 3 0
codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:60.19,62.6 1 0
-codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:63.5,63.52 1 1
-codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:66.120,69.19 3 7
+codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:63.5,63.52 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:66.120,69.19 3 0
codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:69.19,71.6 1 0
-codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:72.5,72.52 1 7
-codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:76.57,78.37 2 7
-codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:78.37,80.6 1 3
-codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:81.5,81.16 1 7
-codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:85.79,87.2 1 2
-codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:89.78,91.2 1 1
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:16.80,20.16 4 1
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:20.16,23.3 2 1
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:24.2,25.16 2 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:25.16,28.3 2 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:29.2,29.46 1 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:29.46,31.3 1 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:32.2,33.16 2 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:33.16,35.3 1 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:36.2,37.16 2 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:37.16,39.3 1 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:40.2,41.12 2 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:44.146,45.14 1 4
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:46.18,47.30 1 1
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:48.21,50.37 2 1
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:50.37,53.4 2 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:54.3,56.55 3 1
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:57.25,60.79 3 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:61.22,64.57 3 1
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:65.20,68.55 3 1
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:69.10,70.30 1 0
-codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:18.36,18.54 1 1
-codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:19.36,19.53 1 1
-codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:20.36,20.54 1 3
-codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:28.23,41.2 7 4
-codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:43.31,43.45 1 1
-codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:45.57,46.27 1 1
+codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:72.5,72.52 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:76.57,78.37 2 0
+codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:78.37,80.6 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:81.5,81.16 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:85.79,87.2 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:89.78,91.2 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:20.80,24.19 4 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:24.19,27.6 2 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:28.5,29.16 2 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:29.16,32.3 2 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:33.2,33.46 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:33.46,35.3 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:36.5,37.19 2 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:37.19,39.6 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:40.2,41.16 2 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:41.16,43.3 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:44.2,45.12 2 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:48.146,49.14 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:50.18,51.30 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:52.21,54.37 2 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:54.37,57.4 2 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:58.3,60.55 3 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:61.25,64.79 3 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:65.22,68.57 3 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:69.20,72.55 3 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:73.10,74.30 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:18.36,18.54 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:19.36,19.53 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:20.36,20.54 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:28.23,41.2 7 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:43.31,43.45 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:45.57,46.27 1 0
codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:47.18,48.27 1 0
-codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:49.25,50.40 1 1
-codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:52.2,54.15 3 1
-codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:57.62,60.16 3 3
-codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:61.21,65.27 3 1
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:49.25,50.40 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:52.2,54.15 3 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:57.62,60.16 3 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:61.21,65.27 3 0
codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:66.18,67.55 1 0
codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:67.55,71.10 3 0
codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:72.22,73.28 1 0
codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:74.20,75.26 1 0
-codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:76.22,77.25 1 1
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:76.22,77.25 1 0
codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:78.16,79.44 1 0
codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:79.44,79.68 1 0
-codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:80.29,82.41 2 1
-codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:82.41,83.91 1 1
-codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:83.91,88.14 4 1
-codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:91.5,91.19 1 1
-codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:91.19,92.44 1 1
-codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:92.44,92.68 1 1
-codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:94.5,94.18 1 1
-codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:97.30,98.12 1 1
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:80.29,82.41 2 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:82.41,83.91 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:83.91,88.14 4 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:91.5,91.19 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:91.19,92.44 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:92.44,92.68 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:94.5,94.18 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:97.30,98.12 1 0
codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:98.12,100.3 1 0
-codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:101.2,101.22 1 1
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:101.2,101.22 1 0
codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:105.35,108.16 3 0
codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:108.16,110.3 1 0
codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:111.2,111.29 1 0
@@ -14350,14 +14350,14 @@ codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:111.29,112.21 1 0
codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:112.21,114.4 1 0
codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:115.3,115.23 1 0
codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:117.2,117.56 1 0
-codeberg.org/snonux/hexai/internal/hexaiaction/tui_delegate.go:20.61,20.73 1 14
-codeberg.org/snonux/hexai/internal/hexaiaction/tui_delegate.go:21.61,21.73 1 24
-codeberg.org/snonux/hexai/internal/hexaiaction/tui_delegate.go:22.61,22.75 1 1
-codeberg.org/snonux/hexai/internal/hexaiaction/tui_delegate.go:23.89,26.38 3 2
-codeberg.org/snonux/hexai/internal/hexaiaction/tui_delegate.go:26.38,28.6 1 2
-codeberg.org/snonux/hexai/internal/hexaiaction/tui_delegate.go:29.5,31.27 3 2
-codeberg.org/snonux/hexai/internal/hexaiaction/tui_delegate.go:31.27,33.6 1 2
-codeberg.org/snonux/hexai/internal/hexaiaction/tui_delegate.go:34.5,34.49 1 2
+codeberg.org/snonux/hexai/internal/hexaiaction/tui_delegate.go:20.61,20.73 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui_delegate.go:21.61,21.73 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui_delegate.go:22.61,22.75 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui_delegate.go:23.89,26.38 3 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui_delegate.go:26.38,28.6 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui_delegate.go:29.5,31.27 3 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui_delegate.go:31.27,33.6 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui_delegate.go:34.5,34.49 1 0
codeberg.org/snonux/hexai/internal/hexaicli/run.go:23.95,28.16 4 0
codeberg.org/snonux/hexai/internal/hexaicli/run.go:28.16,31.3 2 0
codeberg.org/snonux/hexai/internal/hexaicli/run.go:33.2,34.17 2 0
@@ -14682,17 +14682,17 @@ codeberg.org/snonux/hexai/internal/llm/openai.go:296.38,299.3 2 0
codeberg.org/snonux/hexai/internal/llm/openai.go:300.2,300.12 1 0
codeberg.org/snonux/hexai/internal/llm/provider.go:58.47,58.73 1 0
codeberg.org/snonux/hexai/internal/llm/provider.go:58.73,58.92 1 0
-codeberg.org/snonux/hexai/internal/llm/provider.go:59.47,59.73 1 3
+codeberg.org/snonux/hexai/internal/llm/provider.go:59.47,59.73 1 0
codeberg.org/snonux/hexai/internal/llm/provider.go:59.73,59.94 1 0
-codeberg.org/snonux/hexai/internal/llm/provider.go:60.47,60.73 1 7
+codeberg.org/snonux/hexai/internal/llm/provider.go:60.47,60.73 1 0
codeberg.org/snonux/hexai/internal/llm/provider.go:60.73,60.92 1 0
codeberg.org/snonux/hexai/internal/llm/provider.go:61.45,62.26 1 0
codeberg.org/snonux/hexai/internal/llm/provider.go:62.26,62.66 1 0
-codeberg.org/snonux/hexai/internal/llm/provider.go:85.84,87.13 2 1
-codeberg.org/snonux/hexai/internal/llm/provider.go:87.13,89.3 1 1
-codeberg.org/snonux/hexai/internal/llm/provider.go:90.2,90.11 1 1
-codeberg.org/snonux/hexai/internal/llm/provider.go:91.16,92.44 1 1
-codeberg.org/snonux/hexai/internal/llm/provider.go:92.44,94.4 1 1
+codeberg.org/snonux/hexai/internal/llm/provider.go:85.84,87.13 2 0
+codeberg.org/snonux/hexai/internal/llm/provider.go:87.13,89.3 1 0
+codeberg.org/snonux/hexai/internal/llm/provider.go:90.2,90.11 1 0
+codeberg.org/snonux/hexai/internal/llm/provider.go:91.16,92.44 1 0
+codeberg.org/snonux/hexai/internal/llm/provider.go:92.44,94.4 1 0
codeberg.org/snonux/hexai/internal/llm/provider.go:96.3,96.35 1 0
codeberg.org/snonux/hexai/internal/llm/provider.go:96.35,99.4 2 0
codeberg.org/snonux/hexai/internal/llm/provider.go:100.3,100.97 1 0
@@ -14706,11 +14706,11 @@ codeberg.org/snonux/hexai/internal/llm/provider.go:111.36,114.4 2 0
codeberg.org/snonux/hexai/internal/llm/provider.go:115.3,115.102 1 0
codeberg.org/snonux/hexai/internal/llm/provider.go:116.10,117.55 1 0
codeberg.org/snonux/hexai/internal/llm/util.go:6.47,6.77 1 0
-codeberg.org/snonux/hexai/internal/llmutils/client.go:12.62,26.39 3 1
-codeberg.org/snonux/hexai/internal/llmutils/client.go:26.39,28.6 1 1
-codeberg.org/snonux/hexai/internal/llmutils/client.go:29.5,30.39 2 1
-codeberg.org/snonux/hexai/internal/llmutils/client.go:30.39,32.6 1 1
-codeberg.org/snonux/hexai/internal/llmutils/client.go:33.5,33.51 1 1
+codeberg.org/snonux/hexai/internal/llmutils/client.go:12.62,26.39 3 0
+codeberg.org/snonux/hexai/internal/llmutils/client.go:26.39,28.6 1 0
+codeberg.org/snonux/hexai/internal/llmutils/client.go:29.5,30.39 2 0
+codeberg.org/snonux/hexai/internal/llmutils/client.go:30.39,32.6 1 0
+codeberg.org/snonux/hexai/internal/llmutils/client.go:33.5,33.51 1 0
codeberg.org/snonux/hexai/internal/logging/chatlogger.go:9.48,11.2 1 0
codeberg.org/snonux/hexai/internal/logging/chatlogger.go:18.3,20.12 2 0
codeberg.org/snonux/hexai/internal/logging/chatlogger.go:20.12,22.3 1 0
@@ -15548,88 +15548,83 @@ codeberg.org/snonux/hexai/internal/testutil/fixtures.go:9.34,11.2 1 0
codeberg.org/snonux/hexai/internal/testutil/fixtures.go:14.43,16.2 1 0
codeberg.org/snonux/hexai/internal/testutil/fixtures.go:19.33,21.2 1 0
codeberg.org/snonux/hexai/internal/testutil/fixtures.go:24.29,26.2 1 0
-codeberg.org/snonux/hexai/internal/textutil/textutil.go:6.62,7.34 1 8
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:6.62,7.34 1 0
codeberg.org/snonux/hexai/internal/textutil/textutil.go:7.34,9.6 1 0
-codeberg.org/snonux/hexai/internal/textutil/textutil.go:10.5,11.28 2 8
-codeberg.org/snonux/hexai/internal/textutil/textutil.go:11.28,13.6 1 11
-codeberg.org/snonux/hexai/internal/textutil/textutil.go:14.5,14.15 1 8
-codeberg.org/snonux/hexai/internal/textutil/textutil.go:18.39,20.16 2 9
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:10.5,11.28 2 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:11.28,13.6 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:14.5,14.15 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:18.39,20.16 2 0
codeberg.org/snonux/hexai/internal/textutil/textutil.go:20.16,22.6 1 0
-codeberg.org/snonux/hexai/internal/textutil/textutil.go:23.5,25.69 3 9
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:23.5,25.69 3 0
codeberg.org/snonux/hexai/internal/textutil/textutil.go:25.69,27.6 1 0
-codeberg.org/snonux/hexai/internal/textutil/textutil.go:28.5,29.57 2 9
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:28.5,29.57 2 0
codeberg.org/snonux/hexai/internal/textutil/textutil.go:29.57,31.6 1 0
-codeberg.org/snonux/hexai/internal/textutil/textutil.go:32.5,32.54 1 9
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:32.5,32.54 1 0
codeberg.org/snonux/hexai/internal/textutil/textutil.go:32.54,34.6 1 0
-codeberg.org/snonux/hexai/internal/textutil/textutil.go:35.5,37.72 3 9
-codeberg.org/snonux/hexai/internal/textutil/textutil.go:37.72,40.6 2 9
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:35.5,37.72 3 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:37.72,40.6 2 0
codeberg.org/snonux/hexai/internal/textutil/textutil.go:41.5,41.13 1 0
-codeberg.org/snonux/hexai/internal/textutil/textutil.go:47.60,49.34 2 7
-codeberg.org/snonux/hexai/internal/textutil/textutil.go:49.34,50.105 1 7
-codeberg.org/snonux/hexai/internal/textutil/textutil.go:50.105,53.10 2 7
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:47.60,49.34 2 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:49.34,50.105 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:50.105,53.10 2 0
codeberg.org/snonux/hexai/internal/textutil/textutil.go:55.5,55.19 1 0
-codeberg.org/snonux/hexai/internal/textutil/textutil.go:59.79,62.53 3 7
-codeberg.org/snonux/hexai/internal/textutil/textutil.go:62.53,64.6 1 2
-codeberg.org/snonux/hexai/internal/textutil/textutil.go:65.5,65.47 1 7
-codeberg.org/snonux/hexai/internal/textutil/textutil.go:65.47,66.57 1 1
-codeberg.org/snonux/hexai/internal/textutil/textutil.go:66.57,71.10 4 1
-codeberg.org/snonux/hexai/internal/textutil/textutil.go:73.5,73.49 1 7
-codeberg.org/snonux/hexai/internal/textutil/textutil.go:73.49,74.58 1 1
-codeberg.org/snonux/hexai/internal/textutil/textutil.go:74.58,79.10 4 1
-codeberg.org/snonux/hexai/internal/textutil/textutil.go:81.5,81.47 1 7
-codeberg.org/snonux/hexai/internal/textutil/textutil.go:81.47,83.6 1 1
-codeberg.org/snonux/hexai/internal/textutil/textutil.go:84.5,84.46 1 7
-codeberg.org/snonux/hexai/internal/textutil/textutil.go:84.46,86.6 1 1
-codeberg.org/snonux/hexai/internal/textutil/textutil.go:87.5,87.47 1 7
-codeberg.org/snonux/hexai/internal/textutil/textutil.go:87.47,89.6 1 2
-codeberg.org/snonux/hexai/internal/textutil/textutil.go:90.5,90.24 1 7
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:59.79,62.53 3 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:62.53,64.6 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:65.5,65.47 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:65.47,66.57 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:66.57,71.10 4 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:73.5,73.49 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:73.49,74.58 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:74.58,79.10 4 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:81.5,81.47 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:81.47,83.6 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:84.5,84.46 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:84.46,86.6 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:87.5,87.47 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:87.47,89.6 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:90.5,90.24 1 0
codeberg.org/snonux/hexai/internal/textutil/textutil.go:90.24,90.50 1 0
-codeberg.org/snonux/hexai/internal/textutil/textutil.go:91.5,92.33 2 7
-codeberg.org/snonux/hexai/internal/textutil/textutil.go:92.33,93.69 1 1
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:91.5,92.33 2 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:92.33,93.69 1 0
codeberg.org/snonux/hexai/internal/textutil/textutil.go:93.69,93.81 1 0
-codeberg.org/snonux/hexai/internal/textutil/textutil.go:95.5,96.36 2 7
-codeberg.org/snonux/hexai/internal/textutil/textutil.go:100.79,101.36 1 7
-codeberg.org/snonux/hexai/internal/textutil/textutil.go:101.36,102.27 1 54
-codeberg.org/snonux/hexai/internal/textutil/textutil.go:102.27,102.37 1 52
-codeberg.org/snonux/hexai/internal/textutil/textutil.go:103.9,103.48 1 2
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:95.5,96.36 2 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:100.79,101.36 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:101.36,102.27 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:102.27,102.37 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:103.9,103.48 1 0
codeberg.org/snonux/hexai/internal/textutil/textutil.go:103.48,103.58 1 0
-codeberg.org/snonux/hexai/internal/textutil/textutil.go:104.9,104.44 1 2
-codeberg.org/snonux/hexai/internal/textutil/textutil.go:104.44,105.31 1 20
-codeberg.org/snonux/hexai/internal/textutil/textutil.go:105.31,106.49 1 2
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:104.9,104.44 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:104.44,105.31 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:105.31,106.49 1 0
codeberg.org/snonux/hexai/internal/textutil/textutil.go:106.49,106.59 1 0
-codeberg.org/snonux/hexai/internal/textutil/textutil.go:107.17,108.32 2 2
-codeberg.org/snonux/hexai/internal/textutil/textutil.go:108.32,108.64 1 2
-codeberg.org/snonux/hexai/internal/textutil/textutil.go:112.5,112.29 1 5
-codeberg.org/snonux/hexai/internal/tmux/tmux.go:11.23,11.60 1 0
-codeberg.org/snonux/hexai/internal/tmux/tmux.go:17.23,17.72 2 0
-codeberg.org/snonux/hexai/internal/tmux/tmux.go:20.23,20.76 1 0
-codeberg.org/snonux/hexai/internal/tmux/tmux.go:31.52,32.20 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:107.17,108.32 2 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:108.32,108.64 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:112.5,112.29 1 0
+codeberg.org/snonux/hexai/internal/tmux/tmux.go:11.23,11.60 1 2
+codeberg.org/snonux/hexai/internal/tmux/tmux.go:17.23,17.72 2 4
+codeberg.org/snonux/hexai/internal/tmux/tmux.go:20.23,20.76 1 3
+codeberg.org/snonux/hexai/internal/tmux/tmux.go:31.52,32.20 1 1
codeberg.org/snonux/hexai/internal/tmux/tmux.go:32.20,34.3 1 0
-codeberg.org/snonux/hexai/internal/tmux/tmux.go:35.2,36.19 2 0
-codeberg.org/snonux/hexai/internal/tmux/tmux.go:36.19,38.3 1 0
+codeberg.org/snonux/hexai/internal/tmux/tmux.go:35.2,36.19 2 1
+codeberg.org/snonux/hexai/internal/tmux/tmux.go:36.19,38.3 1 1
codeberg.org/snonux/hexai/internal/tmux/tmux.go:38.8,40.3 1 0
-codeberg.org/snonux/hexai/internal/tmux/tmux.go:41.2,41.45 1 0
-codeberg.org/snonux/hexai/internal/tmux/tmux.go:41.45,43.3 1 0
-codeberg.org/snonux/hexai/internal/tmux/tmux.go:44.2,44.42 1 0
-codeberg.org/snonux/hexai/internal/tmux/tmux.go:44.42,46.3 1 0
-codeberg.org/snonux/hexai/internal/tmux/tmux.go:48.2,51.19 4 0
-codeberg.org/snonux/hexai/internal/tmux/tmux.go:56.38,58.25 2 0
-codeberg.org/snonux/hexai/internal/tmux/tmux.go:58.25,59.14 1 0
+codeberg.org/snonux/hexai/internal/tmux/tmux.go:41.2,41.45 1 1
+codeberg.org/snonux/hexai/internal/tmux/tmux.go:41.45,43.3 1 1
+codeberg.org/snonux/hexai/internal/tmux/tmux.go:44.2,44.42 1 1
+codeberg.org/snonux/hexai/internal/tmux/tmux.go:44.42,46.3 1 1
+codeberg.org/snonux/hexai/internal/tmux/tmux.go:48.2,51.19 4 1
+codeberg.org/snonux/hexai/internal/tmux/tmux.go:56.38,58.25 2 1
+codeberg.org/snonux/hexai/internal/tmux/tmux.go:58.25,59.14 1 4
codeberg.org/snonux/hexai/internal/tmux/tmux.go:59.14,61.12 2 0
-codeberg.org/snonux/hexai/internal/tmux/tmux.go:63.3,63.20 1 0
-codeberg.org/snonux/hexai/internal/tmux/tmux.go:63.20,65.12 2 0
-codeberg.org/snonux/hexai/internal/tmux/tmux.go:69.3,70.33 2 0
-codeberg.org/snonux/hexai/internal/tmux/tmux.go:72.2,72.31 1 0
-codeberg.org/snonux/hexai/internal/tmux/tmux.go:76.32,77.30 1 0
-codeberg.org/snonux/hexai/internal/tmux/tmux.go:77.30,79.141 2 0
-codeberg.org/snonux/hexai/internal/tmux/tmux.go:79.141,80.12 1 0
-codeberg.org/snonux/hexai/internal/tmux/tmux.go:82.3,82.15 1 0
-codeberg.org/snonux/hexai/internal/tmux/tmux.go:84.2,84.13 1 0
-codeberg.org/snonux/hexai/internal/testutil/fixtures.go:4.33,6.2 1 0
-codeberg.org/snonux/hexai/internal/testutil/fixtures.go:9.34,11.2 1 0
-codeberg.org/snonux/hexai/internal/testutil/fixtures.go:14.43,16.2 1 0
-codeberg.org/snonux/hexai/internal/testutil/fixtures.go:19.33,21.2 1 0
-codeberg.org/snonux/hexai/internal/testutil/fixtures.go:24.29,26.2 1 0
+codeberg.org/snonux/hexai/internal/tmux/tmux.go:63.3,63.20 1 4
+codeberg.org/snonux/hexai/internal/tmux/tmux.go:63.20,65.12 2 2
+codeberg.org/snonux/hexai/internal/tmux/tmux.go:69.3,70.33 2 2
+codeberg.org/snonux/hexai/internal/tmux/tmux.go:72.2,72.31 1 1
+codeberg.org/snonux/hexai/internal/tmux/tmux.go:76.32,77.30 1 4
+codeberg.org/snonux/hexai/internal/tmux/tmux.go:77.30,79.141 2 27
+codeberg.org/snonux/hexai/internal/tmux/tmux.go:79.141,80.12 1 25
+codeberg.org/snonux/hexai/internal/tmux/tmux.go:82.3,82.15 1 2
+codeberg.org/snonux/hexai/internal/tmux/tmux.go:84.2,84.13 1 2
codeberg.org/snonux/hexai/cmd/hexai/main.go:14.13,17.18 3 0
codeberg.org/snonux/hexai/cmd/hexai/main.go:17.18,20.3 2 0
codeberg.org/snonux/hexai/cmd/hexai/main.go:22.2,22.104 1 0
@@ -16036,26 +16031,26 @@ codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:78.37,80.6 1 0
codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:81.5,81.16 1 0
codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:85.79,87.2 1 0
codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:89.78,91.2 1 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:16.80,20.16 4 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:20.16,23.3 2 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:24.2,25.16 2 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:25.16,28.3 2 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:29.2,29.46 1 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:29.46,31.3 1 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:32.2,33.16 2 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:33.16,35.3 1 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:36.2,37.16 2 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:37.16,39.3 1 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:40.2,41.12 2 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:44.146,45.14 1 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:46.18,47.30 1 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:48.21,50.37 2 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:50.37,53.4 2 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:54.3,56.55 3 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:57.25,60.79 3 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:61.22,64.57 3 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:65.20,68.55 3 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:69.10,70.30 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:20.80,24.19 4 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:24.19,27.6 2 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:28.5,29.16 2 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:29.16,32.3 2 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:33.2,33.46 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:33.46,35.3 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:36.5,37.19 2 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:37.19,39.6 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:40.2,41.16 2 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:41.16,43.3 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:44.2,45.12 2 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:48.146,49.14 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:50.18,51.30 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:52.21,54.37 2 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:54.37,57.4 2 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:58.3,60.55 3 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:61.25,64.79 3 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:65.22,68.57 3 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:69.20,72.55 3 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:73.10,74.30 1 0
codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:18.36,18.54 1 0
codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:19.36,19.53 1 0
codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:20.36,20.54 1 0
@@ -17287,60 +17282,60 @@ codeberg.org/snonux/hexai/internal/lsp/transport.go:62.45,65.3 2 0
codeberg.org/snonux/hexai/internal/testutil/fixtures.go:4.33,6.2 1 0
codeberg.org/snonux/hexai/internal/testutil/fixtures.go:9.34,11.2 1 0
codeberg.org/snonux/hexai/internal/testutil/fixtures.go:14.43,16.2 1 0
-codeberg.org/snonux/hexai/internal/testutil/fixtures.go:19.33,21.2 1 0
-codeberg.org/snonux/hexai/internal/testutil/fixtures.go:24.29,26.2 1 0
-codeberg.org/snonux/hexai/internal/textutil/textutil.go:6.62,7.34 1 3
-codeberg.org/snonux/hexai/internal/textutil/textutil.go:7.34,9.6 1 2
-codeberg.org/snonux/hexai/internal/textutil/textutil.go:10.5,11.28 2 1
-codeberg.org/snonux/hexai/internal/textutil/textutil.go:11.28,13.6 1 1
-codeberg.org/snonux/hexai/internal/textutil/textutil.go:14.5,14.15 1 1
-codeberg.org/snonux/hexai/internal/textutil/textutil.go:18.39,20.16 2 5
+codeberg.org/snonux/hexai/internal/testutil/fixtures.go:19.33,21.2 1 1
+codeberg.org/snonux/hexai/internal/testutil/fixtures.go:24.29,26.2 1 1
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:6.62,7.34 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:7.34,9.6 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:10.5,11.28 2 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:11.28,13.6 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:14.5,14.15 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:18.39,20.16 2 0
codeberg.org/snonux/hexai/internal/textutil/textutil.go:20.16,22.6 1 0
-codeberg.org/snonux/hexai/internal/textutil/textutil.go:23.5,25.69 3 5
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:23.5,25.69 3 0
codeberg.org/snonux/hexai/internal/textutil/textutil.go:25.69,27.6 1 0
-codeberg.org/snonux/hexai/internal/textutil/textutil.go:28.5,29.57 2 5
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:28.5,29.57 2 0
codeberg.org/snonux/hexai/internal/textutil/textutil.go:29.57,31.6 1 0
-codeberg.org/snonux/hexai/internal/textutil/textutil.go:32.5,32.54 1 5
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:32.5,32.54 1 0
codeberg.org/snonux/hexai/internal/textutil/textutil.go:32.54,34.6 1 0
-codeberg.org/snonux/hexai/internal/textutil/textutil.go:35.5,37.72 3 5
-codeberg.org/snonux/hexai/internal/textutil/textutil.go:37.72,40.6 2 3
-codeberg.org/snonux/hexai/internal/textutil/textutil.go:41.5,41.13 1 2
-codeberg.org/snonux/hexai/internal/textutil/textutil.go:47.60,49.34 2 6
-codeberg.org/snonux/hexai/internal/textutil/textutil.go:49.34,50.105 1 6
-codeberg.org/snonux/hexai/internal/textutil/textutil.go:50.105,53.10 2 6
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:35.5,37.72 3 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:37.72,40.6 2 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:41.5,41.13 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:47.60,49.34 2 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:49.34,50.105 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:50.105,53.10 2 0
codeberg.org/snonux/hexai/internal/textutil/textutil.go:55.5,55.19 1 0
-codeberg.org/snonux/hexai/internal/textutil/textutil.go:59.79,62.53 3 7
-codeberg.org/snonux/hexai/internal/textutil/textutil.go:62.53,64.6 1 2
-codeberg.org/snonux/hexai/internal/textutil/textutil.go:65.5,65.47 1 7
-codeberg.org/snonux/hexai/internal/textutil/textutil.go:65.47,66.57 1 1
-codeberg.org/snonux/hexai/internal/textutil/textutil.go:66.57,71.10 4 1
-codeberg.org/snonux/hexai/internal/textutil/textutil.go:73.5,73.49 1 7
-codeberg.org/snonux/hexai/internal/textutil/textutil.go:73.49,74.58 1 1
-codeberg.org/snonux/hexai/internal/textutil/textutil.go:74.58,79.10 4 1
-codeberg.org/snonux/hexai/internal/textutil/textutil.go:81.5,81.47 1 7
-codeberg.org/snonux/hexai/internal/textutil/textutil.go:81.47,83.6 1 2
-codeberg.org/snonux/hexai/internal/textutil/textutil.go:84.5,84.46 1 7
-codeberg.org/snonux/hexai/internal/textutil/textutil.go:84.46,86.6 1 1
-codeberg.org/snonux/hexai/internal/textutil/textutil.go:87.5,87.47 1 7
-codeberg.org/snonux/hexai/internal/textutil/textutil.go:87.47,89.6 1 2
-codeberg.org/snonux/hexai/internal/textutil/textutil.go:90.5,90.24 1 7
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:59.79,62.53 3 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:62.53,64.6 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:65.5,65.47 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:65.47,66.57 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:66.57,71.10 4 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:73.5,73.49 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:73.49,74.58 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:74.58,79.10 4 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:81.5,81.47 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:81.47,83.6 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:84.5,84.46 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:84.46,86.6 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:87.5,87.47 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:87.47,89.6 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:90.5,90.24 1 0
codeberg.org/snonux/hexai/internal/textutil/textutil.go:90.24,90.50 1 0
-codeberg.org/snonux/hexai/internal/textutil/textutil.go:91.5,92.33 2 7
-codeberg.org/snonux/hexai/internal/textutil/textutil.go:92.33,93.69 1 2
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:91.5,92.33 2 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:92.33,93.69 1 0
codeberg.org/snonux/hexai/internal/textutil/textutil.go:93.69,93.81 1 0
-codeberg.org/snonux/hexai/internal/textutil/textutil.go:95.5,96.36 2 7
-codeberg.org/snonux/hexai/internal/textutil/textutil.go:100.79,101.36 1 9
-codeberg.org/snonux/hexai/internal/textutil/textutil.go:101.36,102.27 1 58
-codeberg.org/snonux/hexai/internal/textutil/textutil.go:102.27,102.37 1 53
-codeberg.org/snonux/hexai/internal/textutil/textutil.go:103.9,103.48 1 5
-codeberg.org/snonux/hexai/internal/textutil/textutil.go:103.48,103.58 1 1
-codeberg.org/snonux/hexai/internal/textutil/textutil.go:104.9,104.44 1 4
-codeberg.org/snonux/hexai/internal/textutil/textutil.go:104.44,105.31 1 15
-codeberg.org/snonux/hexai/internal/textutil/textutil.go:105.31,106.49 1 3
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:95.5,96.36 2 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:100.79,101.36 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:101.36,102.27 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:102.27,102.37 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:103.9,103.48 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:103.48,103.58 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:104.9,104.44 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:104.44,105.31 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:105.31,106.49 1 0
codeberg.org/snonux/hexai/internal/textutil/textutil.go:106.49,106.59 1 0
-codeberg.org/snonux/hexai/internal/textutil/textutil.go:107.17,108.32 2 3
-codeberg.org/snonux/hexai/internal/textutil/textutil.go:108.32,108.64 1 3
-codeberg.org/snonux/hexai/internal/textutil/textutil.go:112.5,112.29 1 6
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:107.17,108.32 2 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:108.32,108.64 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:112.5,112.29 1 0
codeberg.org/snonux/hexai/internal/tmux/tmux.go:11.23,11.60 1 0
codeberg.org/snonux/hexai/internal/tmux/tmux.go:17.23,17.72 2 0
codeberg.org/snonux/hexai/internal/tmux/tmux.go:20.23,20.76 1 0
@@ -17772,26 +17767,26 @@ codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:78.37,80.6 1 0
codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:81.5,81.16 1 0
codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:85.79,87.2 1 0
codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:89.78,91.2 1 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:16.80,20.16 4 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:20.16,23.3 2 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:24.2,25.16 2 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:25.16,28.3 2 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:29.2,29.46 1 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:29.46,31.3 1 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:32.2,33.16 2 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:33.16,35.3 1 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:36.2,37.16 2 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:37.16,39.3 1 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:40.2,41.12 2 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:44.146,45.14 1 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:46.18,47.30 1 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:48.21,50.37 2 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:50.37,53.4 2 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:54.3,56.55 3 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:57.25,60.79 3 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:61.22,64.57 3 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:65.20,68.55 3 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:69.10,70.30 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:20.80,24.19 4 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:24.19,27.6 2 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:28.5,29.16 2 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:29.16,32.3 2 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:33.2,33.46 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:33.46,35.3 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:36.5,37.19 2 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:37.19,39.6 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:40.2,41.16 2 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:41.16,43.3 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:44.2,45.12 2 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:48.146,49.14 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:50.18,51.30 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:52.21,54.37 2 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:54.37,57.4 2 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:58.3,60.55 3 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:61.25,64.79 3 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:65.22,68.57 3 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:69.20,72.55 3 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:73.10,74.30 1 0
codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:18.36,18.54 1 0
codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:19.36,19.53 1 0
codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:20.36,20.54 1 0
@@ -17896,6 +17891,1742 @@ codeberg.org/snonux/hexai/internal/hexailsp/run.go:100.20,102.3 1 0
codeberg.org/snonux/hexai/internal/hexailsp/run.go:103.2,103.97 1 0
codeberg.org/snonux/hexai/internal/hexailsp/run.go:103.97,105.3 1 0
codeberg.org/snonux/hexai/internal/hexailsp/run.go:108.97,144.2 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:66.77,67.38 1 9
+codeberg.org/snonux/hexai/internal/llm/copilot.go:67.38,69.3 1 1
+codeberg.org/snonux/hexai/internal/llm/copilot.go:70.2,70.36 1 9
+codeberg.org/snonux/hexai/internal/llm/copilot.go:70.36,74.3 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:75.2,82.3 1 9
+codeberg.org/snonux/hexai/internal/llm/copilot.go:85.109,86.39 1 5
+codeberg.org/snonux/hexai/internal/llm/copilot.go:86.39,88.3 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:90.2,90.45 1 5
+codeberg.org/snonux/hexai/internal/llm/copilot.go:90.45,92.3 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:93.2,94.27 2 5
+codeberg.org/snonux/hexai/internal/llm/copilot.go:94.27,96.3 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:97.2,97.19 1 5
+codeberg.org/snonux/hexai/internal/llm/copilot.go:97.19,99.3 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:100.2,102.29 3 5
+codeberg.org/snonux/hexai/internal/llm/copilot.go:102.29,104.3 1 5
+codeberg.org/snonux/hexai/internal/llm/copilot.go:105.2,109.16 4 5
+codeberg.org/snonux/hexai/internal/llm/copilot.go:109.16,112.3 2 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:114.2,117.16 4 5
+codeberg.org/snonux/hexai/internal/llm/copilot.go:117.16,120.3 2 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:121.2,122.57 2 5
+codeberg.org/snonux/hexai/internal/llm/copilot.go:122.57,124.3 1 1
+codeberg.org/snonux/hexai/internal/llm/copilot.go:125.2,126.16 2 4
+codeberg.org/snonux/hexai/internal/llm/copilot.go:126.16,128.3 1 1
+codeberg.org/snonux/hexai/internal/llm/copilot.go:129.2,129.27 1 3
+codeberg.org/snonux/hexai/internal/llm/copilot.go:129.27,132.3 2 1
+codeberg.org/snonux/hexai/internal/llm/copilot.go:133.2,135.21 3 2
+codeberg.org/snonux/hexai/internal/llm/copilot.go:139.46,139.66 1 1
+codeberg.org/snonux/hexai/internal/llm/copilot.go:140.46,140.71 1 1
+codeberg.org/snonux/hexai/internal/llm/copilot.go:143.102,146.29 3 6
+codeberg.org/snonux/hexai/internal/llm/copilot.go:146.29,148.3 1 6
+codeberg.org/snonux/hexai/internal/llm/copilot.go:149.2,149.24 1 6
+codeberg.org/snonux/hexai/internal/llm/copilot.go:149.24,151.3 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:151.8,151.31 1 6
+codeberg.org/snonux/hexai/internal/llm/copilot.go:151.31,154.3 2 6
+codeberg.org/snonux/hexai/internal/llm/copilot.go:155.2,155.21 1 6
+codeberg.org/snonux/hexai/internal/llm/copilot.go:155.21,157.3 1 1
+codeberg.org/snonux/hexai/internal/llm/copilot.go:158.2,158.21 1 6
+codeberg.org/snonux/hexai/internal/llm/copilot.go:158.21,160.3 1 1
+codeberg.org/snonux/hexai/internal/llm/copilot.go:161.2,161.12 1 6
+codeberg.org/snonux/hexai/internal/llm/copilot.go:164.130,166.16 2 8
+codeberg.org/snonux/hexai/internal/llm/copilot.go:166.16,168.3 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:169.2,169.28 1 8
+codeberg.org/snonux/hexai/internal/llm/copilot.go:169.28,171.3 1 88
+codeberg.org/snonux/hexai/internal/llm/copilot.go:172.2,172.29 1 8
+codeberg.org/snonux/hexai/internal/llm/copilot.go:175.70,176.53 1 6
+codeberg.org/snonux/hexai/internal/llm/copilot.go:176.53,178.3 1 4
+codeberg.org/snonux/hexai/internal/llm/copilot.go:179.2,181.74 3 2
+codeberg.org/snonux/hexai/internal/llm/copilot.go:181.74,184.3 2 2
+codeberg.org/snonux/hexai/internal/llm/copilot.go:185.2,186.69 2 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:189.91,191.64 2 4
+codeberg.org/snonux/hexai/internal/llm/copilot.go:191.64,194.3 2 1
+codeberg.org/snonux/hexai/internal/llm/copilot.go:195.2,195.17 1 3
+codeberg.org/snonux/hexai/internal/llm/copilot.go:204.66,206.82 1 16
+codeberg.org/snonux/hexai/internal/llm/copilot.go:206.82,208.3 1 8
+codeberg.org/snonux/hexai/internal/llm/copilot.go:209.2,209.39 1 8
+codeberg.org/snonux/hexai/internal/llm/copilot.go:209.39,211.3 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:212.2,213.16 2 8
+codeberg.org/snonux/hexai/internal/llm/copilot.go:213.16,215.3 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:216.2,220.16 5 8
+codeberg.org/snonux/hexai/internal/llm/copilot.go:220.16,222.3 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:223.2,224.53 2 8
+codeberg.org/snonux/hexai/internal/llm/copilot.go:224.53,226.3 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:227.2,228.64 2 8
+codeberg.org/snonux/hexai/internal/llm/copilot.go:228.64,230.3 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:231.2,231.40 1 8
+codeberg.org/snonux/hexai/internal/llm/copilot.go:231.40,233.3 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:235.2,236.18 2 8
+codeberg.org/snonux/hexai/internal/llm/copilot.go:236.18,238.3 1 8
+codeberg.org/snonux/hexai/internal/llm/copilot.go:239.2,241.12 3 8
+codeberg.org/snonux/hexai/internal/llm/copilot.go:246.42,248.20 2 9
+codeberg.org/snonux/hexai/internal/llm/copilot.go:248.20,250.3 1 8
+codeberg.org/snonux/hexai/internal/llm/copilot.go:251.2,252.16 2 1
+codeberg.org/snonux/hexai/internal/llm/copilot.go:252.16,253.59 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:253.59,254.48 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:254.48,256.5 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:258.3,258.21 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:260.2,264.22 3 1
+codeberg.org/snonux/hexai/internal/llm/copilot.go:264.22,266.3 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:267.2,267.34 1 1
+codeberg.org/snonux/hexai/internal/llm/copilot.go:270.42,270.100 3 1
+codeberg.org/snonux/hexai/internal/llm/copilot.go:274.57,290.2 3 5
+codeberg.org/snonux/hexai/internal/llm/copilot.go:292.58,308.2 3 3
+codeberg.org/snonux/hexai/internal/llm/copilot.go:310.28,313.19 3 88
+codeberg.org/snonux/hexai/internal/llm/copilot.go:313.19,315.3 1 1024
+codeberg.org/snonux/hexai/internal/llm/copilot.go:316.2,316.18 1 88
+codeberg.org/snonux/hexai/internal/llm/copilot.go:322.153,323.39 1 3
+codeberg.org/snonux/hexai/internal/llm/copilot.go:323.39,325.3 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:326.2,326.45 1 3
+codeberg.org/snonux/hexai/internal/llm/copilot.go:326.45,328.3 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:329.2,329.12 1 3
+codeberg.org/snonux/hexai/internal/llm/copilot.go:329.12,331.3 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:332.2,354.16 6 3
+codeberg.org/snonux/hexai/internal/llm/copilot.go:354.16,356.3 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:357.2,358.53 2 3
+codeberg.org/snonux/hexai/internal/llm/copilot.go:358.53,360.3 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:362.2,365.27 4 3
+codeberg.org/snonux/hexai/internal/llm/copilot.go:365.27,366.39 1 10
+codeberg.org/snonux/hexai/internal/llm/copilot.go:366.39,367.12 1 3
+codeberg.org/snonux/hexai/internal/llm/copilot.go:369.3,375.88 2 7
+codeberg.org/snonux/hexai/internal/llm/copilot.go:375.88,376.12 1 4
+codeberg.org/snonux/hexai/internal/llm/copilot.go:378.3,378.34 1 3
+codeberg.org/snonux/hexai/internal/llm/copilot.go:378.34,380.4 1 3
+codeberg.org/snonux/hexai/internal/llm/copilot.go:382.2,383.25 2 3
+codeberg.org/snonux/hexai/internal/llm/copilot.go:383.25,384.60 1 4
+codeberg.org/snonux/hexai/internal/llm/copilot.go:384.60,386.4 1 3
+codeberg.org/snonux/hexai/internal/llm/copilot.go:388.2,388.17 1 3
+codeberg.org/snonux/hexai/internal/llm/ollama.go:44.68,45.38 1 10
+codeberg.org/snonux/hexai/internal/llm/ollama.go:45.38,47.3 1 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:48.2,48.36 1 10
+codeberg.org/snonux/hexai/internal/llm/ollama.go:48.36,50.3 1 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:51.2,57.3 1 10
+codeberg.org/snonux/hexai/internal/llm/ollama.go:60.108,62.27 2 6
+codeberg.org/snonux/hexai/internal/llm/ollama.go:62.27,64.3 1 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:65.2,65.19 1 6
+codeberg.org/snonux/hexai/internal/llm/ollama.go:65.19,67.3 1 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:69.2,73.16 5 6
+codeberg.org/snonux/hexai/internal/llm/ollama.go:73.16,75.3 1 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:77.2,80.16 4 6
+codeberg.org/snonux/hexai/internal/llm/ollama.go:80.16,83.3 2 1
+codeberg.org/snonux/hexai/internal/llm/ollama.go:84.2,85.56 2 5
+codeberg.org/snonux/hexai/internal/llm/ollama.go:85.56,87.3 1 2
+codeberg.org/snonux/hexai/internal/llm/ollama.go:89.2,90.64 2 3
+codeberg.org/snonux/hexai/internal/llm/ollama.go:90.64,93.3 2 1
+codeberg.org/snonux/hexai/internal/llm/ollama.go:94.2,94.50 1 2
+codeberg.org/snonux/hexai/internal/llm/ollama.go:94.50,97.3 2 1
+codeberg.org/snonux/hexai/internal/llm/ollama.go:98.2,100.21 3 1
+codeberg.org/snonux/hexai/internal/llm/ollama.go:104.45,104.64 1 1
+codeberg.org/snonux/hexai/internal/llm/ollama.go:105.45,105.70 1 1
+codeberg.org/snonux/hexai/internal/llm/ollama.go:108.126,110.27 2 3
+codeberg.org/snonux/hexai/internal/llm/ollama.go:110.27,112.3 1 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:113.2,113.19 1 3
+codeberg.org/snonux/hexai/internal/llm/ollama.go:113.19,115.3 1 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:117.2,121.16 5 3
+codeberg.org/snonux/hexai/internal/llm/ollama.go:121.16,123.3 1 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:125.2,128.16 4 3
+codeberg.org/snonux/hexai/internal/llm/ollama.go:128.16,131.3 2 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:132.2,133.56 2 3
+codeberg.org/snonux/hexai/internal/llm/ollama.go:133.56,135.3 1 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:137.2,138.6 2 3
+codeberg.org/snonux/hexai/internal/llm/ollama.go:138.6,140.41 2 4
+codeberg.org/snonux/hexai/internal/llm/ollama.go:140.41,141.30 1 1
+codeberg.org/snonux/hexai/internal/llm/ollama.go:141.30,142.10 1 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:144.4,145.14 2 1
+codeberg.org/snonux/hexai/internal/llm/ollama.go:147.3,147.40 1 3
+codeberg.org/snonux/hexai/internal/llm/ollama.go:147.40,150.4 2 1
+codeberg.org/snonux/hexai/internal/llm/ollama.go:151.3,151.58 1 2
+codeberg.org/snonux/hexai/internal/llm/ollama.go:151.58,153.4 1 2
+codeberg.org/snonux/hexai/internal/llm/ollama.go:154.3,154.14 1 2
+codeberg.org/snonux/hexai/internal/llm/ollama.go:154.14,155.9 1 1
+codeberg.org/snonux/hexai/internal/llm/ollama.go:158.2,159.12 2 1
+codeberg.org/snonux/hexai/internal/llm/ollama.go:163.76,165.29 2 9
+codeberg.org/snonux/hexai/internal/llm/ollama.go:165.29,167.3 1 9
+codeberg.org/snonux/hexai/internal/llm/ollama.go:168.2,168.89 1 9
+codeberg.org/snonux/hexai/internal/llm/ollama.go:171.109,174.29 3 12
+codeberg.org/snonux/hexai/internal/llm/ollama.go:174.29,176.3 1 12
+codeberg.org/snonux/hexai/internal/llm/ollama.go:177.2,178.24 2 12
+codeberg.org/snonux/hexai/internal/llm/ollama.go:178.24,180.3 1 1
+codeberg.org/snonux/hexai/internal/llm/ollama.go:180.8,180.31 1 11
+codeberg.org/snonux/hexai/internal/llm/ollama.go:180.31,182.3 1 3
+codeberg.org/snonux/hexai/internal/llm/ollama.go:183.2,183.21 1 12
+codeberg.org/snonux/hexai/internal/llm/ollama.go:183.21,185.3 1 2
+codeberg.org/snonux/hexai/internal/llm/ollama.go:186.2,186.21 1 12
+codeberg.org/snonux/hexai/internal/llm/ollama.go:186.21,188.3 1 2
+codeberg.org/snonux/hexai/internal/llm/ollama.go:189.2,189.22 1 12
+codeberg.org/snonux/hexai/internal/llm/ollama.go:189.22,191.3 1 4
+codeberg.org/snonux/hexai/internal/llm/ollama.go:192.2,192.12 1 12
+codeberg.org/snonux/hexai/internal/llm/ollama.go:195.100,197.16 2 9
+codeberg.org/snonux/hexai/internal/llm/ollama.go:197.16,199.3 1 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:200.2,201.29 2 9
+codeberg.org/snonux/hexai/internal/llm/ollama.go:204.69,205.53 1 9
+codeberg.org/snonux/hexai/internal/llm/ollama.go:205.53,207.3 1 7
+codeberg.org/snonux/hexai/internal/llm/ollama.go:208.2,210.43 3 2
+codeberg.org/snonux/hexai/internal/llm/ollama.go:210.43,213.3 2 1
+codeberg.org/snonux/hexai/internal/llm/ollama.go:214.2,215.68 2 1
+codeberg.org/snonux/hexai/internal/llm/openai.go:78.76,79.38 1 11
+codeberg.org/snonux/hexai/internal/llm/openai.go:79.38,81.3 1 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:82.2,82.36 1 11
+codeberg.org/snonux/hexai/internal/llm/openai.go:82.36,84.3 1 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:85.2,92.3 1 11
+codeberg.org/snonux/hexai/internal/llm/openai.go:95.108,96.20 1 6
+codeberg.org/snonux/hexai/internal/llm/openai.go:96.20,98.3 1 1
+codeberg.org/snonux/hexai/internal/llm/openai.go:99.2,100.27 2 5
+codeberg.org/snonux/hexai/internal/llm/openai.go:100.27,102.3 1 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:103.2,103.19 1 5
+codeberg.org/snonux/hexai/internal/llm/openai.go:103.19,105.3 1 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:106.2,110.16 5 5
+codeberg.org/snonux/hexai/internal/llm/openai.go:110.16,113.3 2 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:114.2,119.16 4 5
+codeberg.org/snonux/hexai/internal/llm/openai.go:119.16,122.3 2 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:123.2,124.56 2 5
+codeberg.org/snonux/hexai/internal/llm/openai.go:124.56,126.3 1 1
+codeberg.org/snonux/hexai/internal/llm/openai.go:127.2,128.16 2 4
+codeberg.org/snonux/hexai/internal/llm/openai.go:128.16,130.3 1 1
+codeberg.org/snonux/hexai/internal/llm/openai.go:131.2,131.27 1 3
+codeberg.org/snonux/hexai/internal/llm/openai.go:131.27,134.3 2 1
+codeberg.org/snonux/hexai/internal/llm/openai.go:135.2,137.21 3 2
+codeberg.org/snonux/hexai/internal/llm/openai.go:141.45,141.64 1 1
+codeberg.org/snonux/hexai/internal/llm/openai.go:142.45,142.70 1 1
+codeberg.org/snonux/hexai/internal/llm/openai.go:146.126,147.20 1 4
+codeberg.org/snonux/hexai/internal/llm/openai.go:147.20,149.3 1 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:150.2,151.27 2 4
+codeberg.org/snonux/hexai/internal/llm/openai.go:151.27,153.3 1 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:154.2,154.19 1 4
+codeberg.org/snonux/hexai/internal/llm/openai.go:154.19,156.3 1 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:157.2,161.16 5 4
+codeberg.org/snonux/hexai/internal/llm/openai.go:161.16,164.3 2 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:165.2,170.16 4 4
+codeberg.org/snonux/hexai/internal/llm/openai.go:170.16,173.3 2 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:174.2,175.56 2 4
+codeberg.org/snonux/hexai/internal/llm/openai.go:175.56,177.3 1 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:179.2,179.64 1 4
+codeberg.org/snonux/hexai/internal/llm/openai.go:179.64,181.3 1 1
+codeberg.org/snonux/hexai/internal/llm/openai.go:182.2,183.12 2 3
+codeberg.org/snonux/hexai/internal/llm/openai.go:187.56,187.104 1 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:190.76,192.29 2 9
+codeberg.org/snonux/hexai/internal/llm/openai.go:192.29,194.3 1 9
+codeberg.org/snonux/hexai/internal/llm/openai.go:195.2,195.89 1 9
+codeberg.org/snonux/hexai/internal/llm/openai.go:198.105,201.29 3 11
+codeberg.org/snonux/hexai/internal/llm/openai.go:201.29,203.3 1 11
+codeberg.org/snonux/hexai/internal/llm/openai.go:204.2,204.24 1 11
+codeberg.org/snonux/hexai/internal/llm/openai.go:204.24,206.3 1 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:206.8,206.31 1 11
+codeberg.org/snonux/hexai/internal/llm/openai.go:206.31,209.3 2 11
+codeberg.org/snonux/hexai/internal/llm/openai.go:210.2,210.21 1 11
+codeberg.org/snonux/hexai/internal/llm/openai.go:210.21,212.3 1 2
+codeberg.org/snonux/hexai/internal/llm/openai.go:213.2,213.21 1 11
+codeberg.org/snonux/hexai/internal/llm/openai.go:213.21,215.3 1 2
+codeberg.org/snonux/hexai/internal/llm/openai.go:216.2,216.12 1 11
+codeberg.org/snonux/hexai/internal/llm/openai.go:219.127,221.16 2 5
+codeberg.org/snonux/hexai/internal/llm/openai.go:221.16,223.3 1 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:224.2,225.28 2 5
+codeberg.org/snonux/hexai/internal/llm/openai.go:225.28,227.3 1 5
+codeberg.org/snonux/hexai/internal/llm/openai.go:228.2,228.29 1 5
+codeberg.org/snonux/hexai/internal/llm/openai.go:231.152,233.16 2 4
+codeberg.org/snonux/hexai/internal/llm/openai.go:233.16,235.3 1 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:236.2,238.28 3 4
+codeberg.org/snonux/hexai/internal/llm/openai.go:238.28,240.3 1 4
+codeberg.org/snonux/hexai/internal/llm/openai.go:241.2,241.29 1 4
+codeberg.org/snonux/hexai/internal/llm/openai.go:244.69,245.53 1 11
+codeberg.org/snonux/hexai/internal/llm/openai.go:245.53,247.3 1 8
+codeberg.org/snonux/hexai/internal/llm/openai.go:248.2,250.55 3 3
+codeberg.org/snonux/hexai/internal/llm/openai.go:250.55,253.3 2 2
+codeberg.org/snonux/hexai/internal/llm/openai.go:254.2,255.68 2 1
+codeberg.org/snonux/hexai/internal/llm/openai.go:258.85,260.64 2 4
+codeberg.org/snonux/hexai/internal/llm/openai.go:260.64,263.3 2 1
+codeberg.org/snonux/hexai/internal/llm/openai.go:264.2,264.17 1 3
+codeberg.org/snonux/hexai/internal/llm/openai.go:267.90,273.21 5 5
+codeberg.org/snonux/hexai/internal/llm/openai.go:273.21,275.41 2 11
+codeberg.org/snonux/hexai/internal/llm/openai.go:275.41,276.12 1 3
+codeberg.org/snonux/hexai/internal/llm/openai.go:278.3,279.45 2 8
+codeberg.org/snonux/hexai/internal/llm/openai.go:279.45,280.9 1 3
+codeberg.org/snonux/hexai/internal/llm/openai.go:282.3,283.65 2 5
+codeberg.org/snonux/hexai/internal/llm/openai.go:283.65,284.12 1 2
+codeberg.org/snonux/hexai/internal/llm/openai.go:286.3,286.54 1 3
+codeberg.org/snonux/hexai/internal/llm/openai.go:286.54,289.4 2 1
+codeberg.org/snonux/hexai/internal/llm/openai.go:290.3,290.36 1 2
+codeberg.org/snonux/hexai/internal/llm/openai.go:290.36,291.30 1 2
+codeberg.org/snonux/hexai/internal/llm/openai.go:291.30,293.5 1 2
+codeberg.org/snonux/hexai/internal/llm/openai.go:296.2,296.38 1 4
+codeberg.org/snonux/hexai/internal/llm/openai.go:296.38,299.3 2 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:300.2,300.12 1 4
+codeberg.org/snonux/hexai/internal/llm/provider.go:58.47,58.73 1 1
+codeberg.org/snonux/hexai/internal/llm/provider.go:58.73,58.92 1 1
+codeberg.org/snonux/hexai/internal/llm/provider.go:59.47,59.73 1 1
+codeberg.org/snonux/hexai/internal/llm/provider.go:59.73,59.94 1 1
+codeberg.org/snonux/hexai/internal/llm/provider.go:60.47,60.73 1 1
+codeberg.org/snonux/hexai/internal/llm/provider.go:60.73,60.92 1 1
+codeberg.org/snonux/hexai/internal/llm/provider.go:61.45,62.26 1 1
+codeberg.org/snonux/hexai/internal/llm/provider.go:62.26,62.66 1 1
+codeberg.org/snonux/hexai/internal/llm/provider.go:85.84,87.13 2 6
+codeberg.org/snonux/hexai/internal/llm/provider.go:87.13,89.3 1 0
+codeberg.org/snonux/hexai/internal/llm/provider.go:90.2,90.11 1 6
+codeberg.org/snonux/hexai/internal/llm/provider.go:91.16,92.44 1 2
+codeberg.org/snonux/hexai/internal/llm/provider.go:92.44,94.4 1 1
+codeberg.org/snonux/hexai/internal/llm/provider.go:96.3,96.35 1 1
+codeberg.org/snonux/hexai/internal/llm/provider.go:96.35,99.4 2 1
+codeberg.org/snonux/hexai/internal/llm/provider.go:100.3,100.97 1 1
+codeberg.org/snonux/hexai/internal/llm/provider.go:101.16,102.35 1 0
+codeberg.org/snonux/hexai/internal/llm/provider.go:102.35,105.4 2 0
+codeberg.org/snonux/hexai/internal/llm/provider.go:106.3,106.83 1 0
+codeberg.org/snonux/hexai/internal/llm/provider.go:107.17,108.45 1 3
+codeberg.org/snonux/hexai/internal/llm/provider.go:108.45,110.4 1 1
+codeberg.org/snonux/hexai/internal/llm/provider.go:111.3,111.36 1 2
+codeberg.org/snonux/hexai/internal/llm/provider.go:111.36,114.4 2 2
+codeberg.org/snonux/hexai/internal/llm/provider.go:115.3,115.102 1 2
+codeberg.org/snonux/hexai/internal/llm/provider.go:116.10,117.55 1 1
+codeberg.org/snonux/hexai/internal/llm/util.go:6.47,6.77 1 2
+codeberg.org/snonux/hexai/internal/llmutils/client.go:12.62,26.39 3 0
+codeberg.org/snonux/hexai/internal/llmutils/client.go:26.39,28.6 1 0
+codeberg.org/snonux/hexai/internal/llmutils/client.go:29.5,30.39 2 0
+codeberg.org/snonux/hexai/internal/llmutils/client.go:30.39,32.6 1 0
+codeberg.org/snonux/hexai/internal/llmutils/client.go:33.5,33.51 1 0
+codeberg.org/snonux/hexai/internal/logging/chatlogger.go:9.48,11.2 1 30
+codeberg.org/snonux/hexai/internal/logging/chatlogger.go:18.3,20.12 2 23
+codeberg.org/snonux/hexai/internal/logging/chatlogger.go:20.12,22.3 1 7
+codeberg.org/snonux/hexai/internal/logging/chatlogger.go:23.2,25.29 2 23
+codeberg.org/snonux/hexai/internal/logging/chatlogger.go:25.29,28.3 1 23
+codeberg.org/snonux/hexai/internal/logging/logging.go:27.26,27.37 1 0
+codeberg.org/snonux/hexai/internal/logging/logging.go:30.47,31.16 1 95
+codeberg.org/snonux/hexai/internal/logging/logging.go:31.16,33.3 1 95
+codeberg.org/snonux/hexai/internal/logging/logging.go:34.2,35.48 2 0
+codeberg.org/snonux/hexai/internal/logging/logging.go:43.32,43.55 1 0
+codeberg.org/snonux/hexai/internal/logging/logging.go:46.37,47.25 1 28
+codeberg.org/snonux/hexai/internal/logging/logging.go:47.25,48.32 1 0
+codeberg.org/snonux/hexai/internal/logging/logging.go:48.32,50.4 1 0
+codeberg.org/snonux/hexai/internal/logging/logging.go:51.3,51.37 1 0
+codeberg.org/snonux/hexai/internal/logging/logging.go:53.2,53.10 1 28
+codeberg.org/snonux/hexai/internal/lsp/context.go:16.96,18.14 2 0
+codeberg.org/snonux/hexai/internal/lsp/context.go:19.17,20.19 1 0
+codeberg.org/snonux/hexai/internal/lsp/context.go:21.16,22.41 1 0
+codeberg.org/snonux/hexai/internal/lsp/context.go:23.26,24.14 1 0
+codeberg.org/snonux/hexai/internal/lsp/context.go:24.14,26.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/context.go:27.3,27.19 1 0
+codeberg.org/snonux/hexai/internal/lsp/context.go:28.21,29.38 1 0
+codeberg.org/snonux/hexai/internal/lsp/context.go:30.10,32.19 1 0
+codeberg.org/snonux/hexai/internal/lsp/context.go:36.65,38.35 2 0
+codeberg.org/snonux/hexai/internal/lsp/context.go:38.35,41.3 2 0
+codeberg.org/snonux/hexai/internal/lsp/context.go:42.2,45.15 4 0
+codeberg.org/snonux/hexai/internal/lsp/context.go:45.15,47.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/context.go:48.2,49.13 2 0
+codeberg.org/snonux/hexai/internal/lsp/context.go:49.13,51.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/context.go:52.2,53.57 2 0
+codeberg.org/snonux/hexai/internal/lsp/context.go:56.53,58.14 2 0
+codeberg.org/snonux/hexai/internal/lsp/context.go:58.14,61.3 2 0
+codeberg.org/snonux/hexai/internal/lsp/context.go:62.2,62.59 1 0
+codeberg.org/snonux/hexai/internal/lsp/context.go:67.64,68.20 1 0
+codeberg.org/snonux/hexai/internal/lsp/context.go:68.20,70.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/context.go:71.2,72.27 2 0
+codeberg.org/snonux/hexai/internal/lsp/context.go:72.27,74.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/context.go:76.2,77.21 2 0
+codeberg.org/snonux/hexai/internal/lsp/context.go:77.21,79.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/context.go:80.2,80.53 1 0
+codeberg.org/snonux/hexai/internal/lsp/context.go:80.53,82.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/context.go:83.2,83.19 1 0
+codeberg.org/snonux/hexai/internal/lsp/document.go:15.48,19.2 3 0
+codeberg.org/snonux/hexai/internal/lsp/document.go:21.45,25.2 3 0
+codeberg.org/snonux/hexai/internal/lsp/document.go:27.33,31.2 3 0
+codeberg.org/snonux/hexai/internal/lsp/document.go:33.52,37.2 3 0
+codeberg.org/snonux/hexai/internal/lsp/document.go:40.37,43.2 2 0
+codeberg.org/snonux/hexai/internal/lsp/document.go:45.96,47.35 2 0
+codeberg.org/snonux/hexai/internal/lsp/document.go:47.35,49.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/document.go:50.2,51.13 2 0
+codeberg.org/snonux/hexai/internal/lsp/document.go:51.13,53.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/document.go:54.2,54.25 1 0
+codeberg.org/snonux/hexai/internal/lsp/document.go:54.25,56.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/document.go:57.2,58.16 2 0
+codeberg.org/snonux/hexai/internal/lsp/document.go:58.16,60.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/document.go:61.2,61.26 1 0
+codeberg.org/snonux/hexai/internal/lsp/document.go:61.26,63.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/document.go:64.2,64.28 1 0
+codeberg.org/snonux/hexai/internal/lsp/document.go:64.28,66.85 2 0
+codeberg.org/snonux/hexai/internal/lsp/document.go:66.85,68.9 2 0
+codeberg.org/snonux/hexai/internal/lsp/document.go:71.2,71.39 1 0
+codeberg.org/snonux/hexai/internal/lsp/document.go:78.71,80.35 2 0
+codeberg.org/snonux/hexai/internal/lsp/document.go:80.35,82.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/document.go:83.2,84.13 2 0
+codeberg.org/snonux/hexai/internal/lsp/document.go:84.13,86.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/document.go:87.2,87.25 1 0
+codeberg.org/snonux/hexai/internal/lsp/document.go:87.25,89.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/document.go:91.2,92.28 2 0
+codeberg.org/snonux/hexai/internal/lsp/document.go:92.28,93.44 1 0
+codeberg.org/snonux/hexai/internal/lsp/document.go:93.44,95.9 2 0
+codeberg.org/snonux/hexai/internal/lsp/document.go:98.3,98.40 1 0
+codeberg.org/snonux/hexai/internal/lsp/document.go:98.40,99.9 1 0
+codeberg.org/snonux/hexai/internal/lsp/document.go:102.2,102.20 1 0
+codeberg.org/snonux/hexai/internal/lsp/document.go:102.20,104.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/document.go:106.2,106.35 1 0
+codeberg.org/snonux/hexai/internal/lsp/document.go:106.35,109.17 3 0
+codeberg.org/snonux/hexai/internal/lsp/document.go:109.17,110.15 1 0
+codeberg.org/snonux/hexai/internal/lsp/document.go:110.15,112.5 1 0
+codeberg.org/snonux/hexai/internal/lsp/document.go:114.4,114.29 1 0
+codeberg.org/snonux/hexai/internal/lsp/document.go:114.29,116.5 1 0
+codeberg.org/snonux/hexai/internal/lsp/document.go:119.2,119.13 1 0
+codeberg.org/snonux/hexai/internal/lsp/document.go:122.46,123.28 1 0
+codeberg.org/snonux/hexai/internal/lsp/document.go:123.28,124.29 1 0
+codeberg.org/snonux/hexai/internal/lsp/document.go:124.29,126.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/document.go:128.2,128.14 1 0
+codeberg.org/snonux/hexai/internal/lsp/document.go:131.31,133.18 2 0
+codeberg.org/snonux/hexai/internal/lsp/document.go:133.18,135.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/document.go:136.2,136.10 1 0
+codeberg.org/snonux/hexai/internal/lsp/document.go:139.33,141.49 2 0
+codeberg.org/snonux/hexai/internal/lsp/document.go:141.49,143.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/document.go:144.2,144.10 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:10.38,11.41 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:11.41,14.3 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:15.2,15.22 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:15.22,17.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:28.60,30.34 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:30.34,31.105 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:31.105,34.10 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:36.5,36.19 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:48.86,54.53 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:54.53,56.6 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:57.5,57.47 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:57.47,58.57 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:58.57,63.10 4 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:65.5,65.49 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:65.49,66.58 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:66.58,71.10 4 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:73.5,73.47 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:73.47,75.6 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:76.5,76.46 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:76.46,78.6 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:79.5,79.47 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:79.47,81.6 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:82.5,82.24 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:82.24,84.6 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:86.5,87.33 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:87.33,88.69 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:88.69,90.10 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:92.5,93.36 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:117.72,120.2 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:191.151,194.24 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:194.24,196.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:197.2,199.24 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:199.24,201.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:202.2,204.24 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:204.24,207.3 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:208.2,209.32 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:209.32,211.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:212.2,213.14 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:213.14,215.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:217.2,231.12 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:234.64,238.9 4 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:238.9,240.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:242.2,243.16 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:246.56,249.24 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:249.24,251.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:252.2,252.44 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:252.44,255.33 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:255.33,260.4 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:261.3,261.9 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:264.2,265.29 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:268.51,272.37 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:272.37,273.15 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:273.15,275.9 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:278.2,278.14 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:278.14,280.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:281.2,281.50 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:288.74,290.22 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:290.22,295.49 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:295.49,297.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:297.9,300.4 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:303.3,303.115 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:303.115,305.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:307.3,307.27 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:307.27,309.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:311.3,311.27 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:311.27,312.34 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:312.34,313.38 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:313.38,314.35 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:314.35,316.7 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:318.5,318.17 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:321.4,321.16 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:326.2,327.36 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:327.36,329.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:331.2,331.114 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:331.114,333.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:334.2,335.35 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:335.35,336.14 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:336.14,338.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:340.2,340.14 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:343.137,348.24 5 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:348.24,350.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:351.2,361.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:436.74,445.2 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:17.48,19.55 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:19.55,20.23 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:20.23,22.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:23.3,23.9 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:25.2,26.57 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:26.57,27.23 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:27.23,29.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:30.3,30.9 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:32.2,35.53 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:35.53,37.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:38.2,38.57 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:38.57,40.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:41.2,41.54 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:41.54,43.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:44.2,44.51 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:44.51,46.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:47.2,47.22 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:47.22,49.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:52.85,53.85 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:53.85,64.3 4 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:65.2,65.12 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:68.89,70.21 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:70.21,72.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:73.2,82.12 4 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:85.70,86.45 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:86.45,88.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:89.2,97.58 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:97.58,99.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:100.2,100.22 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:101.17,108.72 7 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:108.72,109.66 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:109.66,113.5 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:114.9,116.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:117.21,120.43 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:120.43,121.24 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:121.24,123.5 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:123.10,125.5 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:127.3,133.72 7 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:133.72,134.66 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:134.66,138.5 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:139.9,141.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:142.18,149.72 7 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:149.72,150.66 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:150.66,154.5 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:155.9,157.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:158.17,159.92 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:159.92,167.4 4 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:169.2,169.18 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:172.55,174.56 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:174.56,175.23 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:175.23,177.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:178.3,178.9 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:180.2,180.49 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:180.49,183.3 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:184.2,184.26 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:190.85,191.22 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:191.22,193.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:194.2,195.53 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:195.53,197.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:198.2,198.31 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:198.31,200.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:201.2,202.36 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:202.36,203.34 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:203.34,205.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:207.2,207.12 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:211.37,213.32 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:213.32,215.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:216.2,216.32 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:216.32,218.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:220.2,220.29 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:220.29,222.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:224.2,224.29 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:224.29,226.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:227.2,227.13 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:230.34,231.22 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:231.22,233.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:234.2,234.34 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:237.37,238.22 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:238.22,240.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:241.2,241.34 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:246.76,248.80 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:248.80,250.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:252.2,252.71 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:252.71,254.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:256.2,257.41 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:257.41,259.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:260.2,267.12 4 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:271.86,272.24 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:272.24,274.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:275.2,275.34 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:275.34,277.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:278.2,286.12 4 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:289.95,291.76 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:291.76,293.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:295.2,296.21 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:296.21,298.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:299.2,301.36 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:301.36,303.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:304.2,306.39 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:306.39,308.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:310.2,314.26 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:314.26,320.22 4 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:320.22,323.4 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:324.3,326.102 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:326.102,328.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:329.3,336.40 6 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:336.40,338.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:339.3,341.19 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:341.19,343.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:344.3,345.33 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:348.2,349.15 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:349.15,351.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:352.2,367.13 13 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:367.13,370.3 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:371.2,372.32 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:376.62,377.39 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:377.39,379.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:380.2,382.16 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:382.16,384.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:385.2,386.29 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:389.35,390.41 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:390.41,392.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:393.2,393.14 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:397.48,398.27 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:398.27,400.39 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:400.39,403.45 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:403.45,405.5 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:406.4,406.46 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:406.46,408.5 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:409.4,409.46 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:409.46,411.5 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:412.4,412.15 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:415.2,415.11 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:419.63,420.13 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:420.13,422.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:423.2,423.23 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:423.23,425.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:427.2,428.28 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:428.28,429.42 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:429.42,431.9 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:433.3,433.38 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:433.38,434.9 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:437.2,437.17 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:437.17,439.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:441.2,443.38 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:443.38,445.32 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:445.32,446.17 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:447.13,449.20 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:450.13,451.18 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:451.18,453.6 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:454.5,454.31 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:454.31,456.6 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:461.2,461.15 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:461.15,463.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:464.2,464.18 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:468.65,469.24 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:469.24,476.71 7 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:476.71,478.21 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:478.21,480.5 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:481.9,483.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:486.2,487.16 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:487.16,489.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:490.2,490.115 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:494.43,498.39 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:498.39,500.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:501.2,503.34 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:503.34,505.63 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:505.63,507.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:510.2,510.42 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:510.42,512.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:513.2,513.11 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:516.37,517.16 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:517.16,519.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:520.2,521.32 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:521.32,523.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:524.2,524.18 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:15.48,18.55 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:18.55,25.19 5 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:25.19,27.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:28.3,28.25 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:28.25,32.10 4 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:32.10,35.5 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:38.2,39.73 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:44.67,45.22 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:45.22,47.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:48.2,52.48 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:52.48,54.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:54.8,57.3 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:58.2,58.46 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:63.99,66.2 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:68.98,71.2 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:73.160,78.52 4 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:78.52,81.3 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:82.2,82.51 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:82.51,84.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:86.2,91.86 4 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:91.86,96.3 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:97.2,97.58 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:97.58,100.3 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:102.2,102.83 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:102.83,105.3 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:108.2,108.126 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:108.126,110.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:113.2,116.29 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:116.29,118.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:119.2,121.32 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:121.32,123.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:125.2,126.29 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:126.29,128.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:129.2,132.16 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:132.16,136.3 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:137.2,141.19 4 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:141.19,143.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:144.2,145.75 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:149.38,150.16 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:150.16,152.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:153.2,156.42 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:156.42,158.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:158.8,161.3 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:162.2,162.27 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:166.91,168.24 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:168.24,170.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:171.2,171.40 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:171.40,172.35 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:172.35,174.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:175.3,176.37 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:176.37,177.18 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:177.18,180.5 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:183.2,183.14 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:187.119,191.24 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:191.24,193.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:194.2,195.13 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:195.13,197.68 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:197.68,199.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:201.2,201.19 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:201.19,203.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:205.2,206.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:206.12,208.28 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:208.28,210.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:212.3,212.8 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:214.2,216.50 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:216.50,218.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:219.2,219.23 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:223.193,225.9 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:225.9,227.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:228.2,237.32 6 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:237.32,239.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:240.2,241.24 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:241.24,243.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:244.2,250.30 5 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:250.30,252.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:253.2,254.40 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:254.40,256.20 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:256.20,258.21 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:258.21,260.5 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:261.4,261.54 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:261.54,263.21 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:263.21,265.6 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:267.4,267.40 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:267.40,271.5 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:273.8,273.23 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:273.23,275.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:276.2,276.19 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:281.55,283.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:283.12,285.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:286.2,286.6 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:286.6,290.20 4 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:290.20,292.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:293.3,294.17 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:294.17,296.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:297.3,299.10 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:300.21,302.10 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:303.18,303.18 0 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:311.60,313.19 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:313.19,315.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:316.2,317.6 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:317.6,321.23 4 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:321.23,325.11 4 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:326.22,328.17 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:329.19,331.13 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:335.3,337.14 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:342.177,354.14 4 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:354.14,357.3 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:358.2,358.68 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:358.68,360.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:361.2,363.52 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:363.52,365.37 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:365.37,367.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:368.3,368.73 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:370.2,370.17 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:374.101,376.57 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:376.57,377.78 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:377.78,379.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:381.2,381.19 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:381.19,383.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:384.2,384.19 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:384.19,386.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:387.2,387.56 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:387.56,388.57 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:388.57,390.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:392.2,392.16 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:21.45,23.55 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:23.55,26.3 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:29.47,31.55 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:31.55,32.32 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:32.32,34.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:35.3,37.44 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:41.46,43.55 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:43.55,46.3 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:52.76,54.14 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:54.14,56.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:58.2,59.14 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:59.14,61.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:62.2,62.26 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:62.26,64.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:65.2,66.13 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:66.13,68.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:69.2,69.30 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:69.30,71.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:73.2,74.28 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:74.28,77.3 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:78.2,83.43 5 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:83.43,86.3 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:87.2,87.27 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:95.50,96.24 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:96.24,98.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:99.2,100.35 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:100.35,102.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:103.2,103.30 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:103.30,106.14 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:106.14,107.39 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:107.39,109.13 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:111.4,111.9 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:113.3,113.12 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:113.12,114.12 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:117.3,117.25 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:117.25,118.12 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:121.3,121.37 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:121.37,122.12 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:125.3,125.12 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:125.12,126.12 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:128.3,130.38 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:130.38,131.19 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:131.19,133.10 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:136.3,136.17 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:136.17,137.12 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:140.3,141.63 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:141.63,143.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:144.3,144.80 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:144.80,145.12 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:148.3,151.19 4 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:151.19,152.12 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:154.3,156.38 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:156.38,166.18 9 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:166.18,169.5 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:170.4,171.17 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:171.17,173.5 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:174.4,174.61 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:177.3,177.8 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:183.110,185.14 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:185.14,187.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:189.2,200.54 8 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:205.96,207.14 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:207.14,209.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:210.2,213.31 4 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:213.31,214.53 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:214.53,216.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:217.3,217.12 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:217.12,218.9 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:220.3,220.61 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:220.61,221.9 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:223.3,224.14 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:224.14,226.36 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:226.36,229.13 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:231.4,231.9 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:233.3,233.53 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:233.53,235.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:236.3,236.12 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:236.12,237.9 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:239.3,242.6 4 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:244.2,245.26 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:245.26,246.35 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:246.35,248.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:249.3,249.35 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:249.35,251.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:253.2,254.13 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:258.45,260.17 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:260.17,262.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:264.2,264.50 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:264.50,266.40 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:266.40,267.18 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:267.18,269.5 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:273.2,274.14 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:275.21,276.48 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:277.10,278.12 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:283.68,290.2 6 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:293.46,300.2 6 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:303.61,318.2 9 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:322.59,323.12 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:323.12,326.3 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_execute.go:8.52,10.55 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_execute.go:10.55,13.3 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_execute.go:14.2,14.19 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_execute.go:15.28,16.28 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_execute.go:16.28,20.58 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_execute.go:20.58,22.5 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_execute.go:23.4,23.17 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_execute.go:23.17,25.5 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_execute.go:27.3,28.9 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_execute.go:29.10,32.9 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_init.go:11.48,13.24 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_init.go:13.24,15.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_init.go:16.2,27.27 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_init.go:30.38,32.2 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_init.go:34.46,36.2 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_init.go:38.31,41.2 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:21.55,23.32 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:23.32,25.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:26.2,26.13 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:30.41,35.2 4 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:37.41,42.2 4 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:44.32,47.23 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:47.23,49.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:50.2,51.24 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:51.24,53.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:54.2,57.15 4 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:57.15,59.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:60.2,63.211 4 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:67.51,68.41 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:68.41,70.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:71.2,73.71 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:77.62,77.105 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:79.118,80.14 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:80.14,83.16 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:83.16,86.35 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:86.35,88.5 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:89.4,89.36 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:89.36,91.5 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:92.4,94.59 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:94.59,96.5 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:97.4,97.21 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:100.2,103.19 4 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:106.51,107.23 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:107.23,109.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:110.2,110.13 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:110.13,112.100 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:112.100,114.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:116.3,116.8 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:118.2,118.11 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:121.32,123.2 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:126.44,127.50 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:127.50,129.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:130.2,130.35 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:133.40,135.20 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:135.20,136.40 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:136.40,138.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:140.3,140.8 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:142.2,142.12 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:142.12,144.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:145.2,145.17 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:148.52,149.38 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:149.38,151.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:152.2,153.27 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:153.27,154.34 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:154.34,155.12 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:157.3,157.36 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:157.36,158.12 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:160.3,160.25 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:162.2,162.34 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:170.64,172.22 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:172.22,175.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:175.12,177.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:178.3,180.74 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:180.74,182.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:185.3,186.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:186.12,188.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:189.3,190.48 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:190.48,192.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:194.3,195.18 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:195.18,197.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:199.3,200.29 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:202.2,202.24 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:208.41,212.31 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:212.31,214.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:215.2,215.29 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:215.29,217.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:218.2,218.31 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:218.31,220.32 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:220.32,222.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:224.2,224.14 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:228.83,231.102 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:231.102,233.36 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:233.36,235.136 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:235.136,237.5 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:238.4,240.34 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:240.34,242.5 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:246.2,246.65 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:246.65,247.53 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:247.53,249.37 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:249.37,251.137 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:251.137,253.6 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:254.5,256.35 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:256.35,258.6 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:262.2,262.19 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:266.80,267.22 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:267.22,269.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:270.2,272.40 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:272.40,274.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:275.2,275.34 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:275.34,276.31 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:276.31,277.12 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:279.3,280.16 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:280.16,281.12 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:283.3,283.32 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:283.32,285.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:287.2,287.19 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:290.36,292.2 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:295.39,295.77 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:298.43,300.13 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:300.13,302.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:303.2,304.11 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:304.11,306.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:307.2,308.14 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:308.14,310.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:311.2,312.19 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:316.56,318.89 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:318.89,320.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:321.2,321.14 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:325.52,326.32 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:326.32,328.28 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:328.28,330.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:331.3,331.34 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:331.34,333.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:334.3,334.42 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:334.42,336.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:337.3,337.49 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:339.2,342.27 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:342.27,344.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:345.2,345.36 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:345.36,347.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:348.2,351.49 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:351.49,353.24 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:353.24,355.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:358.2,359.25 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:359.25,361.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:362.2,362.33 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:362.33,364.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:365.2,366.19 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:370.67,372.35 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:372.35,374.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:375.2,376.31 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:376.31,378.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:379.2,379.14 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:382.69,383.32 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:383.32,385.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:386.2,386.47 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:389.45,391.22 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:391.22,395.12 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:395.12,397.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:398.3,400.32 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:400.32,402.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:403.3,404.46 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:404.46,406.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:409.3,410.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:410.12,412.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:413.3,414.49 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:414.49,416.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:418.3,418.14 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:420.2,420.14 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:423.67,426.28 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:426.28,428.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:428.12,429.9 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:431.3,433.12 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:433.12,434.9 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:436.3,436.43 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:436.43,438.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:440.3,440.34 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:440.34,442.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:444.3,445.48 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:445.48,447.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:449.3,449.25 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:449.25,451.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:453.3,454.50 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:454.50,456.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:457.3,458.22 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:460.2,460.14 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:126.90,129.20 3 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:129.20,131.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:132.2,134.23 3 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:134.23,136.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:137.2,138.22 2 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:138.22,140.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:141.2,142.27 2 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:142.27,144.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:145.2,151.38 6 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:151.38,154.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:154.8,156.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:157.2,160.35 4 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:160.35,162.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:163.2,163.35 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:163.35,165.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:167.2,167.46 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:167.46,169.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:169.8,171.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:172.2,172.47 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:172.47,174.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:174.8,176.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:177.2,177.46 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:177.46,179.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:179.8,181.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:182.2,182.33 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:182.33,184.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:184.8,186.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:189.2,207.24 17 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:207.24,209.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:210.2,210.25 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:210.25,212.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:213.2,213.24 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:213.24,215.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:216.2,216.29 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:216.29,218.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:220.2,222.47 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:222.47,222.72 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:224.47,224.65 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:233.2,233.10 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:236.30,237.6 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:237.6,239.20 2 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:239.20,241.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:242.3,242.17 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:242.17,244.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:245.3,246.52 2 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:246.52,248.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:250.3,250.23 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:250.23,252.12 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:254.3,255.15 2 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:255.15,257.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/transport.go:15.48,18.6 3 0
+codeberg.org/snonux/hexai/internal/lsp/transport.go:18.6,20.17 2 0
+codeberg.org/snonux/hexai/internal/lsp/transport.go:20.17,22.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/transport.go:23.3,23.17 1 0
+codeberg.org/snonux/hexai/internal/lsp/transport.go:23.17,24.9 1 0
+codeberg.org/snonux/hexai/internal/lsp/transport.go:26.3,27.22 2 0
+codeberg.org/snonux/hexai/internal/lsp/transport.go:27.22,28.12 1 0
+codeberg.org/snonux/hexai/internal/lsp/transport.go:30.3,32.14 3 0
+codeberg.org/snonux/hexai/internal/lsp/transport.go:33.25,35.18 2 0
+codeberg.org/snonux/hexai/internal/lsp/transport.go:35.18,37.5 1 0
+codeberg.org/snonux/hexai/internal/lsp/transport.go:38.4,38.21 1 0
+codeberg.org/snonux/hexai/internal/lsp/transport.go:41.2,41.24 1 0
+codeberg.org/snonux/hexai/internal/lsp/transport.go:41.24,43.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/transport.go:44.2,45.50 2 0
+codeberg.org/snonux/hexai/internal/lsp/transport.go:45.50,47.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/transport.go:48.2,48.17 1 0
+codeberg.org/snonux/hexai/internal/lsp/transport.go:51.38,53.16 2 0
+codeberg.org/snonux/hexai/internal/lsp/transport.go:53.16,56.3 2 0
+codeberg.org/snonux/hexai/internal/lsp/transport.go:57.2,58.57 2 0
+codeberg.org/snonux/hexai/internal/lsp/transport.go:58.57,61.3 2 0
+codeberg.org/snonux/hexai/internal/lsp/transport.go:62.2,62.45 1 0
+codeberg.org/snonux/hexai/internal/lsp/transport.go:62.45,65.3 2 0
+codeberg.org/snonux/hexai/internal/testutil/fixtures.go:4.33,6.2 1 0
+codeberg.org/snonux/hexai/internal/testutil/fixtures.go:9.34,11.2 1 0
+codeberg.org/snonux/hexai/internal/testutil/fixtures.go:14.43,16.2 1 0
+codeberg.org/snonux/hexai/internal/testutil/fixtures.go:19.33,21.2 1 0
+codeberg.org/snonux/hexai/internal/testutil/fixtures.go:24.29,26.2 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:6.62,7.34 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:7.34,9.6 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:10.5,11.28 2 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:11.28,13.6 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:14.5,14.15 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:18.39,20.16 2 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:20.16,22.6 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:23.5,25.69 3 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:25.69,27.6 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:28.5,29.57 2 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:29.57,31.6 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:32.5,32.54 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:32.54,34.6 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:35.5,37.72 3 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:37.72,40.6 2 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:41.5,41.13 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:47.60,49.34 2 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:49.34,50.105 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:50.105,53.10 2 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:55.5,55.19 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:59.79,62.53 3 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:62.53,64.6 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:65.5,65.47 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:65.47,66.57 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:66.57,71.10 4 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:73.5,73.49 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:73.49,74.58 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:74.58,79.10 4 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:81.5,81.47 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:81.47,83.6 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:84.5,84.46 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:84.46,86.6 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:87.5,87.47 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:87.47,89.6 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:90.5,90.24 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:90.24,90.50 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:91.5,92.33 2 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:92.33,93.69 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:93.69,93.81 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:95.5,96.36 2 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:100.79,101.36 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:101.36,102.27 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:102.27,102.37 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:103.9,103.48 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:103.48,103.58 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:104.9,104.44 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:104.44,105.31 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:105.31,106.49 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:106.49,106.59 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:107.17,108.32 2 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:108.32,108.64 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:112.5,112.29 1 0
+codeberg.org/snonux/hexai/internal/tmux/tmux.go:11.23,11.60 1 0
+codeberg.org/snonux/hexai/internal/tmux/tmux.go:17.23,17.72 2 0
+codeberg.org/snonux/hexai/internal/tmux/tmux.go:20.23,20.76 1 0
+codeberg.org/snonux/hexai/internal/tmux/tmux.go:31.52,32.20 1 0
+codeberg.org/snonux/hexai/internal/tmux/tmux.go:32.20,34.3 1 0
+codeberg.org/snonux/hexai/internal/tmux/tmux.go:35.2,36.19 2 0
+codeberg.org/snonux/hexai/internal/tmux/tmux.go:36.19,38.3 1 0
+codeberg.org/snonux/hexai/internal/tmux/tmux.go:38.8,40.3 1 0
+codeberg.org/snonux/hexai/internal/tmux/tmux.go:41.2,41.45 1 0
+codeberg.org/snonux/hexai/internal/tmux/tmux.go:41.45,43.3 1 0
+codeberg.org/snonux/hexai/internal/tmux/tmux.go:44.2,44.42 1 0
+codeberg.org/snonux/hexai/internal/tmux/tmux.go:44.42,46.3 1 0
+codeberg.org/snonux/hexai/internal/tmux/tmux.go:48.2,51.19 4 0
+codeberg.org/snonux/hexai/internal/tmux/tmux.go:56.38,58.25 2 0
+codeberg.org/snonux/hexai/internal/tmux/tmux.go:58.25,59.14 1 0
+codeberg.org/snonux/hexai/internal/tmux/tmux.go:59.14,61.12 2 0
+codeberg.org/snonux/hexai/internal/tmux/tmux.go:63.3,63.20 1 0
+codeberg.org/snonux/hexai/internal/tmux/tmux.go:63.20,65.12 2 0
+codeberg.org/snonux/hexai/internal/tmux/tmux.go:69.3,70.33 2 0
+codeberg.org/snonux/hexai/internal/tmux/tmux.go:72.2,72.31 1 0
+codeberg.org/snonux/hexai/internal/tmux/tmux.go:76.32,77.30 1 0
+codeberg.org/snonux/hexai/internal/tmux/tmux.go:77.30,79.141 2 0
+codeberg.org/snonux/hexai/internal/tmux/tmux.go:79.141,80.12 1 0
+codeberg.org/snonux/hexai/internal/tmux/tmux.go:82.3,82.15 1 0
+codeberg.org/snonux/hexai/internal/tmux/tmux.go:84.2,84.13 1 0
+codeberg.org/snonux/hexai/cmd/hexai/main.go:14.13,17.18 3 0
+codeberg.org/snonux/hexai/cmd/hexai/main.go:17.18,20.3 2 0
+codeberg.org/snonux/hexai/cmd/hexai/main.go:22.2,22.104 1 0
+codeberg.org/snonux/hexai/cmd/hexai/main.go:22.104,24.3 1 0
+codeberg.org/snonux/hexai/cmd/hexai-action/main.go:12.13,28.110 11 0
+codeberg.org/snonux/hexai/cmd/hexai-action/main.go:28.110,31.6 2 0
+codeberg.org/snonux/hexai/cmd/hexai-lsp/main.go:13.13,17.18 4 0
+codeberg.org/snonux/hexai/cmd/hexai-lsp/main.go:17.18,20.3 2 0
+codeberg.org/snonux/hexai/cmd/hexai-lsp/main.go:22.2,22.79 1 0
+codeberg.org/snonux/hexai/cmd/hexai-lsp/main.go:22.79,24.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:89.29,136.2 2 4
+codeberg.org/snonux/hexai/internal/appconfig/config.go:140.35,142.19 2 4
+codeberg.org/snonux/hexai/internal/appconfig/config.go:142.19,144.3 1 1
+codeberg.org/snonux/hexai/internal/appconfig/config.go:146.2,147.16 2 3
+codeberg.org/snonux/hexai/internal/appconfig/config.go:147.16,150.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:150.8,151.85 1 3
+codeberg.org/snonux/hexai/internal/appconfig/config.go:151.85,153.4 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:159.2,159.50 1 3
+codeberg.org/snonux/hexai/internal/appconfig/config.go:159.50,161.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:162.2,162.12 1 3
+codeberg.org/snonux/hexai/internal/appconfig/config.go:278.35,282.77 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:282.77,291.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:294.2,294.38 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:294.38,297.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:300.2,300.44 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:300.44,307.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:310.2,310.44 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:310.44,313.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:316.2,316.36 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:316.36,319.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:322.2,322.82 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:322.82,325.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:328.2,328.47 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:328.47,331.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:334.2,334.68 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:334.68,341.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:344.2,344.71 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:344.71,351.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:354.2,354.68 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:354.68,361.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:365.2,365.59 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:365.59,366.67 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:366.67,368.4 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:369.3,369.66 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:369.66,371.4 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:372.3,372.66 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:372.66,374.4 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:375.3,375.65 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:375.65,377.4 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:378.3,378.64 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:378.64,380.4 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:381.3,381.65 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:381.65,383.4 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:386.2,386.53 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:386.53,388.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:390.2,390.59 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:390.59,391.67 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:391.67,393.4 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:394.3,394.71 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:394.71,396.4 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:397.3,397.68 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:397.68,399.4 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:400.3,400.65 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:400.65,402.4 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:403.3,403.69 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:403.69,405.4 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:406.3,406.66 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:406.66,408.4 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:409.3,409.66 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:409.66,411.4 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:412.3,412.64 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:412.64,414.4 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:417.2,417.45 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:417.45,418.60 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:418.60,420.4 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:421.3,421.60 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:421.60,423.4 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:426.2,426.67 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:426.67,428.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:430.2,430.12 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:433.66,435.16 2 3
+codeberg.org/snonux/hexai/internal/appconfig/config.go:435.16,436.43 1 3
+codeberg.org/snonux/hexai/internal/appconfig/config.go:436.43,438.4 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:439.3,439.18 1 3
+codeberg.org/snonux/hexai/internal/appconfig/config.go:442.2,447.22 5 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:447.22,448.20 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:448.20,450.4 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:451.3,451.24 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:455.2,464.21 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:464.21,465.216 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:465.216,466.12 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:468.3,468.41 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:468.41,470.4 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:473.2,473.19 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:473.19,475.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:479.2,481.53 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:481.53,482.59 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:482.59,483.26 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:484.15,485.40 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:486.13,487.35 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:488.17,489.40 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:493.2,493.50 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:493.50,494.52 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:494.52,495.26 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:496.15,497.34 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:498.13,499.29 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:500.17,501.34 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:505.2,505.18 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:508.37,512.2 3 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:515.39,516.25 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:516.25,518.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:519.2,519.56 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:519.56,521.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:522.2,522.34 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:522.34,524.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:525.2,525.32 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:525.32,527.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:528.2,528.32 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:528.32,530.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:531.2,531.36 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:531.36,533.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:534.2,534.38 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:534.38,536.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:537.2,537.36 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:537.36,539.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:540.2,540.36 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:540.36,542.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:543.2,543.38 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:543.38,545.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:546.2,546.55 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:546.55,548.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:549.2,549.56 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:549.56,551.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:552.2,552.55 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:552.55,554.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:555.2,555.33 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:555.33,557.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:558.2,558.53 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:558.53,560.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:564.40,566.66 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:566.66,568.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:569.2,569.65 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:569.65,571.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:572.2,572.65 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:572.65,574.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:575.2,575.64 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:575.64,577.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:578.2,578.63 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:578.63,580.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:581.2,581.64 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:581.64,583.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:585.2,585.59 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:585.59,587.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:589.2,589.53 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:589.53,591.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:593.2,593.66 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:593.66,595.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:596.2,596.70 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:596.70,598.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:599.2,599.67 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:599.67,601.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:602.2,602.64 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:602.64,604.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:605.2,605.68 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:605.68,607.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:608.2,608.65 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:608.65,610.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:611.2,611.65 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:611.65,613.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:614.2,614.63 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:614.63,616.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:618.2,618.59 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:618.59,620.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:621.2,621.59 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:621.59,623.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:627.47,628.58 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:628.58,630.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:631.2,631.56 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:631.56,633.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:634.2,634.36 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:634.36,636.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:637.2,637.58 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:637.58,639.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:640.2,640.56 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:640.56,642.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:643.2,643.36 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:643.36,645.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:646.2,646.59 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:646.59,648.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:649.2,649.57 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:649.57,651.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:652.2,652.37 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:652.37,654.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:657.38,659.72 2 3
+codeberg.org/snonux/hexai/internal/appconfig/config.go:659.72,661.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:661.8,663.17 2 3
+codeberg.org/snonux/hexai/internal/appconfig/config.go:663.17,665.4 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:666.3,666.70 1 3
+codeberg.org/snonux/hexai/internal/appconfig/config.go:668.2,668.24 1 3
+codeberg.org/snonux/hexai/internal/appconfig/config.go:675.43,680.34 3 3
+codeberg.org/snonux/hexai/internal/appconfig/config.go:680.34,680.76 1 72
+codeberg.org/snonux/hexai/internal/appconfig/config.go:681.2,681.41 1 3
+codeberg.org/snonux/hexai/internal/appconfig/config.go:681.41,683.14 2 21
+codeberg.org/snonux/hexai/internal/appconfig/config.go:683.14,685.4 1 21
+codeberg.org/snonux/hexai/internal/appconfig/config.go:686.3,687.17 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:687.17,688.21 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:688.21,690.5 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:691.4,691.19 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:693.3,693.17 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:695.2,695.51 1 3
+codeberg.org/snonux/hexai/internal/appconfig/config.go:695.51,697.14 2 12
+codeberg.org/snonux/hexai/internal/appconfig/config.go:697.14,699.4 1 12
+codeberg.org/snonux/hexai/internal/appconfig/config.go:700.3,701.17 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:701.17,702.21 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:702.21,704.5 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:705.4,705.21 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:707.3,707.18 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:710.2,710.47 1 3
+codeberg.org/snonux/hexai/internal/appconfig/config.go:710.47,713.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:714.2,714.48 1 3
+codeberg.org/snonux/hexai/internal/appconfig/config.go:714.48,717.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:718.2,718.57 1 3
+codeberg.org/snonux/hexai/internal/appconfig/config.go:718.57,721.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:722.2,722.55 1 3
+codeberg.org/snonux/hexai/internal/appconfig/config.go:722.55,725.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:726.2,726.54 1 3
+codeberg.org/snonux/hexai/internal/appconfig/config.go:726.54,729.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:730.2,730.61 1 3
+codeberg.org/snonux/hexai/internal/appconfig/config.go:730.61,733.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:734.2,734.59 1 3
+codeberg.org/snonux/hexai/internal/appconfig/config.go:734.59,737.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:738.2,738.59 1 3
+codeberg.org/snonux/hexai/internal/appconfig/config.go:738.59,741.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:742.2,742.60 1 3
+codeberg.org/snonux/hexai/internal/appconfig/config.go:742.60,745.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:746.2,746.54 1 3
+codeberg.org/snonux/hexai/internal/appconfig/config.go:746.54,749.27 3 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:749.27,750.42 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:750.42,752.5 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:754.3,754.13 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:756.2,756.47 1 3
+codeberg.org/snonux/hexai/internal/appconfig/config.go:756.47,759.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:760.2,760.48 1 3
+codeberg.org/snonux/hexai/internal/appconfig/config.go:760.48,763.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:764.2,764.47 1 3
+codeberg.org/snonux/hexai/internal/appconfig/config.go:764.47,767.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:768.2,768.49 1 3
+codeberg.org/snonux/hexai/internal/appconfig/config.go:768.49,771.27 3 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:771.27,772.42 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:772.42,774.5 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:776.3,776.13 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:778.2,778.44 1 3
+codeberg.org/snonux/hexai/internal/appconfig/config.go:778.44,781.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:784.2,784.51 1 3
+codeberg.org/snonux/hexai/internal/appconfig/config.go:784.51,787.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:788.2,788.48 1 3
+codeberg.org/snonux/hexai/internal/appconfig/config.go:788.48,791.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:792.2,792.60 1 3
+codeberg.org/snonux/hexai/internal/appconfig/config.go:792.60,795.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:797.2,797.51 1 3
+codeberg.org/snonux/hexai/internal/appconfig/config.go:797.51,800.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:801.2,801.48 1 3
+codeberg.org/snonux/hexai/internal/appconfig/config.go:801.48,804.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:805.2,805.60 1 3
+codeberg.org/snonux/hexai/internal/appconfig/config.go:805.60,808.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:810.2,810.52 1 3
+codeberg.org/snonux/hexai/internal/appconfig/config.go:810.52,813.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:814.2,814.49 1 3
+codeberg.org/snonux/hexai/internal/appconfig/config.go:814.49,817.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:818.2,818.61 1 3
+codeberg.org/snonux/hexai/internal/appconfig/config.go:818.61,821.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:823.2,823.10 1 3
+codeberg.org/snonux/hexai/internal/appconfig/config.go:823.10,825.3 1 3
+codeberg.org/snonux/hexai/internal/appconfig/config.go:826.2,826.13 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:29.101,30.21 1 3
+codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:30.21,32.6 1 1
+codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:33.5,33.53 1 2
+codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:33.53,35.6 1 1
+codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:37.5,37.58 1 1
+codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:37.58,39.23 2 0
+codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:39.23,39.37 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:40.9,41.41 3 0
+codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:44.5,44.65 1 1
+codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:48.37,48.72 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:54.51,55.15 1 7
+codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:55.15,55.31 1 2
+codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:56.5,56.18 1 5
+codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:56.18,56.33 1 2
+codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:57.5,57.82 1 3
+codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:57.82,57.97 1 1
+codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:58.5,58.17 1 2
+codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:62.83,65.23 3 3
+codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:65.24,65.25 0 0
+codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:66.5,66.24 1 3
+codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:66.25,66.26 0 0
+codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:67.5,67.35 1 3
+codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:67.35,69.23 2 3
+codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:69.23,69.48 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:69.49,69.50 0 0
+codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:69.59,69.60 0 0
+codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:70.9,71.26 2 3
+codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:71.26,71.43 1 3
+codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:73.5,73.36 1 3
+codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:73.36,75.23 2 3
+codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:75.23,75.48 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:75.49,75.50 0 0
+codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:75.59,75.60 0 0
+codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:76.9,77.27 2 3
+codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:77.27,77.44 1 3
+codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:79.5,79.43 1 3
+codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:83.92,84.22 1 3
+codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:84.22,87.25 2 1
+codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:87.25,89.27 2 1
+codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:89.27,89.41 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:90.13,90.25 1 1
+codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:90.25,90.42 1 1
+codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:91.13,91.19 1 1
+codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:93.9,93.46 1 1
+codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:95.5,97.19 3 2
+codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:97.19,97.33 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:98.5,99.55 2 2
+codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:99.55,101.82 2 0
+codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:101.82,103.10 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:104.11,106.6 1 2
+codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:107.5,107.35 1 2
+codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:110.98,112.19 2 4
+codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:112.19,112.33 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:113.5,113.18 1 4
+codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:113.18,113.43 1 4
+codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:114.5,116.55 3 4
+codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:116.55,116.69 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:117.5,118.19 2 4
+codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:118.19,118.33 1 1
+codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:119.5,121.50 3 3
+codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:121.50,121.64 1 1
+codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:122.5,122.64 1 2
+codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:122.64,122.78 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:123.5,123.38 1 2
+codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:126.55,128.19 2 5
+codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:128.19,128.33 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:129.5,129.18 1 5
+codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:129.18,129.35 1 5
+codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:130.5,130.48 1 5
+codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:130.48,130.62 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:131.5,131.20 1 5
+codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:134.60,136.9 2 3
+codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:136.9,137.48 1 4
+codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:137.48,137.62 1 2
+codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:138.9,138.39 1 2
+codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:138.39,138.108 1 1
+codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:139.9,139.43 1 1
+codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:143.48,145.19 2 2
+codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:145.19,145.33 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:146.5,146.18 1 2
+codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:146.18,146.35 1 2
+codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:147.5,148.15 2 2
+codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:151.83,154.21 3 3
+codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:154.21,156.23 2 1
+codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:156.23,156.37 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:157.9,157.22 1 1
+codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:157.22,157.39 1 1
+codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:158.9,158.15 1 1
+codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:160.5,160.22 1 3
+codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:160.22,162.23 2 1
+codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:162.23,162.37 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:163.9,163.22 1 1
+codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:163.22,163.39 1 1
+codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:164.9,164.16 1 1
+codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:166.5,167.15 2 3
+codeberg.org/snonux/hexai/internal/hexaiaction/parse.go:20.50,22.16 2 4
+codeberg.org/snonux/hexai/internal/hexaiaction/parse.go:22.16,24.3 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/parse.go:25.2,26.15 2 4
+codeberg.org/snonux/hexai/internal/hexaiaction/parse.go:26.15,28.3 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/parse.go:29.2,32.27 3 4
+codeberg.org/snonux/hexai/internal/hexaiaction/parse.go:32.27,34.26 2 5
+codeberg.org/snonux/hexai/internal/hexaiaction/parse.go:34.26,36.9 2 1
+codeberg.org/snonux/hexai/internal/hexaiaction/parse.go:39.2,39.18 1 4
+codeberg.org/snonux/hexai/internal/hexaiaction/parse.go:39.18,41.3 1 3
+codeberg.org/snonux/hexai/internal/hexaiaction/parse.go:43.2,45.28 3 1
+codeberg.org/snonux/hexai/internal/hexaiaction/parse.go:45.28,47.14 2 3
+codeberg.org/snonux/hexai/internal/hexaiaction/parse.go:47.14,49.9 2 1
+codeberg.org/snonux/hexai/internal/hexaiaction/parse.go:51.3,51.27 1 2
+codeberg.org/snonux/hexai/internal/hexaiaction/parse.go:53.2,55.60 3 1
+codeberg.org/snonux/hexai/internal/hexaiaction/parse.go:60.54,60.103 1 8
+codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:14.54,14.97 1 9
+codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:17.35,17.73 1 10
+codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:23.121,27.2 3 3
+codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:29.128,31.26 2 1
+codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:31.26,32.33 1 2
+codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:32.33,33.12 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:35.3,36.23 2 2
+codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:36.23,38.4 1 1
+codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:40.2,42.69 3 1
+codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:45.109,49.2 3 2
+codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:51.106,55.2 3 2
+codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:57.86,60.19 3 1
+codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:60.19,62.6 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:63.5,63.52 1 1
+codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:66.120,69.19 3 8
+codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:69.19,71.6 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:72.5,72.52 1 8
+codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:76.57,78.37 2 8
+codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:78.37,80.6 1 4
+codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:81.5,81.16 1 8
+codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:85.79,87.2 1 3
+codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:89.78,91.2 1 1
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:20.80,24.19 4 3
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:24.19,27.6 2 1
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:28.5,29.16 2 2
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:29.16,32.3 2 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:33.2,33.46 1 2
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:33.46,35.3 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:36.5,37.19 2 2
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:37.19,39.6 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:40.2,41.16 2 2
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:41.16,43.3 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:44.2,45.12 2 2
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:48.146,49.14 1 6
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:50.18,51.30 1 2
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:52.21,54.37 2 2
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:54.37,57.4 2 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:58.3,60.55 3 2
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:61.25,64.79 3 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:65.22,68.57 3 1
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:69.20,72.55 3 1
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:73.10,74.30 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:18.36,18.54 1 1
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:19.36,19.53 1 1
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:20.36,20.54 1 3
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:28.23,41.2 7 4
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:43.31,43.45 1 1
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:45.57,46.27 1 1
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:47.18,48.27 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:49.25,50.40 1 1
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:52.2,54.15 3 1
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:57.62,60.16 3 3
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:61.21,65.27 3 1
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:66.18,67.55 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:67.55,71.10 3 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:72.22,73.28 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:74.20,75.26 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:76.22,77.25 1 1
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:78.16,79.44 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:79.44,79.68 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:80.29,82.41 2 1
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:82.41,83.91 1 1
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:83.91,88.14 4 1
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:91.5,91.19 1 1
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:91.19,92.44 1 1
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:92.44,92.68 1 1
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:94.5,94.18 1 1
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:97.30,98.12 1 1
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:98.12,100.3 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:101.2,101.22 1 1
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:105.35,108.16 3 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:108.16,110.3 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:111.2,111.29 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:111.29,112.21 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:112.21,114.4 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:115.3,115.23 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:117.2,117.56 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui_delegate.go:20.61,20.73 1 14
+codeberg.org/snonux/hexai/internal/hexaiaction/tui_delegate.go:21.61,21.73 1 24
+codeberg.org/snonux/hexai/internal/hexaiaction/tui_delegate.go:22.61,22.75 1 1
+codeberg.org/snonux/hexai/internal/hexaiaction/tui_delegate.go:23.89,26.38 3 2
+codeberg.org/snonux/hexai/internal/hexaiaction/tui_delegate.go:26.38,28.6 1 2
+codeberg.org/snonux/hexai/internal/hexaiaction/tui_delegate.go:29.5,31.27 3 2
+codeberg.org/snonux/hexai/internal/hexaiaction/tui_delegate.go:31.27,33.6 1 2
+codeberg.org/snonux/hexai/internal/hexaiaction/tui_delegate.go:34.5,34.49 1 2
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:23.95,28.16 4 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:28.16,31.3 2 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:33.2,34.17 2 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:34.17,37.3 2 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:38.2,40.74 3 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:40.74,43.3 2 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:44.2,44.12 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:49.124,51.16 2 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:51.16,54.3 2 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:55.2,57.74 3 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:57.74,60.3 2 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:61.2,61.12 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:65.64,67.82 2 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:67.82,70.3 2 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:71.2,72.9 2 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:73.40,74.59 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:75.23,76.24 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:77.21,78.22 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:79.10,80.91 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:88.48,91.40 3 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:91.40,93.3 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:94.2,97.3 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:101.77,104.40 3 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:104.40,105.58 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:105.58,107.4 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:109.2,112.3 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:116.125,119.40 3 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:119.40,121.56 2 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:121.56,124.4 2 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:124.18,126.4 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:127.3,127.22 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:128.8,130.17 2 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:130.17,132.4 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:133.3,134.26 2 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:136.2,139.12 3 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:143.59,145.2 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:148.65,150.2 1 0
+codeberg.org/snonux/hexai/internal/hexailsp/run.go:25.85,27.38 2 0
+codeberg.org/snonux/hexai/internal/hexailsp/run.go:27.38,29.17 2 0
+codeberg.org/snonux/hexai/internal/hexailsp/run.go:29.17,31.4 1 0
+codeberg.org/snonux/hexai/internal/hexailsp/run.go:32.3,33.22 2 0
+codeberg.org/snonux/hexai/internal/hexailsp/run.go:35.2,37.70 3 0
+codeberg.org/snonux/hexai/internal/hexailsp/run.go:42.159,49.37 6 0
+codeberg.org/snonux/hexai/internal/hexailsp/run.go:49.37,51.3 1 0
+codeberg.org/snonux/hexai/internal/hexailsp/run.go:52.2,52.12 1 0
+codeberg.org/snonux/hexai/internal/hexailsp/run.go:57.49,59.30 2 0
+codeberg.org/snonux/hexai/internal/hexailsp/run.go:59.30,61.3 1 0
+codeberg.org/snonux/hexai/internal/hexailsp/run.go:64.72,65.19 1 0
+codeberg.org/snonux/hexai/internal/hexailsp/run.go:65.19,67.3 1 0
+codeberg.org/snonux/hexai/internal/hexailsp/run.go:68.2,82.36 3 0
+codeberg.org/snonux/hexai/internal/hexailsp/run.go:82.36,84.3 1 0
+codeberg.org/snonux/hexai/internal/hexailsp/run.go:86.2,87.36 2 0
+codeberg.org/snonux/hexai/internal/hexailsp/run.go:87.36,89.3 1 0
+codeberg.org/snonux/hexai/internal/hexailsp/run.go:90.2,90.67 1 0
+codeberg.org/snonux/hexai/internal/hexailsp/run.go:90.67,93.3 2 0
+codeberg.org/snonux/hexai/internal/hexailsp/run.go:93.8,96.3 2 0
+codeberg.org/snonux/hexai/internal/hexailsp/run.go:99.57,100.20 1 0
+codeberg.org/snonux/hexai/internal/hexailsp/run.go:100.20,102.3 1 0
+codeberg.org/snonux/hexai/internal/hexailsp/run.go:103.2,103.97 1 0
+codeberg.org/snonux/hexai/internal/hexailsp/run.go:103.97,105.3 1 0
+codeberg.org/snonux/hexai/internal/hexailsp/run.go:108.97,144.2 1 0
codeberg.org/snonux/hexai/internal/llm/copilot.go:66.77,67.38 1 0
codeberg.org/snonux/hexai/internal/llm/copilot.go:67.38,69.3 1 0
codeberg.org/snonux/hexai/internal/llm/copilot.go:70.2,70.36 1 0
@@ -18159,17 +19890,17 @@ codeberg.org/snonux/hexai/internal/llm/openai.go:296.38,299.3 2 0
codeberg.org/snonux/hexai/internal/llm/openai.go:300.2,300.12 1 0
codeberg.org/snonux/hexai/internal/llm/provider.go:58.47,58.73 1 0
codeberg.org/snonux/hexai/internal/llm/provider.go:58.73,58.92 1 0
-codeberg.org/snonux/hexai/internal/llm/provider.go:59.47,59.73 1 0
+codeberg.org/snonux/hexai/internal/llm/provider.go:59.47,59.73 1 4
codeberg.org/snonux/hexai/internal/llm/provider.go:59.73,59.94 1 0
-codeberg.org/snonux/hexai/internal/llm/provider.go:60.47,60.73 1 0
+codeberg.org/snonux/hexai/internal/llm/provider.go:60.47,60.73 1 8
codeberg.org/snonux/hexai/internal/llm/provider.go:60.73,60.92 1 0
codeberg.org/snonux/hexai/internal/llm/provider.go:61.45,62.26 1 0
codeberg.org/snonux/hexai/internal/llm/provider.go:62.26,62.66 1 0
-codeberg.org/snonux/hexai/internal/llm/provider.go:85.84,87.13 2 0
-codeberg.org/snonux/hexai/internal/llm/provider.go:87.13,89.3 1 0
-codeberg.org/snonux/hexai/internal/llm/provider.go:90.2,90.11 1 0
-codeberg.org/snonux/hexai/internal/llm/provider.go:91.16,92.44 1 0
-codeberg.org/snonux/hexai/internal/llm/provider.go:92.44,94.4 1 0
+codeberg.org/snonux/hexai/internal/llm/provider.go:85.84,87.13 2 1
+codeberg.org/snonux/hexai/internal/llm/provider.go:87.13,89.3 1 1
+codeberg.org/snonux/hexai/internal/llm/provider.go:90.2,90.11 1 1
+codeberg.org/snonux/hexai/internal/llm/provider.go:91.16,92.44 1 1
+codeberg.org/snonux/hexai/internal/llm/provider.go:92.44,94.4 1 1
codeberg.org/snonux/hexai/internal/llm/provider.go:96.3,96.35 1 0
codeberg.org/snonux/hexai/internal/llm/provider.go:96.35,99.4 2 0
codeberg.org/snonux/hexai/internal/llm/provider.go:100.3,100.97 1 0
@@ -18183,11 +19914,11 @@ codeberg.org/snonux/hexai/internal/llm/provider.go:111.36,114.4 2 0
codeberg.org/snonux/hexai/internal/llm/provider.go:115.3,115.102 1 0
codeberg.org/snonux/hexai/internal/llm/provider.go:116.10,117.55 1 0
codeberg.org/snonux/hexai/internal/llm/util.go:6.47,6.77 1 0
-codeberg.org/snonux/hexai/internal/llmutils/client.go:12.62,26.39 3 0
-codeberg.org/snonux/hexai/internal/llmutils/client.go:26.39,28.6 1 0
-codeberg.org/snonux/hexai/internal/llmutils/client.go:29.5,30.39 2 0
-codeberg.org/snonux/hexai/internal/llmutils/client.go:30.39,32.6 1 0
-codeberg.org/snonux/hexai/internal/llmutils/client.go:33.5,33.51 1 0
+codeberg.org/snonux/hexai/internal/llmutils/client.go:12.62,26.39 3 1
+codeberg.org/snonux/hexai/internal/llmutils/client.go:26.39,28.6 1 1
+codeberg.org/snonux/hexai/internal/llmutils/client.go:29.5,30.39 2 1
+codeberg.org/snonux/hexai/internal/llmutils/client.go:30.39,32.6 1 1
+codeberg.org/snonux/hexai/internal/llmutils/client.go:33.5,33.51 1 1
codeberg.org/snonux/hexai/internal/logging/chatlogger.go:9.48,11.2 1 0
codeberg.org/snonux/hexai/internal/logging/chatlogger.go:18.3,20.12 2 0
codeberg.org/snonux/hexai/internal/logging/chatlogger.go:20.12,22.3 1 0
@@ -19025,83 +20756,83 @@ codeberg.org/snonux/hexai/internal/testutil/fixtures.go:9.34,11.2 1 0
codeberg.org/snonux/hexai/internal/testutil/fixtures.go:14.43,16.2 1 0
codeberg.org/snonux/hexai/internal/testutil/fixtures.go:19.33,21.2 1 0
codeberg.org/snonux/hexai/internal/testutil/fixtures.go:24.29,26.2 1 0
-codeberg.org/snonux/hexai/internal/textutil/textutil.go:6.62,7.34 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:6.62,7.34 1 9
codeberg.org/snonux/hexai/internal/textutil/textutil.go:7.34,9.6 1 0
-codeberg.org/snonux/hexai/internal/textutil/textutil.go:10.5,11.28 2 0
-codeberg.org/snonux/hexai/internal/textutil/textutil.go:11.28,13.6 1 0
-codeberg.org/snonux/hexai/internal/textutil/textutil.go:14.5,14.15 1 0
-codeberg.org/snonux/hexai/internal/textutil/textutil.go:18.39,20.16 2 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:10.5,11.28 2 9
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:11.28,13.6 1 13
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:14.5,14.15 1 9
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:18.39,20.16 2 10
codeberg.org/snonux/hexai/internal/textutil/textutil.go:20.16,22.6 1 0
-codeberg.org/snonux/hexai/internal/textutil/textutil.go:23.5,25.69 3 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:23.5,25.69 3 10
codeberg.org/snonux/hexai/internal/textutil/textutil.go:25.69,27.6 1 0
-codeberg.org/snonux/hexai/internal/textutil/textutil.go:28.5,29.57 2 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:28.5,29.57 2 10
codeberg.org/snonux/hexai/internal/textutil/textutil.go:29.57,31.6 1 0
-codeberg.org/snonux/hexai/internal/textutil/textutil.go:32.5,32.54 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:32.5,32.54 1 10
codeberg.org/snonux/hexai/internal/textutil/textutil.go:32.54,34.6 1 0
-codeberg.org/snonux/hexai/internal/textutil/textutil.go:35.5,37.72 3 0
-codeberg.org/snonux/hexai/internal/textutil/textutil.go:37.72,40.6 2 0
-codeberg.org/snonux/hexai/internal/textutil/textutil.go:41.5,41.13 1 0
-codeberg.org/snonux/hexai/internal/textutil/textutil.go:47.60,49.34 2 0
-codeberg.org/snonux/hexai/internal/textutil/textutil.go:49.34,50.105 1 0
-codeberg.org/snonux/hexai/internal/textutil/textutil.go:50.105,53.10 2 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:35.5,37.72 3 10
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:37.72,40.6 2 9
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:41.5,41.13 1 1
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:47.60,49.34 2 8
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:49.34,50.105 1 8
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:50.105,53.10 2 8
codeberg.org/snonux/hexai/internal/textutil/textutil.go:55.5,55.19 1 0
-codeberg.org/snonux/hexai/internal/textutil/textutil.go:59.79,62.53 3 0
-codeberg.org/snonux/hexai/internal/textutil/textutil.go:62.53,64.6 1 0
-codeberg.org/snonux/hexai/internal/textutil/textutil.go:65.5,65.47 1 0
-codeberg.org/snonux/hexai/internal/textutil/textutil.go:65.47,66.57 1 0
-codeberg.org/snonux/hexai/internal/textutil/textutil.go:66.57,71.10 4 0
-codeberg.org/snonux/hexai/internal/textutil/textutil.go:73.5,73.49 1 0
-codeberg.org/snonux/hexai/internal/textutil/textutil.go:73.49,74.58 1 0
-codeberg.org/snonux/hexai/internal/textutil/textutil.go:74.58,79.10 4 0
-codeberg.org/snonux/hexai/internal/textutil/textutil.go:81.5,81.47 1 0
-codeberg.org/snonux/hexai/internal/textutil/textutil.go:81.47,83.6 1 0
-codeberg.org/snonux/hexai/internal/textutil/textutil.go:84.5,84.46 1 0
-codeberg.org/snonux/hexai/internal/textutil/textutil.go:84.46,86.6 1 0
-codeberg.org/snonux/hexai/internal/textutil/textutil.go:87.5,87.47 1 0
-codeberg.org/snonux/hexai/internal/textutil/textutil.go:87.47,89.6 1 0
-codeberg.org/snonux/hexai/internal/textutil/textutil.go:90.5,90.24 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:59.79,62.53 3 8
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:62.53,64.6 1 3
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:65.5,65.47 1 8
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:65.47,66.57 1 1
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:66.57,71.10 4 1
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:73.5,73.49 1 8
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:73.49,74.58 1 1
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:74.58,79.10 4 1
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:81.5,81.47 1 8
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:81.47,83.6 1 1
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:84.5,84.46 1 8
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:84.46,86.6 1 1
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:87.5,87.47 1 8
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:87.47,89.6 1 2
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:90.5,90.24 1 8
codeberg.org/snonux/hexai/internal/textutil/textutil.go:90.24,90.50 1 0
-codeberg.org/snonux/hexai/internal/textutil/textutil.go:91.5,92.33 2 0
-codeberg.org/snonux/hexai/internal/textutil/textutil.go:92.33,93.69 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:91.5,92.33 2 8
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:92.33,93.69 1 1
codeberg.org/snonux/hexai/internal/textutil/textutil.go:93.69,93.81 1 0
-codeberg.org/snonux/hexai/internal/textutil/textutil.go:95.5,96.36 2 0
-codeberg.org/snonux/hexai/internal/textutil/textutil.go:100.79,101.36 1 0
-codeberg.org/snonux/hexai/internal/textutil/textutil.go:101.36,102.27 1 0
-codeberg.org/snonux/hexai/internal/textutil/textutil.go:102.27,102.37 1 0
-codeberg.org/snonux/hexai/internal/textutil/textutil.go:103.9,103.48 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:95.5,96.36 2 8
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:100.79,101.36 1 8
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:101.36,102.27 1 55
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:102.27,102.37 1 52
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:103.9,103.48 1 3
codeberg.org/snonux/hexai/internal/textutil/textutil.go:103.48,103.58 1 0
-codeberg.org/snonux/hexai/internal/textutil/textutil.go:104.9,104.44 1 0
-codeberg.org/snonux/hexai/internal/textutil/textutil.go:104.44,105.31 1 0
-codeberg.org/snonux/hexai/internal/textutil/textutil.go:105.31,106.49 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:104.9,104.44 1 3
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:104.44,105.31 1 26
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:105.31,106.49 1 3
codeberg.org/snonux/hexai/internal/textutil/textutil.go:106.49,106.59 1 0
-codeberg.org/snonux/hexai/internal/textutil/textutil.go:107.17,108.32 2 0
-codeberg.org/snonux/hexai/internal/textutil/textutil.go:108.32,108.64 1 0
-codeberg.org/snonux/hexai/internal/textutil/textutil.go:112.5,112.29 1 0
-codeberg.org/snonux/hexai/internal/tmux/tmux.go:11.23,11.60 1 2
-codeberg.org/snonux/hexai/internal/tmux/tmux.go:17.23,17.72 2 4
-codeberg.org/snonux/hexai/internal/tmux/tmux.go:20.23,20.76 1 3
-codeberg.org/snonux/hexai/internal/tmux/tmux.go:31.52,32.20 1 1
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:107.17,108.32 2 3
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:108.32,108.64 1 3
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:112.5,112.29 1 5
+codeberg.org/snonux/hexai/internal/tmux/tmux.go:11.23,11.60 1 0
+codeberg.org/snonux/hexai/internal/tmux/tmux.go:17.23,17.72 2 0
+codeberg.org/snonux/hexai/internal/tmux/tmux.go:20.23,20.76 1 0
+codeberg.org/snonux/hexai/internal/tmux/tmux.go:31.52,32.20 1 0
codeberg.org/snonux/hexai/internal/tmux/tmux.go:32.20,34.3 1 0
-codeberg.org/snonux/hexai/internal/tmux/tmux.go:35.2,36.19 2 1
-codeberg.org/snonux/hexai/internal/tmux/tmux.go:36.19,38.3 1 1
+codeberg.org/snonux/hexai/internal/tmux/tmux.go:35.2,36.19 2 0
+codeberg.org/snonux/hexai/internal/tmux/tmux.go:36.19,38.3 1 0
codeberg.org/snonux/hexai/internal/tmux/tmux.go:38.8,40.3 1 0
-codeberg.org/snonux/hexai/internal/tmux/tmux.go:41.2,41.45 1 1
-codeberg.org/snonux/hexai/internal/tmux/tmux.go:41.45,43.3 1 1
-codeberg.org/snonux/hexai/internal/tmux/tmux.go:44.2,44.42 1 1
-codeberg.org/snonux/hexai/internal/tmux/tmux.go:44.42,46.3 1 1
-codeberg.org/snonux/hexai/internal/tmux/tmux.go:48.2,51.19 4 1
-codeberg.org/snonux/hexai/internal/tmux/tmux.go:56.38,58.25 2 1
-codeberg.org/snonux/hexai/internal/tmux/tmux.go:58.25,59.14 1 4
+codeberg.org/snonux/hexai/internal/tmux/tmux.go:41.2,41.45 1 0
+codeberg.org/snonux/hexai/internal/tmux/tmux.go:41.45,43.3 1 0
+codeberg.org/snonux/hexai/internal/tmux/tmux.go:44.2,44.42 1 0
+codeberg.org/snonux/hexai/internal/tmux/tmux.go:44.42,46.3 1 0
+codeberg.org/snonux/hexai/internal/tmux/tmux.go:48.2,51.19 4 0
+codeberg.org/snonux/hexai/internal/tmux/tmux.go:56.38,58.25 2 0
+codeberg.org/snonux/hexai/internal/tmux/tmux.go:58.25,59.14 1 0
codeberg.org/snonux/hexai/internal/tmux/tmux.go:59.14,61.12 2 0
-codeberg.org/snonux/hexai/internal/tmux/tmux.go:63.3,63.20 1 4
-codeberg.org/snonux/hexai/internal/tmux/tmux.go:63.20,65.12 2 2
-codeberg.org/snonux/hexai/internal/tmux/tmux.go:69.3,70.33 2 2
-codeberg.org/snonux/hexai/internal/tmux/tmux.go:72.2,72.31 1 1
-codeberg.org/snonux/hexai/internal/tmux/tmux.go:76.32,77.30 1 4
-codeberg.org/snonux/hexai/internal/tmux/tmux.go:77.30,79.141 2 27
-codeberg.org/snonux/hexai/internal/tmux/tmux.go:79.141,80.12 1 25
-codeberg.org/snonux/hexai/internal/tmux/tmux.go:82.3,82.15 1 2
-codeberg.org/snonux/hexai/internal/tmux/tmux.go:84.2,84.13 1 2
+codeberg.org/snonux/hexai/internal/tmux/tmux.go:63.3,63.20 1 0
+codeberg.org/snonux/hexai/internal/tmux/tmux.go:63.20,65.12 2 0
+codeberg.org/snonux/hexai/internal/tmux/tmux.go:69.3,70.33 2 0
+codeberg.org/snonux/hexai/internal/tmux/tmux.go:72.2,72.31 1 0
+codeberg.org/snonux/hexai/internal/tmux/tmux.go:76.32,77.30 1 0
+codeberg.org/snonux/hexai/internal/tmux/tmux.go:77.30,79.141 2 0
+codeberg.org/snonux/hexai/internal/tmux/tmux.go:79.141,80.12 1 0
+codeberg.org/snonux/hexai/internal/tmux/tmux.go:82.3,82.15 1 0
+codeberg.org/snonux/hexai/internal/tmux/tmux.go:84.2,84.13 1 0
codeberg.org/snonux/hexai/cmd/hexai/main.go:14.13,17.18 3 0
codeberg.org/snonux/hexai/cmd/hexai/main.go:17.18,20.3 2 0
codeberg.org/snonux/hexai/cmd/hexai/main.go:22.2,22.104 1 0
@@ -19508,26 +21239,26 @@ codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:78.37,80.6 1 0
codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:81.5,81.16 1 0
codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:85.79,87.2 1 0
codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:89.78,91.2 1 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:16.80,20.16 4 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:20.16,23.3 2 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:24.2,25.16 2 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:25.16,28.3 2 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:29.2,29.46 1 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:29.46,31.3 1 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:32.2,33.16 2 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:33.16,35.3 1 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:36.2,37.16 2 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:37.16,39.3 1 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:40.2,41.12 2 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:44.146,45.14 1 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:46.18,47.30 1 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:48.21,50.37 2 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:50.37,53.4 2 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:54.3,56.55 3 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:57.25,60.79 3 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:61.22,64.57 3 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:65.20,68.55 3 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:69.10,70.30 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:20.80,24.19 4 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:24.19,27.6 2 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:28.5,29.16 2 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:29.16,32.3 2 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:33.2,33.46 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:33.46,35.3 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:36.5,37.19 2 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:37.19,39.6 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:40.2,41.16 2 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:41.16,43.3 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:44.2,45.12 2 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:48.146,49.14 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:50.18,51.30 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:52.21,54.37 2 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:54.37,57.4 2 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:58.3,60.55 3 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:61.25,64.79 3 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:65.22,68.57 3 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:69.20,72.55 3 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:73.10,74.30 1 0
codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:18.36,18.54 1 0
codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:19.36,19.53 1 0
codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:20.36,20.54 1 0
@@ -19930,9 +21661,9 @@ codeberg.org/snonux/hexai/internal/logging/chatlogger.go:20.12,22.3 1 0
codeberg.org/snonux/hexai/internal/logging/chatlogger.go:23.2,25.29 2 0
codeberg.org/snonux/hexai/internal/logging/chatlogger.go:25.29,28.3 1 0
codeberg.org/snonux/hexai/internal/logging/logging.go:27.26,27.37 1 1
-codeberg.org/snonux/hexai/internal/logging/logging.go:30.47,31.16 1 38
+codeberg.org/snonux/hexai/internal/logging/logging.go:30.47,31.16 1 39
codeberg.org/snonux/hexai/internal/logging/logging.go:31.16,33.3 1 5
-codeberg.org/snonux/hexai/internal/logging/logging.go:34.2,35.48 2 33
+codeberg.org/snonux/hexai/internal/logging/logging.go:34.2,35.48 2 34
codeberg.org/snonux/hexai/internal/logging/logging.go:43.32,43.55 1 0
codeberg.org/snonux/hexai/internal/logging/logging.go:46.37,47.25 1 1
codeberg.org/snonux/hexai/internal/logging/logging.go:47.25,48.32 1 0
@@ -20511,7 +22242,7 @@ codeberg.org/snonux/hexai/internal/lsp/handlers_execute.go:29.10,32.9 2 0
codeberg.org/snonux/hexai/internal/lsp/handlers_init.go:11.48,13.24 2 2
codeberg.org/snonux/hexai/internal/lsp/handlers_init.go:13.24,15.3 1 0
codeberg.org/snonux/hexai/internal/lsp/handlers_init.go:16.2,27.27 2 2
-codeberg.org/snonux/hexai/internal/lsp/handlers_init.go:30.38,32.2 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_init.go:30.38,32.2 1 1
codeberg.org/snonux/hexai/internal/lsp/handlers_init.go:34.46,36.2 1 1
codeberg.org/snonux/hexai/internal/lsp/handlers_init.go:38.31,41.2 2 0
codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:21.55,23.32 2 17
@@ -20684,45 +22415,45 @@ codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:453.3,454.50 2 6
codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:454.50,456.4 1 4
codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:457.3,458.22 2 6
codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:460.2,460.14 1 9
-codeberg.org/snonux/hexai/internal/lsp/server.go:126.90,129.20 3 5
-codeberg.org/snonux/hexai/internal/lsp/server.go:129.20,131.3 1 5
-codeberg.org/snonux/hexai/internal/lsp/server.go:132.2,134.23 3 5
-codeberg.org/snonux/hexai/internal/lsp/server.go:134.23,136.3 1 5
-codeberg.org/snonux/hexai/internal/lsp/server.go:137.2,138.22 2 5
-codeberg.org/snonux/hexai/internal/lsp/server.go:138.22,140.3 1 5
-codeberg.org/snonux/hexai/internal/lsp/server.go:141.2,142.27 2 5
-codeberg.org/snonux/hexai/internal/lsp/server.go:142.27,144.3 1 5
-codeberg.org/snonux/hexai/internal/lsp/server.go:145.2,151.38 6 5
-codeberg.org/snonux/hexai/internal/lsp/server.go:151.38,154.3 1 5
+codeberg.org/snonux/hexai/internal/lsp/server.go:126.90,129.20 3 6
+codeberg.org/snonux/hexai/internal/lsp/server.go:129.20,131.3 1 6
+codeberg.org/snonux/hexai/internal/lsp/server.go:132.2,134.23 3 6
+codeberg.org/snonux/hexai/internal/lsp/server.go:134.23,136.3 1 6
+codeberg.org/snonux/hexai/internal/lsp/server.go:137.2,138.22 2 6
+codeberg.org/snonux/hexai/internal/lsp/server.go:138.22,140.3 1 6
+codeberg.org/snonux/hexai/internal/lsp/server.go:141.2,142.27 2 6
+codeberg.org/snonux/hexai/internal/lsp/server.go:142.27,144.3 1 6
+codeberg.org/snonux/hexai/internal/lsp/server.go:145.2,151.38 6 6
+codeberg.org/snonux/hexai/internal/lsp/server.go:151.38,154.3 1 6
codeberg.org/snonux/hexai/internal/lsp/server.go:154.8,156.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/server.go:157.2,160.35 4 5
+codeberg.org/snonux/hexai/internal/lsp/server.go:157.2,160.35 4 6
codeberg.org/snonux/hexai/internal/lsp/server.go:160.35,162.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/server.go:163.2,163.35 1 5
+codeberg.org/snonux/hexai/internal/lsp/server.go:163.2,163.35 1 6
codeberg.org/snonux/hexai/internal/lsp/server.go:163.35,165.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/server.go:167.2,167.46 1 5
-codeberg.org/snonux/hexai/internal/lsp/server.go:167.46,169.3 1 4
+codeberg.org/snonux/hexai/internal/lsp/server.go:167.2,167.46 1 6
+codeberg.org/snonux/hexai/internal/lsp/server.go:167.46,169.3 1 5
codeberg.org/snonux/hexai/internal/lsp/server.go:169.8,171.3 1 1
-codeberg.org/snonux/hexai/internal/lsp/server.go:172.2,172.47 1 5
-codeberg.org/snonux/hexai/internal/lsp/server.go:172.47,174.3 1 4
+codeberg.org/snonux/hexai/internal/lsp/server.go:172.2,172.47 1 6
+codeberg.org/snonux/hexai/internal/lsp/server.go:172.47,174.3 1 5
codeberg.org/snonux/hexai/internal/lsp/server.go:174.8,176.3 1 1
-codeberg.org/snonux/hexai/internal/lsp/server.go:177.2,177.46 1 5
-codeberg.org/snonux/hexai/internal/lsp/server.go:177.46,179.3 1 3
+codeberg.org/snonux/hexai/internal/lsp/server.go:177.2,177.46 1 6
+codeberg.org/snonux/hexai/internal/lsp/server.go:177.46,179.3 1 4
codeberg.org/snonux/hexai/internal/lsp/server.go:179.8,181.3 1 2
-codeberg.org/snonux/hexai/internal/lsp/server.go:182.2,182.33 1 5
-codeberg.org/snonux/hexai/internal/lsp/server.go:182.33,184.3 1 3
+codeberg.org/snonux/hexai/internal/lsp/server.go:182.2,182.33 1 6
+codeberg.org/snonux/hexai/internal/lsp/server.go:182.33,184.3 1 4
codeberg.org/snonux/hexai/internal/lsp/server.go:184.8,186.3 1 2
-codeberg.org/snonux/hexai/internal/lsp/server.go:189.2,207.24 17 5
-codeberg.org/snonux/hexai/internal/lsp/server.go:207.24,209.3 1 5
-codeberg.org/snonux/hexai/internal/lsp/server.go:210.2,210.25 1 5
-codeberg.org/snonux/hexai/internal/lsp/server.go:210.25,212.3 1 5
-codeberg.org/snonux/hexai/internal/lsp/server.go:213.2,213.24 1 5
-codeberg.org/snonux/hexai/internal/lsp/server.go:213.24,215.3 1 5
-codeberg.org/snonux/hexai/internal/lsp/server.go:216.2,216.29 1 5
-codeberg.org/snonux/hexai/internal/lsp/server.go:216.29,218.3 1 5
-codeberg.org/snonux/hexai/internal/lsp/server.go:220.2,222.47 1 5
+codeberg.org/snonux/hexai/internal/lsp/server.go:189.2,207.24 17 6
+codeberg.org/snonux/hexai/internal/lsp/server.go:207.24,209.3 1 6
+codeberg.org/snonux/hexai/internal/lsp/server.go:210.2,210.25 1 6
+codeberg.org/snonux/hexai/internal/lsp/server.go:210.25,212.3 1 6
+codeberg.org/snonux/hexai/internal/lsp/server.go:213.2,213.24 1 6
+codeberg.org/snonux/hexai/internal/lsp/server.go:213.24,215.3 1 6
+codeberg.org/snonux/hexai/internal/lsp/server.go:216.2,216.29 1 6
+codeberg.org/snonux/hexai/internal/lsp/server.go:216.29,218.3 1 6
+codeberg.org/snonux/hexai/internal/lsp/server.go:220.2,222.47 1 6
codeberg.org/snonux/hexai/internal/lsp/server.go:222.47,222.72 1 0
codeberg.org/snonux/hexai/internal/lsp/server.go:224.47,224.65 1 0
-codeberg.org/snonux/hexai/internal/lsp/server.go:233.2,233.10 1 5
+codeberg.org/snonux/hexai/internal/lsp/server.go:233.2,233.10 1 6
codeberg.org/snonux/hexai/internal/lsp/server.go:236.30,237.6 1 0
codeberg.org/snonux/hexai/internal/lsp/server.go:237.6,239.20 2 0
codeberg.org/snonux/hexai/internal/lsp/server.go:239.20,241.4 1 0