summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPaul Buetow <paul@buetow.org>2025-09-08 12:02:40 +0300
committerPaul Buetow <paul@buetow.org>2025-09-08 12:02:40 +0300
commit75cf6abd55bfb60324fc47cf91eac08dbb8b87b4 (patch)
tree6ef90d8014fe4d9a757d3f7e95bf736b70e4c685
parent0dcf347c3fbc6e4ffb7e46294f5dd92dbbcd98ef (diff)
docs: move tmux documentation to its own file
-rw-r--r--Magefile.go22
-rw-r--r--PROJECTSTATUS.md8
-rw-r--r--README.md26
-rw-r--r--cmd/hexai-lsp/main_test.go31
-rw-r--r--cmd/hexai-tmux-action/main.go41
-rw-r--r--cmd/hexai/main_test.go32
-rw-r--r--docs/configuration.md19
-rw-r--r--docs/coverage.html89
-rw-r--r--docs/coverage.out10580
-rw-r--r--docs/helix-tmux-quickstart.md68
-rw-r--r--docs/tmux.md109
-rw-r--r--internal/appconfig/config.go84
-rw-r--r--internal/appconfig/config_test.go38
-rw-r--r--internal/editor/editor.go102
-rw-r--r--internal/editor/editor_test.go63
-rw-r--r--internal/hexaiaction/cmdentry.go252
-rw-r--r--internal/hexaiaction/cmdentry_runcommand_test.go87
-rw-r--r--internal/hexaiaction/cmdentry_test.go250
-rw-r--r--internal/hexaiaction/custom_action_test.go59
-rw-r--r--internal/hexaiaction/parse.go8
-rw-r--r--internal/hexaiaction/parse_test.go2
-rw-r--r--internal/hexaiaction/prompts_more_test.go23
-rw-r--r--internal/hexaiaction/run_more_test.go35
-rw-r--r--internal/hexaiaction/run_seam_test.go56
-rw-r--r--internal/hexaiaction/run_test.go70
-rw-r--r--internal/hexaiaction/tui.go114
-rw-r--r--internal/hexaiaction/tui_delegate.go36
-rw-r--r--internal/hexaiaction/tui_delegate_test.go42
-rw-r--r--internal/hexaiaction/tui_test.go74
-rw-r--r--internal/hexaiaction/types.go14
-rw-r--r--internal/hexaicli/editor_integration_test.go83
-rw-r--r--internal/hexaicli/run_more_test.go51
-rw-r--r--internal/hexailsp/run_more_test.go63
-rw-r--r--internal/llm/provider_more2_test.go13
-rw-r--r--internal/llmutils/client.go51
-rw-r--r--internal/llmutils/client_test.go33
-rw-r--r--internal/logging/logging_test.go33
-rw-r--r--internal/lsp/codeaction_gotest_int_test.go37
-rw-r--r--internal/lsp/coverage_add_test.go156
-rw-r--r--internal/lsp/handlers.go112
-rw-r--r--internal/lsp/handlers_codeaction.go110
-rw-r--r--internal/lsp/handlers_completion.go9
-rw-r--r--internal/lsp/handlers_document.go2
-rw-r--r--internal/lsp/handlers_init_more_test.go15
-rw-r--r--internal/lsp/server.go28
-rw-r--r--internal/testutil/fixtures_test.go9
-rw-r--r--internal/textutil/textutil.go192
-rw-r--r--internal/textutil/textutil_test.go130
-rw-r--r--internal/tmux/tmux.go18
-rw-r--r--internal/tmux/tmux_test.go135
50 files changed, 7029 insertions, 6685 deletions
diff --git a/Magefile.go b/Magefile.go
index 5c5be0b..b297a9d 100644
--- a/Magefile.go
+++ b/Magefile.go
@@ -17,16 +17,16 @@ import (
)
var (
- Default = Build // Default target: build all binaries.
+ Default = Build // Default target: build all binaries.
coverageThreshold float64 = 85
coveragePrinted = make(chan struct{}, 1)
)
// Build builds binaries.
func Build() error {
- mg.Deps(BuildHexaiLSP, BuildHexaiCLI, BuildHexaiTmuxAction)
- printCoverage()
- return nil
+ mg.Deps(BuildHexaiLSP, BuildHexaiCLI, BuildHexaiTmuxAction)
+ printCoverage()
+ return nil
}
// BuildHexaiLSP builds the LSP server binary.
@@ -43,8 +43,8 @@ func BuildHexaiCLI() error {
// BuildHexaiTmuxAction builds the hexai-tmux-action TUI binary.
func BuildHexaiTmuxAction() error {
- printCoverage()
- return sh.RunV("go", "build", "-o", "hexai-tmux-action", "cmd/hexai-tmux-action/main.go")
+ printCoverage()
+ return sh.RunV("go", "build", "-o", "hexai-tmux-action", "cmd/hexai-tmux-action/main.go")
}
// Dev runs tests, vet, lint, then builds with race for both binaries.
@@ -57,7 +57,7 @@ func Dev() error {
if err := sh.RunV("go", "build", "-race", "-o", "hexai", "cmd/hexai/main.go"); err != nil {
return err
}
- return sh.RunV("go", "build", "-race", "-o", "hexai-tmux-action", "cmd/hexai-tmux-action/main.go")
+ return sh.RunV("go", "build", "-race", "-o", "hexai-tmux-action", "cmd/hexai-tmux-action/main.go")
}
// Run launches the LSP server via go run (useful during development).
@@ -97,14 +97,14 @@ func Install() error {
if err := sh.RunV("cp", "-v", "./hexai", bin+"/"); err != nil {
return err
}
- return sh.RunV("cp", "-v", "./hexai-tmux-action", bin+"/")
+ return sh.RunV("cp", "-v", "./hexai-tmux-action", bin+"/")
}
// RunTmuxAction runs the hexai-tmux-action TUI via go run (reads stdin).
func RunTmuxAction() error {
- printCoverage()
- mg.Deps(Dev)
- return sh.RunV("go", "run", "cmd/hexai-tmux-action/main.go")
+ printCoverage()
+ mg.Deps(Dev)
+ return sh.RunV("go", "run", "cmd/hexai-tmux-action/main.go")
}
// printCoverage prints a warning if an existing coverage profile shows total < coverateThreshold.
diff --git a/PROJECTSTATUS.md b/PROJECTSTATUS.md
index 41a634a..9991645 100644
--- a/PROJECTSTATUS.md
+++ b/PROJECTSTATUS.md
@@ -1,19 +1,13 @@
# Project status
-This documents shows future items and in progress items. Already completed ones are removed from this document as we go.
+This document shows future items and items in progress. Already completed ones are deleted from this document as updates occur.
## Features
-* [ ] tmux or helix status line updates with LLM progress/stats?
-* [/] EDITOR support for custom action in hexai-tmux-action
- * Verify documentation is correct
-* [/] EDITOR support for hexai when no args given
- * Verify documentation is correct
* [ ] In-editor chat triggers should be context aware of the current file, buffer and function!
* [ ] Kagi FastGPT for in-editor search
- Think about an in-editor chat trigger, maybe with S> for search!
* [ ] Test whethe GitHub Copilot support actually works now, and if not, fix it!
-* [ ] Fish and zsh and bash shell integration for command completion? Have access to the current shell history (N last commands), current directory content, and current directory name.
* [ ] Be able to re-configure the temperature in-editor
* [ ] Be able to switch LLMs.
diff --git a/README.md b/README.md
index 32ce84f..a2b1836 100644
--- a/README.md
+++ b/README.md
@@ -20,7 +20,7 @@ It has got improved capabilities for Go code understanding (for example, create
* [Configuration guide](docs/configuration.md)
* [Usage examples](docs/usage.md)
-* [Helix + tmux quickstart](docs/helix-tmux-quickstart.md)
+* [Helix + tmux quickstart](docs/tmux.md)
## Build and tasks
@@ -53,26 +53,4 @@ Either use the Mage method as mentioned above, or install directly with:
## Tmux Status Line
-Hexai can surface live progress in tmux's status line via a user option. Add this to your `~/.tmux.conf`:
-
-```
-set -g status-right '#{@hexai_status} #[fg=colour8]| %H:%M'
-```
-
-- Note: `colour8` is typically “bright black” (a dim grey) in many themes.
- If it’s low-contrast on your background, change it (e.g., `colour7` or `white`).
-
-- CLI updates `@hexai_status` at start (⏳ provider:model) and on completion with compact stats (↑sent, ↓recv, rpm, reqs).
-- LSP emits an initial heartbeat on client initialize and periodic compact stats (provider, model, rpm, reqs, bytes).
-- The TUI action runner sets a ready heartbeat and a completion heartbeat with stats.
-- Toggle with `HEXAI_TMUX_STATUS=0` to disable (enabled by default).
-
-The status segment supports simple theming:
-
-- Preset themes:
- - `HEXAI_TMUX_STATUS_THEME=white-on-purple` (white fg on purple/magenta bg)
- - `HEXAI_TMUX_STATUS_THEME=black-on-yellow` (black fg on yellow bg)
-- Explicit colors: set any tmux color names or 256-color codes
- - `HEXAI_TMUX_STATUS_FG=white`
- - `HEXAI_TMUX_STATUS_BG=magenta` (or `colour5`, etc.)
-- If the segment is truncated, widen it: `set -g status-right-length 120`
+See the [tmux integration guide](docs/tmux.md) for details on configuring the status line.
diff --git a/cmd/hexai-lsp/main_test.go b/cmd/hexai-lsp/main_test.go
index 987bfb4..387b640 100644
--- a/cmd/hexai-lsp/main_test.go
+++ b/cmd/hexai-lsp/main_test.go
@@ -1,23 +1,22 @@
package main
import (
- "bytes"
- "log"
- "os"
- "testing"
+ "bytes"
+ "log"
+ "os"
+ "testing"
)
func TestMain_Version(t *testing.T) {
- oldArgs := os.Args
- defer func() { os.Args = oldArgs }()
- os.Args = []string{"hexai-lsp", "-version"}
- var buf bytes.Buffer
- old := log.Writer()
- log.SetOutput(&buf)
- defer log.SetOutput(old)
- main()
- if buf.Len() == 0 {
- t.Fatalf("expected version log")
- }
+ oldArgs := os.Args
+ defer func() { os.Args = oldArgs }()
+ os.Args = []string{"hexai-lsp", "-version"}
+ var buf bytes.Buffer
+ old := log.Writer()
+ log.SetOutput(&buf)
+ defer log.SetOutput(old)
+ main()
+ if buf.Len() == 0 {
+ t.Fatalf("expected version log")
+ }
}
-
diff --git a/cmd/hexai-tmux-action/main.go b/cmd/hexai-tmux-action/main.go
index 02cfe09..2d8793b 100644
--- a/cmd/hexai-tmux-action/main.go
+++ b/cmd/hexai-tmux-action/main.go
@@ -1,30 +1,29 @@
package main
import (
- "context"
- "flag"
- "fmt"
- "os"
+ "context"
+ "flag"
+ "fmt"
+ "os"
- "codeberg.org/snonux/hexai/internal/hexaiaction"
+ "codeberg.org/snonux/hexai/internal/hexaiaction"
)
func main() {
- infile := flag.String("infile", "", "Read input from this file instead of stdin")
- outfile := flag.String("outfile", "", "Write output to this file instead of stdout")
- uiChild := flag.Bool("ui-child", false, "INTERNAL: run interactive UI and write to -outfile atomically")
- tmuxTarget := flag.String("tmux-target", "", "tmux split target (advanced)")
- tmuxSplit := flag.String("tmux-split", "v", "tmux split orientation: v or h")
- tmuxPercent := flag.Int("tmux-percent", 33, "tmux split size percentage (1-100)")
- flag.Parse()
+ infile := flag.String("infile", "", "Read input from this file instead of stdin")
+ outfile := flag.String("outfile", "", "Write output to this file instead of stdout")
+ uiChild := flag.Bool("ui-child", false, "INTERNAL: run interactive UI and write to -outfile atomically")
+ tmuxTarget := flag.String("tmux-target", "", "tmux split target (advanced)")
+ tmuxSplit := flag.String("tmux-split", "v", "tmux split orientation: v or h")
+ tmuxPercent := flag.Int("tmux-percent", 33, "tmux split size percentage (1-100)")
+ flag.Parse()
- opts := hexaiaction.Options{
- Infile: *infile, Outfile: *outfile,
- UIChild: *uiChild, TmuxTarget: *tmuxTarget, TmuxSplit: *tmuxSplit, TmuxPercent: *tmuxPercent,
- }
- if err := hexaiaction.RunCommand(context.Background(), opts, os.Stdin, os.Stdout, os.Stderr); err != nil {
- fmt.Fprintln(os.Stderr, err)
- os.Exit(1)
- }
+ opts := hexaiaction.Options{
+ Infile: *infile, Outfile: *outfile,
+ UIChild: *uiChild, TmuxTarget: *tmuxTarget, TmuxSplit: *tmuxSplit, TmuxPercent: *tmuxPercent,
+ }
+ if err := hexaiaction.RunCommand(context.Background(), opts, os.Stdin, os.Stdout, os.Stderr); err != nil {
+ fmt.Fprintln(os.Stderr, err)
+ os.Exit(1)
+ }
}
-
diff --git a/cmd/hexai/main_test.go b/cmd/hexai/main_test.go
index beb684b..70c844f 100644
--- a/cmd/hexai/main_test.go
+++ b/cmd/hexai/main_test.go
@@ -1,23 +1,23 @@
package main
import (
- "io"
- "os"
- "testing"
+ "io"
+ "os"
+ "testing"
)
func TestMain_Version(t *testing.T) {
- oldArgs := os.Args
- defer func() { os.Args = oldArgs }()
- os.Args = []string{"hexai", "-version"}
- r, w, _ := os.Pipe()
- old := os.Stdout
- os.Stdout = w
- defer func() { os.Stdout = old }()
- main()
- w.Close()
- b, _ := io.ReadAll(r)
- if len(b) == 0 {
- t.Fatalf("expected version output")
- }
+ oldArgs := os.Args
+ defer func() { os.Args = oldArgs }()
+ os.Args = []string{"hexai", "-version"}
+ r, w, _ := os.Pipe()
+ old := os.Stdout
+ os.Stdout = w
+ defer func() { os.Stdout = old }()
+ main()
+ w.Close()
+ b, _ := io.ReadAll(r)
+ if len(b) == 0 {
+ t.Fatalf("expected version output")
+ }
}
diff --git a/docs/configuration.md b/docs/configuration.md
index 95b65de..0b9e204 100644
--- a/docs/configuration.md
+++ b/docs/configuration.md
@@ -64,24 +64,7 @@ Editor integration
Tmux status line
-- Hexai can update a tmux user option during LLM activity. Add this to your `~/.tmux.conf` to display it:
-
- - `set -g status-right '#{@hexai_status} #[fg=colour8]| %H:%M'`
-
-- Status content is updated best‑effort at key moments:
- - CLI: start (⏳ provider:model) and completion with compact stats (↑sent, ↓recv, rpm, reqs)
- - LSP: initial heartbeat on client initialize, and periodic compact stats (provider, model, rpm, reqs, bytes)
- - TUI action runner: ready (provider:model) and completion with compact stats
-
-- Toggle via environment:
- - Enable (default): unset or `HEXAI_TMUX_STATUS=1`
- - Disable: `HEXAI_TMUX_STATUS=0`
-
-- Theme and colors:
- - Preset: `HEXAI_TMUX_STATUS_THEME=white-on-purple` (white fg on purple/magenta bg)
- - Explicit: `HEXAI_TMUX_STATUS_FG=<color>`, `HEXAI_TMUX_STATUS_BG=<color>` (e.g., `white`, `magenta`, `colour5`)
- - Colors use tmux’s `fg`/`bg` names; both methods wrap the entire `@hexai_status` segment.
- - If truncated, increase width: `set -g status-right-length 120`
+See the [tmux integration guide](docs/tmux.md) for details on configuring the status line.
Code action prompts
diff --git a/docs/coverage.html b/docs/coverage.html
index 8560a58..059834b 100644
--- a/docs/coverage.html
+++ b/docs/coverage.html
@@ -71,13 +71,13 @@
<option value="file7">codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go (85.0%)</option>
- <option value="file8">codeberg.org/snonux/hexai/internal/hexaiaction/run.go (67.3%)</option>
+ <option value="file8">codeberg.org/snonux/hexai/internal/hexaiaction/run.go (69.2%)</option>
<option value="file9">codeberg.org/snonux/hexai/internal/hexaiaction/tui.go (65.5%)</option>
<option value="file10">codeberg.org/snonux/hexai/internal/hexaiaction/tui_delegate.go (100.0%)</option>
- <option value="file11">codeberg.org/snonux/hexai/internal/hexaicli/run.go (88.4%)</option>
+ <option value="file11">codeberg.org/snonux/hexai/internal/hexaicli/run.go (88.7%)</option>
<option value="file12">codeberg.org/snonux/hexai/internal/hexailsp/run.go (92.5%)</option>
@@ -113,7 +113,7 @@
<option value="file28">codeberg.org/snonux/hexai/internal/lsp/handlers_init.go (66.7%)</option>
- <option value="file29">codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go (89.0%)</option>
+ <option value="file29">codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go (89.1%)</option>
<option value="file30">codeberg.org/snonux/hexai/internal/lsp/server.go (82.6%)</option>
@@ -123,7 +123,9 @@
<option value="file33">codeberg.org/snonux/hexai/internal/textutil/textutil.go (89.0%)</option>
- <option value="file34">codeberg.org/snonux/hexai/internal/tmux/tmux.go (88.6%)</option>
+ <option value="file34">codeberg.org/snonux/hexai/internal/tmux/status.go (66.7%)</option>
+
+ <option value="file35">codeberg.org/snonux/hexai/internal/tmux/tmux.go (88.6%)</option>
</select>
</div>
@@ -1485,6 +1487,7 @@ import (
"codeberg.org/snonux/hexai/internal/editor"
"codeberg.org/snonux/hexai/internal/logging"
"codeberg.org/snonux/hexai/internal/llmutils"
+ "codeberg.org/snonux/hexai/internal/tmux"
)
// Run executes the hexai-tmux-action command flow.
@@ -1495,12 +1498,14 @@ var newClientFromApp = llmutils.NewClientFromApp
func Run(ctx context.Context, stdin io.Reader, stdout, stderr io.Writer) error <span class="cov7" title="4">{
logger := log.New(stderr, "hexai-tmux-action ", log.LstdFlags|log.Lmsgprefix)
cfg := appconfig.Load(logger)
- client, err := newClientFromApp(cfg)
+ cli, err := newClientFromApp(cfg)
if err != nil </span><span class="cov1" title="1">{
fmt.Fprintf(stderr, logging.AnsiBase+"hexai-tmux-action: LLM disabled: %v"+logging.AnsiReset+"\n", err)
return err
}</span>
- <span class="cov6" title="3">parts, err := ParseInput(stdin)
+ <span class="cov6" title="3">_ = tmux.SetStatus("hexai action ready " + cli.DefaultModel())
+ var client chatDoer = cli
+ parts, err := ParseInput(stdin)
if err != nil </span><span class="cov0" title="0">{
fmt.Fprintln(stderr, logging.AnsiBase+"hexai-tmux-action: failed to read input"+logging.AnsiReset)
return err
@@ -1512,12 +1517,13 @@ func Run(ctx context.Context, stdin io.Reader, stdout, stderr io.Writer) error <
if err != nil </span><span class="cov0" title="0">{
return err
}</span>
- <span class="cov6" title="3">out, err := executeAction(ctx, kind, parts, cfg, client, stderr)
- if err != nil </span><span class="cov0" title="0">{
- return err
- }</span>
- <span class="cov6" title="3">io.WriteString(stdout, out)
- return nil</span>
+ <span class="cov6" title="3">out, err := executeAction(ctx, kind, parts, cfg, client, stderr)
+ if err != nil </span><span class="cov0" title="0">{
+ return err
+ }</span>
+ <span class="cov6" title="3">io.WriteString(stdout, out)
+ _ = tmux.SetStatus("✅ " + cli.DefaultModel())
+ 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="7">{
@@ -1745,6 +1751,7 @@ import (
"codeberg.org/snonux/hexai/internal/logging"
"codeberg.org/snonux/hexai/internal/llm"
"codeberg.org/snonux/hexai/internal/llmutils"
+ "codeberg.org/snonux/hexai/internal/tmux"
)
// Run executes the Hexai CLI behavior given arguments and I/O streams.
@@ -1851,8 +1858,10 @@ func buildMessagesFromConfig(cfg appconfig.App, input string) []llm.Message <spa
// runChat executes the chat request, handling streaming and summary output.
func runChat(ctx context.Context, client llm.Client, msgs []llm.Message, input string, out io.Writer, errw io.Writer) error <span class="cov10" title="7">{
- start := time.Now()
- var output string
+ start := time.Now()
+ // Best-effort tmux status update
+ _ = tmux.SetStatus("⏳ " + client.Name() + ":" + client.DefaultModel())
+ var output string
if s, ok := client.(llm.Streamer); ok </span><span class="cov4" title="2">{
var b strings.Builder
if err := s.ChatStream(ctx, msgs, func(chunk string) </span><span class="cov8" title="5">{
@@ -1870,10 +1879,11 @@ func runChat(ctx context.Context, client llm.Client, msgs []llm.Message, input s
<span class="cov6" title="3">output = txt
fmt.Fprint(out, output)</span>
}
- <span class="cov8" title="5">dur := time.Since(start)
- fmt.Fprintf(errw, "\n"+logging.AnsiBase+"done provider=%s model=%s time=%s in_bytes=%d out_bytes=%d"+logging.AnsiReset+"\n",
- client.Name(), client.DefaultModel(), dur.Round(time.Millisecond), len(input), len(output))
- return nil</span>
+ <span class="cov8" title="5">dur := time.Since(start)
+ fmt.Fprintf(errw, "\n"+logging.AnsiBase+"done provider=%s model=%s time=%s in_bytes=%d out_bytes=%d"+logging.AnsiReset+"\n",
+ client.Name(), client.DefaultModel(), dur.Round(time.Millisecond), len(input), len(output))
+ _ = tmux.SetStatus("✅ " + client.DefaultModel() + " " + dur.Round(time.Millisecond).String())
+ return nil</span>
}
// printProviderInfo writes the provider/model line to stderr.
@@ -5260,6 +5270,7 @@ import (
"codeberg.org/snonux/hexai/internal/llm"
"codeberg.org/snonux/hexai/internal/logging"
"codeberg.org/snonux/hexai/internal/textutil"
+ tmx "codeberg.org/snonux/hexai/internal/tmux"
)
// Configurable inline trigger characters (default to '&gt;') used by free helpers below.
@@ -5312,7 +5323,11 @@ func (s *Server) logLLMStats() <span class="cov5" title="8">{
<span class="cov5" title="8">rpm := float64(reqs) / mins
sentPerMin := float64(sentTot) / mins
recvPerMin := float64(recvTot) / mins
- logging.Logf("lsp ", "llm stats reqs=%d avg_sent=%d avg_recv=%d sent_total=%d recv_total=%d rpm=%.2f sent_per_min=%.0f recv_per_min=%.0f", reqs, avgSent, avgRecv, sentTot, recvTot, rpm, sentPerMin, recvPerMin)</span>
+ logging.Logf("lsp ", "llm stats reqs=%d avg_sent=%d avg_recv=%d sent_total=%d recv_total=%d rpm=%.2f sent_per_min=%.0f recv_per_min=%.0f", reqs, avgSent, avgRecv, sentTot, recvTot, rpm, sentPerMin, recvPerMin)
+ // Best-effort tmux status update
+ if s.llmClient != nil </span><span class="cov4" title="7">{
+ _ = tmx.SetStatus("LLM:" + s.llmClient.DefaultModel())
+ }</span>
}
// Completion prompt builders and filters
@@ -6197,6 +6212,36 @@ func FindStrictInlineTag(line string) (text string, left, right int, ok bool) <s
import (
"os"
"os/exec"
+ "strings"
+)
+
+// Enabled reports whether tmux status updates are enabled via env (default: on).
+func Enabled() bool <span class="cov10" title="25">{
+ v := strings.TrimSpace(os.Getenv("HEXAI_TMUX_STATUS"))
+ if v == "" </span><span class="cov10" title="25">{ return true }</span>
+ <span class="cov0" title="0">v = strings.ToLower(v)
+ return v == "1" || v == "true" || v == "yes" || v == "on"</span>
+}
+
+// SetUserOption sets a global tmux user option like @hexai_status to value.
+func SetUserOption(key, value string) error <span class="cov10" title="25">{
+ if !Enabled() || !HasBinary() || !InSession() </span><span class="cov0" title="0">{ return nil }</span>
+ <span class="cov10" title="25">k := strings.TrimPrefix(strings.TrimSpace(key), "@")
+ if k == "" </span><span class="cov0" title="0">{ return nil }</span>
+ // Use set-option -g so it appears for all windows
+ <span class="cov10" title="25">return exec.Command("tmux", "set-option", "-g", "@"+k, value).Run()</span>
+}
+
+// SetStatus is a convenience for setting @hexai_status.
+func SetStatus(value string) error <span class="cov10" title="25">{ return SetUserOption("hexai_status", value) }</span>
+
+</pre>
+
+ <pre class="file" id="file35" style="display: none">package tmux
+
+import (
+ "os"
+ "os/exec"
"strconv"
"strings"
)
@@ -6208,10 +6253,10 @@ func Available() bool <span class="cov2" title="2">{ return HasBinary() &amp;&am
var lookPath = exec.LookPath
var command = exec.Command
-func HasBinary() bool <span class="cov4" title="4">{ _, err := lookPath("tmux"); return err == nil }</span>
+func HasBinary() bool <span class="cov10" title="29">{ _, err := lookPath("tmux"); return err == nil }</span>
// InSession reports whether we seem to be running inside a tmux session.
-func InSession() bool <span class="cov4" title="3">{ return strings.TrimSpace(os.Getenv("TMUX")) != "" }</span>
+func InSession() bool <span class="cov9" title="28">{ return strings.TrimSpace(os.Getenv("TMUX")) != "" }</span>
// SplitOpts controls how a new pane is created for running a command.
type SplitOpts struct {
@@ -6268,7 +6313,7 @@ func shellJoin(argv []string) string <span class="cov1" title="1">{
// isSafeBare returns true if a contains only safe characters for bare words.
func isSafeBare(s string) bool <span class="cov4" title="4">{
- for i := 0; i &lt; len(s); i++ </span><span class="cov10" title="27">{
+ for i := 0; i &lt; len(s); i++ </span><span class="cov9" title="27">{
b := s[i]
if (b &gt;= 'a' &amp;&amp; b &lt;= 'z') || (b &gt;= 'A' &amp;&amp; b &lt;= 'Z') || (b &gt;= '0' &amp;&amp; b &lt;= '9') || b == '-' || b == '_' || b == '.' || b == '/' || b == ':' </span><span class="cov9" title="25">{
continue</span>
diff --git a/docs/coverage.out b/docs/coverage.out
index 29c09e0..45ffbdd 100644
--- a/docs/coverage.out
+++ b/docs/coverage.out
@@ -425,30 +425,30 @@ codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:84.37,86.6 1 0
codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:87.5,87.16 1 0
codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:91.79,93.2 1 0
codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:95.78,97.2 1 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:21.80,25.19 4 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:25.19,28.6 2 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:29.5,30.16 2 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:30.16,33.3 2 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:34.2,34.46 1 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:34.46,36.3 1 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:37.5,38.19 2 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:38.19,40.6 1 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:41.2,42.16 2 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:42.16,44.3 1 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:45.2,46.12 2 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:49.146,50.17 1 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:51.21,52.36 1 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:53.24,55.37 2 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:55.37,58.4 2 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:59.3,61.55 3 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:62.25,65.79 3 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:66.25,69.63 3 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:70.23,73.61 3 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:74.25,77.63 3 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:78.23,83.58 4 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:83.58,86.10 2 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:87.9,87.70 1 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:88.13,89.36 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:22.80,26.19 4 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:26.19,29.6 2 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:30.5,33.16 4 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:33.16,36.3 2 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:37.2,37.46 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:37.46,39.3 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:40.5,41.19 2 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:41.19,43.6 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:44.5,45.19 2 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:45.19,47.6 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:48.5,50.15 3 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:53.146,54.17 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:55.21,56.36 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:57.24,59.37 2 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:59.37,62.4 2 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:63.3,65.55 3 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:66.25,69.79 3 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:70.25,73.63 3 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:74.23,77.61 3 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:78.25,81.63 3 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:82.23,87.58 4 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:87.58,90.10 2 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:91.9,91.70 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:92.13,93.36 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
@@ -492,47 +492,47 @@ 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:24.95,29.16 4 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:29.16,32.3 2 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:34.5,34.23 1 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:34.23,35.104 1 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:35.104,37.10 1 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:37.16,39.10 0 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:42.5,43.17 2 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:43.17,46.3 2 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:47.2,49.74 3 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:49.74,52.3 2 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:53.2,53.12 1 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:58.124,60.16 2 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:60.16,63.3 2 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:64.2,66.74 3 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:66.74,69.3 2 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:70.2,70.12 1 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:74.64,76.82 2 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:76.82,79.3 2 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:80.2,81.9 2 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:82.40,83.59 1 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:84.23,85.24 1 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:86.21,87.22 1 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:88.10,89.91 1 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:97.48,100.40 3 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:100.40,102.3 1 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:103.2,106.3 1 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:110.77,113.40 3 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:113.40,114.58 1 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:114.58,116.4 1 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:118.2,121.3 1 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:125.125,128.40 3 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:128.40,130.56 2 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:130.56,133.4 2 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:133.18,135.4 1 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:136.3,136.22 1 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:137.8,139.17 2 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:139.17,141.4 1 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:142.3,143.26 2 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:145.2,148.12 3 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:152.59,154.2 1 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:160.65,160.97 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:25.95,30.16 4 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:30.16,33.3 2 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:35.5,35.23 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:35.23,36.104 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:36.104,38.10 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:38.16,40.10 0 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:43.5,44.17 2 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:44.17,47.3 2 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:48.2,50.74 3 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:50.74,53.3 2 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:54.2,54.12 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:59.124,61.16 2 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:61.16,64.3 2 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:65.2,67.74 3 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:67.74,70.3 2 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:71.2,71.12 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:75.64,77.82 2 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:77.82,80.3 2 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:81.2,82.9 2 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:83.40,84.59 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:85.23,86.24 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:87.21,88.22 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:89.10,90.91 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:98.48,101.40 3 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:101.40,103.3 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:104.2,107.3 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:111.77,114.40 3 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:114.40,115.58 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:115.58,117.4 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:119.2,122.3 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:126.125,131.40 4 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:131.40,133.56 2 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:133.56,136.4 2 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:136.18,138.4 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:139.3,139.22 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:140.8,142.17 2 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:142.17,144.4 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:145.3,146.26 2 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:148.5,152.15 4 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:156.59,158.2 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:164.65,164.97 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
@@ -1448,176 +1448,177 @@ 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:22.55,24.32 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:24.32,26.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:27.2,27.13 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:31.41,36.2 4 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:38.41,43.2 4 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:45.32,48.23 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:48.23,50.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:51.2,52.24 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:52.24,54.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:55.2,58.15 4 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:58.15,60.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:61.2,66.27 5 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:66.27,68.6 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:72.51,73.41 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:73.41,75.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:76.2,78.71 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:82.62,82.105 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:84.118,85.14 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:85.14,88.16 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:88.16,91.35 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:91.35,93.5 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:94.4,94.36 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:94.36,96.5 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:97.4,99.59 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:99.59,101.5 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:102.4,102.21 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:105.2,108.19 4 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:111.51,112.23 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:112.23,114.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:115.2,115.13 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:115.13,117.100 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:117.100,119.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:121.3,121.8 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:123.2,123.11 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:126.32,128.2 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:131.44,132.50 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:132.50,134.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:135.2,135.35 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:138.40,140.20 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:140.20,141.40 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:141.40,143.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:145.3,145.8 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:147.2,147.12 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:147.12,149.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:150.2,150.17 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:153.52,154.38 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:154.38,156.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:157.2,158.27 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:158.27,159.34 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:159.34,160.12 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:162.3,162.36 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:162.36,163.12 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:165.3,165.25 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:167.2,167.34 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:175.64,177.22 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:177.22,180.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:180.12,182.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:183.3,185.74 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:185.74,187.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:190.3,191.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:191.12,193.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:194.3,195.48 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:195.48,197.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:199.3,200.18 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:200.18,202.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:204.3,205.29 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:207.2,207.24 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:213.41,217.31 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:217.31,219.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:220.2,220.29 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:220.29,222.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:223.2,223.31 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:223.31,225.32 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:225.32,227.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:229.2,229.14 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:233.83,236.102 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:236.102,238.36 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:238.36,240.136 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:240.136,242.5 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:243.4,245.34 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:245.34,247.5 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:251.2,251.65 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:251.65,252.53 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:252.53,254.37 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:254.37,256.137 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:256.137,258.6 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:259.5,261.35 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:261.35,263.6 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:267.2,267.19 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:271.80,272.22 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:272.22,274.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:275.2,277.40 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:277.40,279.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:280.2,280.34 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:280.34,281.31 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:281.31,282.12 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:284.3,285.16 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:285.16,286.12 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:288.3,288.32 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:288.32,290.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:292.2,292.19 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:295.36,297.2 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:300.39,300.77 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:303.43,305.13 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:305.13,307.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:308.2,309.11 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:309.11,311.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:312.2,313.14 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:313.14,315.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:316.2,317.19 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:321.56,323.89 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:323.89,325.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:326.2,326.14 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:330.52,331.32 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:331.32,333.28 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:333.28,335.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:336.3,336.34 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:336.34,338.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:339.3,339.42 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:339.42,341.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:342.3,342.49 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:344.2,347.27 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:347.27,349.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:350.2,350.36 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:350.36,352.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:353.2,356.49 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:356.49,358.24 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:358.24,360.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:363.2,364.25 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:364.25,366.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:367.2,367.33 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:367.33,369.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:370.2,371.19 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:375.67,377.35 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:377.35,379.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:380.2,381.31 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:381.31,383.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:384.2,384.14 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:387.69,388.32 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:388.32,390.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:391.2,391.47 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:394.45,396.22 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:396.22,400.12 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:400.12,402.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:403.3,405.32 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:405.32,407.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:408.3,409.46 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:409.46,411.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:414.3,415.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:415.12,417.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:418.3,419.49 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:419.49,421.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:423.3,423.14 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:425.2,425.14 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:428.67,431.28 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:431.28,433.12 2 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/handlers_utils.go:436.3,438.12 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:438.12,439.9 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:441.3,441.43 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:441.43,443.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:445.3,445.34 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:445.34,447.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:449.3,450.48 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:450.48,452.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:454.3,454.25 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:454.25,456.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:458.3,459.50 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:459.50,461.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:462.3,463.22 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:465.2,465.14 1 0
codeberg.org/snonux/hexai/internal/lsp/server.go:130.90,133.20 3 0
codeberg.org/snonux/hexai/internal/lsp/server.go:133.20,135.3 1 0
codeberg.org/snonux/hexai/internal/lsp/server.go:136.2,138.23 3 0
@@ -1747,6 +1748,15 @@ 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/status.go:10.21,12.16 2 0
+codeberg.org/snonux/hexai/internal/tmux/status.go:12.16,12.31 1 0
+codeberg.org/snonux/hexai/internal/tmux/status.go:13.5,14.62 2 0
+codeberg.org/snonux/hexai/internal/tmux/status.go:18.45,19.51 1 0
+codeberg.org/snonux/hexai/internal/tmux/status.go:19.51,19.65 1 0
+codeberg.org/snonux/hexai/internal/tmux/status.go:20.5,21.16 2 0
+codeberg.org/snonux/hexai/internal/tmux/status.go:21.16,21.30 1 0
+codeberg.org/snonux/hexai/internal/tmux/status.go:23.5,23.72 1 0
+codeberg.org/snonux/hexai/internal/tmux/status.go:27.36,27.83 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
@@ -1772,8 +1782,6 @@ 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-tmux-action/main.go:12.13,25.110 9 0
-codeberg.org/snonux/hexai/cmd/hexai-tmux-action/main.go:25.110,28.6 2 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
@@ -2200,30 +2208,30 @@ codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:84.37,86.6 1 0
codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:87.5,87.16 1 0
codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:91.79,93.2 1 0
codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:95.78,97.2 1 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:21.80,25.19 4 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:25.19,28.6 2 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:29.5,30.16 2 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:30.16,33.3 2 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:34.2,34.46 1 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:34.46,36.3 1 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:37.5,38.19 2 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:38.19,40.6 1 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:41.2,42.16 2 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:42.16,44.3 1 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:45.2,46.12 2 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:49.146,50.17 1 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:51.21,52.36 1 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:53.24,55.37 2 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:55.37,58.4 2 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:59.3,61.55 3 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:62.25,65.79 3 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:66.25,69.63 3 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:70.23,73.61 3 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:74.25,77.63 3 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:78.23,83.58 4 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:83.58,86.10 2 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:87.9,87.70 1 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:88.13,89.36 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:22.80,26.19 4 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:26.19,29.6 2 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:30.5,33.16 4 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:33.16,36.3 2 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:37.2,37.46 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:37.46,39.3 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:40.5,41.19 2 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:41.19,43.6 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:44.5,45.19 2 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:45.19,47.6 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:48.5,50.15 3 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:53.146,54.17 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:55.21,56.36 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:57.24,59.37 2 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:59.37,62.4 2 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:63.3,65.55 3 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:66.25,69.79 3 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:70.25,73.63 3 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:74.23,77.61 3 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:78.25,81.63 3 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:82.23,87.58 4 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:87.58,90.10 2 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:91.9,91.70 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:92.13,93.36 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
@@ -2267,47 +2275,47 @@ 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:24.95,29.16 4 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:29.16,32.3 2 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:34.5,34.23 1 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:34.23,35.104 1 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:35.104,37.10 1 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:37.16,39.10 0 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:42.5,43.17 2 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:43.17,46.3 2 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:47.2,49.74 3 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:49.74,52.3 2 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:53.2,53.12 1 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:58.124,60.16 2 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:60.16,63.3 2 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:64.2,66.74 3 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:66.74,69.3 2 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:70.2,70.12 1 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:74.64,76.82 2 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:76.82,79.3 2 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:80.2,81.9 2 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:82.40,83.59 1 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:84.23,85.24 1 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:86.21,87.22 1 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:88.10,89.91 1 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:97.48,100.40 3 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:100.40,102.3 1 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:103.2,106.3 1 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:110.77,113.40 3 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:113.40,114.58 1 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:114.58,116.4 1 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:118.2,121.3 1 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:125.125,128.40 3 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:128.40,130.56 2 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:130.56,133.4 2 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:133.18,135.4 1 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:136.3,136.22 1 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:137.8,139.17 2 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:139.17,141.4 1 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:142.3,143.26 2 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:145.2,148.12 3 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:152.59,154.2 1 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:160.65,160.97 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:25.95,30.16 4 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:30.16,33.3 2 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:35.5,35.23 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:35.23,36.104 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:36.104,38.10 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:38.16,40.10 0 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:43.5,44.17 2 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:44.17,47.3 2 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:48.2,50.74 3 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:50.74,53.3 2 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:54.2,54.12 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:59.124,61.16 2 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:61.16,64.3 2 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:65.2,67.74 3 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:67.74,70.3 2 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:71.2,71.12 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:75.64,77.82 2 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:77.82,80.3 2 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:81.2,82.9 2 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:83.40,84.59 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:85.23,86.24 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:87.21,88.22 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:89.10,90.91 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:98.48,101.40 3 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:101.40,103.3 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:104.2,107.3 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:111.77,114.40 3 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:114.40,115.58 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:115.58,117.4 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:119.2,122.3 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:126.125,131.40 4 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:131.40,133.56 2 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:133.56,136.4 2 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:136.18,138.4 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:139.3,139.22 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:140.8,142.17 2 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:142.17,144.4 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:145.3,146.26 2 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:148.5,152.15 4 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:156.59,158.2 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:164.65,164.97 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
@@ -3223,176 +3231,177 @@ 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:22.55,24.32 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:24.32,26.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:27.2,27.13 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:31.41,36.2 4 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:38.41,43.2 4 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:45.32,48.23 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:48.23,50.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:51.2,52.24 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:52.24,54.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:55.2,58.15 4 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:58.15,60.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:61.2,66.27 5 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:66.27,68.6 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:72.51,73.41 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:73.41,75.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:76.2,78.71 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:82.62,82.105 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:84.118,85.14 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:85.14,88.16 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:88.16,91.35 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:91.35,93.5 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:94.4,94.36 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:94.36,96.5 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:97.4,99.59 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:99.59,101.5 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:102.4,102.21 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:105.2,108.19 4 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:111.51,112.23 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:112.23,114.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:115.2,115.13 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:115.13,117.100 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:117.100,119.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:121.3,121.8 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:123.2,123.11 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:126.32,128.2 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:131.44,132.50 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:132.50,134.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:135.2,135.35 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:138.40,140.20 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:140.20,141.40 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:141.40,143.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:145.3,145.8 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:147.2,147.12 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:147.12,149.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:150.2,150.17 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:153.52,154.38 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:154.38,156.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:157.2,158.27 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:158.27,159.34 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:159.34,160.12 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:162.3,162.36 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:162.36,163.12 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:165.3,165.25 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:167.2,167.34 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:175.64,177.22 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:177.22,180.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:180.12,182.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:183.3,185.74 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:185.74,187.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:190.3,191.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:191.12,193.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:194.3,195.48 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:195.48,197.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:199.3,200.18 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:200.18,202.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:204.3,205.29 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:207.2,207.24 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:213.41,217.31 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:217.31,219.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:220.2,220.29 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:220.29,222.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:223.2,223.31 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:223.31,225.32 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:225.32,227.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:229.2,229.14 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:233.83,236.102 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:236.102,238.36 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:238.36,240.136 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:240.136,242.5 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:243.4,245.34 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:245.34,247.5 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:251.2,251.65 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:251.65,252.53 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:252.53,254.37 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:254.37,256.137 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:256.137,258.6 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:259.5,261.35 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:261.35,263.6 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:267.2,267.19 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:271.80,272.22 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:272.22,274.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:275.2,277.40 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:277.40,279.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:280.2,280.34 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:280.34,281.31 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:281.31,282.12 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:284.3,285.16 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:285.16,286.12 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:288.3,288.32 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:288.32,290.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:292.2,292.19 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:295.36,297.2 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:300.39,300.77 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:303.43,305.13 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:305.13,307.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:308.2,309.11 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:309.11,311.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:312.2,313.14 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:313.14,315.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:316.2,317.19 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:321.56,323.89 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:323.89,325.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:326.2,326.14 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:330.52,331.32 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:331.32,333.28 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:333.28,335.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:336.3,336.34 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:336.34,338.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:339.3,339.42 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:339.42,341.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:342.3,342.49 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:344.2,347.27 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:347.27,349.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:350.2,350.36 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:350.36,352.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:353.2,356.49 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:356.49,358.24 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:358.24,360.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:363.2,364.25 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:364.25,366.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:367.2,367.33 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:367.33,369.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:370.2,371.19 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:375.67,377.35 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:377.35,379.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:380.2,381.31 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:381.31,383.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:384.2,384.14 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:387.69,388.32 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:388.32,390.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:391.2,391.47 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:394.45,396.22 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:396.22,400.12 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:400.12,402.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:403.3,405.32 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:405.32,407.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:408.3,409.46 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:409.46,411.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:414.3,415.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:415.12,417.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:418.3,419.49 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:419.49,421.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:423.3,423.14 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:425.2,425.14 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:428.67,431.28 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:431.28,433.12 2 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/handlers_utils.go:436.3,438.12 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:438.12,439.9 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:441.3,441.43 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:441.43,443.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:445.3,445.34 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:445.34,447.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:449.3,450.48 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:450.48,452.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:454.3,454.25 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:454.25,456.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:458.3,459.50 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:459.50,461.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:462.3,463.22 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:465.2,465.14 1 0
codeberg.org/snonux/hexai/internal/lsp/server.go:130.90,133.20 3 0
codeberg.org/snonux/hexai/internal/lsp/server.go:133.20,135.3 1 0
codeberg.org/snonux/hexai/internal/lsp/server.go:136.2,138.23 3 0
@@ -3522,6 +3531,15 @@ 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/status.go:10.21,12.16 2 0
+codeberg.org/snonux/hexai/internal/tmux/status.go:12.16,12.31 1 0
+codeberg.org/snonux/hexai/internal/tmux/status.go:13.5,14.62 2 0
+codeberg.org/snonux/hexai/internal/tmux/status.go:18.45,19.51 1 0
+codeberg.org/snonux/hexai/internal/tmux/status.go:19.51,19.65 1 0
+codeberg.org/snonux/hexai/internal/tmux/status.go:20.5,21.16 2 0
+codeberg.org/snonux/hexai/internal/tmux/status.go:21.16,21.30 1 0
+codeberg.org/snonux/hexai/internal/tmux/status.go:23.5,23.72 1 0
+codeberg.org/snonux/hexai/internal/tmux/status.go:27.36,27.83 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
@@ -3557,302 +3575,302 @@ 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/cmd/hexai-tmux-action/main.go:12.13,25.110 9 0
codeberg.org/snonux/hexai/cmd/hexai-tmux-action/main.go:25.110,28.6 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:91.29,140.2 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:144.35,146.19 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:146.19,148.3 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:150.2,151.16 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:91.29,140.2 2 7
+codeberg.org/snonux/hexai/internal/appconfig/config.go:144.35,146.19 2 6
+codeberg.org/snonux/hexai/internal/appconfig/config.go:146.19,148.3 1 1
+codeberg.org/snonux/hexai/internal/appconfig/config.go:150.2,151.16 2 5
codeberg.org/snonux/hexai/internal/appconfig/config.go:151.16,154.3 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:154.8,155.85 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:155.85,157.4 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:163.2,163.50 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:163.50,165.3 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:166.2,166.12 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:284.35,288.77 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:288.77,297.3 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:300.2,300.38 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:300.38,303.3 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:306.2,306.44 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:306.44,313.3 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:316.2,316.44 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:316.44,319.3 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:322.2,322.36 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:322.36,325.3 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:328.2,328.82 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:328.82,331.3 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:334.2,334.47 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:334.47,337.3 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:340.2,340.68 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:340.68,347.3 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:350.2,350.71 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:350.71,357.3 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:360.2,360.68 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:360.68,367.3 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:371.2,371.59 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:371.59,372.67 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:372.67,374.4 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:375.3,375.66 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:375.66,377.4 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:378.3,378.66 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:378.66,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:384.3,384.64 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:384.64,386.4 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:387.3,387.65 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:387.65,389.4 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:392.2,392.53 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:392.53,394.3 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:396.5,396.62 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:396.62,397.67 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:397.67,399.4 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:400.3,400.71 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:400.71,402.4 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:403.3,403.68 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:403.68,405.4 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:406.3,406.65 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:406.65,408.4 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:409.3,409.69 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:409.69,411.4 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:412.3,412.66 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:412.66,414.4 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:415.3,415.66 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:415.66,417.4 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:418.9,418.70 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:418.70,420.10 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:421.9,421.74 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:154.8,155.85 1 5
+codeberg.org/snonux/hexai/internal/appconfig/config.go:155.85,157.4 1 4
+codeberg.org/snonux/hexai/internal/appconfig/config.go:163.2,163.50 1 5
+codeberg.org/snonux/hexai/internal/appconfig/config.go:163.50,165.3 1 1
+codeberg.org/snonux/hexai/internal/appconfig/config.go:166.2,166.12 1 5
+codeberg.org/snonux/hexai/internal/appconfig/config.go:284.35,288.77 2 4
+codeberg.org/snonux/hexai/internal/appconfig/config.go:288.77,297.3 2 3
+codeberg.org/snonux/hexai/internal/appconfig/config.go:300.2,300.38 1 4
+codeberg.org/snonux/hexai/internal/appconfig/config.go:300.38,303.3 2 1
+codeberg.org/snonux/hexai/internal/appconfig/config.go:306.2,306.44 1 4
+codeberg.org/snonux/hexai/internal/appconfig/config.go:306.44,313.3 2 3
+codeberg.org/snonux/hexai/internal/appconfig/config.go:316.2,316.44 1 4
+codeberg.org/snonux/hexai/internal/appconfig/config.go:316.44,319.3 2 3
+codeberg.org/snonux/hexai/internal/appconfig/config.go:322.2,322.36 1 4
+codeberg.org/snonux/hexai/internal/appconfig/config.go:322.36,325.3 2 1
+codeberg.org/snonux/hexai/internal/appconfig/config.go:328.2,328.82 1 4
+codeberg.org/snonux/hexai/internal/appconfig/config.go:328.82,331.3 2 1
+codeberg.org/snonux/hexai/internal/appconfig/config.go:334.2,334.47 1 4
+codeberg.org/snonux/hexai/internal/appconfig/config.go:334.47,337.3 2 3
+codeberg.org/snonux/hexai/internal/appconfig/config.go:340.2,340.68 1 4
+codeberg.org/snonux/hexai/internal/appconfig/config.go:340.68,347.3 2 3
+codeberg.org/snonux/hexai/internal/appconfig/config.go:350.2,350.71 1 4
+codeberg.org/snonux/hexai/internal/appconfig/config.go:350.71,357.3 2 3
+codeberg.org/snonux/hexai/internal/appconfig/config.go:360.2,360.68 1 4
+codeberg.org/snonux/hexai/internal/appconfig/config.go:360.68,367.3 2 3
+codeberg.org/snonux/hexai/internal/appconfig/config.go:371.2,371.59 1 4
+codeberg.org/snonux/hexai/internal/appconfig/config.go:371.59,372.67 1 1
+codeberg.org/snonux/hexai/internal/appconfig/config.go:372.67,374.4 1 1
+codeberg.org/snonux/hexai/internal/appconfig/config.go:375.3,375.66 1 1
+codeberg.org/snonux/hexai/internal/appconfig/config.go:375.66,377.4 1 1
+codeberg.org/snonux/hexai/internal/appconfig/config.go:378.3,378.66 1 1
+codeberg.org/snonux/hexai/internal/appconfig/config.go:378.66,380.4 1 1
+codeberg.org/snonux/hexai/internal/appconfig/config.go:381.3,381.65 1 1
+codeberg.org/snonux/hexai/internal/appconfig/config.go:381.65,383.4 1 1
+codeberg.org/snonux/hexai/internal/appconfig/config.go:384.3,384.64 1 1
+codeberg.org/snonux/hexai/internal/appconfig/config.go:384.64,386.4 1 1
+codeberg.org/snonux/hexai/internal/appconfig/config.go:387.3,387.65 1 1
+codeberg.org/snonux/hexai/internal/appconfig/config.go:387.65,389.4 1 1
+codeberg.org/snonux/hexai/internal/appconfig/config.go:392.2,392.53 1 4
+codeberg.org/snonux/hexai/internal/appconfig/config.go:392.53,394.3 1 1
+codeberg.org/snonux/hexai/internal/appconfig/config.go:396.5,396.62 1 4
+codeberg.org/snonux/hexai/internal/appconfig/config.go:396.62,397.67 1 1
+codeberg.org/snonux/hexai/internal/appconfig/config.go:397.67,399.4 1 1
+codeberg.org/snonux/hexai/internal/appconfig/config.go:400.3,400.71 1 1
+codeberg.org/snonux/hexai/internal/appconfig/config.go:400.71,402.4 1 1
+codeberg.org/snonux/hexai/internal/appconfig/config.go:403.3,403.68 1 1
+codeberg.org/snonux/hexai/internal/appconfig/config.go:403.68,405.4 1 1
+codeberg.org/snonux/hexai/internal/appconfig/config.go:406.3,406.65 1 1
+codeberg.org/snonux/hexai/internal/appconfig/config.go:406.65,408.4 1 1
+codeberg.org/snonux/hexai/internal/appconfig/config.go:409.3,409.69 1 1
+codeberg.org/snonux/hexai/internal/appconfig/config.go:409.69,411.4 1 1
+codeberg.org/snonux/hexai/internal/appconfig/config.go:412.3,412.66 1 1
+codeberg.org/snonux/hexai/internal/appconfig/config.go:412.66,414.4 1 1
+codeberg.org/snonux/hexai/internal/appconfig/config.go:415.3,415.66 1 1
+codeberg.org/snonux/hexai/internal/appconfig/config.go:415.66,417.4 1 1
+codeberg.org/snonux/hexai/internal/appconfig/config.go:418.9,418.70 1 1
+codeberg.org/snonux/hexai/internal/appconfig/config.go:418.70,420.10 1 1
+codeberg.org/snonux/hexai/internal/appconfig/config.go:421.9,421.74 1 1
codeberg.org/snonux/hexai/internal/appconfig/config.go:421.74,423.10 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:424.9,424.72 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:424.9,424.72 1 1
codeberg.org/snonux/hexai/internal/appconfig/config.go:424.72,426.10 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:429.2,429.45 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:429.45,430.60 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:430.60,432.4 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:433.3,433.60 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:433.60,435.4 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:438.2,438.67 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:438.67,440.3 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:442.2,442.12 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:445.66,447.16 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:447.16,448.43 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:429.2,429.45 1 4
+codeberg.org/snonux/hexai/internal/appconfig/config.go:429.45,430.60 1 1
+codeberg.org/snonux/hexai/internal/appconfig/config.go:430.60,432.4 1 1
+codeberg.org/snonux/hexai/internal/appconfig/config.go:433.3,433.60 1 1
+codeberg.org/snonux/hexai/internal/appconfig/config.go:433.60,435.4 1 1
+codeberg.org/snonux/hexai/internal/appconfig/config.go:438.2,438.67 1 4
+codeberg.org/snonux/hexai/internal/appconfig/config.go:438.67,440.3 1 1
+codeberg.org/snonux/hexai/internal/appconfig/config.go:442.2,442.12 1 4
+codeberg.org/snonux/hexai/internal/appconfig/config.go:445.66,447.16 2 6
+codeberg.org/snonux/hexai/internal/appconfig/config.go:447.16,448.43 1 1
codeberg.org/snonux/hexai/internal/appconfig/config.go:448.43,450.4 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:451.3,451.18 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:454.2,459.22 5 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:459.22,460.20 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:460.20,462.4 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:463.3,463.24 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:467.2,476.21 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:476.21,477.216 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:477.216,478.12 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:451.3,451.18 1 1
+codeberg.org/snonux/hexai/internal/appconfig/config.go:454.2,459.22 5 5
+codeberg.org/snonux/hexai/internal/appconfig/config.go:459.22,460.20 1 1
+codeberg.org/snonux/hexai/internal/appconfig/config.go:460.20,462.4 1 1
+codeberg.org/snonux/hexai/internal/appconfig/config.go:463.3,463.24 1 1
+codeberg.org/snonux/hexai/internal/appconfig/config.go:467.2,476.21 2 4
+codeberg.org/snonux/hexai/internal/appconfig/config.go:476.21,477.216 1 27
+codeberg.org/snonux/hexai/internal/appconfig/config.go:477.216,478.12 1 27
codeberg.org/snonux/hexai/internal/appconfig/config.go:480.3,480.41 1 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:480.41,482.4 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:485.2,485.19 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:485.19,487.3 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:491.2,493.53 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:493.53,494.59 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:494.59,495.26 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:496.15,497.40 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:485.2,485.19 1 4
+codeberg.org/snonux/hexai/internal/appconfig/config.go:485.19,487.3 1 4
+codeberg.org/snonux/hexai/internal/appconfig/config.go:491.2,493.53 2 4
+codeberg.org/snonux/hexai/internal/appconfig/config.go:493.53,494.59 1 3
+codeberg.org/snonux/hexai/internal/appconfig/config.go:494.59,495.26 1 3
+codeberg.org/snonux/hexai/internal/appconfig/config.go:496.15,497.40 1 3
codeberg.org/snonux/hexai/internal/appconfig/config.go:498.13,499.35 1 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:500.17,501.40 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:505.2,505.50 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:505.50,506.52 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:506.52,507.26 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:508.15,509.34 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:505.2,505.50 1 4
+codeberg.org/snonux/hexai/internal/appconfig/config.go:505.50,506.52 1 3
+codeberg.org/snonux/hexai/internal/appconfig/config.go:506.52,507.26 1 3
+codeberg.org/snonux/hexai/internal/appconfig/config.go:508.15,509.34 1 3
codeberg.org/snonux/hexai/internal/appconfig/config.go:510.13,511.29 1 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:512.17,513.34 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:517.2,517.18 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:520.37,524.2 3 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:527.39,528.25 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:528.25,530.3 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:531.2,531.56 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:531.56,533.3 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:534.2,534.34 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:534.34,536.3 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:537.2,537.32 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:537.32,539.3 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:540.2,540.32 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:540.32,542.3 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:543.2,543.36 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:543.36,545.3 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:546.2,546.38 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:546.38,548.3 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:549.2,549.36 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:549.36,551.3 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:552.2,552.36 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:552.36,554.3 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:555.2,555.38 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:555.38,557.3 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:558.2,558.55 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:558.55,560.3 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:561.2,561.56 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:561.56,563.3 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:564.2,564.55 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:564.55,566.3 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:567.2,567.33 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:567.33,569.3 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:570.2,570.53 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:570.53,572.3 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:576.40,578.66 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:578.66,580.3 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:581.2,581.65 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:581.65,583.3 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:584.2,584.65 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:584.65,586.3 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:587.2,587.64 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:587.64,589.3 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:590.2,590.63 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:590.63,592.3 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:593.2,593.64 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:593.64,595.3 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:597.2,597.59 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:597.59,599.3 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:601.2,601.53 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:601.53,603.3 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:605.2,605.66 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:605.66,607.3 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:608.2,608.70 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:608.70,610.3 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:611.2,611.67 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:611.67,613.3 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:614.2,614.64 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:614.64,616.3 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:617.2,617.68 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:617.68,619.3 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:620.2,620.65 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:620.65,622.3 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:623.2,623.65 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:623.65,625.3 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:626.5,626.66 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:626.66,628.6 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:629.5,629.70 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:517.2,517.18 1 4
+codeberg.org/snonux/hexai/internal/appconfig/config.go:520.37,524.2 3 5
+codeberg.org/snonux/hexai/internal/appconfig/config.go:527.39,528.25 1 20
+codeberg.org/snonux/hexai/internal/appconfig/config.go:528.25,530.3 1 7
+codeberg.org/snonux/hexai/internal/appconfig/config.go:531.2,531.56 1 20
+codeberg.org/snonux/hexai/internal/appconfig/config.go:531.56,533.3 1 7
+codeberg.org/snonux/hexai/internal/appconfig/config.go:534.2,534.34 1 20
+codeberg.org/snonux/hexai/internal/appconfig/config.go:534.34,536.3 1 7
+codeberg.org/snonux/hexai/internal/appconfig/config.go:537.2,537.32 1 20
+codeberg.org/snonux/hexai/internal/appconfig/config.go:537.32,539.3 1 7
+codeberg.org/snonux/hexai/internal/appconfig/config.go:540.2,540.32 1 20
+codeberg.org/snonux/hexai/internal/appconfig/config.go:540.32,542.3 1 20
+codeberg.org/snonux/hexai/internal/appconfig/config.go:543.2,543.36 1 20
+codeberg.org/snonux/hexai/internal/appconfig/config.go:543.36,545.3 1 7
+codeberg.org/snonux/hexai/internal/appconfig/config.go:546.2,546.38 1 20
+codeberg.org/snonux/hexai/internal/appconfig/config.go:546.38,548.3 1 20
+codeberg.org/snonux/hexai/internal/appconfig/config.go:549.2,549.36 1 20
+codeberg.org/snonux/hexai/internal/appconfig/config.go:549.36,551.3 1 7
+codeberg.org/snonux/hexai/internal/appconfig/config.go:552.2,552.36 1 20
+codeberg.org/snonux/hexai/internal/appconfig/config.go:552.36,554.3 1 7
+codeberg.org/snonux/hexai/internal/appconfig/config.go:555.2,555.38 1 20
+codeberg.org/snonux/hexai/internal/appconfig/config.go:555.38,557.3 1 7
+codeberg.org/snonux/hexai/internal/appconfig/config.go:558.2,558.55 1 20
+codeberg.org/snonux/hexai/internal/appconfig/config.go:558.55,560.3 1 2
+codeberg.org/snonux/hexai/internal/appconfig/config.go:561.2,561.56 1 20
+codeberg.org/snonux/hexai/internal/appconfig/config.go:561.56,563.3 1 2
+codeberg.org/snonux/hexai/internal/appconfig/config.go:564.2,564.55 1 20
+codeberg.org/snonux/hexai/internal/appconfig/config.go:564.55,566.3 1 2
+codeberg.org/snonux/hexai/internal/appconfig/config.go:567.2,567.33 1 20
+codeberg.org/snonux/hexai/internal/appconfig/config.go:567.33,569.3 1 2
+codeberg.org/snonux/hexai/internal/appconfig/config.go:570.2,570.53 1 20
+codeberg.org/snonux/hexai/internal/appconfig/config.go:570.53,572.3 1 7
+codeberg.org/snonux/hexai/internal/appconfig/config.go:576.40,578.66 1 5
+codeberg.org/snonux/hexai/internal/appconfig/config.go:578.66,580.3 1 1
+codeberg.org/snonux/hexai/internal/appconfig/config.go:581.2,581.65 1 5
+codeberg.org/snonux/hexai/internal/appconfig/config.go:581.65,583.3 1 1
+codeberg.org/snonux/hexai/internal/appconfig/config.go:584.2,584.65 1 5
+codeberg.org/snonux/hexai/internal/appconfig/config.go:584.65,586.3 1 1
+codeberg.org/snonux/hexai/internal/appconfig/config.go:587.2,587.64 1 5
+codeberg.org/snonux/hexai/internal/appconfig/config.go:587.64,589.3 1 1
+codeberg.org/snonux/hexai/internal/appconfig/config.go:590.2,590.63 1 5
+codeberg.org/snonux/hexai/internal/appconfig/config.go:590.63,592.3 1 1
+codeberg.org/snonux/hexai/internal/appconfig/config.go:593.2,593.64 1 5
+codeberg.org/snonux/hexai/internal/appconfig/config.go:593.64,595.3 1 1
+codeberg.org/snonux/hexai/internal/appconfig/config.go:597.2,597.59 1 5
+codeberg.org/snonux/hexai/internal/appconfig/config.go:597.59,599.3 1 1
+codeberg.org/snonux/hexai/internal/appconfig/config.go:601.2,601.53 1 5
+codeberg.org/snonux/hexai/internal/appconfig/config.go:601.53,603.3 1 1
+codeberg.org/snonux/hexai/internal/appconfig/config.go:605.2,605.66 1 5
+codeberg.org/snonux/hexai/internal/appconfig/config.go:605.66,607.3 1 1
+codeberg.org/snonux/hexai/internal/appconfig/config.go:608.2,608.70 1 5
+codeberg.org/snonux/hexai/internal/appconfig/config.go:608.70,610.3 1 1
+codeberg.org/snonux/hexai/internal/appconfig/config.go:611.2,611.67 1 5
+codeberg.org/snonux/hexai/internal/appconfig/config.go:611.67,613.3 1 1
+codeberg.org/snonux/hexai/internal/appconfig/config.go:614.2,614.64 1 5
+codeberg.org/snonux/hexai/internal/appconfig/config.go:614.64,616.3 1 1
+codeberg.org/snonux/hexai/internal/appconfig/config.go:617.2,617.68 1 5
+codeberg.org/snonux/hexai/internal/appconfig/config.go:617.68,619.3 1 1
+codeberg.org/snonux/hexai/internal/appconfig/config.go:620.2,620.65 1 5
+codeberg.org/snonux/hexai/internal/appconfig/config.go:620.65,622.3 1 1
+codeberg.org/snonux/hexai/internal/appconfig/config.go:623.2,623.65 1 5
+codeberg.org/snonux/hexai/internal/appconfig/config.go:623.65,625.3 1 1
+codeberg.org/snonux/hexai/internal/appconfig/config.go:626.5,626.66 1 5
+codeberg.org/snonux/hexai/internal/appconfig/config.go:626.66,628.6 1 1
+codeberg.org/snonux/hexai/internal/appconfig/config.go:629.5,629.70 1 5
codeberg.org/snonux/hexai/internal/appconfig/config.go:629.70,631.6 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:632.5,632.68 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:632.5,632.68 1 5
codeberg.org/snonux/hexai/internal/appconfig/config.go:632.68,634.6 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:636.2,636.59 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:636.59,638.3 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:639.2,639.59 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:639.59,641.3 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:645.47,646.58 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:646.58,648.3 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:649.2,649.56 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:649.56,651.3 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:652.2,652.36 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:652.36,654.3 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:655.2,655.58 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:655.58,657.3 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:658.2,658.56 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:658.56,660.3 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:661.2,661.36 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:661.36,663.3 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:664.2,664.59 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:664.59,666.3 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:667.2,667.57 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:667.57,669.3 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:670.2,670.37 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:670.37,672.3 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:675.38,677.72 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:677.72,679.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:636.2,636.59 1 5
+codeberg.org/snonux/hexai/internal/appconfig/config.go:636.59,638.3 1 1
+codeberg.org/snonux/hexai/internal/appconfig/config.go:639.2,639.59 1 5
+codeberg.org/snonux/hexai/internal/appconfig/config.go:639.59,641.3 1 1
+codeberg.org/snonux/hexai/internal/appconfig/config.go:645.47,646.58 1 14
+codeberg.org/snonux/hexai/internal/appconfig/config.go:646.58,648.3 1 7
+codeberg.org/snonux/hexai/internal/appconfig/config.go:649.2,649.56 1 14
+codeberg.org/snonux/hexai/internal/appconfig/config.go:649.56,651.3 1 7
+codeberg.org/snonux/hexai/internal/appconfig/config.go:652.2,652.36 1 14
+codeberg.org/snonux/hexai/internal/appconfig/config.go:652.36,654.3 1 7
+codeberg.org/snonux/hexai/internal/appconfig/config.go:655.2,655.58 1 14
+codeberg.org/snonux/hexai/internal/appconfig/config.go:655.58,657.3 1 7
+codeberg.org/snonux/hexai/internal/appconfig/config.go:658.2,658.56 1 14
+codeberg.org/snonux/hexai/internal/appconfig/config.go:658.56,660.3 1 7
+codeberg.org/snonux/hexai/internal/appconfig/config.go:661.2,661.36 1 14
+codeberg.org/snonux/hexai/internal/appconfig/config.go:661.36,663.3 1 7
+codeberg.org/snonux/hexai/internal/appconfig/config.go:664.2,664.59 1 14
+codeberg.org/snonux/hexai/internal/appconfig/config.go:664.59,666.3 1 7
+codeberg.org/snonux/hexai/internal/appconfig/config.go:667.2,667.57 1 14
+codeberg.org/snonux/hexai/internal/appconfig/config.go:667.57,669.3 1 7
+codeberg.org/snonux/hexai/internal/appconfig/config.go:670.2,670.37 1 14
+codeberg.org/snonux/hexai/internal/appconfig/config.go:670.37,672.3 1 7
+codeberg.org/snonux/hexai/internal/appconfig/config.go:675.38,677.72 2 6
+codeberg.org/snonux/hexai/internal/appconfig/config.go:677.72,679.3 1 6
codeberg.org/snonux/hexai/internal/appconfig/config.go:679.8,681.17 2 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:681.17,683.4 1 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:684.3,684.70 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:686.2,686.24 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:693.43,698.34 3 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:698.34,698.76 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:699.2,699.41 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:699.41,701.14 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:701.14,703.4 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:704.3,705.17 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:686.2,686.24 1 6
+codeberg.org/snonux/hexai/internal/appconfig/config.go:693.43,698.34 3 5
+codeberg.org/snonux/hexai/internal/appconfig/config.go:698.34,698.76 1 120
+codeberg.org/snonux/hexai/internal/appconfig/config.go:699.2,699.41 1 5
+codeberg.org/snonux/hexai/internal/appconfig/config.go:699.41,701.14 2 35
+codeberg.org/snonux/hexai/internal/appconfig/config.go:701.14,703.4 1 28
+codeberg.org/snonux/hexai/internal/appconfig/config.go:704.3,705.17 2 7
codeberg.org/snonux/hexai/internal/appconfig/config.go:705.17,706.21 1 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:706.21,708.5 1 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:709.4,709.19 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:711.3,711.17 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:713.2,713.51 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:713.51,715.14 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:715.14,717.4 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:718.3,719.17 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:711.3,711.17 1 7
+codeberg.org/snonux/hexai/internal/appconfig/config.go:713.2,713.51 1 5
+codeberg.org/snonux/hexai/internal/appconfig/config.go:713.51,715.14 2 20
+codeberg.org/snonux/hexai/internal/appconfig/config.go:715.14,717.4 1 16
+codeberg.org/snonux/hexai/internal/appconfig/config.go:718.3,719.17 2 4
codeberg.org/snonux/hexai/internal/appconfig/config.go:719.17,720.21 1 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:720.21,722.5 1 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:723.4,723.21 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:725.3,725.18 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:728.2,728.47 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:728.47,731.3 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:732.2,732.48 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:732.48,735.3 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:736.2,736.57 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:736.57,739.3 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:740.2,740.55 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:740.55,743.3 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:744.2,744.54 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:744.54,747.3 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:748.2,748.61 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:748.61,751.3 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:752.2,752.59 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:752.59,755.3 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:756.2,756.59 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:756.59,759.3 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:760.2,760.60 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:760.60,763.3 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:764.2,764.54 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:764.54,767.27 3 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:767.27,768.42 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:768.42,770.5 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:772.3,772.13 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:774.2,774.47 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:725.3,725.18 1 4
+codeberg.org/snonux/hexai/internal/appconfig/config.go:728.2,728.47 1 5
+codeberg.org/snonux/hexai/internal/appconfig/config.go:728.47,731.3 2 1
+codeberg.org/snonux/hexai/internal/appconfig/config.go:732.2,732.48 1 5
+codeberg.org/snonux/hexai/internal/appconfig/config.go:732.48,735.3 2 1
+codeberg.org/snonux/hexai/internal/appconfig/config.go:736.2,736.57 1 5
+codeberg.org/snonux/hexai/internal/appconfig/config.go:736.57,739.3 2 1
+codeberg.org/snonux/hexai/internal/appconfig/config.go:740.2,740.55 1 5
+codeberg.org/snonux/hexai/internal/appconfig/config.go:740.55,743.3 2 1
+codeberg.org/snonux/hexai/internal/appconfig/config.go:744.2,744.54 1 5
+codeberg.org/snonux/hexai/internal/appconfig/config.go:744.54,747.3 2 1
+codeberg.org/snonux/hexai/internal/appconfig/config.go:748.2,748.61 1 5
+codeberg.org/snonux/hexai/internal/appconfig/config.go:748.61,751.3 2 1
+codeberg.org/snonux/hexai/internal/appconfig/config.go:752.2,752.59 1 5
+codeberg.org/snonux/hexai/internal/appconfig/config.go:752.59,755.3 2 1
+codeberg.org/snonux/hexai/internal/appconfig/config.go:756.2,756.59 1 5
+codeberg.org/snonux/hexai/internal/appconfig/config.go:756.59,759.3 2 1
+codeberg.org/snonux/hexai/internal/appconfig/config.go:760.2,760.60 1 5
+codeberg.org/snonux/hexai/internal/appconfig/config.go:760.60,763.3 2 1
+codeberg.org/snonux/hexai/internal/appconfig/config.go:764.2,764.54 1 5
+codeberg.org/snonux/hexai/internal/appconfig/config.go:764.54,767.27 3 1
+codeberg.org/snonux/hexai/internal/appconfig/config.go:767.27,768.42 1 3
+codeberg.org/snonux/hexai/internal/appconfig/config.go:768.42,770.5 1 3
+codeberg.org/snonux/hexai/internal/appconfig/config.go:772.3,772.13 1 1
+codeberg.org/snonux/hexai/internal/appconfig/config.go:774.2,774.47 1 5
codeberg.org/snonux/hexai/internal/appconfig/config.go:774.47,777.3 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:778.2,778.48 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:778.2,778.48 1 5
codeberg.org/snonux/hexai/internal/appconfig/config.go:778.48,781.3 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:782.2,782.47 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:782.2,782.47 1 5
codeberg.org/snonux/hexai/internal/appconfig/config.go:782.47,785.3 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:786.2,786.49 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:786.2,786.49 1 5
codeberg.org/snonux/hexai/internal/appconfig/config.go:786.49,789.27 3 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:789.27,790.42 1 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:790.42,792.5 1 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:794.3,794.13 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:796.2,796.44 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:796.44,799.3 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:802.2,802.51 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:802.51,805.3 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:806.2,806.48 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:806.48,809.3 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:810.2,810.60 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:810.60,813.3 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:815.2,815.51 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:815.51,818.3 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:819.2,819.48 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:819.48,822.3 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:823.2,823.60 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:823.60,826.3 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:828.2,828.52 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:828.52,831.3 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:832.2,832.49 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:832.49,835.3 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:836.2,836.61 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:836.61,839.3 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:841.2,841.10 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:841.10,843.3 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:844.2,844.13 1 0
-codeberg.org/snonux/hexai/internal/editor/editor.go:12.32,14.17 2 3
-codeberg.org/snonux/hexai/internal/editor/editor.go:14.17,16.6 1 1
-codeberg.org/snonux/hexai/internal/editor/editor.go:17.5,17.17 1 3
+codeberg.org/snonux/hexai/internal/appconfig/config.go:796.2,796.44 1 5
+codeberg.org/snonux/hexai/internal/appconfig/config.go:796.44,799.3 2 1
+codeberg.org/snonux/hexai/internal/appconfig/config.go:802.2,802.51 1 5
+codeberg.org/snonux/hexai/internal/appconfig/config.go:802.51,805.3 2 1
+codeberg.org/snonux/hexai/internal/appconfig/config.go:806.2,806.48 1 5
+codeberg.org/snonux/hexai/internal/appconfig/config.go:806.48,809.3 2 1
+codeberg.org/snonux/hexai/internal/appconfig/config.go:810.2,810.60 1 5
+codeberg.org/snonux/hexai/internal/appconfig/config.go:810.60,813.3 2 1
+codeberg.org/snonux/hexai/internal/appconfig/config.go:815.2,815.51 1 5
+codeberg.org/snonux/hexai/internal/appconfig/config.go:815.51,818.3 2 1
+codeberg.org/snonux/hexai/internal/appconfig/config.go:819.2,819.48 1 5
+codeberg.org/snonux/hexai/internal/appconfig/config.go:819.48,822.3 2 1
+codeberg.org/snonux/hexai/internal/appconfig/config.go:823.2,823.60 1 5
+codeberg.org/snonux/hexai/internal/appconfig/config.go:823.60,826.3 2 1
+codeberg.org/snonux/hexai/internal/appconfig/config.go:828.2,828.52 1 5
+codeberg.org/snonux/hexai/internal/appconfig/config.go:828.52,831.3 2 1
+codeberg.org/snonux/hexai/internal/appconfig/config.go:832.2,832.49 1 5
+codeberg.org/snonux/hexai/internal/appconfig/config.go:832.49,835.3 2 1
+codeberg.org/snonux/hexai/internal/appconfig/config.go:836.2,836.61 1 5
+codeberg.org/snonux/hexai/internal/appconfig/config.go:836.61,839.3 2 1
+codeberg.org/snonux/hexai/internal/appconfig/config.go:841.2,841.10 1 5
+codeberg.org/snonux/hexai/internal/appconfig/config.go:841.10,843.3 1 4
+codeberg.org/snonux/hexai/internal/appconfig/config.go:844.2,844.13 1 1
+codeberg.org/snonux/hexai/internal/editor/editor.go:12.32,14.17 2 0
+codeberg.org/snonux/hexai/internal/editor/editor.go:14.17,16.6 1 0
+codeberg.org/snonux/hexai/internal/editor/editor.go:17.5,17.17 1 0
codeberg.org/snonux/hexai/internal/editor/editor.go:17.17,19.6 1 0
-codeberg.org/snonux/hexai/internal/editor/editor.go:20.5,20.19 1 3
+codeberg.org/snonux/hexai/internal/editor/editor.go:20.5,20.19 1 0
codeberg.org/snonux/hexai/internal/editor/editor.go:25.49,31.2 5 0
-codeberg.org/snonux/hexai/internal/editor/editor.go:36.54,38.19 2 1
+codeberg.org/snonux/hexai/internal/editor/editor.go:36.54,38.19 2 0
codeberg.org/snonux/hexai/internal/editor/editor.go:38.19,40.6 1 0
-codeberg.org/snonux/hexai/internal/editor/editor.go:42.5,44.19 3 1
+codeberg.org/snonux/hexai/internal/editor/editor.go:42.5,44.19 3 0
codeberg.org/snonux/hexai/internal/editor/editor.go:44.19,46.6 1 0
-codeberg.org/snonux/hexai/internal/editor/editor.go:47.5,48.18 2 1
-codeberg.org/snonux/hexai/internal/editor/editor.go:48.18,48.41 1 1
-codeberg.org/snonux/hexai/internal/editor/editor.go:49.5,49.25 1 1
-codeberg.org/snonux/hexai/internal/editor/editor.go:49.25,50.51 1 1
+codeberg.org/snonux/hexai/internal/editor/editor.go:47.5,48.18 2 0
+codeberg.org/snonux/hexai/internal/editor/editor.go:48.18,48.41 1 0
+codeberg.org/snonux/hexai/internal/editor/editor.go:49.5,49.25 1 0
+codeberg.org/snonux/hexai/internal/editor/editor.go:49.25,50.51 1 0
codeberg.org/snonux/hexai/internal/editor/editor.go:50.51,53.10 2 0
-codeberg.org/snonux/hexai/internal/editor/editor.go:55.5,55.36 1 1
+codeberg.org/snonux/hexai/internal/editor/editor.go:55.5,55.36 1 0
codeberg.org/snonux/hexai/internal/editor/editor.go:55.36,58.6 2 0
-codeberg.org/snonux/hexai/internal/editor/editor.go:59.5,59.37 1 1
+codeberg.org/snonux/hexai/internal/editor/editor.go:59.5,59.37 1 0
codeberg.org/snonux/hexai/internal/editor/editor.go:59.37,61.6 1 0
-codeberg.org/snonux/hexai/internal/editor/editor.go:62.5,62.47 1 1
+codeberg.org/snonux/hexai/internal/editor/editor.go:62.5,62.47 1 0
codeberg.org/snonux/hexai/internal/editor/editor.go:62.47,64.6 1 0
-codeberg.org/snonux/hexai/internal/editor/editor.go:65.5,66.19 2 1
+codeberg.org/snonux/hexai/internal/editor/editor.go:65.5,66.19 2 0
codeberg.org/snonux/hexai/internal/editor/editor.go:66.19,68.6 1 0
-codeberg.org/snonux/hexai/internal/editor/editor.go:69.5,69.45 1 1
+codeberg.org/snonux/hexai/internal/editor/editor.go:69.5,69.45 1 0
codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:27.101,28.21 1 0
codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:28.21,30.6 1 0
codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:32.5,32.93 1 0
@@ -3973,30 +3991,30 @@ codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:84.37,86.6 1 0
codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:87.5,87.16 1 0
codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:91.79,93.2 1 0
codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:95.78,97.2 1 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:21.80,25.19 4 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:25.19,28.6 2 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:29.5,30.16 2 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:30.16,33.3 2 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:34.2,34.46 1 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:34.46,36.3 1 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:37.5,38.19 2 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:38.19,40.6 1 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:41.2,42.16 2 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:42.16,44.3 1 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:45.2,46.12 2 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:49.146,50.17 1 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:51.21,52.36 1 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:53.24,55.37 2 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:55.37,58.4 2 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:59.3,61.55 3 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:62.25,65.79 3 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:66.25,69.63 3 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:70.23,73.61 3 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:74.25,77.63 3 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:78.23,83.58 4 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:83.58,86.10 2 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:87.9,87.70 1 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:88.13,89.36 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:22.80,26.19 4 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:26.19,29.6 2 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:30.5,33.16 4 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:33.16,36.3 2 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:37.2,37.46 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:37.46,39.3 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:40.5,41.19 2 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:41.19,43.6 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:44.5,45.19 2 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:45.19,47.6 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:48.5,50.15 3 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:53.146,54.17 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:55.21,56.36 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:57.24,59.37 2 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:59.37,62.4 2 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:63.3,65.55 3 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:66.25,69.79 3 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:70.25,73.63 3 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:74.23,77.61 3 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:78.25,81.63 3 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:82.23,87.58 4 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:87.58,90.10 2 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:91.9,91.70 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:92.13,93.36 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
@@ -4040,47 +4058,47 @@ 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:24.95,29.16 4 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:29.16,32.3 2 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:34.5,34.23 1 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:34.23,35.104 1 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:35.104,37.10 1 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:37.16,39.10 0 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:42.5,43.17 2 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:43.17,46.3 2 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:47.2,49.74 3 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:49.74,52.3 2 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:53.2,53.12 1 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:58.124,60.16 2 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:60.16,63.3 2 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:64.2,66.74 3 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:66.74,69.3 2 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:70.2,70.12 1 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:74.64,76.82 2 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:76.82,79.3 2 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:80.2,81.9 2 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:82.40,83.59 1 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:84.23,85.24 1 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:86.21,87.22 1 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:88.10,89.91 1 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:97.48,100.40 3 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:100.40,102.3 1 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:103.2,106.3 1 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:110.77,113.40 3 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:113.40,114.58 1 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:114.58,116.4 1 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:118.2,121.3 1 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:125.125,128.40 3 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:128.40,130.56 2 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:130.56,133.4 2 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:133.18,135.4 1 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:136.3,136.22 1 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:137.8,139.17 2 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:139.17,141.4 1 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:142.3,143.26 2 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:145.2,148.12 3 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:152.59,154.2 1 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:160.65,160.97 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:25.95,30.16 4 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:30.16,33.3 2 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:35.5,35.23 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:35.23,36.104 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:36.104,38.10 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:38.16,40.10 0 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:43.5,44.17 2 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:44.17,47.3 2 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:48.2,50.74 3 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:50.74,53.3 2 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:54.2,54.12 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:59.124,61.16 2 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:61.16,64.3 2 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:65.2,67.74 3 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:67.74,70.3 2 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:71.2,71.12 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:75.64,77.82 2 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:77.82,80.3 2 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:81.2,82.9 2 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:83.40,84.59 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:85.23,86.24 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:87.21,88.22 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:89.10,90.91 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:98.48,101.40 3 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:101.40,103.3 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:104.2,107.3 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:111.77,114.40 3 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:114.40,115.58 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:115.58,117.4 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:119.2,122.3 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:126.125,131.40 4 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:131.40,133.56 2 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:133.56,136.4 2 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:136.18,138.4 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:139.3,139.22 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:140.8,142.17 2 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:142.17,144.4 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:145.3,146.26 2 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:148.5,152.15 4 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:156.59,158.2 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:164.65,164.97 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
@@ -4996,176 +5014,177 @@ 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:22.55,24.32 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:24.32,26.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:27.2,27.13 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:31.41,36.2 4 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:38.41,43.2 4 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:45.32,48.23 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:48.23,50.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:51.2,52.24 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:52.24,54.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:55.2,58.15 4 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:58.15,60.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:61.2,66.27 5 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:66.27,68.6 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:72.51,73.41 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:73.41,75.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:76.2,78.71 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:82.62,82.105 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:84.118,85.14 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:85.14,88.16 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:88.16,91.35 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:91.35,93.5 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:94.4,94.36 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:94.36,96.5 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:97.4,99.59 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:99.59,101.5 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:102.4,102.21 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:105.2,108.19 4 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:111.51,112.23 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:112.23,114.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:115.2,115.13 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:115.13,117.100 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:117.100,119.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:121.3,121.8 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:123.2,123.11 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:126.32,128.2 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:131.44,132.50 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:132.50,134.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:135.2,135.35 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:138.40,140.20 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:140.20,141.40 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:141.40,143.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:145.3,145.8 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:147.2,147.12 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:147.12,149.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:150.2,150.17 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:153.52,154.38 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:154.38,156.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:157.2,158.27 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:158.27,159.34 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:159.34,160.12 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:162.3,162.36 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:162.36,163.12 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:165.3,165.25 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:167.2,167.34 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:175.64,177.22 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:177.22,180.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:180.12,182.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:183.3,185.74 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:185.74,187.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:190.3,191.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:191.12,193.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:194.3,195.48 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:195.48,197.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:199.3,200.18 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:200.18,202.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:204.3,205.29 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:207.2,207.24 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:213.41,217.31 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:217.31,219.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:220.2,220.29 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:220.29,222.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:223.2,223.31 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:223.31,225.32 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:225.32,227.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:229.2,229.14 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:233.83,236.102 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:236.102,238.36 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:238.36,240.136 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:240.136,242.5 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:243.4,245.34 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:245.34,247.5 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:251.2,251.65 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:251.65,252.53 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:252.53,254.37 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:254.37,256.137 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:256.137,258.6 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:259.5,261.35 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:261.35,263.6 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:267.2,267.19 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:271.80,272.22 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:272.22,274.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:275.2,277.40 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:277.40,279.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:280.2,280.34 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:280.34,281.31 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:281.31,282.12 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:284.3,285.16 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:285.16,286.12 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:288.3,288.32 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:288.32,290.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:292.2,292.19 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:295.36,297.2 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:300.39,300.77 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:303.43,305.13 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:305.13,307.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:308.2,309.11 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:309.11,311.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:312.2,313.14 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:313.14,315.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:316.2,317.19 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:321.56,323.89 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:323.89,325.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:326.2,326.14 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:330.52,331.32 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:331.32,333.28 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:333.28,335.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:336.3,336.34 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:336.34,338.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:339.3,339.42 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:339.42,341.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:342.3,342.49 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:344.2,347.27 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:347.27,349.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:350.2,350.36 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:350.36,352.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:353.2,356.49 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:356.49,358.24 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:358.24,360.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:363.2,364.25 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:364.25,366.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:367.2,367.33 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:367.33,369.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:370.2,371.19 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:375.67,377.35 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:377.35,379.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:380.2,381.31 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:381.31,383.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:384.2,384.14 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:387.69,388.32 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:388.32,390.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:391.2,391.47 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:394.45,396.22 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:396.22,400.12 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:400.12,402.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:403.3,405.32 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:405.32,407.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:408.3,409.46 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:409.46,411.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:414.3,415.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:415.12,417.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:418.3,419.49 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:419.49,421.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:423.3,423.14 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:425.2,425.14 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:428.67,431.28 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:431.28,433.12 2 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/handlers_utils.go:436.3,438.12 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:438.12,439.9 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:441.3,441.43 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:441.43,443.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:445.3,445.34 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:445.34,447.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:449.3,450.48 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:450.48,452.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:454.3,454.25 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:454.25,456.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:458.3,459.50 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:459.50,461.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:462.3,463.22 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:465.2,465.14 1 0
codeberg.org/snonux/hexai/internal/lsp/server.go:130.90,133.20 3 0
codeberg.org/snonux/hexai/internal/lsp/server.go:133.20,135.3 1 0
codeberg.org/snonux/hexai/internal/lsp/server.go:136.2,138.23 3 0
@@ -5295,6 +5314,15 @@ 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/status.go:10.21,12.16 2 0
+codeberg.org/snonux/hexai/internal/tmux/status.go:12.16,12.31 1 0
+codeberg.org/snonux/hexai/internal/tmux/status.go:13.5,14.62 2 0
+codeberg.org/snonux/hexai/internal/tmux/status.go:18.45,19.51 1 0
+codeberg.org/snonux/hexai/internal/tmux/status.go:19.51,19.65 1 0
+codeberg.org/snonux/hexai/internal/tmux/status.go:20.5,21.16 2 0
+codeberg.org/snonux/hexai/internal/tmux/status.go:21.16,21.30 1 0
+codeberg.org/snonux/hexai/internal/tmux/status.go:23.5,23.72 1 0
+codeberg.org/snonux/hexai/internal/tmux/status.go:27.36,27.83 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
@@ -5330,302 +5358,302 @@ 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/cmd/hexai-tmux-action/main.go:12.13,25.110 9 0
codeberg.org/snonux/hexai/cmd/hexai-tmux-action/main.go:25.110,28.6 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:91.29,140.2 2 7
-codeberg.org/snonux/hexai/internal/appconfig/config.go:144.35,146.19 2 6
-codeberg.org/snonux/hexai/internal/appconfig/config.go:146.19,148.3 1 1
-codeberg.org/snonux/hexai/internal/appconfig/config.go:150.2,151.16 2 5
+codeberg.org/snonux/hexai/internal/appconfig/config.go:91.29,140.2 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:144.35,146.19 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:146.19,148.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:150.2,151.16 2 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:151.16,154.3 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:154.8,155.85 1 5
-codeberg.org/snonux/hexai/internal/appconfig/config.go:155.85,157.4 1 4
-codeberg.org/snonux/hexai/internal/appconfig/config.go:163.2,163.50 1 5
-codeberg.org/snonux/hexai/internal/appconfig/config.go:163.50,165.3 1 1
-codeberg.org/snonux/hexai/internal/appconfig/config.go:166.2,166.12 1 5
-codeberg.org/snonux/hexai/internal/appconfig/config.go:284.35,288.77 2 4
-codeberg.org/snonux/hexai/internal/appconfig/config.go:288.77,297.3 2 3
-codeberg.org/snonux/hexai/internal/appconfig/config.go:300.2,300.38 1 4
-codeberg.org/snonux/hexai/internal/appconfig/config.go:300.38,303.3 2 1
-codeberg.org/snonux/hexai/internal/appconfig/config.go:306.2,306.44 1 4
-codeberg.org/snonux/hexai/internal/appconfig/config.go:306.44,313.3 2 3
-codeberg.org/snonux/hexai/internal/appconfig/config.go:316.2,316.44 1 4
-codeberg.org/snonux/hexai/internal/appconfig/config.go:316.44,319.3 2 3
-codeberg.org/snonux/hexai/internal/appconfig/config.go:322.2,322.36 1 4
-codeberg.org/snonux/hexai/internal/appconfig/config.go:322.36,325.3 2 1
-codeberg.org/snonux/hexai/internal/appconfig/config.go:328.2,328.82 1 4
-codeberg.org/snonux/hexai/internal/appconfig/config.go:328.82,331.3 2 1
-codeberg.org/snonux/hexai/internal/appconfig/config.go:334.2,334.47 1 4
-codeberg.org/snonux/hexai/internal/appconfig/config.go:334.47,337.3 2 3
-codeberg.org/snonux/hexai/internal/appconfig/config.go:340.2,340.68 1 4
-codeberg.org/snonux/hexai/internal/appconfig/config.go:340.68,347.3 2 3
-codeberg.org/snonux/hexai/internal/appconfig/config.go:350.2,350.71 1 4
-codeberg.org/snonux/hexai/internal/appconfig/config.go:350.71,357.3 2 3
-codeberg.org/snonux/hexai/internal/appconfig/config.go:360.2,360.68 1 4
-codeberg.org/snonux/hexai/internal/appconfig/config.go:360.68,367.3 2 3
-codeberg.org/snonux/hexai/internal/appconfig/config.go:371.2,371.59 1 4
-codeberg.org/snonux/hexai/internal/appconfig/config.go:371.59,372.67 1 1
-codeberg.org/snonux/hexai/internal/appconfig/config.go:372.67,374.4 1 1
-codeberg.org/snonux/hexai/internal/appconfig/config.go:375.3,375.66 1 1
-codeberg.org/snonux/hexai/internal/appconfig/config.go:375.66,377.4 1 1
-codeberg.org/snonux/hexai/internal/appconfig/config.go:378.3,378.66 1 1
-codeberg.org/snonux/hexai/internal/appconfig/config.go:378.66,380.4 1 1
-codeberg.org/snonux/hexai/internal/appconfig/config.go:381.3,381.65 1 1
-codeberg.org/snonux/hexai/internal/appconfig/config.go:381.65,383.4 1 1
-codeberg.org/snonux/hexai/internal/appconfig/config.go:384.3,384.64 1 1
-codeberg.org/snonux/hexai/internal/appconfig/config.go:384.64,386.4 1 1
-codeberg.org/snonux/hexai/internal/appconfig/config.go:387.3,387.65 1 1
-codeberg.org/snonux/hexai/internal/appconfig/config.go:387.65,389.4 1 1
-codeberg.org/snonux/hexai/internal/appconfig/config.go:392.2,392.53 1 4
-codeberg.org/snonux/hexai/internal/appconfig/config.go:392.53,394.3 1 1
-codeberg.org/snonux/hexai/internal/appconfig/config.go:396.5,396.62 1 4
-codeberg.org/snonux/hexai/internal/appconfig/config.go:396.62,397.67 1 1
-codeberg.org/snonux/hexai/internal/appconfig/config.go:397.67,399.4 1 1
-codeberg.org/snonux/hexai/internal/appconfig/config.go:400.3,400.71 1 1
-codeberg.org/snonux/hexai/internal/appconfig/config.go:400.71,402.4 1 1
-codeberg.org/snonux/hexai/internal/appconfig/config.go:403.3,403.68 1 1
-codeberg.org/snonux/hexai/internal/appconfig/config.go:403.68,405.4 1 1
-codeberg.org/snonux/hexai/internal/appconfig/config.go:406.3,406.65 1 1
-codeberg.org/snonux/hexai/internal/appconfig/config.go:406.65,408.4 1 1
-codeberg.org/snonux/hexai/internal/appconfig/config.go:409.3,409.69 1 1
-codeberg.org/snonux/hexai/internal/appconfig/config.go:409.69,411.4 1 1
-codeberg.org/snonux/hexai/internal/appconfig/config.go:412.3,412.66 1 1
-codeberg.org/snonux/hexai/internal/appconfig/config.go:412.66,414.4 1 1
-codeberg.org/snonux/hexai/internal/appconfig/config.go:415.3,415.66 1 1
-codeberg.org/snonux/hexai/internal/appconfig/config.go:415.66,417.4 1 1
-codeberg.org/snonux/hexai/internal/appconfig/config.go:418.9,418.70 1 1
-codeberg.org/snonux/hexai/internal/appconfig/config.go:418.70,420.10 1 1
-codeberg.org/snonux/hexai/internal/appconfig/config.go:421.9,421.74 1 1
+codeberg.org/snonux/hexai/internal/appconfig/config.go:154.8,155.85 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:155.85,157.4 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:163.2,163.50 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:163.50,165.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:166.2,166.12 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:284.35,288.77 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:288.77,297.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:300.2,300.38 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:300.38,303.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:306.2,306.44 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:306.44,313.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:316.2,316.44 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:316.44,319.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:322.2,322.36 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:322.36,325.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:328.2,328.82 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:328.82,331.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:334.2,334.47 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:334.47,337.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:340.2,340.68 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:340.68,347.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:350.2,350.71 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:350.71,357.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:360.2,360.68 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:360.68,367.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:371.2,371.59 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:371.59,372.67 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:372.67,374.4 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:375.3,375.66 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:375.66,377.4 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:378.3,378.66 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:378.66,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:384.3,384.64 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:384.64,386.4 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:387.3,387.65 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:387.65,389.4 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:392.2,392.53 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:392.53,394.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:396.5,396.62 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:396.62,397.67 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:397.67,399.4 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:400.3,400.71 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:400.71,402.4 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:403.3,403.68 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:403.68,405.4 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:406.3,406.65 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:406.65,408.4 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:409.3,409.69 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:409.69,411.4 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:412.3,412.66 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:412.66,414.4 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:415.3,415.66 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:415.66,417.4 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:418.9,418.70 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:418.70,420.10 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:421.9,421.74 1 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:421.74,423.10 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:424.9,424.72 1 1
+codeberg.org/snonux/hexai/internal/appconfig/config.go:424.9,424.72 1 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:424.72,426.10 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:429.2,429.45 1 4
-codeberg.org/snonux/hexai/internal/appconfig/config.go:429.45,430.60 1 1
-codeberg.org/snonux/hexai/internal/appconfig/config.go:430.60,432.4 1 1
-codeberg.org/snonux/hexai/internal/appconfig/config.go:433.3,433.60 1 1
-codeberg.org/snonux/hexai/internal/appconfig/config.go:433.60,435.4 1 1
-codeberg.org/snonux/hexai/internal/appconfig/config.go:438.2,438.67 1 4
-codeberg.org/snonux/hexai/internal/appconfig/config.go:438.67,440.3 1 1
-codeberg.org/snonux/hexai/internal/appconfig/config.go:442.2,442.12 1 4
-codeberg.org/snonux/hexai/internal/appconfig/config.go:445.66,447.16 2 6
-codeberg.org/snonux/hexai/internal/appconfig/config.go:447.16,448.43 1 1
+codeberg.org/snonux/hexai/internal/appconfig/config.go:429.2,429.45 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:429.45,430.60 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:430.60,432.4 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:433.3,433.60 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:433.60,435.4 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:438.2,438.67 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:438.67,440.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:442.2,442.12 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:445.66,447.16 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:447.16,448.43 1 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:448.43,450.4 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:451.3,451.18 1 1
-codeberg.org/snonux/hexai/internal/appconfig/config.go:454.2,459.22 5 5
-codeberg.org/snonux/hexai/internal/appconfig/config.go:459.22,460.20 1 1
-codeberg.org/snonux/hexai/internal/appconfig/config.go:460.20,462.4 1 1
-codeberg.org/snonux/hexai/internal/appconfig/config.go:463.3,463.24 1 1
-codeberg.org/snonux/hexai/internal/appconfig/config.go:467.2,476.21 2 4
-codeberg.org/snonux/hexai/internal/appconfig/config.go:476.21,477.216 1 27
-codeberg.org/snonux/hexai/internal/appconfig/config.go:477.216,478.12 1 27
+codeberg.org/snonux/hexai/internal/appconfig/config.go:451.3,451.18 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:454.2,459.22 5 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:459.22,460.20 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:460.20,462.4 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:463.3,463.24 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:467.2,476.21 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:476.21,477.216 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:477.216,478.12 1 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:480.3,480.41 1 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:480.41,482.4 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:485.2,485.19 1 4
-codeberg.org/snonux/hexai/internal/appconfig/config.go:485.19,487.3 1 4
-codeberg.org/snonux/hexai/internal/appconfig/config.go:491.2,493.53 2 4
-codeberg.org/snonux/hexai/internal/appconfig/config.go:493.53,494.59 1 3
-codeberg.org/snonux/hexai/internal/appconfig/config.go:494.59,495.26 1 3
-codeberg.org/snonux/hexai/internal/appconfig/config.go:496.15,497.40 1 3
+codeberg.org/snonux/hexai/internal/appconfig/config.go:485.2,485.19 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:485.19,487.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:491.2,493.53 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:493.53,494.59 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:494.59,495.26 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:496.15,497.40 1 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:498.13,499.35 1 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:500.17,501.40 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:505.2,505.50 1 4
-codeberg.org/snonux/hexai/internal/appconfig/config.go:505.50,506.52 1 3
-codeberg.org/snonux/hexai/internal/appconfig/config.go:506.52,507.26 1 3
-codeberg.org/snonux/hexai/internal/appconfig/config.go:508.15,509.34 1 3
+codeberg.org/snonux/hexai/internal/appconfig/config.go:505.2,505.50 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:505.50,506.52 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:506.52,507.26 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:508.15,509.34 1 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:510.13,511.29 1 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:512.17,513.34 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:517.2,517.18 1 4
-codeberg.org/snonux/hexai/internal/appconfig/config.go:520.37,524.2 3 5
-codeberg.org/snonux/hexai/internal/appconfig/config.go:527.39,528.25 1 20
-codeberg.org/snonux/hexai/internal/appconfig/config.go:528.25,530.3 1 7
-codeberg.org/snonux/hexai/internal/appconfig/config.go:531.2,531.56 1 20
-codeberg.org/snonux/hexai/internal/appconfig/config.go:531.56,533.3 1 7
-codeberg.org/snonux/hexai/internal/appconfig/config.go:534.2,534.34 1 20
-codeberg.org/snonux/hexai/internal/appconfig/config.go:534.34,536.3 1 7
-codeberg.org/snonux/hexai/internal/appconfig/config.go:537.2,537.32 1 20
-codeberg.org/snonux/hexai/internal/appconfig/config.go:537.32,539.3 1 7
-codeberg.org/snonux/hexai/internal/appconfig/config.go:540.2,540.32 1 20
-codeberg.org/snonux/hexai/internal/appconfig/config.go:540.32,542.3 1 20
-codeberg.org/snonux/hexai/internal/appconfig/config.go:543.2,543.36 1 20
-codeberg.org/snonux/hexai/internal/appconfig/config.go:543.36,545.3 1 7
-codeberg.org/snonux/hexai/internal/appconfig/config.go:546.2,546.38 1 20
-codeberg.org/snonux/hexai/internal/appconfig/config.go:546.38,548.3 1 20
-codeberg.org/snonux/hexai/internal/appconfig/config.go:549.2,549.36 1 20
-codeberg.org/snonux/hexai/internal/appconfig/config.go:549.36,551.3 1 7
-codeberg.org/snonux/hexai/internal/appconfig/config.go:552.2,552.36 1 20
-codeberg.org/snonux/hexai/internal/appconfig/config.go:552.36,554.3 1 7
-codeberg.org/snonux/hexai/internal/appconfig/config.go:555.2,555.38 1 20
-codeberg.org/snonux/hexai/internal/appconfig/config.go:555.38,557.3 1 7
-codeberg.org/snonux/hexai/internal/appconfig/config.go:558.2,558.55 1 20
-codeberg.org/snonux/hexai/internal/appconfig/config.go:558.55,560.3 1 2
-codeberg.org/snonux/hexai/internal/appconfig/config.go:561.2,561.56 1 20
-codeberg.org/snonux/hexai/internal/appconfig/config.go:561.56,563.3 1 2
-codeberg.org/snonux/hexai/internal/appconfig/config.go:564.2,564.55 1 20
-codeberg.org/snonux/hexai/internal/appconfig/config.go:564.55,566.3 1 2
-codeberg.org/snonux/hexai/internal/appconfig/config.go:567.2,567.33 1 20
-codeberg.org/snonux/hexai/internal/appconfig/config.go:567.33,569.3 1 2
-codeberg.org/snonux/hexai/internal/appconfig/config.go:570.2,570.53 1 20
-codeberg.org/snonux/hexai/internal/appconfig/config.go:570.53,572.3 1 7
-codeberg.org/snonux/hexai/internal/appconfig/config.go:576.40,578.66 1 5
-codeberg.org/snonux/hexai/internal/appconfig/config.go:578.66,580.3 1 1
-codeberg.org/snonux/hexai/internal/appconfig/config.go:581.2,581.65 1 5
-codeberg.org/snonux/hexai/internal/appconfig/config.go:581.65,583.3 1 1
-codeberg.org/snonux/hexai/internal/appconfig/config.go:584.2,584.65 1 5
-codeberg.org/snonux/hexai/internal/appconfig/config.go:584.65,586.3 1 1
-codeberg.org/snonux/hexai/internal/appconfig/config.go:587.2,587.64 1 5
-codeberg.org/snonux/hexai/internal/appconfig/config.go:587.64,589.3 1 1
-codeberg.org/snonux/hexai/internal/appconfig/config.go:590.2,590.63 1 5
-codeberg.org/snonux/hexai/internal/appconfig/config.go:590.63,592.3 1 1
-codeberg.org/snonux/hexai/internal/appconfig/config.go:593.2,593.64 1 5
-codeberg.org/snonux/hexai/internal/appconfig/config.go:593.64,595.3 1 1
-codeberg.org/snonux/hexai/internal/appconfig/config.go:597.2,597.59 1 5
-codeberg.org/snonux/hexai/internal/appconfig/config.go:597.59,599.3 1 1
-codeberg.org/snonux/hexai/internal/appconfig/config.go:601.2,601.53 1 5
-codeberg.org/snonux/hexai/internal/appconfig/config.go:601.53,603.3 1 1
-codeberg.org/snonux/hexai/internal/appconfig/config.go:605.2,605.66 1 5
-codeberg.org/snonux/hexai/internal/appconfig/config.go:605.66,607.3 1 1
-codeberg.org/snonux/hexai/internal/appconfig/config.go:608.2,608.70 1 5
-codeberg.org/snonux/hexai/internal/appconfig/config.go:608.70,610.3 1 1
-codeberg.org/snonux/hexai/internal/appconfig/config.go:611.2,611.67 1 5
-codeberg.org/snonux/hexai/internal/appconfig/config.go:611.67,613.3 1 1
-codeberg.org/snonux/hexai/internal/appconfig/config.go:614.2,614.64 1 5
-codeberg.org/snonux/hexai/internal/appconfig/config.go:614.64,616.3 1 1
-codeberg.org/snonux/hexai/internal/appconfig/config.go:617.2,617.68 1 5
-codeberg.org/snonux/hexai/internal/appconfig/config.go:617.68,619.3 1 1
-codeberg.org/snonux/hexai/internal/appconfig/config.go:620.2,620.65 1 5
-codeberg.org/snonux/hexai/internal/appconfig/config.go:620.65,622.3 1 1
-codeberg.org/snonux/hexai/internal/appconfig/config.go:623.2,623.65 1 5
-codeberg.org/snonux/hexai/internal/appconfig/config.go:623.65,625.3 1 1
-codeberg.org/snonux/hexai/internal/appconfig/config.go:626.5,626.66 1 5
-codeberg.org/snonux/hexai/internal/appconfig/config.go:626.66,628.6 1 1
-codeberg.org/snonux/hexai/internal/appconfig/config.go:629.5,629.70 1 5
+codeberg.org/snonux/hexai/internal/appconfig/config.go:517.2,517.18 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:520.37,524.2 3 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:527.39,528.25 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:528.25,530.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:531.2,531.56 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:531.56,533.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:534.2,534.34 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:534.34,536.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:537.2,537.32 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:537.32,539.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:540.2,540.32 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:540.32,542.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:543.2,543.36 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:543.36,545.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:546.2,546.38 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:546.38,548.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:549.2,549.36 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:549.36,551.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:552.2,552.36 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:552.36,554.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:555.2,555.38 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:555.38,557.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:558.2,558.55 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:558.55,560.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:561.2,561.56 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:561.56,563.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:564.2,564.55 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:564.55,566.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:567.2,567.33 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:567.33,569.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:570.2,570.53 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:570.53,572.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:576.40,578.66 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:578.66,580.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:581.2,581.65 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:581.65,583.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:584.2,584.65 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:584.65,586.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:587.2,587.64 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:587.64,589.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:590.2,590.63 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:590.63,592.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:593.2,593.64 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:593.64,595.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:597.2,597.59 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:597.59,599.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:601.2,601.53 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:601.53,603.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:605.2,605.66 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:605.66,607.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:608.2,608.70 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:608.70,610.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:611.2,611.67 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:611.67,613.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:614.2,614.64 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:614.64,616.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:617.2,617.68 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:617.68,619.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:620.2,620.65 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:620.65,622.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:623.2,623.65 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:623.65,625.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:626.5,626.66 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:626.66,628.6 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:629.5,629.70 1 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:629.70,631.6 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:632.5,632.68 1 5
+codeberg.org/snonux/hexai/internal/appconfig/config.go:632.5,632.68 1 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:632.68,634.6 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:636.2,636.59 1 5
-codeberg.org/snonux/hexai/internal/appconfig/config.go:636.59,638.3 1 1
-codeberg.org/snonux/hexai/internal/appconfig/config.go:639.2,639.59 1 5
-codeberg.org/snonux/hexai/internal/appconfig/config.go:639.59,641.3 1 1
-codeberg.org/snonux/hexai/internal/appconfig/config.go:645.47,646.58 1 14
-codeberg.org/snonux/hexai/internal/appconfig/config.go:646.58,648.3 1 7
-codeberg.org/snonux/hexai/internal/appconfig/config.go:649.2,649.56 1 14
-codeberg.org/snonux/hexai/internal/appconfig/config.go:649.56,651.3 1 7
-codeberg.org/snonux/hexai/internal/appconfig/config.go:652.2,652.36 1 14
-codeberg.org/snonux/hexai/internal/appconfig/config.go:652.36,654.3 1 7
-codeberg.org/snonux/hexai/internal/appconfig/config.go:655.2,655.58 1 14
-codeberg.org/snonux/hexai/internal/appconfig/config.go:655.58,657.3 1 7
-codeberg.org/snonux/hexai/internal/appconfig/config.go:658.2,658.56 1 14
-codeberg.org/snonux/hexai/internal/appconfig/config.go:658.56,660.3 1 7
-codeberg.org/snonux/hexai/internal/appconfig/config.go:661.2,661.36 1 14
-codeberg.org/snonux/hexai/internal/appconfig/config.go:661.36,663.3 1 7
-codeberg.org/snonux/hexai/internal/appconfig/config.go:664.2,664.59 1 14
-codeberg.org/snonux/hexai/internal/appconfig/config.go:664.59,666.3 1 7
-codeberg.org/snonux/hexai/internal/appconfig/config.go:667.2,667.57 1 14
-codeberg.org/snonux/hexai/internal/appconfig/config.go:667.57,669.3 1 7
-codeberg.org/snonux/hexai/internal/appconfig/config.go:670.2,670.37 1 14
-codeberg.org/snonux/hexai/internal/appconfig/config.go:670.37,672.3 1 7
-codeberg.org/snonux/hexai/internal/appconfig/config.go:675.38,677.72 2 6
-codeberg.org/snonux/hexai/internal/appconfig/config.go:677.72,679.3 1 6
+codeberg.org/snonux/hexai/internal/appconfig/config.go:636.2,636.59 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:636.59,638.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:639.2,639.59 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:639.59,641.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:645.47,646.58 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:646.58,648.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:649.2,649.56 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:649.56,651.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:652.2,652.36 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:652.36,654.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:655.2,655.58 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:655.58,657.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:658.2,658.56 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:658.56,660.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:661.2,661.36 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:661.36,663.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:664.2,664.59 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:664.59,666.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:667.2,667.57 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:667.57,669.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:670.2,670.37 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:670.37,672.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:675.38,677.72 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:677.72,679.3 1 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:679.8,681.17 2 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:681.17,683.4 1 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:684.3,684.70 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:686.2,686.24 1 6
-codeberg.org/snonux/hexai/internal/appconfig/config.go:693.43,698.34 3 5
-codeberg.org/snonux/hexai/internal/appconfig/config.go:698.34,698.76 1 120
-codeberg.org/snonux/hexai/internal/appconfig/config.go:699.2,699.41 1 5
-codeberg.org/snonux/hexai/internal/appconfig/config.go:699.41,701.14 2 35
-codeberg.org/snonux/hexai/internal/appconfig/config.go:701.14,703.4 1 28
-codeberg.org/snonux/hexai/internal/appconfig/config.go:704.3,705.17 2 7
+codeberg.org/snonux/hexai/internal/appconfig/config.go:686.2,686.24 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:693.43,698.34 3 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:698.34,698.76 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:699.2,699.41 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:699.41,701.14 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:701.14,703.4 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:704.3,705.17 2 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:705.17,706.21 1 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:706.21,708.5 1 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:709.4,709.19 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:711.3,711.17 1 7
-codeberg.org/snonux/hexai/internal/appconfig/config.go:713.2,713.51 1 5
-codeberg.org/snonux/hexai/internal/appconfig/config.go:713.51,715.14 2 20
-codeberg.org/snonux/hexai/internal/appconfig/config.go:715.14,717.4 1 16
-codeberg.org/snonux/hexai/internal/appconfig/config.go:718.3,719.17 2 4
+codeberg.org/snonux/hexai/internal/appconfig/config.go:711.3,711.17 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:713.2,713.51 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:713.51,715.14 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:715.14,717.4 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:718.3,719.17 2 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:719.17,720.21 1 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:720.21,722.5 1 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:723.4,723.21 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:725.3,725.18 1 4
-codeberg.org/snonux/hexai/internal/appconfig/config.go:728.2,728.47 1 5
-codeberg.org/snonux/hexai/internal/appconfig/config.go:728.47,731.3 2 1
-codeberg.org/snonux/hexai/internal/appconfig/config.go:732.2,732.48 1 5
-codeberg.org/snonux/hexai/internal/appconfig/config.go:732.48,735.3 2 1
-codeberg.org/snonux/hexai/internal/appconfig/config.go:736.2,736.57 1 5
-codeberg.org/snonux/hexai/internal/appconfig/config.go:736.57,739.3 2 1
-codeberg.org/snonux/hexai/internal/appconfig/config.go:740.2,740.55 1 5
-codeberg.org/snonux/hexai/internal/appconfig/config.go:740.55,743.3 2 1
-codeberg.org/snonux/hexai/internal/appconfig/config.go:744.2,744.54 1 5
-codeberg.org/snonux/hexai/internal/appconfig/config.go:744.54,747.3 2 1
-codeberg.org/snonux/hexai/internal/appconfig/config.go:748.2,748.61 1 5
-codeberg.org/snonux/hexai/internal/appconfig/config.go:748.61,751.3 2 1
-codeberg.org/snonux/hexai/internal/appconfig/config.go:752.2,752.59 1 5
-codeberg.org/snonux/hexai/internal/appconfig/config.go:752.59,755.3 2 1
-codeberg.org/snonux/hexai/internal/appconfig/config.go:756.2,756.59 1 5
-codeberg.org/snonux/hexai/internal/appconfig/config.go:756.59,759.3 2 1
-codeberg.org/snonux/hexai/internal/appconfig/config.go:760.2,760.60 1 5
-codeberg.org/snonux/hexai/internal/appconfig/config.go:760.60,763.3 2 1
-codeberg.org/snonux/hexai/internal/appconfig/config.go:764.2,764.54 1 5
-codeberg.org/snonux/hexai/internal/appconfig/config.go:764.54,767.27 3 1
-codeberg.org/snonux/hexai/internal/appconfig/config.go:767.27,768.42 1 3
-codeberg.org/snonux/hexai/internal/appconfig/config.go:768.42,770.5 1 3
-codeberg.org/snonux/hexai/internal/appconfig/config.go:772.3,772.13 1 1
-codeberg.org/snonux/hexai/internal/appconfig/config.go:774.2,774.47 1 5
+codeberg.org/snonux/hexai/internal/appconfig/config.go:725.3,725.18 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:728.2,728.47 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:728.47,731.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:732.2,732.48 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:732.48,735.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:736.2,736.57 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:736.57,739.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:740.2,740.55 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:740.55,743.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:744.2,744.54 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:744.54,747.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:748.2,748.61 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:748.61,751.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:752.2,752.59 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:752.59,755.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:756.2,756.59 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:756.59,759.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:760.2,760.60 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:760.60,763.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:764.2,764.54 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:764.54,767.27 3 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:767.27,768.42 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:768.42,770.5 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:772.3,772.13 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:774.2,774.47 1 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:774.47,777.3 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:778.2,778.48 1 5
+codeberg.org/snonux/hexai/internal/appconfig/config.go:778.2,778.48 1 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:778.48,781.3 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:782.2,782.47 1 5
+codeberg.org/snonux/hexai/internal/appconfig/config.go:782.2,782.47 1 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:782.47,785.3 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:786.2,786.49 1 5
+codeberg.org/snonux/hexai/internal/appconfig/config.go:786.2,786.49 1 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:786.49,789.27 3 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:789.27,790.42 1 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:790.42,792.5 1 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:794.3,794.13 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:796.2,796.44 1 5
-codeberg.org/snonux/hexai/internal/appconfig/config.go:796.44,799.3 2 1
-codeberg.org/snonux/hexai/internal/appconfig/config.go:802.2,802.51 1 5
-codeberg.org/snonux/hexai/internal/appconfig/config.go:802.51,805.3 2 1
-codeberg.org/snonux/hexai/internal/appconfig/config.go:806.2,806.48 1 5
-codeberg.org/snonux/hexai/internal/appconfig/config.go:806.48,809.3 2 1
-codeberg.org/snonux/hexai/internal/appconfig/config.go:810.2,810.60 1 5
-codeberg.org/snonux/hexai/internal/appconfig/config.go:810.60,813.3 2 1
-codeberg.org/snonux/hexai/internal/appconfig/config.go:815.2,815.51 1 5
-codeberg.org/snonux/hexai/internal/appconfig/config.go:815.51,818.3 2 1
-codeberg.org/snonux/hexai/internal/appconfig/config.go:819.2,819.48 1 5
-codeberg.org/snonux/hexai/internal/appconfig/config.go:819.48,822.3 2 1
-codeberg.org/snonux/hexai/internal/appconfig/config.go:823.2,823.60 1 5
-codeberg.org/snonux/hexai/internal/appconfig/config.go:823.60,826.3 2 1
-codeberg.org/snonux/hexai/internal/appconfig/config.go:828.2,828.52 1 5
-codeberg.org/snonux/hexai/internal/appconfig/config.go:828.52,831.3 2 1
-codeberg.org/snonux/hexai/internal/appconfig/config.go:832.2,832.49 1 5
-codeberg.org/snonux/hexai/internal/appconfig/config.go:832.49,835.3 2 1
-codeberg.org/snonux/hexai/internal/appconfig/config.go:836.2,836.61 1 5
-codeberg.org/snonux/hexai/internal/appconfig/config.go:836.61,839.3 2 1
-codeberg.org/snonux/hexai/internal/appconfig/config.go:841.2,841.10 1 5
-codeberg.org/snonux/hexai/internal/appconfig/config.go:841.10,843.3 1 4
-codeberg.org/snonux/hexai/internal/appconfig/config.go:844.2,844.13 1 1
-codeberg.org/snonux/hexai/internal/editor/editor.go:12.32,14.17 2 0
-codeberg.org/snonux/hexai/internal/editor/editor.go:14.17,16.6 1 0
-codeberg.org/snonux/hexai/internal/editor/editor.go:17.5,17.17 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:796.2,796.44 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:796.44,799.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:802.2,802.51 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:802.51,805.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:806.2,806.48 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:806.48,809.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:810.2,810.60 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:810.60,813.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:815.2,815.51 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:815.51,818.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:819.2,819.48 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:819.48,822.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:823.2,823.60 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:823.60,826.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:828.2,828.52 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:828.52,831.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:832.2,832.49 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:832.49,835.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:836.2,836.61 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:836.61,839.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:841.2,841.10 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:841.10,843.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:844.2,844.13 1 0
+codeberg.org/snonux/hexai/internal/editor/editor.go:12.32,14.17 2 3
+codeberg.org/snonux/hexai/internal/editor/editor.go:14.17,16.6 1 1
+codeberg.org/snonux/hexai/internal/editor/editor.go:17.5,17.17 1 3
codeberg.org/snonux/hexai/internal/editor/editor.go:17.17,19.6 1 0
-codeberg.org/snonux/hexai/internal/editor/editor.go:20.5,20.19 1 0
+codeberg.org/snonux/hexai/internal/editor/editor.go:20.5,20.19 1 3
codeberg.org/snonux/hexai/internal/editor/editor.go:25.49,31.2 5 0
-codeberg.org/snonux/hexai/internal/editor/editor.go:36.54,38.19 2 0
+codeberg.org/snonux/hexai/internal/editor/editor.go:36.54,38.19 2 1
codeberg.org/snonux/hexai/internal/editor/editor.go:38.19,40.6 1 0
-codeberg.org/snonux/hexai/internal/editor/editor.go:42.5,44.19 3 0
+codeberg.org/snonux/hexai/internal/editor/editor.go:42.5,44.19 3 1
codeberg.org/snonux/hexai/internal/editor/editor.go:44.19,46.6 1 0
-codeberg.org/snonux/hexai/internal/editor/editor.go:47.5,48.18 2 0
-codeberg.org/snonux/hexai/internal/editor/editor.go:48.18,48.41 1 0
-codeberg.org/snonux/hexai/internal/editor/editor.go:49.5,49.25 1 0
-codeberg.org/snonux/hexai/internal/editor/editor.go:49.25,50.51 1 0
+codeberg.org/snonux/hexai/internal/editor/editor.go:47.5,48.18 2 1
+codeberg.org/snonux/hexai/internal/editor/editor.go:48.18,48.41 1 1
+codeberg.org/snonux/hexai/internal/editor/editor.go:49.5,49.25 1 1
+codeberg.org/snonux/hexai/internal/editor/editor.go:49.25,50.51 1 1
codeberg.org/snonux/hexai/internal/editor/editor.go:50.51,53.10 2 0
-codeberg.org/snonux/hexai/internal/editor/editor.go:55.5,55.36 1 0
+codeberg.org/snonux/hexai/internal/editor/editor.go:55.5,55.36 1 1
codeberg.org/snonux/hexai/internal/editor/editor.go:55.36,58.6 2 0
-codeberg.org/snonux/hexai/internal/editor/editor.go:59.5,59.37 1 0
+codeberg.org/snonux/hexai/internal/editor/editor.go:59.5,59.37 1 1
codeberg.org/snonux/hexai/internal/editor/editor.go:59.37,61.6 1 0
-codeberg.org/snonux/hexai/internal/editor/editor.go:62.5,62.47 1 0
+codeberg.org/snonux/hexai/internal/editor/editor.go:62.5,62.47 1 1
codeberg.org/snonux/hexai/internal/editor/editor.go:62.47,64.6 1 0
-codeberg.org/snonux/hexai/internal/editor/editor.go:65.5,66.19 2 0
+codeberg.org/snonux/hexai/internal/editor/editor.go:65.5,66.19 2 1
codeberg.org/snonux/hexai/internal/editor/editor.go:66.19,68.6 1 0
-codeberg.org/snonux/hexai/internal/editor/editor.go:69.5,69.45 1 0
+codeberg.org/snonux/hexai/internal/editor/editor.go:69.5,69.45 1 1
codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:27.101,28.21 1 0
codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:28.21,30.6 1 0
codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:32.5,32.93 1 0
@@ -5746,30 +5774,30 @@ codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:84.37,86.6 1 0
codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:87.5,87.16 1 0
codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:91.79,93.2 1 0
codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:95.78,97.2 1 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:21.80,25.19 4 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:25.19,28.6 2 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:29.5,30.16 2 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:30.16,33.3 2 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:34.2,34.46 1 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:34.46,36.3 1 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:37.5,38.19 2 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:38.19,40.6 1 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:41.2,42.16 2 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:42.16,44.3 1 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:45.2,46.12 2 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:49.146,50.17 1 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:51.21,52.36 1 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:53.24,55.37 2 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:55.37,58.4 2 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:59.3,61.55 3 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:62.25,65.79 3 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:66.25,69.63 3 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:70.23,73.61 3 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:74.25,77.63 3 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:78.23,83.58 4 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:83.58,86.10 2 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:87.9,87.70 1 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:88.13,89.36 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:22.80,26.19 4 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:26.19,29.6 2 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:30.5,33.16 4 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:33.16,36.3 2 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:37.2,37.46 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:37.46,39.3 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:40.5,41.19 2 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:41.19,43.6 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:44.5,45.19 2 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:45.19,47.6 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:48.5,50.15 3 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:53.146,54.17 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:55.21,56.36 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:57.24,59.37 2 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:59.37,62.4 2 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:63.3,65.55 3 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:66.25,69.79 3 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:70.25,73.63 3 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:74.23,77.61 3 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:78.25,81.63 3 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:82.23,87.58 4 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:87.58,90.10 2 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:91.9,91.70 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:92.13,93.36 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
@@ -5813,47 +5841,47 @@ 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:24.95,29.16 4 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:29.16,32.3 2 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:34.5,34.23 1 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:34.23,35.104 1 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:35.104,37.10 1 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:37.16,39.10 0 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:42.5,43.17 2 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:43.17,46.3 2 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:47.2,49.74 3 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:49.74,52.3 2 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:53.2,53.12 1 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:58.124,60.16 2 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:60.16,63.3 2 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:64.2,66.74 3 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:66.74,69.3 2 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:70.2,70.12 1 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:74.64,76.82 2 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:76.82,79.3 2 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:80.2,81.9 2 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:82.40,83.59 1 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:84.23,85.24 1 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:86.21,87.22 1 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:88.10,89.91 1 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:97.48,100.40 3 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:100.40,102.3 1 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:103.2,106.3 1 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:110.77,113.40 3 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:113.40,114.58 1 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:114.58,116.4 1 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:118.2,121.3 1 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:125.125,128.40 3 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:128.40,130.56 2 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:130.56,133.4 2 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:133.18,135.4 1 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:136.3,136.22 1 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:137.8,139.17 2 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:139.17,141.4 1 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:142.3,143.26 2 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:145.2,148.12 3 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:152.59,154.2 1 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:160.65,160.97 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:25.95,30.16 4 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:30.16,33.3 2 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:35.5,35.23 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:35.23,36.104 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:36.104,38.10 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:38.16,40.10 0 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:43.5,44.17 2 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:44.17,47.3 2 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:48.2,50.74 3 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:50.74,53.3 2 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:54.2,54.12 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:59.124,61.16 2 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:61.16,64.3 2 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:65.2,67.74 3 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:67.74,70.3 2 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:71.2,71.12 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:75.64,77.82 2 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:77.82,80.3 2 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:81.2,82.9 2 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:83.40,84.59 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:85.23,86.24 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:87.21,88.22 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:89.10,90.91 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:98.48,101.40 3 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:101.40,103.3 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:104.2,107.3 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:111.77,114.40 3 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:114.40,115.58 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:115.58,117.4 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:119.2,122.3 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:126.125,131.40 4 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:131.40,133.56 2 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:133.56,136.4 2 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:136.18,138.4 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:139.3,139.22 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:140.8,142.17 2 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:142.17,144.4 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:145.3,146.26 2 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:148.5,152.15 4 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:156.59,158.2 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:164.65,164.97 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
@@ -6769,176 +6797,177 @@ 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:22.55,24.32 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:24.32,26.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:27.2,27.13 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:31.41,36.2 4 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:38.41,43.2 4 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:45.32,48.23 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:48.23,50.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:51.2,52.24 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:52.24,54.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:55.2,58.15 4 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:58.15,60.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:61.2,66.27 5 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:66.27,68.6 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:72.51,73.41 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:73.41,75.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:76.2,78.71 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:82.62,82.105 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:84.118,85.14 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:85.14,88.16 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:88.16,91.35 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:91.35,93.5 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:94.4,94.36 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:94.36,96.5 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:97.4,99.59 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:99.59,101.5 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:102.4,102.21 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:105.2,108.19 4 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:111.51,112.23 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:112.23,114.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:115.2,115.13 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:115.13,117.100 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:117.100,119.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:121.3,121.8 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:123.2,123.11 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:126.32,128.2 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:131.44,132.50 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:132.50,134.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:135.2,135.35 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:138.40,140.20 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:140.20,141.40 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:141.40,143.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:145.3,145.8 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:147.2,147.12 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:147.12,149.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:150.2,150.17 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:153.52,154.38 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:154.38,156.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:157.2,158.27 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:158.27,159.34 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:159.34,160.12 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:162.3,162.36 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:162.36,163.12 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:165.3,165.25 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:167.2,167.34 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:175.64,177.22 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:177.22,180.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:180.12,182.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:183.3,185.74 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:185.74,187.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:190.3,191.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:191.12,193.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:194.3,195.48 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:195.48,197.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:199.3,200.18 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:200.18,202.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:204.3,205.29 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:207.2,207.24 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:213.41,217.31 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:217.31,219.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:220.2,220.29 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:220.29,222.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:223.2,223.31 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:223.31,225.32 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:225.32,227.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:229.2,229.14 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:233.83,236.102 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:236.102,238.36 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:238.36,240.136 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:240.136,242.5 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:243.4,245.34 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:245.34,247.5 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:251.2,251.65 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:251.65,252.53 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:252.53,254.37 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:254.37,256.137 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:256.137,258.6 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:259.5,261.35 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:261.35,263.6 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:267.2,267.19 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:271.80,272.22 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:272.22,274.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:275.2,277.40 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:277.40,279.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:280.2,280.34 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:280.34,281.31 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:281.31,282.12 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:284.3,285.16 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:285.16,286.12 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:288.3,288.32 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:288.32,290.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:292.2,292.19 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:295.36,297.2 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:300.39,300.77 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:303.43,305.13 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:305.13,307.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:308.2,309.11 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:309.11,311.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:312.2,313.14 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:313.14,315.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:316.2,317.19 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:321.56,323.89 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:323.89,325.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:326.2,326.14 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:330.52,331.32 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:331.32,333.28 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:333.28,335.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:336.3,336.34 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:336.34,338.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:339.3,339.42 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:339.42,341.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:342.3,342.49 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:344.2,347.27 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:347.27,349.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:350.2,350.36 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:350.36,352.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:353.2,356.49 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:356.49,358.24 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:358.24,360.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:363.2,364.25 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:364.25,366.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:367.2,367.33 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:367.33,369.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:370.2,371.19 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:375.67,377.35 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:377.35,379.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:380.2,381.31 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:381.31,383.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:384.2,384.14 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:387.69,388.32 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:388.32,390.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:391.2,391.47 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:394.45,396.22 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:396.22,400.12 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:400.12,402.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:403.3,405.32 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:405.32,407.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:408.3,409.46 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:409.46,411.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:414.3,415.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:415.12,417.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:418.3,419.49 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:419.49,421.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:423.3,423.14 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:425.2,425.14 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:428.67,431.28 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:431.28,433.12 2 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/handlers_utils.go:436.3,438.12 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:438.12,439.9 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:441.3,441.43 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:441.43,443.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:445.3,445.34 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:445.34,447.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:449.3,450.48 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:450.48,452.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:454.3,454.25 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:454.25,456.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:458.3,459.50 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:459.50,461.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:462.3,463.22 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:465.2,465.14 1 0
codeberg.org/snonux/hexai/internal/lsp/server.go:130.90,133.20 3 0
codeberg.org/snonux/hexai/internal/lsp/server.go:133.20,135.3 1 0
codeberg.org/snonux/hexai/internal/lsp/server.go:136.2,138.23 3 0
@@ -7068,6 +7097,15 @@ 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/status.go:10.21,12.16 2 0
+codeberg.org/snonux/hexai/internal/tmux/status.go:12.16,12.31 1 0
+codeberg.org/snonux/hexai/internal/tmux/status.go:13.5,14.62 2 0
+codeberg.org/snonux/hexai/internal/tmux/status.go:18.45,19.51 1 0
+codeberg.org/snonux/hexai/internal/tmux/status.go:19.51,19.65 1 0
+codeberg.org/snonux/hexai/internal/tmux/status.go:20.5,21.16 2 0
+codeberg.org/snonux/hexai/internal/tmux/status.go:21.16,21.30 1 0
+codeberg.org/snonux/hexai/internal/tmux/status.go:23.5,23.72 1 0
+codeberg.org/snonux/hexai/internal/tmux/status.go:27.36,27.83 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
@@ -7093,6 +7131,8 @@ 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-tmux-action/main.go:12.13,25.110 9 0
+codeberg.org/snonux/hexai/cmd/hexai-tmux-action/main.go:25.110,28.6 2 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
@@ -7519,30 +7559,30 @@ codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:84.37,86.6 1 0
codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:87.5,87.16 1 0
codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:91.79,93.2 1 0
codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:95.78,97.2 1 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:21.80,25.19 4 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:25.19,28.6 2 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:29.5,30.16 2 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:30.16,33.3 2 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:34.2,34.46 1 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:34.46,36.3 1 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:37.5,38.19 2 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:38.19,40.6 1 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:41.2,42.16 2 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:42.16,44.3 1 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:45.2,46.12 2 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:49.146,50.17 1 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:51.21,52.36 1 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:53.24,55.37 2 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:55.37,58.4 2 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:59.3,61.55 3 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:62.25,65.79 3 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:66.25,69.63 3 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:70.23,73.61 3 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:74.25,77.63 3 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:78.23,83.58 4 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:83.58,86.10 2 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:87.9,87.70 1 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:88.13,89.36 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:22.80,26.19 4 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:26.19,29.6 2 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:30.5,33.16 4 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:33.16,36.3 2 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:37.2,37.46 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:37.46,39.3 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:40.5,41.19 2 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:41.19,43.6 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:44.5,45.19 2 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:45.19,47.6 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:48.5,50.15 3 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:53.146,54.17 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:55.21,56.36 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:57.24,59.37 2 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:59.37,62.4 2 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:63.3,65.55 3 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:66.25,69.79 3 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:70.25,73.63 3 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:74.23,77.61 3 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:78.25,81.63 3 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:82.23,87.58 4 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:87.58,90.10 2 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:91.9,91.70 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:92.13,93.36 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
@@ -7586,47 +7626,47 @@ 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:24.95,29.16 4 3
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:29.16,32.3 2 1
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:34.5,34.23 1 2
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:34.23,35.104 1 1
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:35.104,37.10 1 1
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:37.16,39.10 0 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:42.5,43.17 2 2
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:43.17,46.3 2 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:47.2,49.74 3 2
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:49.74,52.3 2 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:53.2,53.12 1 2
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:58.124,60.16 2 1
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:60.16,63.3 2 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:64.2,66.74 3 1
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:66.74,69.3 2 1
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:70.2,70.12 1 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:74.64,76.82 2 7
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:76.82,79.3 2 4
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:80.2,81.9 2 7
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:82.40,83.59 1 1
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:84.23,85.24 1 1
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:86.21,87.22 1 4
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:88.10,89.91 1 1
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:97.48,100.40 3 6
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:100.40,102.3 1 1
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:103.2,106.3 1 6
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:110.77,113.40 3 4
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:113.40,114.58 1 1
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:114.58,116.4 1 1
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:118.2,121.3 1 4
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:125.125,128.40 3 7
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:128.40,130.56 2 2
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:130.56,133.4 2 5
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:133.18,135.4 1 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:136.3,136.22 1 2
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:137.8,139.17 2 5
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:139.17,141.4 1 2
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:142.3,143.26 2 3
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:145.2,148.12 3 5
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:152.59,154.2 1 4
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:160.65,160.97 1 2
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:25.95,30.16 4 3
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:30.16,33.3 2 1
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:35.5,35.23 1 2
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:35.23,36.104 1 1
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:36.104,38.10 1 1
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:38.16,40.10 0 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:43.5,44.17 2 2
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:44.17,47.3 2 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:48.2,50.74 3 2
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:50.74,53.3 2 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:54.2,54.12 1 2
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:59.124,61.16 2 1
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:61.16,64.3 2 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:65.2,67.74 3 1
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:67.74,70.3 2 1
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:71.2,71.12 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:75.64,77.82 2 7
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:77.82,80.3 2 4
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:81.2,82.9 2 7
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:83.40,84.59 1 1
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:85.23,86.24 1 1
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:87.21,88.22 1 4
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:89.10,90.91 1 1
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:98.48,101.40 3 6
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:101.40,103.3 1 1
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:104.2,107.3 1 6
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:111.77,114.40 3 4
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:114.40,115.58 1 1
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:115.58,117.4 1 1
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:119.2,122.3 1 4
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:126.125,131.40 4 7
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:131.40,133.56 2 2
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:133.56,136.4 2 5
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:136.18,138.4 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:139.3,139.22 1 2
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:140.8,142.17 2 5
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:142.17,144.4 1 2
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:145.3,146.26 2 3
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:148.5,152.15 4 5
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:156.59,158.2 1 4
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:164.65,164.97 1 2
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
@@ -8542,176 +8582,177 @@ 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:22.55,24.32 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:24.32,26.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:27.2,27.13 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:31.41,36.2 4 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:38.41,43.2 4 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:45.32,48.23 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:48.23,50.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:51.2,52.24 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:52.24,54.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:55.2,58.15 4 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:58.15,60.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:61.2,66.27 5 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:66.27,68.6 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:72.51,73.41 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:73.41,75.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:76.2,78.71 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:82.62,82.105 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:84.118,85.14 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:85.14,88.16 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:88.16,91.35 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:91.35,93.5 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:94.4,94.36 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:94.36,96.5 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:97.4,99.59 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:99.59,101.5 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:102.4,102.21 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:105.2,108.19 4 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:111.51,112.23 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:112.23,114.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:115.2,115.13 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:115.13,117.100 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:117.100,119.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:121.3,121.8 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:123.2,123.11 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:126.32,128.2 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:131.44,132.50 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:132.50,134.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:135.2,135.35 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:138.40,140.20 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:140.20,141.40 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:141.40,143.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:145.3,145.8 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:147.2,147.12 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:147.12,149.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:150.2,150.17 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:153.52,154.38 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:154.38,156.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:157.2,158.27 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:158.27,159.34 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:159.34,160.12 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:162.3,162.36 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:162.36,163.12 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:165.3,165.25 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:167.2,167.34 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:175.64,177.22 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:177.22,180.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:180.12,182.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:183.3,185.74 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:185.74,187.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:190.3,191.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:191.12,193.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:194.3,195.48 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:195.48,197.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:199.3,200.18 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:200.18,202.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:204.3,205.29 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:207.2,207.24 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:213.41,217.31 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:217.31,219.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:220.2,220.29 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:220.29,222.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:223.2,223.31 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:223.31,225.32 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:225.32,227.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:229.2,229.14 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:233.83,236.102 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:236.102,238.36 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:238.36,240.136 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:240.136,242.5 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:243.4,245.34 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:245.34,247.5 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:251.2,251.65 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:251.65,252.53 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:252.53,254.37 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:254.37,256.137 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:256.137,258.6 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:259.5,261.35 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:261.35,263.6 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:267.2,267.19 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:271.80,272.22 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:272.22,274.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:275.2,277.40 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:277.40,279.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:280.2,280.34 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:280.34,281.31 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:281.31,282.12 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:284.3,285.16 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:285.16,286.12 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:288.3,288.32 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:288.32,290.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:292.2,292.19 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:295.36,297.2 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:300.39,300.77 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:303.43,305.13 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:305.13,307.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:308.2,309.11 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:309.11,311.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:312.2,313.14 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:313.14,315.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:316.2,317.19 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:321.56,323.89 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:323.89,325.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:326.2,326.14 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:330.52,331.32 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:331.32,333.28 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:333.28,335.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:336.3,336.34 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:336.34,338.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:339.3,339.42 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:339.42,341.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:342.3,342.49 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:344.2,347.27 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:347.27,349.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:350.2,350.36 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:350.36,352.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:353.2,356.49 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:356.49,358.24 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:358.24,360.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:363.2,364.25 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:364.25,366.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:367.2,367.33 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:367.33,369.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:370.2,371.19 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:375.67,377.35 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:377.35,379.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:380.2,381.31 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:381.31,383.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:384.2,384.14 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:387.69,388.32 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:388.32,390.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:391.2,391.47 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:394.45,396.22 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:396.22,400.12 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:400.12,402.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:403.3,405.32 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:405.32,407.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:408.3,409.46 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:409.46,411.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:414.3,415.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:415.12,417.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:418.3,419.49 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:419.49,421.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:423.3,423.14 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:425.2,425.14 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:428.67,431.28 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:431.28,433.12 2 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/handlers_utils.go:436.3,438.12 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:438.12,439.9 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:441.3,441.43 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:441.43,443.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:445.3,445.34 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:445.34,447.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:449.3,450.48 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:450.48,452.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:454.3,454.25 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:454.25,456.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:458.3,459.50 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:459.50,461.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:462.3,463.22 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:465.2,465.14 1 0
codeberg.org/snonux/hexai/internal/lsp/server.go:130.90,133.20 3 0
codeberg.org/snonux/hexai/internal/lsp/server.go:133.20,135.3 1 0
codeberg.org/snonux/hexai/internal/lsp/server.go:136.2,138.23 3 0
@@ -8841,9 +8882,18 @@ 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/status.go:10.21,12.16 2 12
+codeberg.org/snonux/hexai/internal/tmux/status.go:12.16,12.31 1 12
+codeberg.org/snonux/hexai/internal/tmux/status.go:13.5,14.62 2 0
+codeberg.org/snonux/hexai/internal/tmux/status.go:18.45,19.51 1 12
+codeberg.org/snonux/hexai/internal/tmux/status.go:19.51,19.65 1 0
+codeberg.org/snonux/hexai/internal/tmux/status.go:20.5,21.16 2 12
+codeberg.org/snonux/hexai/internal/tmux/status.go:21.16,21.30 1 0
+codeberg.org/snonux/hexai/internal/tmux/status.go:23.5,23.72 1 12
+codeberg.org/snonux/hexai/internal/tmux/status.go:27.36,27.83 1 12
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:17.23,17.72 2 12
+codeberg.org/snonux/hexai/internal/tmux/tmux.go:20.23,20.76 1 12
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
@@ -8876,16 +8926,16 @@ 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/cmd/hexai-tmux-action/main.go:12.13,25.110 9 0
codeberg.org/snonux/hexai/cmd/hexai-tmux-action/main.go:25.110,28.6 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:91.29,140.2 2 5
-codeberg.org/snonux/hexai/internal/appconfig/config.go:144.35,146.19 2 5
-codeberg.org/snonux/hexai/internal/appconfig/config.go:146.19,148.3 1 1
-codeberg.org/snonux/hexai/internal/appconfig/config.go:150.2,151.16 2 4
+codeberg.org/snonux/hexai/internal/appconfig/config.go:91.29,140.2 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:144.35,146.19 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:146.19,148.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:150.2,151.16 2 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:151.16,154.3 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:154.8,155.85 1 4
+codeberg.org/snonux/hexai/internal/appconfig/config.go:154.8,155.85 1 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:155.85,157.4 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:163.2,163.50 1 4
+codeberg.org/snonux/hexai/internal/appconfig/config.go:163.2,163.50 1 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:163.50,165.3 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:166.2,166.12 1 4
+codeberg.org/snonux/hexai/internal/appconfig/config.go:166.2,166.12 1 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:284.35,288.77 2 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:288.77,297.3 2 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:300.2,300.38 1 0
@@ -8950,10 +9000,10 @@ codeberg.org/snonux/hexai/internal/appconfig/config.go:433.60,435.4 1 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:438.2,438.67 1 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:438.67,440.3 1 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:442.2,442.12 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:445.66,447.16 2 4
-codeberg.org/snonux/hexai/internal/appconfig/config.go:447.16,448.43 1 4
+codeberg.org/snonux/hexai/internal/appconfig/config.go:445.66,447.16 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:447.16,448.43 1 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:448.43,450.4 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:451.3,451.18 1 4
+codeberg.org/snonux/hexai/internal/appconfig/config.go:451.3,451.18 1 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:454.2,459.22 5 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:459.22,460.20 1 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:460.20,462.4 1 0
@@ -9067,283 +9117,283 @@ codeberg.org/snonux/hexai/internal/appconfig/config.go:667.2,667.57 1 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:667.57,669.3 1 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:670.2,670.37 1 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:670.37,672.3 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:675.38,677.72 2 4
+codeberg.org/snonux/hexai/internal/appconfig/config.go:675.38,677.72 2 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:677.72,679.3 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:679.8,681.17 2 4
+codeberg.org/snonux/hexai/internal/appconfig/config.go:679.8,681.17 2 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:681.17,683.4 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:684.3,684.70 1 4
-codeberg.org/snonux/hexai/internal/appconfig/config.go:686.2,686.24 1 4
-codeberg.org/snonux/hexai/internal/appconfig/config.go:693.43,698.34 3 4
-codeberg.org/snonux/hexai/internal/appconfig/config.go:698.34,698.76 1 96
-codeberg.org/snonux/hexai/internal/appconfig/config.go:699.2,699.41 1 4
-codeberg.org/snonux/hexai/internal/appconfig/config.go:699.41,701.14 2 28
-codeberg.org/snonux/hexai/internal/appconfig/config.go:701.14,703.4 1 28
+codeberg.org/snonux/hexai/internal/appconfig/config.go:684.3,684.70 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:686.2,686.24 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:693.43,698.34 3 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:698.34,698.76 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:699.2,699.41 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:699.41,701.14 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:701.14,703.4 1 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:704.3,705.17 2 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:705.17,706.21 1 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:706.21,708.5 1 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:709.4,709.19 1 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:711.3,711.17 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:713.2,713.51 1 4
-codeberg.org/snonux/hexai/internal/appconfig/config.go:713.51,715.14 2 16
-codeberg.org/snonux/hexai/internal/appconfig/config.go:715.14,717.4 1 16
+codeberg.org/snonux/hexai/internal/appconfig/config.go:713.2,713.51 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:713.51,715.14 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:715.14,717.4 1 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:718.3,719.17 2 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:719.17,720.21 1 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:720.21,722.5 1 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:723.4,723.21 1 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:725.3,725.18 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:728.2,728.47 1 4
+codeberg.org/snonux/hexai/internal/appconfig/config.go:728.2,728.47 1 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:728.47,731.3 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:732.2,732.48 1 4
+codeberg.org/snonux/hexai/internal/appconfig/config.go:732.2,732.48 1 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:732.48,735.3 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:736.2,736.57 1 4
+codeberg.org/snonux/hexai/internal/appconfig/config.go:736.2,736.57 1 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:736.57,739.3 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:740.2,740.55 1 4
+codeberg.org/snonux/hexai/internal/appconfig/config.go:740.2,740.55 1 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:740.55,743.3 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:744.2,744.54 1 4
+codeberg.org/snonux/hexai/internal/appconfig/config.go:744.2,744.54 1 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:744.54,747.3 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:748.2,748.61 1 4
+codeberg.org/snonux/hexai/internal/appconfig/config.go:748.2,748.61 1 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:748.61,751.3 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:752.2,752.59 1 4
+codeberg.org/snonux/hexai/internal/appconfig/config.go:752.2,752.59 1 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:752.59,755.3 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:756.2,756.59 1 4
+codeberg.org/snonux/hexai/internal/appconfig/config.go:756.2,756.59 1 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:756.59,759.3 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:760.2,760.60 1 4
+codeberg.org/snonux/hexai/internal/appconfig/config.go:760.2,760.60 1 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:760.60,763.3 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:764.2,764.54 1 4
+codeberg.org/snonux/hexai/internal/appconfig/config.go:764.2,764.54 1 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:764.54,767.27 3 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:767.27,768.42 1 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:768.42,770.5 1 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:772.3,772.13 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:774.2,774.47 1 4
+codeberg.org/snonux/hexai/internal/appconfig/config.go:774.2,774.47 1 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:774.47,777.3 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:778.2,778.48 1 4
+codeberg.org/snonux/hexai/internal/appconfig/config.go:778.2,778.48 1 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:778.48,781.3 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:782.2,782.47 1 4
+codeberg.org/snonux/hexai/internal/appconfig/config.go:782.2,782.47 1 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:782.47,785.3 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:786.2,786.49 1 4
+codeberg.org/snonux/hexai/internal/appconfig/config.go:786.2,786.49 1 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:786.49,789.27 3 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:789.27,790.42 1 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:790.42,792.5 1 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:794.3,794.13 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:796.2,796.44 1 4
+codeberg.org/snonux/hexai/internal/appconfig/config.go:796.2,796.44 1 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:796.44,799.3 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:802.2,802.51 1 4
+codeberg.org/snonux/hexai/internal/appconfig/config.go:802.2,802.51 1 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:802.51,805.3 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:806.2,806.48 1 4
+codeberg.org/snonux/hexai/internal/appconfig/config.go:806.2,806.48 1 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:806.48,809.3 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:810.2,810.60 1 4
+codeberg.org/snonux/hexai/internal/appconfig/config.go:810.2,810.60 1 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:810.60,813.3 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:815.2,815.51 1 4
+codeberg.org/snonux/hexai/internal/appconfig/config.go:815.2,815.51 1 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:815.51,818.3 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:819.2,819.48 1 4
+codeberg.org/snonux/hexai/internal/appconfig/config.go:819.2,819.48 1 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:819.48,822.3 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:823.2,823.60 1 4
+codeberg.org/snonux/hexai/internal/appconfig/config.go:823.2,823.60 1 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:823.60,826.3 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:828.2,828.52 1 4
+codeberg.org/snonux/hexai/internal/appconfig/config.go:828.2,828.52 1 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:828.52,831.3 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:832.2,832.49 1 4
+codeberg.org/snonux/hexai/internal/appconfig/config.go:832.2,832.49 1 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:832.49,835.3 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:836.2,836.61 1 4
+codeberg.org/snonux/hexai/internal/appconfig/config.go:836.2,836.61 1 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:836.61,839.3 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:841.2,841.10 1 4
-codeberg.org/snonux/hexai/internal/appconfig/config.go:841.10,843.3 1 4
+codeberg.org/snonux/hexai/internal/appconfig/config.go:841.2,841.10 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:841.10,843.3 1 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:844.2,844.13 1 0
-codeberg.org/snonux/hexai/internal/editor/editor.go:12.32,14.17 2 1
+codeberg.org/snonux/hexai/internal/editor/editor.go:12.32,14.17 2 0
codeberg.org/snonux/hexai/internal/editor/editor.go:14.17,16.6 1 0
-codeberg.org/snonux/hexai/internal/editor/editor.go:17.5,17.17 1 1
+codeberg.org/snonux/hexai/internal/editor/editor.go:17.5,17.17 1 0
codeberg.org/snonux/hexai/internal/editor/editor.go:17.17,19.6 1 0
-codeberg.org/snonux/hexai/internal/editor/editor.go:20.5,20.19 1 1
+codeberg.org/snonux/hexai/internal/editor/editor.go:20.5,20.19 1 0
codeberg.org/snonux/hexai/internal/editor/editor.go:25.49,31.2 5 0
-codeberg.org/snonux/hexai/internal/editor/editor.go:36.54,38.19 2 1
+codeberg.org/snonux/hexai/internal/editor/editor.go:36.54,38.19 2 0
codeberg.org/snonux/hexai/internal/editor/editor.go:38.19,40.6 1 0
-codeberg.org/snonux/hexai/internal/editor/editor.go:42.5,44.19 3 1
+codeberg.org/snonux/hexai/internal/editor/editor.go:42.5,44.19 3 0
codeberg.org/snonux/hexai/internal/editor/editor.go:44.19,46.6 1 0
-codeberg.org/snonux/hexai/internal/editor/editor.go:47.5,48.18 2 1
-codeberg.org/snonux/hexai/internal/editor/editor.go:48.18,48.41 1 1
-codeberg.org/snonux/hexai/internal/editor/editor.go:49.5,49.25 1 1
+codeberg.org/snonux/hexai/internal/editor/editor.go:47.5,48.18 2 0
+codeberg.org/snonux/hexai/internal/editor/editor.go:48.18,48.41 1 0
+codeberg.org/snonux/hexai/internal/editor/editor.go:49.5,49.25 1 0
codeberg.org/snonux/hexai/internal/editor/editor.go:49.25,50.51 1 0
codeberg.org/snonux/hexai/internal/editor/editor.go:50.51,53.10 2 0
-codeberg.org/snonux/hexai/internal/editor/editor.go:55.5,55.36 1 1
+codeberg.org/snonux/hexai/internal/editor/editor.go:55.5,55.36 1 0
codeberg.org/snonux/hexai/internal/editor/editor.go:55.36,58.6 2 0
-codeberg.org/snonux/hexai/internal/editor/editor.go:59.5,59.37 1 1
+codeberg.org/snonux/hexai/internal/editor/editor.go:59.5,59.37 1 0
codeberg.org/snonux/hexai/internal/editor/editor.go:59.37,61.6 1 0
-codeberg.org/snonux/hexai/internal/editor/editor.go:62.5,62.47 1 1
+codeberg.org/snonux/hexai/internal/editor/editor.go:62.5,62.47 1 0
codeberg.org/snonux/hexai/internal/editor/editor.go:62.47,64.6 1 0
-codeberg.org/snonux/hexai/internal/editor/editor.go:65.5,66.19 2 1
+codeberg.org/snonux/hexai/internal/editor/editor.go:65.5,66.19 2 0
codeberg.org/snonux/hexai/internal/editor/editor.go:66.19,68.6 1 0
-codeberg.org/snonux/hexai/internal/editor/editor.go:69.5,69.45 1 1
-codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:27.101,28.21 1 2
-codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:28.21,30.6 1 1
-codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:32.5,32.93 1 1
+codeberg.org/snonux/hexai/internal/editor/editor.go:69.5,69.45 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:27.101,28.21 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:28.21,30.6 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:32.5,32.93 1 0
codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:36.37,36.72 1 0
-codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:42.83,45.23 3 3
+codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:42.83,45.23 3 0
codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:45.24,45.25 0 0
-codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:46.5,46.24 1 3
+codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:46.5,46.24 1 0
codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:46.25,46.26 0 0
-codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:47.5,47.35 1 3
-codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:47.35,49.23 2 3
+codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:47.5,47.35 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:47.35,49.23 2 0
codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:49.23,49.48 1 0
codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:49.49,49.50 0 0
codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:49.59,49.60 0 0
-codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:50.9,51.26 2 3
-codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:51.26,51.43 1 3
-codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:53.5,53.36 1 3
-codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:53.36,55.23 2 3
+codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:50.9,51.26 2 0
+codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:51.26,51.43 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:53.5,53.36 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:53.36,55.23 2 0
codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:55.23,55.48 1 0
codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:55.49,55.50 0 0
codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:55.59,55.60 0 0
-codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:56.9,57.27 2 3
-codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:57.27,57.44 1 3
-codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:59.5,59.43 1 3
-codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:63.92,64.22 1 3
-codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:64.22,67.25 2 1
-codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:67.25,69.27 2 1
+codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:56.9,57.27 2 0
+codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:57.27,57.44 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:59.5,59.43 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:63.92,64.22 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:64.22,67.25 2 0
+codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:67.25,69.27 2 0
codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:69.27,69.41 1 0
-codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:70.13,70.25 1 1
-codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:70.25,70.42 1 1
-codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:71.13,71.19 1 1
-codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:73.9,73.46 1 1
-codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:75.5,77.19 3 2
+codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:70.13,70.25 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:70.25,70.42 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:71.13,71.19 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:73.9,73.46 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:75.5,77.19 3 0
codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:77.19,77.33 1 0
-codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:78.5,79.55 2 2
+codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:78.5,79.55 2 0
codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:79.55,81.82 2 0
codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:81.82,83.10 1 0
-codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:84.11,86.6 1 2
-codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:87.5,87.35 1 2
-codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:90.98,92.19 2 4
+codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:84.11,86.6 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:87.5,87.35 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:90.98,92.19 2 0
codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:92.19,92.33 1 0
-codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:93.5,93.18 1 4
-codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:93.18,93.43 1 4
-codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:94.5,96.55 3 4
+codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:93.5,93.18 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:93.18,93.43 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:94.5,96.55 3 0
codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:96.55,96.69 1 0
-codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:97.5,98.19 2 4
-codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:98.19,98.33 1 1
-codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:99.5,101.50 3 3
-codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:101.50,101.64 1 1
-codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:102.5,102.64 1 2
+codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:97.5,98.19 2 0
+codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:98.19,98.33 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:99.5,101.50 3 0
+codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:101.50,101.64 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:102.5,102.64 1 0
codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:102.64,102.78 1 0
-codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:103.5,103.38 1 2
-codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:106.55,108.19 2 5
+codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:103.5,103.38 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:106.55,108.19 2 0
codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:108.19,108.33 1 0
-codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:109.5,109.18 1 5
-codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:109.18,109.35 1 5
-codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:110.5,110.48 1 5
+codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:109.5,109.18 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:109.18,109.35 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:110.5,110.48 1 0
codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:110.48,110.62 1 0
-codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:111.5,111.20 1 5
-codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:114.60,116.9 2 3
-codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:116.9,117.48 1 4
-codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:117.48,117.62 1 2
-codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:118.9,118.39 1 2
-codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:118.39,118.113 1 1
-codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:119.9,119.43 1 1
-codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:123.48,125.19 2 2
+codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:111.5,111.20 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:114.60,116.9 2 0
+codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:116.9,117.48 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:117.48,117.62 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:118.9,118.39 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:118.39,118.113 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:119.9,119.43 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:123.48,125.19 2 0
codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:125.19,125.33 1 0
-codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:126.5,126.18 1 2
-codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:126.18,126.35 1 2
-codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:127.5,128.15 2 2
-codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:132.83,135.21 3 2
-codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:135.21,137.23 2 1
+codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:126.5,126.18 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:126.18,126.35 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:127.5,128.15 2 0
+codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:132.83,135.21 3 0
+codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:135.21,137.23 2 0
codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:137.23,137.37 1 0
-codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:138.9,138.22 1 1
-codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:138.22,138.39 1 1
-codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:139.9,139.15 1 1
-codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:141.5,141.22 1 2
-codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:141.22,143.23 2 1
+codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:138.9,138.22 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:138.22,138.39 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:139.9,139.15 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:141.5,141.22 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:141.22,143.23 2 0
codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:143.23,143.37 1 0
-codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:144.9,144.22 1 1
-codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:144.22,144.39 1 1
-codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:145.9,145.16 1 1
-codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:147.5,148.15 2 2
-codeberg.org/snonux/hexai/internal/hexaiaction/parse.go:20.50,22.16 2 5
+codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:144.9,144.22 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:144.22,144.39 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:145.9,145.16 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:147.5,148.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 5
+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 5
-codeberg.org/snonux/hexai/internal/hexaiaction/parse.go:32.27,34.26 2 6
-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 5
-codeberg.org/snonux/hexai/internal/hexaiaction/parse.go:39.18,41.3 1 4
-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 10
-codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:17.35,17.73 1 11
-codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:23.121,27.2 3 4
-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: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.109,55.2 3 0
-codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:57.106,61.2 3 2
-codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:63.86,66.19 3 1
+codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:57.106,61.2 3 0
+codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:63.86,66.19 3 0
codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:66.19,68.6 1 0
-codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:69.5,69.52 1 1
-codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:72.120,75.19 3 9
+codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:69.5,69.52 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:72.120,75.19 3 0
codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:75.19,77.6 1 0
-codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:78.5,78.52 1 9
-codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:82.57,84.37 2 9
-codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:84.37,86.6 1 5
-codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:87.5,87.16 1 9
-codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:91.79,93.2 1 4
-codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:95.78,97.2 1 1
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:21.80,25.19 4 4
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:25.19,28.6 2 1
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:29.5,30.16 2 3
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:30.16,33.3 2 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:34.2,34.46 1 3
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:34.46,36.3 1 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:37.5,38.19 2 3
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:38.19,40.6 1 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:41.2,42.16 2 3
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:42.16,44.3 1 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:45.2,46.12 2 3
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:49.146,50.17 1 7
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:51.21,52.36 1 2
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:53.24,55.37 2 2
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:55.37,58.4 2 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:59.3,61.55 3 2
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:62.25,65.79 3 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:66.25,69.63 3 1
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:70.23,73.61 3 1
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:74.25,77.63 3 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:78.23,83.58 4 1
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:83.58,86.10 2 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:87.9,87.70 1 1
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:88.13,89.36 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,43.2 7 4
-codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:45.31,45.45 1 1
-codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:47.57,48.27 1 1
+codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:78.5,78.52 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:82.57,84.37 2 0
+codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:84.37,86.6 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:87.5,87.16 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:91.79,93.2 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:95.78,97.2 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:22.80,26.19 4 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:26.19,29.6 2 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:30.5,33.16 4 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:33.16,36.3 2 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:37.2,37.46 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:37.46,39.3 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:40.5,41.19 2 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:41.19,43.6 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:44.5,45.19 2 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:45.19,47.6 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:48.5,50.15 3 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:53.146,54.17 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:55.21,56.36 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:57.24,59.37 2 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:59.37,62.4 2 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:63.3,65.55 3 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:66.25,69.79 3 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:70.25,73.63 3 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:74.23,77.61 3 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:78.25,81.63 3 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:82.23,87.58 4 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:87.58,90.10 2 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:91.9,91.70 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:92.13,93.36 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,43.2 7 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:45.31,45.45 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:47.57,48.27 1 0
codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:49.18,50.27 1 0
-codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:51.25,52.40 1 1
-codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:54.2,56.15 3 1
-codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:59.62,62.16 3 3
-codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:63.21,67.27 3 1
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:51.25,52.40 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:54.2,56.15 3 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:59.62,62.16 3 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:63.21,67.27 3 0
codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:68.18,69.55 1 0
codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:69.55,73.10 3 0
codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:74.22,75.28 1 0
codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:76.20,77.26 1 0
-codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:78.22,79.25 1 1
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:78.22,79.25 1 0
codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:80.16,81.44 1 0
codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:81.44,81.68 1 0
-codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:82.39,84.41 2 1
-codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:84.41,85.91 1 1
-codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:85.91,90.14 4 1
-codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:93.5,93.19 1 1
-codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:93.19,94.44 1 1
-codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:94.44,94.68 1 1
-codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:96.5,96.18 1 1
-codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:99.30,100.12 1 1
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:82.39,84.41 2 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:84.41,85.91 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:85.91,90.14 4 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:93.5,93.19 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:93.19,94.44 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:94.44,94.68 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:96.5,96.18 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:99.30,100.12 1 0
codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:100.12,102.3 1 0
-codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:103.2,103.22 1 1
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:103.2,103.22 1 0
codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:107.35,110.16 3 0
codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:110.16,112.3 1 0
codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:113.2,113.29 1 0
@@ -9351,55 +9401,55 @@ codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:113.29,114.21 1 0
codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:114.21,116.4 1 0
codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:117.3,117.23 1 0
codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:119.2,119.56 1 0
-codeberg.org/snonux/hexai/internal/hexaiaction/tui_delegate.go:20.61,20.73 1 18
-codeberg.org/snonux/hexai/internal/hexaiaction/tui_delegate.go:21.61,21.73 1 32
-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:24.95,29.16 4 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:29.16,32.3 2 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:34.5,34.23 1 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:34.23,35.104 1 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:35.104,37.10 1 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:37.16,39.10 0 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:42.5,43.17 2 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:43.17,46.3 2 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:47.2,49.74 3 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:49.74,52.3 2 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:53.2,53.12 1 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:58.124,60.16 2 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:60.16,63.3 2 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:64.2,66.74 3 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:66.74,69.3 2 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:70.2,70.12 1 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:74.64,76.82 2 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:76.82,79.3 2 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:80.2,81.9 2 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:82.40,83.59 1 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:84.23,85.24 1 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:86.21,87.22 1 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:88.10,89.91 1 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:97.48,100.40 3 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:100.40,102.3 1 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:103.2,106.3 1 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:110.77,113.40 3 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:113.40,114.58 1 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:114.58,116.4 1 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:118.2,121.3 1 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:125.125,128.40 3 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:128.40,130.56 2 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:130.56,133.4 2 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:133.18,135.4 1 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:136.3,136.22 1 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:137.8,139.17 2 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:139.17,141.4 1 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:142.3,143.26 2 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:145.2,148.12 3 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:152.59,154.2 1 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:160.65,160.97 1 0
+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:25.95,30.16 4 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:30.16,33.3 2 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:35.5,35.23 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:35.23,36.104 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:36.104,38.10 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:38.16,40.10 0 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:43.5,44.17 2 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:44.17,47.3 2 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:48.2,50.74 3 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:50.74,53.3 2 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:54.2,54.12 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:59.124,61.16 2 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:61.16,64.3 2 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:65.2,67.74 3 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:67.74,70.3 2 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:71.2,71.12 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:75.64,77.82 2 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:77.82,80.3 2 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:81.2,82.9 2 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:83.40,84.59 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:85.23,86.24 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:87.21,88.22 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:89.10,90.91 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:98.48,101.40 3 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:101.40,103.3 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:104.2,107.3 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:111.77,114.40 3 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:114.40,115.58 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:115.58,117.4 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:119.2,122.3 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:126.125,131.40 4 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:131.40,133.56 2 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:133.56,136.4 2 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:136.18,138.4 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:139.3,139.22 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:140.8,142.17 2 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:142.17,144.4 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:145.3,146.26 2 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:148.5,152.15 4 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:156.59,158.2 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:164.65,164.97 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
@@ -9687,17 +9737,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 5
+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 9
+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
@@ -9711,25 +9761,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 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
-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
@@ -10315,176 +10365,177 @@ 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:22.55,24.32 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:24.32,26.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:27.2,27.13 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:31.41,36.2 4 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:38.41,43.2 4 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:45.32,48.23 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:48.23,50.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:51.2,52.24 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:52.24,54.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:55.2,58.15 4 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:58.15,60.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:61.2,66.27 5 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:66.27,68.6 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:72.51,73.41 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:73.41,75.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:76.2,78.71 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:82.62,82.105 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:84.118,85.14 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:85.14,88.16 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:88.16,91.35 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:91.35,93.5 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:94.4,94.36 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:94.36,96.5 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:97.4,99.59 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:99.59,101.5 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:102.4,102.21 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:105.2,108.19 4 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:111.51,112.23 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:112.23,114.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:115.2,115.13 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:115.13,117.100 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:117.100,119.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:121.3,121.8 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:123.2,123.11 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:126.32,128.2 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:131.44,132.50 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:132.50,134.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:135.2,135.35 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:138.40,140.20 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:140.20,141.40 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:141.40,143.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:145.3,145.8 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:147.2,147.12 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:147.12,149.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:150.2,150.17 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:153.52,154.38 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:154.38,156.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:157.2,158.27 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:158.27,159.34 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:159.34,160.12 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:162.3,162.36 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:162.36,163.12 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:165.3,165.25 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:167.2,167.34 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:175.64,177.22 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:177.22,180.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:180.12,182.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:183.3,185.74 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:185.74,187.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:190.3,191.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:191.12,193.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:194.3,195.48 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:195.48,197.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:199.3,200.18 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:200.18,202.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:204.3,205.29 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:207.2,207.24 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:213.41,217.31 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:217.31,219.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:220.2,220.29 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:220.29,222.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:223.2,223.31 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:223.31,225.32 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:225.32,227.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:229.2,229.14 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:233.83,236.102 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:236.102,238.36 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:238.36,240.136 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:240.136,242.5 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:243.4,245.34 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:245.34,247.5 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:251.2,251.65 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:251.65,252.53 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:252.53,254.37 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:254.37,256.137 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:256.137,258.6 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:259.5,261.35 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:261.35,263.6 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:267.2,267.19 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:271.80,272.22 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:272.22,274.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:275.2,277.40 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:277.40,279.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:280.2,280.34 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:280.34,281.31 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:281.31,282.12 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:284.3,285.16 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:285.16,286.12 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:288.3,288.32 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:288.32,290.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:292.2,292.19 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:295.36,297.2 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:300.39,300.77 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:303.43,305.13 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:305.13,307.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:308.2,309.11 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:309.11,311.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:312.2,313.14 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:313.14,315.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:316.2,317.19 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:321.56,323.89 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:323.89,325.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:326.2,326.14 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:330.52,331.32 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:331.32,333.28 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:333.28,335.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:336.3,336.34 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:336.34,338.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:339.3,339.42 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:339.42,341.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:342.3,342.49 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:344.2,347.27 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:347.27,349.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:350.2,350.36 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:350.36,352.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:353.2,356.49 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:356.49,358.24 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:358.24,360.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:363.2,364.25 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:364.25,366.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:367.2,367.33 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:367.33,369.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:370.2,371.19 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:375.67,377.35 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:377.35,379.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:380.2,381.31 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:381.31,383.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:384.2,384.14 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:387.69,388.32 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:388.32,390.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:391.2,391.47 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:394.45,396.22 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:396.22,400.12 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:400.12,402.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:403.3,405.32 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:405.32,407.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:408.3,409.46 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:409.46,411.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:414.3,415.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:415.12,417.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:418.3,419.49 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:419.49,421.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:423.3,423.14 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:425.2,425.14 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:428.67,431.28 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:431.28,433.12 2 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/handlers_utils.go:436.3,438.12 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:438.12,439.9 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:441.3,441.43 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:441.43,443.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:445.3,445.34 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:445.34,447.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:449.3,450.48 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:450.48,452.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:454.3,454.25 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:454.25,456.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:458.3,459.50 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:459.50,461.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:462.3,463.22 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:465.2,465.14 1 0
codeberg.org/snonux/hexai/internal/lsp/server.go:130.90,133.20 3 0
codeberg.org/snonux/hexai/internal/lsp/server.go:133.20,135.3 1 0
codeberg.org/snonux/hexai/internal/lsp/server.go:136.2,138.23 3 0
@@ -10562,58 +10613,67 @@ 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 10
+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 10
-codeberg.org/snonux/hexai/internal/textutil/textutil.go:11.28,13.6 1 15
-codeberg.org/snonux/hexai/internal/textutil/textutil.go:14.5,14.15 1 10
-codeberg.org/snonux/hexai/internal/textutil/textutil.go:18.39,20.16 2 11
+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 11
+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 11
+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 11
+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 11
-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 2
-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: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 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: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 8
-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 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: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 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: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 5
+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/status.go:10.21,12.16 2 0
+codeberg.org/snonux/hexai/internal/tmux/status.go:12.16,12.31 1 0
+codeberg.org/snonux/hexai/internal/tmux/status.go:13.5,14.62 2 0
+codeberg.org/snonux/hexai/internal/tmux/status.go:18.45,19.51 1 0
+codeberg.org/snonux/hexai/internal/tmux/status.go:19.51,19.65 1 0
+codeberg.org/snonux/hexai/internal/tmux/status.go:20.5,21.16 2 0
+codeberg.org/snonux/hexai/internal/tmux/status.go:21.16,21.30 1 0
+codeberg.org/snonux/hexai/internal/tmux/status.go:23.5,23.72 1 0
+codeberg.org/snonux/hexai/internal/tmux/status.go:27.36,27.83 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
@@ -11065,30 +11125,30 @@ codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:84.37,86.6 1 0
codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:87.5,87.16 1 0
codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:91.79,93.2 1 0
codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:95.78,97.2 1 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:21.80,25.19 4 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:25.19,28.6 2 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:29.5,30.16 2 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:30.16,33.3 2 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:34.2,34.46 1 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:34.46,36.3 1 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:37.5,38.19 2 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:38.19,40.6 1 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:41.2,42.16 2 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:42.16,44.3 1 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:45.2,46.12 2 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:49.146,50.17 1 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:51.21,52.36 1 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:53.24,55.37 2 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:55.37,58.4 2 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:59.3,61.55 3 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:62.25,65.79 3 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:66.25,69.63 3 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:70.23,73.61 3 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:74.25,77.63 3 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:78.23,83.58 4 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:83.58,86.10 2 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:87.9,87.70 1 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:88.13,89.36 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:22.80,26.19 4 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:26.19,29.6 2 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:30.5,33.16 4 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:33.16,36.3 2 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:37.2,37.46 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:37.46,39.3 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:40.5,41.19 2 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:41.19,43.6 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:44.5,45.19 2 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:45.19,47.6 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:48.5,50.15 3 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:53.146,54.17 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:55.21,56.36 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:57.24,59.37 2 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:59.37,62.4 2 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:63.3,65.55 3 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:66.25,69.79 3 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:70.25,73.63 3 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:74.23,77.61 3 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:78.25,81.63 3 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:82.23,87.58 4 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:87.58,90.10 2 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:91.9,91.70 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:92.13,93.36 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
@@ -11132,47 +11192,47 @@ 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:24.95,29.16 4 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:29.16,32.3 2 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:34.5,34.23 1 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:34.23,35.104 1 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:35.104,37.10 1 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:37.16,39.10 0 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:42.5,43.17 2 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:43.17,46.3 2 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:47.2,49.74 3 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:49.74,52.3 2 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:53.2,53.12 1 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:58.124,60.16 2 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:60.16,63.3 2 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:64.2,66.74 3 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:66.74,69.3 2 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:70.2,70.12 1 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:74.64,76.82 2 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:76.82,79.3 2 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:80.2,81.9 2 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:82.40,83.59 1 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:84.23,85.24 1 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:86.21,87.22 1 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:88.10,89.91 1 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:97.48,100.40 3 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:100.40,102.3 1 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:103.2,106.3 1 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:110.77,113.40 3 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:113.40,114.58 1 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:114.58,116.4 1 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:118.2,121.3 1 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:125.125,128.40 3 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:128.40,130.56 2 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:130.56,133.4 2 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:133.18,135.4 1 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:136.3,136.22 1 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:137.8,139.17 2 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:139.17,141.4 1 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:142.3,143.26 2 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:145.2,148.12 3 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:152.59,154.2 1 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:160.65,160.97 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:25.95,30.16 4 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:30.16,33.3 2 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:35.5,35.23 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:35.23,36.104 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:36.104,38.10 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:38.16,40.10 0 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:43.5,44.17 2 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:44.17,47.3 2 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:48.2,50.74 3 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:50.74,53.3 2 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:54.2,54.12 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:59.124,61.16 2 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:61.16,64.3 2 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:65.2,67.74 3 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:67.74,70.3 2 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:71.2,71.12 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:75.64,77.82 2 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:77.82,80.3 2 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:81.2,82.9 2 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:83.40,84.59 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:85.23,86.24 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:87.21,88.22 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:89.10,90.91 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:98.48,101.40 3 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:101.40,103.3 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:104.2,107.3 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:111.77,114.40 3 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:114.40,115.58 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:115.58,117.4 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:119.2,122.3 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:126.125,131.40 4 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:131.40,133.56 2 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:133.56,136.4 2 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:136.18,138.4 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:139.3,139.22 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:140.8,142.17 2 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:142.17,144.4 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:145.3,146.26 2 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:148.5,152.15 4 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:156.59,158.2 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:164.65,164.97 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
@@ -11303,11 +11363,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
@@ -11371,11 +11431,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 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
@@ -11466,17 +11526,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: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 0
-codeberg.org/snonux/hexai/internal/llm/provider.go:91.16,92.44 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 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: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: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
@@ -11484,12 +11544,12 @@ 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 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
@@ -12088,176 +12148,177 @@ 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:22.55,24.32 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:24.32,26.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:27.2,27.13 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:31.41,36.2 4 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:38.41,43.2 4 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:45.32,48.23 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:48.23,50.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:51.2,52.24 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:52.24,54.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:55.2,58.15 4 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:58.15,60.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:61.2,66.27 5 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:66.27,68.6 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:72.51,73.41 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:73.41,75.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:76.2,78.71 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:82.62,82.105 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:84.118,85.14 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:85.14,88.16 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:88.16,91.35 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:91.35,93.5 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:94.4,94.36 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:94.36,96.5 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:97.4,99.59 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:99.59,101.5 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:102.4,102.21 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:105.2,108.19 4 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:111.51,112.23 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:112.23,114.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:115.2,115.13 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:115.13,117.100 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:117.100,119.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:121.3,121.8 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:123.2,123.11 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:126.32,128.2 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:131.44,132.50 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:132.50,134.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:135.2,135.35 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:138.40,140.20 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:140.20,141.40 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:141.40,143.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:145.3,145.8 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:147.2,147.12 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:147.12,149.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:150.2,150.17 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:153.52,154.38 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:154.38,156.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:157.2,158.27 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:158.27,159.34 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:159.34,160.12 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:162.3,162.36 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:162.36,163.12 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:165.3,165.25 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:167.2,167.34 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:175.64,177.22 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:177.22,180.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:180.12,182.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:183.3,185.74 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:185.74,187.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:190.3,191.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:191.12,193.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:194.3,195.48 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:195.48,197.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:199.3,200.18 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:200.18,202.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:204.3,205.29 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:207.2,207.24 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:213.41,217.31 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:217.31,219.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:220.2,220.29 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:220.29,222.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:223.2,223.31 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:223.31,225.32 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:225.32,227.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:229.2,229.14 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:233.83,236.102 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:236.102,238.36 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:238.36,240.136 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:240.136,242.5 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:243.4,245.34 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:245.34,247.5 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:251.2,251.65 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:251.65,252.53 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:252.53,254.37 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:254.37,256.137 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:256.137,258.6 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:259.5,261.35 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:261.35,263.6 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:267.2,267.19 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:271.80,272.22 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:272.22,274.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:275.2,277.40 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:277.40,279.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:280.2,280.34 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:280.34,281.31 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:281.31,282.12 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:284.3,285.16 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:285.16,286.12 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:288.3,288.32 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:288.32,290.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:292.2,292.19 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:295.36,297.2 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:300.39,300.77 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:303.43,305.13 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:305.13,307.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:308.2,309.11 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:309.11,311.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:312.2,313.14 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:313.14,315.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:316.2,317.19 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:321.56,323.89 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:323.89,325.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:326.2,326.14 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:330.52,331.32 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:331.32,333.28 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:333.28,335.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:336.3,336.34 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:336.34,338.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:339.3,339.42 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:339.42,341.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:342.3,342.49 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:344.2,347.27 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:347.27,349.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:350.2,350.36 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:350.36,352.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:353.2,356.49 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:356.49,358.24 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:358.24,360.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:363.2,364.25 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:364.25,366.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:367.2,367.33 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:367.33,369.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:370.2,371.19 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:375.67,377.35 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:377.35,379.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:380.2,381.31 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:381.31,383.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:384.2,384.14 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:387.69,388.32 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:388.32,390.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:391.2,391.47 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:394.45,396.22 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:396.22,400.12 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:400.12,402.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:403.3,405.32 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:405.32,407.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:408.3,409.46 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:409.46,411.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:414.3,415.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:415.12,417.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:418.3,419.49 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:419.49,421.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:423.3,423.14 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:425.2,425.14 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:428.67,431.28 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:431.28,433.12 2 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/handlers_utils.go:436.3,438.12 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:438.12,439.9 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:441.3,441.43 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:441.43,443.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:445.3,445.34 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:445.34,447.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:449.3,450.48 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:450.48,452.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:454.3,454.25 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:454.25,456.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:458.3,459.50 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:459.50,461.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:462.3,463.22 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:465.2,465.14 1 0
codeberg.org/snonux/hexai/internal/lsp/server.go:130.90,133.20 3 0
codeberg.org/snonux/hexai/internal/lsp/server.go:133.20,135.3 1 0
codeberg.org/snonux/hexai/internal/lsp/server.go:136.2,138.23 3 0
@@ -12335,58 +12396,67 @@ 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/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/status.go:10.21,12.16 2 0
+codeberg.org/snonux/hexai/internal/tmux/status.go:12.16,12.31 1 0
+codeberg.org/snonux/hexai/internal/tmux/status.go:13.5,14.62 2 0
+codeberg.org/snonux/hexai/internal/tmux/status.go:18.45,19.51 1 0
+codeberg.org/snonux/hexai/internal/tmux/status.go:19.51,19.65 1 0
+codeberg.org/snonux/hexai/internal/tmux/status.go:20.5,21.16 2 0
+codeberg.org/snonux/hexai/internal/tmux/status.go:21.16,21.30 1 0
+codeberg.org/snonux/hexai/internal/tmux/status.go:23.5,23.72 1 0
+codeberg.org/snonux/hexai/internal/tmux/status.go:27.36,27.83 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
@@ -12422,16 +12492,16 @@ 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/cmd/hexai-tmux-action/main.go:12.13,25.110 9 0
codeberg.org/snonux/hexai/cmd/hexai-tmux-action/main.go:25.110,28.6 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:91.29,140.2 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:144.35,146.19 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:146.19,148.3 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:150.2,151.16 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:91.29,140.2 2 4
+codeberg.org/snonux/hexai/internal/appconfig/config.go:144.35,146.19 2 4
+codeberg.org/snonux/hexai/internal/appconfig/config.go:146.19,148.3 1 2
+codeberg.org/snonux/hexai/internal/appconfig/config.go:150.2,151.16 2 2
codeberg.org/snonux/hexai/internal/appconfig/config.go:151.16,154.3 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:154.8,155.85 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:154.8,155.85 1 2
codeberg.org/snonux/hexai/internal/appconfig/config.go:155.85,157.4 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:163.2,163.50 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:163.2,163.50 1 2
codeberg.org/snonux/hexai/internal/appconfig/config.go:163.50,165.3 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:166.2,166.12 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:166.2,166.12 1 2
codeberg.org/snonux/hexai/internal/appconfig/config.go:284.35,288.77 2 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:288.77,297.3 2 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:300.2,300.38 1 0
@@ -12496,10 +12566,10 @@ codeberg.org/snonux/hexai/internal/appconfig/config.go:433.60,435.4 1 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:438.2,438.67 1 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:438.67,440.3 1 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:442.2,442.12 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:445.66,447.16 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:447.16,448.43 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:445.66,447.16 2 2
+codeberg.org/snonux/hexai/internal/appconfig/config.go:447.16,448.43 1 2
codeberg.org/snonux/hexai/internal/appconfig/config.go:448.43,450.4 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:451.3,451.18 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:451.3,451.18 1 2
codeberg.org/snonux/hexai/internal/appconfig/config.go:454.2,459.22 5 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:459.22,460.20 1 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:460.20,462.4 1 0
@@ -12613,86 +12683,86 @@ codeberg.org/snonux/hexai/internal/appconfig/config.go:667.2,667.57 1 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:667.57,669.3 1 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:670.2,670.37 1 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:670.37,672.3 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:675.38,677.72 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:675.38,677.72 2 2
codeberg.org/snonux/hexai/internal/appconfig/config.go:677.72,679.3 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:679.8,681.17 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:679.8,681.17 2 2
codeberg.org/snonux/hexai/internal/appconfig/config.go:681.17,683.4 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:684.3,684.70 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:686.2,686.24 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:693.43,698.34 3 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:698.34,698.76 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:699.2,699.41 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:699.41,701.14 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:701.14,703.4 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:684.3,684.70 1 2
+codeberg.org/snonux/hexai/internal/appconfig/config.go:686.2,686.24 1 2
+codeberg.org/snonux/hexai/internal/appconfig/config.go:693.43,698.34 3 2
+codeberg.org/snonux/hexai/internal/appconfig/config.go:698.34,698.76 1 48
+codeberg.org/snonux/hexai/internal/appconfig/config.go:699.2,699.41 1 2
+codeberg.org/snonux/hexai/internal/appconfig/config.go:699.41,701.14 2 14
+codeberg.org/snonux/hexai/internal/appconfig/config.go:701.14,703.4 1 14
codeberg.org/snonux/hexai/internal/appconfig/config.go:704.3,705.17 2 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:705.17,706.21 1 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:706.21,708.5 1 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:709.4,709.19 1 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:711.3,711.17 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:713.2,713.51 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:713.51,715.14 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:715.14,717.4 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:713.2,713.51 1 2
+codeberg.org/snonux/hexai/internal/appconfig/config.go:713.51,715.14 2 8
+codeberg.org/snonux/hexai/internal/appconfig/config.go:715.14,717.4 1 8
codeberg.org/snonux/hexai/internal/appconfig/config.go:718.3,719.17 2 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:719.17,720.21 1 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:720.21,722.5 1 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:723.4,723.21 1 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:725.3,725.18 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:728.2,728.47 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:728.2,728.47 1 2
codeberg.org/snonux/hexai/internal/appconfig/config.go:728.47,731.3 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:732.2,732.48 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:732.2,732.48 1 2
codeberg.org/snonux/hexai/internal/appconfig/config.go:732.48,735.3 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:736.2,736.57 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:736.2,736.57 1 2
codeberg.org/snonux/hexai/internal/appconfig/config.go:736.57,739.3 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:740.2,740.55 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:740.2,740.55 1 2
codeberg.org/snonux/hexai/internal/appconfig/config.go:740.55,743.3 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:744.2,744.54 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:744.2,744.54 1 2
codeberg.org/snonux/hexai/internal/appconfig/config.go:744.54,747.3 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:748.2,748.61 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:748.2,748.61 1 2
codeberg.org/snonux/hexai/internal/appconfig/config.go:748.61,751.3 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:752.2,752.59 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:752.2,752.59 1 2
codeberg.org/snonux/hexai/internal/appconfig/config.go:752.59,755.3 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:756.2,756.59 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:756.2,756.59 1 2
codeberg.org/snonux/hexai/internal/appconfig/config.go:756.59,759.3 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:760.2,760.60 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:760.2,760.60 1 2
codeberg.org/snonux/hexai/internal/appconfig/config.go:760.60,763.3 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:764.2,764.54 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:764.2,764.54 1 2
codeberg.org/snonux/hexai/internal/appconfig/config.go:764.54,767.27 3 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:767.27,768.42 1 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:768.42,770.5 1 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:772.3,772.13 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:774.2,774.47 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:774.2,774.47 1 2
codeberg.org/snonux/hexai/internal/appconfig/config.go:774.47,777.3 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:778.2,778.48 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:778.2,778.48 1 2
codeberg.org/snonux/hexai/internal/appconfig/config.go:778.48,781.3 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:782.2,782.47 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:782.2,782.47 1 2
codeberg.org/snonux/hexai/internal/appconfig/config.go:782.47,785.3 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:786.2,786.49 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:786.2,786.49 1 2
codeberg.org/snonux/hexai/internal/appconfig/config.go:786.49,789.27 3 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:789.27,790.42 1 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:790.42,792.5 1 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:794.3,794.13 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:796.2,796.44 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:796.2,796.44 1 2
codeberg.org/snonux/hexai/internal/appconfig/config.go:796.44,799.3 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:802.2,802.51 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:802.2,802.51 1 2
codeberg.org/snonux/hexai/internal/appconfig/config.go:802.51,805.3 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:806.2,806.48 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:806.2,806.48 1 2
codeberg.org/snonux/hexai/internal/appconfig/config.go:806.48,809.3 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:810.2,810.60 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:810.2,810.60 1 2
codeberg.org/snonux/hexai/internal/appconfig/config.go:810.60,813.3 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:815.2,815.51 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:815.2,815.51 1 2
codeberg.org/snonux/hexai/internal/appconfig/config.go:815.51,818.3 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:819.2,819.48 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:819.2,819.48 1 2
codeberg.org/snonux/hexai/internal/appconfig/config.go:819.48,822.3 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:823.2,823.60 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:823.2,823.60 1 2
codeberg.org/snonux/hexai/internal/appconfig/config.go:823.60,826.3 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:828.2,828.52 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:828.2,828.52 1 2
codeberg.org/snonux/hexai/internal/appconfig/config.go:828.52,831.3 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:832.2,832.49 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:832.2,832.49 1 2
codeberg.org/snonux/hexai/internal/appconfig/config.go:832.49,835.3 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:836.2,836.61 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:836.2,836.61 1 2
codeberg.org/snonux/hexai/internal/appconfig/config.go:836.61,839.3 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:841.2,841.10 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:841.10,843.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:841.2,841.10 1 2
+codeberg.org/snonux/hexai/internal/appconfig/config.go:841.10,843.3 1 2
codeberg.org/snonux/hexai/internal/appconfig/config.go:844.2,844.13 1 0
codeberg.org/snonux/hexai/internal/editor/editor.go:12.32,14.17 2 0
codeberg.org/snonux/hexai/internal/editor/editor.go:14.17,16.6 1 0
@@ -12838,30 +12908,30 @@ codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:84.37,86.6 1 0
codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:87.5,87.16 1 0
codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:91.79,93.2 1 0
codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:95.78,97.2 1 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:21.80,25.19 4 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:25.19,28.6 2 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:29.5,30.16 2 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:30.16,33.3 2 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:34.2,34.46 1 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:34.46,36.3 1 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:37.5,38.19 2 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:38.19,40.6 1 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:41.2,42.16 2 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:42.16,44.3 1 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:45.2,46.12 2 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:49.146,50.17 1 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:51.21,52.36 1 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:53.24,55.37 2 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:55.37,58.4 2 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:59.3,61.55 3 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:62.25,65.79 3 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:66.25,69.63 3 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:70.23,73.61 3 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:74.25,77.63 3 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:78.23,83.58 4 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:83.58,86.10 2 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:87.9,87.70 1 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:88.13,89.36 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:22.80,26.19 4 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:26.19,29.6 2 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:30.5,33.16 4 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:33.16,36.3 2 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:37.2,37.46 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:37.46,39.3 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:40.5,41.19 2 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:41.19,43.6 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:44.5,45.19 2 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:45.19,47.6 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:48.5,50.15 3 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:53.146,54.17 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:55.21,56.36 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:57.24,59.37 2 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:59.37,62.4 2 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:63.3,65.55 3 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:66.25,69.79 3 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:70.25,73.63 3 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:74.23,77.61 3 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:78.25,81.63 3 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:82.23,87.58 4 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:87.58,90.10 2 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:91.9,91.70 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:92.13,93.36 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
@@ -12905,71 +12975,71 @@ 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:24.95,29.16 4 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:29.16,32.3 2 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:34.5,34.23 1 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:34.23,35.104 1 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:35.104,37.10 1 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:37.16,39.10 0 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:42.5,43.17 2 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:43.17,46.3 2 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:47.2,49.74 3 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:49.74,52.3 2 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:53.2,53.12 1 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:58.124,60.16 2 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:60.16,63.3 2 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:64.2,66.74 3 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:66.74,69.3 2 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:70.2,70.12 1 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:74.64,76.82 2 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:76.82,79.3 2 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:80.2,81.9 2 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:82.40,83.59 1 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:84.23,85.24 1 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:86.21,87.22 1 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:88.10,89.91 1 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:97.48,100.40 3 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:100.40,102.3 1 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:103.2,106.3 1 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:110.77,113.40 3 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:113.40,114.58 1 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:114.58,116.4 1 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:118.2,121.3 1 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:125.125,128.40 3 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:128.40,130.56 2 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:130.56,133.4 2 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:133.18,135.4 1 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:136.3,136.22 1 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:137.8,139.17 2 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:139.17,141.4 1 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:142.3,143.26 2 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:145.2,148.12 3 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:152.59,154.2 1 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:160.65,160.97 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/hexaicli/run.go:25.95,30.16 4 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:30.16,33.3 2 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:35.5,35.23 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:35.23,36.104 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:36.104,38.10 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:38.16,40.10 0 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:43.5,44.17 2 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:44.17,47.3 2 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:48.2,50.74 3 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:50.74,53.3 2 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:54.2,54.12 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:59.124,61.16 2 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:61.16,64.3 2 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:65.2,67.74 3 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:67.74,70.3 2 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:71.2,71.12 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:75.64,77.82 2 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:77.82,80.3 2 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:81.2,82.9 2 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:83.40,84.59 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:85.23,86.24 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:87.21,88.22 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:89.10,90.91 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:98.48,101.40 3 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:101.40,103.3 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:104.2,107.3 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:111.77,114.40 3 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:114.40,115.58 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:115.58,117.4 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:119.2,122.3 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:126.125,131.40 4 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:131.40,133.56 2 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:133.56,136.4 2 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:136.18,138.4 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:139.3,139.22 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:140.8,142.17 2 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:142.17,144.4 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:145.3,146.26 2 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:148.5,152.15 4 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:156.59,158.2 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:164.65,164.97 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: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,146.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,146.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
@@ -13076,11 +13146,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
@@ -13096,8 +13166,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
@@ -13144,11 +13214,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
@@ -13166,8 +13236,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
@@ -13239,17 +13309,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
@@ -13262,20 +13332,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
@@ -13861,218 +13931,219 @@ 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:22.55,24.32 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:24.32,26.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:27.2,27.13 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:31.41,36.2 4 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:38.41,43.2 4 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:45.32,48.23 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:48.23,50.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:51.2,52.24 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:52.24,54.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:55.2,58.15 4 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:58.15,60.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:61.2,66.27 5 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:66.27,68.6 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:72.51,73.41 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:73.41,75.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:76.2,78.71 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:82.62,82.105 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:84.118,85.14 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:85.14,88.16 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:88.16,91.35 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:91.35,93.5 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:94.4,94.36 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:94.36,96.5 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:97.4,99.59 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:99.59,101.5 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:102.4,102.21 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:105.2,108.19 4 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:111.51,112.23 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:112.23,114.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:115.2,115.13 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:115.13,117.100 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:117.100,119.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:121.3,121.8 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:123.2,123.11 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:126.32,128.2 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:131.44,132.50 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:132.50,134.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:135.2,135.35 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:138.40,140.20 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:140.20,141.40 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:141.40,143.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:145.3,145.8 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:147.2,147.12 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:147.12,149.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:150.2,150.17 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:153.52,154.38 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:154.38,156.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:157.2,158.27 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:158.27,159.34 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:159.34,160.12 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:162.3,162.36 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:162.36,163.12 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:165.3,165.25 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:167.2,167.34 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:175.64,177.22 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:177.22,180.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:180.12,182.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:183.3,185.74 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:185.74,187.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:190.3,191.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:191.12,193.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:194.3,195.48 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:195.48,197.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:199.3,200.18 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:200.18,202.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:204.3,205.29 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:207.2,207.24 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:213.41,217.31 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:217.31,219.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:220.2,220.29 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:220.29,222.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:223.2,223.31 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:223.31,225.32 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:225.32,227.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:229.2,229.14 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:233.83,236.102 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:236.102,238.36 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:238.36,240.136 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:240.136,242.5 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:243.4,245.34 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:245.34,247.5 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:251.2,251.65 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:251.65,252.53 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:252.53,254.37 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:254.37,256.137 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:256.137,258.6 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:259.5,261.35 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:261.35,263.6 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:267.2,267.19 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:271.80,272.22 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:272.22,274.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:275.2,277.40 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:277.40,279.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:280.2,280.34 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:280.34,281.31 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:281.31,282.12 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:284.3,285.16 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:285.16,286.12 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:288.3,288.32 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:288.32,290.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:292.2,292.19 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:295.36,297.2 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:300.39,300.77 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:303.43,305.13 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:305.13,307.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:308.2,309.11 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:309.11,311.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:312.2,313.14 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:313.14,315.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:316.2,317.19 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:321.56,323.89 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:323.89,325.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:326.2,326.14 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:330.52,331.32 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:331.32,333.28 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:333.28,335.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:336.3,336.34 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:336.34,338.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:339.3,339.42 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:339.42,341.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:342.3,342.49 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:344.2,347.27 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:347.27,349.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:350.2,350.36 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:350.36,352.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:353.2,356.49 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:356.49,358.24 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:358.24,360.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:363.2,364.25 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:364.25,366.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:367.2,367.33 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:367.33,369.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:370.2,371.19 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:375.67,377.35 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:377.35,379.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:380.2,381.31 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:381.31,383.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:384.2,384.14 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:387.69,388.32 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:388.32,390.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:391.2,391.47 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:394.45,396.22 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:396.22,400.12 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:400.12,402.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:403.3,405.32 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:405.32,407.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:408.3,409.46 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:409.46,411.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:414.3,415.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:415.12,417.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:418.3,419.49 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:419.49,421.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:423.3,423.14 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:425.2,425.14 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:428.67,431.28 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:431.28,433.12 2 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:130.90,133.20 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:436.3,438.12 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:438.12,439.9 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:441.3,441.43 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:441.43,443.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:445.3,445.34 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:445.34,447.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:449.3,450.48 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:450.48,452.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:454.3,454.25 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:454.25,456.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:458.3,459.50 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:459.50,461.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:462.3,463.22 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:465.2,465.14 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:130.90,133.20 3 1
codeberg.org/snonux/hexai/internal/lsp/server.go:133.20,135.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/server.go:136.2,138.23 3 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:136.2,138.23 3 1
codeberg.org/snonux/hexai/internal/lsp/server.go:138.23,140.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/server.go:141.2,142.22 2 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:141.2,142.22 2 1
codeberg.org/snonux/hexai/internal/lsp/server.go:142.22,144.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/server.go:145.2,146.27 2 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:145.2,146.27 2 1
codeberg.org/snonux/hexai/internal/lsp/server.go:146.27,148.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/server.go:149.2,155.38 6 0
-codeberg.org/snonux/hexai/internal/lsp/server.go:155.38,158.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:149.2,155.38 6 1
+codeberg.org/snonux/hexai/internal/lsp/server.go:155.38,158.3 1 1
codeberg.org/snonux/hexai/internal/lsp/server.go:158.8,160.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/server.go:161.2,164.35 4 0
-codeberg.org/snonux/hexai/internal/lsp/server.go:164.35,166.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/server.go:167.2,167.35 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:161.2,164.35 4 1
+codeberg.org/snonux/hexai/internal/lsp/server.go:164.35,166.3 1 1
+codeberg.org/snonux/hexai/internal/lsp/server.go:167.2,167.35 1 1
codeberg.org/snonux/hexai/internal/lsp/server.go:167.35,169.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/server.go:171.2,171.46 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:171.2,171.46 1 1
codeberg.org/snonux/hexai/internal/lsp/server.go:171.46,173.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/server.go:173.8,175.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/server.go:176.2,176.47 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:173.8,175.3 1 1
+codeberg.org/snonux/hexai/internal/lsp/server.go:176.2,176.47 1 1
codeberg.org/snonux/hexai/internal/lsp/server.go:176.47,178.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/server.go:178.8,180.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/server.go:181.2,181.46 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:178.8,180.3 1 1
+codeberg.org/snonux/hexai/internal/lsp/server.go:181.2,181.46 1 1
codeberg.org/snonux/hexai/internal/lsp/server.go:181.46,183.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/server.go:183.8,185.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/server.go:186.2,186.33 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:183.8,185.3 1 1
+codeberg.org/snonux/hexai/internal/lsp/server.go:186.2,186.33 1 1
codeberg.org/snonux/hexai/internal/lsp/server.go:186.33,188.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/server.go:188.8,190.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/server.go:193.2,213.24 19 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.25 1 0
-codeberg.org/snonux/hexai/internal/lsp/server.go:216.25,218.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/server.go:219.2,219.24 1 0
-codeberg.org/snonux/hexai/internal/lsp/server.go:219.24,221.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/server.go:222.2,222.29 1 0
-codeberg.org/snonux/hexai/internal/lsp/server.go:222.29,224.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/server.go:226.2,228.47 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:188.8,190.3 1 1
+codeberg.org/snonux/hexai/internal/lsp/server.go:193.2,213.24 19 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.25 1 1
+codeberg.org/snonux/hexai/internal/lsp/server.go:216.25,218.3 1 1
+codeberg.org/snonux/hexai/internal/lsp/server.go:219.2,219.24 1 1
+codeberg.org/snonux/hexai/internal/lsp/server.go:219.24,221.3 1 1
+codeberg.org/snonux/hexai/internal/lsp/server.go:222.2,222.29 1 1
+codeberg.org/snonux/hexai/internal/lsp/server.go:222.29,224.3 1 1
+codeberg.org/snonux/hexai/internal/lsp/server.go:226.2,228.47 1 1
codeberg.org/snonux/hexai/internal/lsp/server.go:228.47,228.72 1 0
codeberg.org/snonux/hexai/internal/lsp/server.go:230.47,230.65 1 0
-codeberg.org/snonux/hexai/internal/lsp/server.go:239.2,239.10 1 0
-codeberg.org/snonux/hexai/internal/lsp/server.go:242.30,243.6 1 0
-codeberg.org/snonux/hexai/internal/lsp/server.go:243.6,245.20 2 0
-codeberg.org/snonux/hexai/internal/lsp/server.go:245.20,247.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:239.2,239.10 1 1
+codeberg.org/snonux/hexai/internal/lsp/server.go:242.30,243.6 1 1
+codeberg.org/snonux/hexai/internal/lsp/server.go:243.6,245.20 2 1
+codeberg.org/snonux/hexai/internal/lsp/server.go:245.20,247.4 1 1
codeberg.org/snonux/hexai/internal/lsp/server.go:248.3,248.17 1 0
codeberg.org/snonux/hexai/internal/lsp/server.go:248.17,250.4 1 0
codeberg.org/snonux/hexai/internal/lsp/server.go:251.3,252.52 2 0
@@ -14081,9 +14152,9 @@ codeberg.org/snonux/hexai/internal/lsp/server.go:256.3,256.23 1 0
codeberg.org/snonux/hexai/internal/lsp/server.go:256.23,258.12 1 0
codeberg.org/snonux/hexai/internal/lsp/server.go:260.3,261.15 2 0
codeberg.org/snonux/hexai/internal/lsp/server.go:261.15,263.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
@@ -14160,6 +14231,15 @@ 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/status.go:10.21,12.16 2 0
+codeberg.org/snonux/hexai/internal/tmux/status.go:12.16,12.31 1 0
+codeberg.org/snonux/hexai/internal/tmux/status.go:13.5,14.62 2 0
+codeberg.org/snonux/hexai/internal/tmux/status.go:18.45,19.51 1 0
+codeberg.org/snonux/hexai/internal/tmux/status.go:19.51,19.65 1 0
+codeberg.org/snonux/hexai/internal/tmux/status.go:20.5,21.16 2 0
+codeberg.org/snonux/hexai/internal/tmux/status.go:21.16,21.30 1 0
+codeberg.org/snonux/hexai/internal/tmux/status.go:23.5,23.72 1 0
+codeberg.org/snonux/hexai/internal/tmux/status.go:27.36,27.83 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
@@ -14611,30 +14691,30 @@ codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:84.37,86.6 1 0
codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:87.5,87.16 1 0
codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:91.79,93.2 1 0
codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:95.78,97.2 1 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:21.80,25.19 4 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:25.19,28.6 2 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:29.5,30.16 2 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:30.16,33.3 2 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:34.2,34.46 1 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:34.46,36.3 1 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:37.5,38.19 2 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:38.19,40.6 1 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:41.2,42.16 2 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:42.16,44.3 1 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:45.2,46.12 2 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:49.146,50.17 1 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:51.21,52.36 1 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:53.24,55.37 2 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:55.37,58.4 2 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:59.3,61.55 3 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:62.25,65.79 3 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:66.25,69.63 3 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:70.23,73.61 3 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:74.25,77.63 3 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:78.23,83.58 4 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:83.58,86.10 2 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:87.9,87.70 1 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:88.13,89.36 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:22.80,26.19 4 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:26.19,29.6 2 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:30.5,33.16 4 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:33.16,36.3 2 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:37.2,37.46 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:37.46,39.3 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:40.5,41.19 2 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:41.19,43.6 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:44.5,45.19 2 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:45.19,47.6 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:48.5,50.15 3 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:53.146,54.17 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:55.21,56.36 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:57.24,59.37 2 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:59.37,62.4 2 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:63.3,65.55 3 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:66.25,69.79 3 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:70.25,73.63 3 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:74.23,77.61 3 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:78.25,81.63 3 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:82.23,87.58 4 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:87.58,90.10 2 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:91.9,91.70 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:92.13,93.36 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
@@ -14678,47 +14758,47 @@ 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:24.95,29.16 4 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:29.16,32.3 2 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:34.5,34.23 1 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:34.23,35.104 1 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:35.104,37.10 1 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:37.16,39.10 0 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:42.5,43.17 2 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:43.17,46.3 2 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:47.2,49.74 3 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:49.74,52.3 2 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:53.2,53.12 1 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:58.124,60.16 2 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:60.16,63.3 2 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:64.2,66.74 3 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:66.74,69.3 2 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:70.2,70.12 1 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:74.64,76.82 2 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:76.82,79.3 2 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:80.2,81.9 2 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:82.40,83.59 1 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:84.23,85.24 1 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:86.21,87.22 1 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:88.10,89.91 1 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:97.48,100.40 3 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:100.40,102.3 1 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:103.2,106.3 1 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:110.77,113.40 3 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:113.40,114.58 1 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:114.58,116.4 1 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:118.2,121.3 1 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:125.125,128.40 3 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:128.40,130.56 2 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:130.56,133.4 2 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:133.18,135.4 1 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:136.3,136.22 1 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:137.8,139.17 2 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:139.17,141.4 1 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:142.3,143.26 2 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:145.2,148.12 3 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:152.59,154.2 1 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:160.65,160.97 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:25.95,30.16 4 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:30.16,33.3 2 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:35.5,35.23 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:35.23,36.104 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:36.104,38.10 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:38.16,40.10 0 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:43.5,44.17 2 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:44.17,47.3 2 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:48.2,50.74 3 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:50.74,53.3 2 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:54.2,54.12 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:59.124,61.16 2 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:61.16,64.3 2 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:65.2,67.74 3 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:67.74,70.3 2 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:71.2,71.12 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:75.64,77.82 2 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:77.82,80.3 2 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:81.2,82.9 2 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:83.40,84.59 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:85.23,86.24 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:87.21,88.22 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:89.10,90.91 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:98.48,101.40 3 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:101.40,103.3 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:104.2,107.3 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:111.77,114.40 3 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:114.40,115.58 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:115.58,117.4 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:119.2,122.3 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:126.125,131.40 4 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:131.40,133.56 2 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:133.56,136.4 2 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:136.18,138.4 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:139.3,139.22 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:140.8,142.17 2 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:142.17,144.4 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:145.3,146.26 2 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:148.5,152.15 4 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:156.59,158.2 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:164.65,164.97 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
@@ -14743,313 +14823,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,146.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
+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 0
-codeberg.org/snonux/hexai/internal/llm/copilot.go:85.109,86.39 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 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 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 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 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: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 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 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: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 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: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 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: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 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: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 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 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 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 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 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 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: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 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 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: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 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 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 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 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 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/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 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 0
-codeberg.org/snonux/hexai/internal/llm/ollama.go:60.108,62.27 2 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 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 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 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: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 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 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 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 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 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: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 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: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 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/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 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 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: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 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 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 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 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: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 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 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 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 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 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 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: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 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: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 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: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 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: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 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: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 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/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 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: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 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/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 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/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 0
-codeberg.org/snonux/hexai/internal/logging/logging.go:31.16,33.3 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 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 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
@@ -15634,176 +15714,177 @@ 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:22.55,24.32 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:24.32,26.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:27.2,27.13 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:31.41,36.2 4 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:38.41,43.2 4 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:45.32,48.23 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:48.23,50.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:51.2,52.24 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:52.24,54.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:55.2,58.15 4 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:58.15,60.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:61.2,66.27 5 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:66.27,68.6 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:72.51,73.41 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:73.41,75.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:76.2,78.71 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:82.62,82.105 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:84.118,85.14 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:85.14,88.16 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:88.16,91.35 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:91.35,93.5 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:94.4,94.36 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:94.36,96.5 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:97.4,99.59 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:99.59,101.5 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:102.4,102.21 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:105.2,108.19 4 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:111.51,112.23 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:112.23,114.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:115.2,115.13 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:115.13,117.100 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:117.100,119.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:121.3,121.8 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:123.2,123.11 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:126.32,128.2 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:131.44,132.50 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:132.50,134.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:135.2,135.35 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:138.40,140.20 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:140.20,141.40 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:141.40,143.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:145.3,145.8 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:147.2,147.12 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:147.12,149.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:150.2,150.17 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:153.52,154.38 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:154.38,156.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:157.2,158.27 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:158.27,159.34 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:159.34,160.12 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:162.3,162.36 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:162.36,163.12 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:165.3,165.25 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:167.2,167.34 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:175.64,177.22 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:177.22,180.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:180.12,182.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:183.3,185.74 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:185.74,187.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:190.3,191.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:191.12,193.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:194.3,195.48 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:195.48,197.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:199.3,200.18 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:200.18,202.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:204.3,205.29 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:207.2,207.24 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:213.41,217.31 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:217.31,219.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:220.2,220.29 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:220.29,222.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:223.2,223.31 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:223.31,225.32 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:225.32,227.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:229.2,229.14 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:233.83,236.102 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:236.102,238.36 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:238.36,240.136 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:240.136,242.5 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:243.4,245.34 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:245.34,247.5 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:251.2,251.65 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:251.65,252.53 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:252.53,254.37 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:254.37,256.137 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:256.137,258.6 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:259.5,261.35 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:261.35,263.6 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:267.2,267.19 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:271.80,272.22 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:272.22,274.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:275.2,277.40 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:277.40,279.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:280.2,280.34 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:280.34,281.31 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:281.31,282.12 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:284.3,285.16 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:285.16,286.12 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:288.3,288.32 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:288.32,290.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:292.2,292.19 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:295.36,297.2 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:300.39,300.77 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:303.43,305.13 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:305.13,307.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:308.2,309.11 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:309.11,311.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:312.2,313.14 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:313.14,315.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:316.2,317.19 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:321.56,323.89 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:323.89,325.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:326.2,326.14 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:330.52,331.32 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:331.32,333.28 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:333.28,335.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:336.3,336.34 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:336.34,338.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:339.3,339.42 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:339.42,341.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:342.3,342.49 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:344.2,347.27 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:347.27,349.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:350.2,350.36 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:350.36,352.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:353.2,356.49 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:356.49,358.24 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:358.24,360.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:363.2,364.25 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:364.25,366.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:367.2,367.33 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:367.33,369.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:370.2,371.19 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:375.67,377.35 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:377.35,379.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:380.2,381.31 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:381.31,383.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:384.2,384.14 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:387.69,388.32 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:388.32,390.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:391.2,391.47 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:394.45,396.22 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:396.22,400.12 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:400.12,402.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:403.3,405.32 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:405.32,407.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:408.3,409.46 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:409.46,411.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:414.3,415.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:415.12,417.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:418.3,419.49 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:419.49,421.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:423.3,423.14 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:425.2,425.14 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:428.67,431.28 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:431.28,433.12 2 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/handlers_utils.go:436.3,438.12 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:438.12,439.9 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:441.3,441.43 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:441.43,443.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:445.3,445.34 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:445.34,447.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:449.3,450.48 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:450.48,452.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:454.3,454.25 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:454.25,456.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:458.3,459.50 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:459.50,461.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:462.3,463.22 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:465.2,465.14 1 0
codeberg.org/snonux/hexai/internal/lsp/server.go:130.90,133.20 3 0
codeberg.org/snonux/hexai/internal/lsp/server.go:133.20,135.3 1 0
codeberg.org/snonux/hexai/internal/lsp/server.go:136.2,138.23 3 0
@@ -15933,31 +16014,40 @@ 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/tmux/status.go:10.21,12.16 2 0
+codeberg.org/snonux/hexai/internal/tmux/status.go:12.16,12.31 1 0
+codeberg.org/snonux/hexai/internal/tmux/status.go:13.5,14.62 2 0
+codeberg.org/snonux/hexai/internal/tmux/status.go:18.45,19.51 1 0
+codeberg.org/snonux/hexai/internal/tmux/status.go:19.51,19.65 1 0
+codeberg.org/snonux/hexai/internal/tmux/status.go:20.5,21.16 2 0
+codeberg.org/snonux/hexai/internal/tmux/status.go:21.16,21.30 1 0
+codeberg.org/snonux/hexai/internal/tmux/status.go:23.5,23.72 1 0
+codeberg.org/snonux/hexai/internal/tmux/status.go:27.36,27.83 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 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
@@ -15968,16 +16058,16 @@ 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/cmd/hexai-tmux-action/main.go:12.13,25.110 9 0
codeberg.org/snonux/hexai/cmd/hexai-tmux-action/main.go:25.110,28.6 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:91.29,140.2 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:144.35,146.19 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:146.19,148.3 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:150.2,151.16 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:91.29,140.2 2 5
+codeberg.org/snonux/hexai/internal/appconfig/config.go:144.35,146.19 2 5
+codeberg.org/snonux/hexai/internal/appconfig/config.go:146.19,148.3 1 1
+codeberg.org/snonux/hexai/internal/appconfig/config.go:150.2,151.16 2 4
codeberg.org/snonux/hexai/internal/appconfig/config.go:151.16,154.3 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:154.8,155.85 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:154.8,155.85 1 4
codeberg.org/snonux/hexai/internal/appconfig/config.go:155.85,157.4 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:163.2,163.50 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:163.2,163.50 1 4
codeberg.org/snonux/hexai/internal/appconfig/config.go:163.50,165.3 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:166.2,166.12 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:166.2,166.12 1 4
codeberg.org/snonux/hexai/internal/appconfig/config.go:284.35,288.77 2 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:288.77,297.3 2 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:300.2,300.38 1 0
@@ -16042,10 +16132,10 @@ codeberg.org/snonux/hexai/internal/appconfig/config.go:433.60,435.4 1 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:438.2,438.67 1 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:438.67,440.3 1 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:442.2,442.12 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:445.66,447.16 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:447.16,448.43 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:445.66,447.16 2 4
+codeberg.org/snonux/hexai/internal/appconfig/config.go:447.16,448.43 1 4
codeberg.org/snonux/hexai/internal/appconfig/config.go:448.43,450.4 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:451.3,451.18 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:451.3,451.18 1 4
codeberg.org/snonux/hexai/internal/appconfig/config.go:454.2,459.22 5 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:459.22,460.20 1 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:460.20,462.4 1 0
@@ -16159,283 +16249,283 @@ codeberg.org/snonux/hexai/internal/appconfig/config.go:667.2,667.57 1 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:667.57,669.3 1 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:670.2,670.37 1 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:670.37,672.3 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:675.38,677.72 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:675.38,677.72 2 4
codeberg.org/snonux/hexai/internal/appconfig/config.go:677.72,679.3 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:679.8,681.17 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:679.8,681.17 2 4
codeberg.org/snonux/hexai/internal/appconfig/config.go:681.17,683.4 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:684.3,684.70 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:686.2,686.24 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:693.43,698.34 3 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:698.34,698.76 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:699.2,699.41 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:699.41,701.14 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:701.14,703.4 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:684.3,684.70 1 4
+codeberg.org/snonux/hexai/internal/appconfig/config.go:686.2,686.24 1 4
+codeberg.org/snonux/hexai/internal/appconfig/config.go:693.43,698.34 3 4
+codeberg.org/snonux/hexai/internal/appconfig/config.go:698.34,698.76 1 96
+codeberg.org/snonux/hexai/internal/appconfig/config.go:699.2,699.41 1 4
+codeberg.org/snonux/hexai/internal/appconfig/config.go:699.41,701.14 2 28
+codeberg.org/snonux/hexai/internal/appconfig/config.go:701.14,703.4 1 28
codeberg.org/snonux/hexai/internal/appconfig/config.go:704.3,705.17 2 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:705.17,706.21 1 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:706.21,708.5 1 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:709.4,709.19 1 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:711.3,711.17 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:713.2,713.51 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:713.51,715.14 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:715.14,717.4 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:713.2,713.51 1 4
+codeberg.org/snonux/hexai/internal/appconfig/config.go:713.51,715.14 2 16
+codeberg.org/snonux/hexai/internal/appconfig/config.go:715.14,717.4 1 16
codeberg.org/snonux/hexai/internal/appconfig/config.go:718.3,719.17 2 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:719.17,720.21 1 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:720.21,722.5 1 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:723.4,723.21 1 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:725.3,725.18 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:728.2,728.47 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:728.2,728.47 1 4
codeberg.org/snonux/hexai/internal/appconfig/config.go:728.47,731.3 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:732.2,732.48 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:732.2,732.48 1 4
codeberg.org/snonux/hexai/internal/appconfig/config.go:732.48,735.3 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:736.2,736.57 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:736.2,736.57 1 4
codeberg.org/snonux/hexai/internal/appconfig/config.go:736.57,739.3 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:740.2,740.55 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:740.2,740.55 1 4
codeberg.org/snonux/hexai/internal/appconfig/config.go:740.55,743.3 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:744.2,744.54 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:744.2,744.54 1 4
codeberg.org/snonux/hexai/internal/appconfig/config.go:744.54,747.3 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:748.2,748.61 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:748.2,748.61 1 4
codeberg.org/snonux/hexai/internal/appconfig/config.go:748.61,751.3 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:752.2,752.59 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:752.2,752.59 1 4
codeberg.org/snonux/hexai/internal/appconfig/config.go:752.59,755.3 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:756.2,756.59 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:756.2,756.59 1 4
codeberg.org/snonux/hexai/internal/appconfig/config.go:756.59,759.3 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:760.2,760.60 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:760.2,760.60 1 4
codeberg.org/snonux/hexai/internal/appconfig/config.go:760.60,763.3 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:764.2,764.54 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:764.2,764.54 1 4
codeberg.org/snonux/hexai/internal/appconfig/config.go:764.54,767.27 3 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:767.27,768.42 1 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:768.42,770.5 1 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:772.3,772.13 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:774.2,774.47 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:774.2,774.47 1 4
codeberg.org/snonux/hexai/internal/appconfig/config.go:774.47,777.3 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:778.2,778.48 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:778.2,778.48 1 4
codeberg.org/snonux/hexai/internal/appconfig/config.go:778.48,781.3 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:782.2,782.47 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:782.2,782.47 1 4
codeberg.org/snonux/hexai/internal/appconfig/config.go:782.47,785.3 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:786.2,786.49 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:786.2,786.49 1 4
codeberg.org/snonux/hexai/internal/appconfig/config.go:786.49,789.27 3 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:789.27,790.42 1 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:790.42,792.5 1 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:794.3,794.13 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:796.2,796.44 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:796.2,796.44 1 4
codeberg.org/snonux/hexai/internal/appconfig/config.go:796.44,799.3 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:802.2,802.51 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:802.2,802.51 1 4
codeberg.org/snonux/hexai/internal/appconfig/config.go:802.51,805.3 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:806.2,806.48 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:806.2,806.48 1 4
codeberg.org/snonux/hexai/internal/appconfig/config.go:806.48,809.3 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:810.2,810.60 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:810.2,810.60 1 4
codeberg.org/snonux/hexai/internal/appconfig/config.go:810.60,813.3 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:815.2,815.51 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:815.2,815.51 1 4
codeberg.org/snonux/hexai/internal/appconfig/config.go:815.51,818.3 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:819.2,819.48 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:819.2,819.48 1 4
codeberg.org/snonux/hexai/internal/appconfig/config.go:819.48,822.3 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:823.2,823.60 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:823.2,823.60 1 4
codeberg.org/snonux/hexai/internal/appconfig/config.go:823.60,826.3 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:828.2,828.52 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:828.2,828.52 1 4
codeberg.org/snonux/hexai/internal/appconfig/config.go:828.52,831.3 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:832.2,832.49 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:832.2,832.49 1 4
codeberg.org/snonux/hexai/internal/appconfig/config.go:832.49,835.3 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:836.2,836.61 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:836.2,836.61 1 4
codeberg.org/snonux/hexai/internal/appconfig/config.go:836.61,839.3 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:841.2,841.10 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:841.10,843.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:841.2,841.10 1 4
+codeberg.org/snonux/hexai/internal/appconfig/config.go:841.10,843.3 1 4
codeberg.org/snonux/hexai/internal/appconfig/config.go:844.2,844.13 1 0
-codeberg.org/snonux/hexai/internal/editor/editor.go:12.32,14.17 2 0
+codeberg.org/snonux/hexai/internal/editor/editor.go:12.32,14.17 2 1
codeberg.org/snonux/hexai/internal/editor/editor.go:14.17,16.6 1 0
-codeberg.org/snonux/hexai/internal/editor/editor.go:17.5,17.17 1 0
+codeberg.org/snonux/hexai/internal/editor/editor.go:17.5,17.17 1 1
codeberg.org/snonux/hexai/internal/editor/editor.go:17.17,19.6 1 0
-codeberg.org/snonux/hexai/internal/editor/editor.go:20.5,20.19 1 0
+codeberg.org/snonux/hexai/internal/editor/editor.go:20.5,20.19 1 1
codeberg.org/snonux/hexai/internal/editor/editor.go:25.49,31.2 5 0
-codeberg.org/snonux/hexai/internal/editor/editor.go:36.54,38.19 2 0
+codeberg.org/snonux/hexai/internal/editor/editor.go:36.54,38.19 2 1
codeberg.org/snonux/hexai/internal/editor/editor.go:38.19,40.6 1 0
-codeberg.org/snonux/hexai/internal/editor/editor.go:42.5,44.19 3 0
+codeberg.org/snonux/hexai/internal/editor/editor.go:42.5,44.19 3 1
codeberg.org/snonux/hexai/internal/editor/editor.go:44.19,46.6 1 0
-codeberg.org/snonux/hexai/internal/editor/editor.go:47.5,48.18 2 0
-codeberg.org/snonux/hexai/internal/editor/editor.go:48.18,48.41 1 0
-codeberg.org/snonux/hexai/internal/editor/editor.go:49.5,49.25 1 0
+codeberg.org/snonux/hexai/internal/editor/editor.go:47.5,48.18 2 1
+codeberg.org/snonux/hexai/internal/editor/editor.go:48.18,48.41 1 1
+codeberg.org/snonux/hexai/internal/editor/editor.go:49.5,49.25 1 1
codeberg.org/snonux/hexai/internal/editor/editor.go:49.25,50.51 1 0
codeberg.org/snonux/hexai/internal/editor/editor.go:50.51,53.10 2 0
-codeberg.org/snonux/hexai/internal/editor/editor.go:55.5,55.36 1 0
+codeberg.org/snonux/hexai/internal/editor/editor.go:55.5,55.36 1 1
codeberg.org/snonux/hexai/internal/editor/editor.go:55.36,58.6 2 0
-codeberg.org/snonux/hexai/internal/editor/editor.go:59.5,59.37 1 0
+codeberg.org/snonux/hexai/internal/editor/editor.go:59.5,59.37 1 1
codeberg.org/snonux/hexai/internal/editor/editor.go:59.37,61.6 1 0
-codeberg.org/snonux/hexai/internal/editor/editor.go:62.5,62.47 1 0
+codeberg.org/snonux/hexai/internal/editor/editor.go:62.5,62.47 1 1
codeberg.org/snonux/hexai/internal/editor/editor.go:62.47,64.6 1 0
-codeberg.org/snonux/hexai/internal/editor/editor.go:65.5,66.19 2 0
+codeberg.org/snonux/hexai/internal/editor/editor.go:65.5,66.19 2 1
codeberg.org/snonux/hexai/internal/editor/editor.go:66.19,68.6 1 0
-codeberg.org/snonux/hexai/internal/editor/editor.go:69.5,69.45 1 0
-codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:27.101,28.21 1 0
-codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:28.21,30.6 1 0
-codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:32.5,32.93 1 0
+codeberg.org/snonux/hexai/internal/editor/editor.go:69.5,69.45 1 1
+codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:27.101,28.21 1 2
+codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:28.21,30.6 1 1
+codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:32.5,32.93 1 1
codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:36.37,36.72 1 0
-codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:42.83,45.23 3 0
+codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:42.83,45.23 3 3
codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:45.24,45.25 0 0
-codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:46.5,46.24 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:46.5,46.24 1 3
codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:46.25,46.26 0 0
-codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:47.5,47.35 1 0
-codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:47.35,49.23 2 0
+codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:47.5,47.35 1 3
+codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:47.35,49.23 2 3
codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:49.23,49.48 1 0
codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:49.49,49.50 0 0
codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:49.59,49.60 0 0
-codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:50.9,51.26 2 0
-codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:51.26,51.43 1 0
-codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:53.5,53.36 1 0
-codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:53.36,55.23 2 0
+codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:50.9,51.26 2 3
+codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:51.26,51.43 1 3
+codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:53.5,53.36 1 3
+codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:53.36,55.23 2 3
codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:55.23,55.48 1 0
codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:55.49,55.50 0 0
codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:55.59,55.60 0 0
-codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:56.9,57.27 2 0
-codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:57.27,57.44 1 0
-codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:59.5,59.43 1 0
-codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:63.92,64.22 1 0
-codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:64.22,67.25 2 0
-codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:67.25,69.27 2 0
+codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:56.9,57.27 2 3
+codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:57.27,57.44 1 3
+codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:59.5,59.43 1 3
+codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:63.92,64.22 1 3
+codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:64.22,67.25 2 1
+codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:67.25,69.27 2 1
codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:69.27,69.41 1 0
-codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:70.13,70.25 1 0
-codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:70.25,70.42 1 0
-codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:71.13,71.19 1 0
-codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:73.9,73.46 1 0
-codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:75.5,77.19 3 0
+codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:70.13,70.25 1 1
+codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:70.25,70.42 1 1
+codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:71.13,71.19 1 1
+codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:73.9,73.46 1 1
+codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:75.5,77.19 3 2
codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:77.19,77.33 1 0
-codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:78.5,79.55 2 0
+codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:78.5,79.55 2 2
codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:79.55,81.82 2 0
codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:81.82,83.10 1 0
-codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:84.11,86.6 1 0
-codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:87.5,87.35 1 0
-codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:90.98,92.19 2 0
+codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:84.11,86.6 1 2
+codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:87.5,87.35 1 2
+codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:90.98,92.19 2 4
codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:92.19,92.33 1 0
-codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:93.5,93.18 1 0
-codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:93.18,93.43 1 0
-codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:94.5,96.55 3 0
+codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:93.5,93.18 1 4
+codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:93.18,93.43 1 4
+codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:94.5,96.55 3 4
codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:96.55,96.69 1 0
-codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:97.5,98.19 2 0
-codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:98.19,98.33 1 0
-codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:99.5,101.50 3 0
-codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:101.50,101.64 1 0
-codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:102.5,102.64 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:97.5,98.19 2 4
+codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:98.19,98.33 1 1
+codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:99.5,101.50 3 3
+codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:101.50,101.64 1 1
+codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:102.5,102.64 1 2
codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:102.64,102.78 1 0
-codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:103.5,103.38 1 0
-codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:106.55,108.19 2 0
+codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:103.5,103.38 1 2
+codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:106.55,108.19 2 5
codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:108.19,108.33 1 0
-codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:109.5,109.18 1 0
-codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:109.18,109.35 1 0
-codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:110.5,110.48 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:109.5,109.18 1 5
+codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:109.18,109.35 1 5
+codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:110.5,110.48 1 5
codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:110.48,110.62 1 0
-codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:111.5,111.20 1 0
-codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:114.60,116.9 2 0
-codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:116.9,117.48 1 0
-codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:117.48,117.62 1 0
-codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:118.9,118.39 1 0
-codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:118.39,118.113 1 0
-codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:119.9,119.43 1 0
-codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:123.48,125.19 2 0
+codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:111.5,111.20 1 5
+codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:114.60,116.9 2 3
+codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:116.9,117.48 1 4
+codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:117.48,117.62 1 2
+codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:118.9,118.39 1 2
+codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:118.39,118.113 1 1
+codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:119.9,119.43 1 1
+codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:123.48,125.19 2 2
codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:125.19,125.33 1 0
-codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:126.5,126.18 1 0
-codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:126.18,126.35 1 0
-codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:127.5,128.15 2 0
-codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:132.83,135.21 3 0
-codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:135.21,137.23 2 0
+codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:126.5,126.18 1 2
+codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:126.18,126.35 1 2
+codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:127.5,128.15 2 2
+codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:132.83,135.21 3 2
+codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:135.21,137.23 2 1
codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:137.23,137.37 1 0
-codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:138.9,138.22 1 0
-codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:138.22,138.39 1 0
-codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:139.9,139.15 1 0
-codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:141.5,141.22 1 0
-codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:141.22,143.23 2 0
+codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:138.9,138.22 1 1
+codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:138.22,138.39 1 1
+codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:139.9,139.15 1 1
+codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:141.5,141.22 1 2
+codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:141.22,143.23 2 1
codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:143.23,143.37 1 0
-codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:144.9,144.22 1 0
-codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:144.22,144.39 1 0
-codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:145.9,145.16 1 0
-codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:147.5,148.15 2 0
-codeberg.org/snonux/hexai/internal/hexaiaction/parse.go:20.50,22.16 2 0
+codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:144.9,144.22 1 1
+codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:144.22,144.39 1 1
+codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:145.9,145.16 1 1
+codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:147.5,148.15 2 2
+codeberg.org/snonux/hexai/internal/hexaiaction/parse.go:20.50,22.16 2 5
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 0
+codeberg.org/snonux/hexai/internal/hexaiaction/parse.go:25.2,26.15 2 5
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 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/parse.go:29.2,32.27 3 5
+codeberg.org/snonux/hexai/internal/hexaiaction/parse.go:32.27,34.26 2 6
+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 5
+codeberg.org/snonux/hexai/internal/hexaiaction/parse.go:39.18,41.3 1 4
+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 10
+codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:17.35,17.73 1 11
+codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:23.121,27.2 3 4
+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 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: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.109,55.2 3 0
-codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:57.106,61.2 3 0
-codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:63.86,66.19 3 0
+codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:57.106,61.2 3 2
+codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:63.86,66.19 3 1
codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:66.19,68.6 1 0
-codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:69.5,69.52 1 0
-codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:72.120,75.19 3 0
+codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:69.5,69.52 1 1
+codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:72.120,75.19 3 9
codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:75.19,77.6 1 0
-codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:78.5,78.52 1 0
-codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:82.57,84.37 2 0
-codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:84.37,86.6 1 0
-codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:87.5,87.16 1 0
-codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:91.79,93.2 1 0
-codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:95.78,97.2 1 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:21.80,25.19 4 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:25.19,28.6 2 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:29.5,30.16 2 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:30.16,33.3 2 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:34.2,34.46 1 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:34.46,36.3 1 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:37.5,38.19 2 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:38.19,40.6 1 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:41.2,42.16 2 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:42.16,44.3 1 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:45.2,46.12 2 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:49.146,50.17 1 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:51.21,52.36 1 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:53.24,55.37 2 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:55.37,58.4 2 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:59.3,61.55 3 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:62.25,65.79 3 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:66.25,69.63 3 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:70.23,73.61 3 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:74.25,77.63 3 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:78.23,83.58 4 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:83.58,86.10 2 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:87.9,87.70 1 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:88.13,89.36 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,43.2 7 0
-codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:45.31,45.45 1 0
-codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:47.57,48.27 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:78.5,78.52 1 9
+codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:82.57,84.37 2 9
+codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:84.37,86.6 1 5
+codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:87.5,87.16 1 9
+codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:91.79,93.2 1 4
+codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:95.78,97.2 1 1
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:22.80,26.19 4 4
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:26.19,29.6 2 1
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:30.5,33.16 4 3
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:33.16,36.3 2 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:37.2,37.46 1 3
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:37.46,39.3 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:40.5,41.19 2 3
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:41.19,43.6 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:44.5,45.19 2 3
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:45.19,47.6 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:48.5,50.15 3 3
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:53.146,54.17 1 7
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:55.21,56.36 1 2
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:57.24,59.37 2 2
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:59.37,62.4 2 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:63.3,65.55 3 2
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:66.25,69.79 3 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:70.25,73.63 3 1
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:74.23,77.61 3 1
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:78.25,81.63 3 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:82.23,87.58 4 1
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:87.58,90.10 2 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:91.9,91.70 1 1
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:92.13,93.36 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,43.2 7 4
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:45.31,45.45 1 1
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:47.57,48.27 1 1
codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:49.18,50.27 1 0
-codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:51.25,52.40 1 0
-codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:54.2,56.15 3 0
-codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:59.62,62.16 3 0
-codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:63.21,67.27 3 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:51.25,52.40 1 1
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:54.2,56.15 3 1
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:59.62,62.16 3 3
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:63.21,67.27 3 1
codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:68.18,69.55 1 0
codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:69.55,73.10 3 0
codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:74.22,75.28 1 0
codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:76.20,77.26 1 0
-codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:78.22,79.25 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:78.22,79.25 1 1
codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:80.16,81.44 1 0
codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:81.44,81.68 1 0
-codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:82.39,84.41 2 0
-codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:84.41,85.91 1 0
-codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:85.91,90.14 4 0
-codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:93.5,93.19 1 0
-codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:93.19,94.44 1 0
-codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:94.44,94.68 1 0
-codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:96.5,96.18 1 0
-codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:99.30,100.12 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:82.39,84.41 2 1
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:84.41,85.91 1 1
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:85.91,90.14 4 1
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:93.5,93.19 1 1
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:93.19,94.44 1 1
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:94.44,94.68 1 1
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:96.5,96.18 1 1
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:99.30,100.12 1 1
codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:100.12,102.3 1 0
-codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:103.2,103.22 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:103.2,103.22 1 1
codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:107.35,110.16 3 0
codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:110.16,112.3 1 0
codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:113.2,113.29 1 0
@@ -16443,55 +16533,55 @@ codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:113.29,114.21 1 0
codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:114.21,116.4 1 0
codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:117.3,117.23 1 0
codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:119.2,119.56 1 0
-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:24.95,29.16 4 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:29.16,32.3 2 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:34.5,34.23 1 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:34.23,35.104 1 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:35.104,37.10 1 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:37.16,39.10 0 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:42.5,43.17 2 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:43.17,46.3 2 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:47.2,49.74 3 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:49.74,52.3 2 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:53.2,53.12 1 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:58.124,60.16 2 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:60.16,63.3 2 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:64.2,66.74 3 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:66.74,69.3 2 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:70.2,70.12 1 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:74.64,76.82 2 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:76.82,79.3 2 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:80.2,81.9 2 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:82.40,83.59 1 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:84.23,85.24 1 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:86.21,87.22 1 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:88.10,89.91 1 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:97.48,100.40 3 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:100.40,102.3 1 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:103.2,106.3 1 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:110.77,113.40 3 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:113.40,114.58 1 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:114.58,116.4 1 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:118.2,121.3 1 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:125.125,128.40 3 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:128.40,130.56 2 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:130.56,133.4 2 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:133.18,135.4 1 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:136.3,136.22 1 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:137.8,139.17 2 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:139.17,141.4 1 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:142.3,143.26 2 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:145.2,148.12 3 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:152.59,154.2 1 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:160.65,160.97 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui_delegate.go:20.61,20.73 1 18
+codeberg.org/snonux/hexai/internal/hexaiaction/tui_delegate.go:21.61,21.73 1 32
+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:25.95,30.16 4 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:30.16,33.3 2 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:35.5,35.23 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:35.23,36.104 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:36.104,38.10 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:38.16,40.10 0 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:43.5,44.17 2 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:44.17,47.3 2 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:48.2,50.74 3 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:50.74,53.3 2 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:54.2,54.12 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:59.124,61.16 2 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:61.16,64.3 2 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:65.2,67.74 3 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:67.74,70.3 2 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:71.2,71.12 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:75.64,77.82 2 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:77.82,80.3 2 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:81.2,82.9 2 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:83.40,84.59 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:85.23,86.24 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:87.21,88.22 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:89.10,90.91 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:98.48,101.40 3 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:101.40,103.3 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:104.2,107.3 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:111.77,114.40 3 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:114.40,115.58 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:115.58,117.4 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:119.2,122.3 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:126.125,131.40 4 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:131.40,133.56 2 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:133.56,136.4 2 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:136.18,138.4 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:139.3,139.22 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:140.8,142.17 2 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:142.17,144.4 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:145.3,146.26 2 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:148.5,152.15 4 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:156.59,158.2 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:164.65,164.97 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
@@ -16779,17 +16869,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 5
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 9
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
@@ -16803,11 +16893,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
@@ -17407,176 +17497,177 @@ 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:22.55,24.32 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:24.32,26.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:27.2,27.13 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:31.41,36.2 4 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:38.41,43.2 4 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:45.32,48.23 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:48.23,50.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:51.2,52.24 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:52.24,54.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:55.2,58.15 4 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:58.15,60.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:61.2,66.27 5 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:66.27,68.6 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:72.51,73.41 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:73.41,75.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:76.2,78.71 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:82.62,82.105 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:84.118,85.14 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:85.14,88.16 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:88.16,91.35 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:91.35,93.5 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:94.4,94.36 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:94.36,96.5 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:97.4,99.59 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:99.59,101.5 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:102.4,102.21 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:105.2,108.19 4 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:111.51,112.23 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:112.23,114.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:115.2,115.13 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:115.13,117.100 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:117.100,119.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:121.3,121.8 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:123.2,123.11 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:126.32,128.2 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:131.44,132.50 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:132.50,134.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:135.2,135.35 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:138.40,140.20 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:140.20,141.40 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:141.40,143.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:145.3,145.8 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:147.2,147.12 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:147.12,149.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:150.2,150.17 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:153.52,154.38 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:154.38,156.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:157.2,158.27 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:158.27,159.34 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:159.34,160.12 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:162.3,162.36 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:162.36,163.12 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:165.3,165.25 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:167.2,167.34 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:175.64,177.22 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:177.22,180.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:180.12,182.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:183.3,185.74 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:185.74,187.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:190.3,191.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:191.12,193.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:194.3,195.48 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:195.48,197.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:199.3,200.18 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:200.18,202.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:204.3,205.29 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:207.2,207.24 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:213.41,217.31 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:217.31,219.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:220.2,220.29 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:220.29,222.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:223.2,223.31 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:223.31,225.32 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:225.32,227.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:229.2,229.14 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:233.83,236.102 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:236.102,238.36 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:238.36,240.136 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:240.136,242.5 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:243.4,245.34 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:245.34,247.5 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:251.2,251.65 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:251.65,252.53 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:252.53,254.37 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:254.37,256.137 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:256.137,258.6 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:259.5,261.35 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:261.35,263.6 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:267.2,267.19 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:271.80,272.22 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:272.22,274.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:275.2,277.40 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:277.40,279.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:280.2,280.34 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:280.34,281.31 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:281.31,282.12 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:284.3,285.16 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:285.16,286.12 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:288.3,288.32 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:288.32,290.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:292.2,292.19 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:295.36,297.2 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:300.39,300.77 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:303.43,305.13 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:305.13,307.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:308.2,309.11 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:309.11,311.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:312.2,313.14 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:313.14,315.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:316.2,317.19 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:321.56,323.89 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:323.89,325.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:326.2,326.14 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:330.52,331.32 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:331.32,333.28 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:333.28,335.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:336.3,336.34 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:336.34,338.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:339.3,339.42 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:339.42,341.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:342.3,342.49 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:344.2,347.27 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:347.27,349.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:350.2,350.36 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:350.36,352.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:353.2,356.49 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:356.49,358.24 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:358.24,360.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:363.2,364.25 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:364.25,366.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:367.2,367.33 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:367.33,369.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:370.2,371.19 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:375.67,377.35 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:377.35,379.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:380.2,381.31 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:381.31,383.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:384.2,384.14 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:387.69,388.32 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:388.32,390.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:391.2,391.47 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:394.45,396.22 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:396.22,400.12 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:400.12,402.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:403.3,405.32 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:405.32,407.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:408.3,409.46 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:409.46,411.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:414.3,415.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:415.12,417.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:418.3,419.49 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:419.49,421.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:423.3,423.14 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:425.2,425.14 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:428.67,431.28 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:431.28,433.12 2 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/handlers_utils.go:436.3,438.12 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:438.12,439.9 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:441.3,441.43 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:441.43,443.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:445.3,445.34 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:445.34,447.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:449.3,450.48 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:450.48,452.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:454.3,454.25 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:454.25,456.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:458.3,459.50 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:459.50,461.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:462.3,463.22 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:465.2,465.14 1 0
codeberg.org/snonux/hexai/internal/lsp/server.go:130.90,133.20 3 0
codeberg.org/snonux/hexai/internal/lsp/server.go:133.20,135.3 1 0
codeberg.org/snonux/hexai/internal/lsp/server.go:136.2,138.23 3 0
@@ -17652,63 +17743,72 @@ 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 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/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 10
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 10
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:11.28,13.6 1 15
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:14.5,14.15 1 10
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:18.39,20.16 2 11
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 11
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 11
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 11
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 11
+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 2
+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/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/status.go:10.21,12.16 2 6
+codeberg.org/snonux/hexai/internal/tmux/status.go:12.16,12.31 1 6
+codeberg.org/snonux/hexai/internal/tmux/status.go:13.5,14.62 2 0
+codeberg.org/snonux/hexai/internal/tmux/status.go:18.45,19.51 1 6
+codeberg.org/snonux/hexai/internal/tmux/status.go:19.51,19.65 1 0
+codeberg.org/snonux/hexai/internal/tmux/status.go:20.5,21.16 2 6
+codeberg.org/snonux/hexai/internal/tmux/status.go:21.16,21.30 1 0
+codeberg.org/snonux/hexai/internal/tmux/status.go:23.5,23.72 1 6
+codeberg.org/snonux/hexai/internal/tmux/status.go:27.36,27.83 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
+codeberg.org/snonux/hexai/internal/tmux/tmux.go:17.23,17.72 2 6
+codeberg.org/snonux/hexai/internal/tmux/tmux.go:20.23,20.76 1 6
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
@@ -18157,30 +18257,30 @@ codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:84.37,86.6 1 0
codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:87.5,87.16 1 0
codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:91.79,93.2 1 0
codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:95.78,97.2 1 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:21.80,25.19 4 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:25.19,28.6 2 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:29.5,30.16 2 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:30.16,33.3 2 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:34.2,34.46 1 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:34.46,36.3 1 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:37.5,38.19 2 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:38.19,40.6 1 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:41.2,42.16 2 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:42.16,44.3 1 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:45.2,46.12 2 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:49.146,50.17 1 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:51.21,52.36 1 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:53.24,55.37 2 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:55.37,58.4 2 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:59.3,61.55 3 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:62.25,65.79 3 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:66.25,69.63 3 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:70.23,73.61 3 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:74.25,77.63 3 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:78.23,83.58 4 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:83.58,86.10 2 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:87.9,87.70 1 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:88.13,89.36 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:22.80,26.19 4 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:26.19,29.6 2 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:30.5,33.16 4 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:33.16,36.3 2 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:37.2,37.46 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:37.46,39.3 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:40.5,41.19 2 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:41.19,43.6 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:44.5,45.19 2 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:45.19,47.6 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:48.5,50.15 3 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:53.146,54.17 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:55.21,56.36 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:57.24,59.37 2 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:59.37,62.4 2 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:63.3,65.55 3 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:66.25,69.79 3 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:70.25,73.63 3 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:74.23,77.61 3 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:78.25,81.63 3 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:82.23,87.58 4 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:87.58,90.10 2 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:91.9,91.70 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:92.13,93.36 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
@@ -18224,47 +18324,47 @@ 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:24.95,29.16 4 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:29.16,32.3 2 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:34.5,34.23 1 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:34.23,35.104 1 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:35.104,37.10 1 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:37.16,39.10 0 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:42.5,43.17 2 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:43.17,46.3 2 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:47.2,49.74 3 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:49.74,52.3 2 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:53.2,53.12 1 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:58.124,60.16 2 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:60.16,63.3 2 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:64.2,66.74 3 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:66.74,69.3 2 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:70.2,70.12 1 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:74.64,76.82 2 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:76.82,79.3 2 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:80.2,81.9 2 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:82.40,83.59 1 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:84.23,85.24 1 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:86.21,87.22 1 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:88.10,89.91 1 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:97.48,100.40 3 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:100.40,102.3 1 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:103.2,106.3 1 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:110.77,113.40 3 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:113.40,114.58 1 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:114.58,116.4 1 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:118.2,121.3 1 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:125.125,128.40 3 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:128.40,130.56 2 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:130.56,133.4 2 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:133.18,135.4 1 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:136.3,136.22 1 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:137.8,139.17 2 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:139.17,141.4 1 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:142.3,143.26 2 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:145.2,148.12 3 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:152.59,154.2 1 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:160.65,160.97 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:25.95,30.16 4 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:30.16,33.3 2 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:35.5,35.23 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:35.23,36.104 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:36.104,38.10 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:38.16,40.10 0 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:43.5,44.17 2 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:44.17,47.3 2 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:48.2,50.74 3 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:50.74,53.3 2 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:54.2,54.12 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:59.124,61.16 2 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:61.16,64.3 2 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:65.2,67.74 3 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:67.74,70.3 2 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:71.2,71.12 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:75.64,77.82 2 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:77.82,80.3 2 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:81.2,82.9 2 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:83.40,84.59 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:85.23,86.24 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:87.21,88.22 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:89.10,90.91 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:98.48,101.40 3 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:101.40,103.3 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:104.2,107.3 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:111.77,114.40 3 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:114.40,115.58 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:115.58,117.4 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:119.2,122.3 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:126.125,131.40 4 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:131.40,133.56 2 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:133.56,136.4 2 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:136.18,138.4 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:139.3,139.22 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:140.8,142.17 2 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:142.17,144.4 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:145.3,146.26 2 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:148.5,152.15 4 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:156.59,158.2 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:164.65,164.97 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
@@ -18395,11 +18495,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
@@ -18463,11 +18563,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
@@ -18558,17 +18658,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
@@ -18576,12 +18676,12 @@ 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/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
codeberg.org/snonux/hexai/internal/logging/chatlogger.go:23.2,25.29 2 0
@@ -19180,176 +19280,177 @@ 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:22.55,24.32 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:24.32,26.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:27.2,27.13 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:31.41,36.2 4 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:38.41,43.2 4 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:45.32,48.23 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:48.23,50.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:51.2,52.24 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:52.24,54.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:55.2,58.15 4 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:58.15,60.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:61.2,66.27 5 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:66.27,68.6 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:72.51,73.41 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:73.41,75.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:76.2,78.71 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:82.62,82.105 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:84.118,85.14 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:85.14,88.16 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:88.16,91.35 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:91.35,93.5 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:94.4,94.36 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:94.36,96.5 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:97.4,99.59 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:99.59,101.5 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:102.4,102.21 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:105.2,108.19 4 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:111.51,112.23 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:112.23,114.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:115.2,115.13 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:115.13,117.100 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:117.100,119.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:121.3,121.8 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:123.2,123.11 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:126.32,128.2 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:131.44,132.50 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:132.50,134.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:135.2,135.35 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:138.40,140.20 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:140.20,141.40 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:141.40,143.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:145.3,145.8 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:147.2,147.12 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:147.12,149.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:150.2,150.17 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:153.52,154.38 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:154.38,156.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:157.2,158.27 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:158.27,159.34 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:159.34,160.12 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:162.3,162.36 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:162.36,163.12 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:165.3,165.25 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:167.2,167.34 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:175.64,177.22 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:177.22,180.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:180.12,182.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:183.3,185.74 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:185.74,187.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:190.3,191.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:191.12,193.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:194.3,195.48 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:195.48,197.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:199.3,200.18 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:200.18,202.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:204.3,205.29 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:207.2,207.24 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:213.41,217.31 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:217.31,219.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:220.2,220.29 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:220.29,222.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:223.2,223.31 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:223.31,225.32 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:225.32,227.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:229.2,229.14 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:233.83,236.102 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:236.102,238.36 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:238.36,240.136 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:240.136,242.5 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:243.4,245.34 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:245.34,247.5 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:251.2,251.65 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:251.65,252.53 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:252.53,254.37 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:254.37,256.137 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:256.137,258.6 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:259.5,261.35 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:261.35,263.6 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:267.2,267.19 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:271.80,272.22 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:272.22,274.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:275.2,277.40 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:277.40,279.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:280.2,280.34 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:280.34,281.31 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:281.31,282.12 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:284.3,285.16 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:285.16,286.12 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:288.3,288.32 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:288.32,290.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:292.2,292.19 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:295.36,297.2 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:300.39,300.77 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:303.43,305.13 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:305.13,307.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:308.2,309.11 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:309.11,311.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:312.2,313.14 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:313.14,315.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:316.2,317.19 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:321.56,323.89 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:323.89,325.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:326.2,326.14 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:330.52,331.32 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:331.32,333.28 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:333.28,335.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:336.3,336.34 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:336.34,338.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:339.3,339.42 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:339.42,341.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:342.3,342.49 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:344.2,347.27 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:347.27,349.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:350.2,350.36 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:350.36,352.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:353.2,356.49 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:356.49,358.24 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:358.24,360.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:363.2,364.25 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:364.25,366.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:367.2,367.33 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:367.33,369.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:370.2,371.19 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:375.67,377.35 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:377.35,379.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:380.2,381.31 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:381.31,383.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:384.2,384.14 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:387.69,388.32 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:388.32,390.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:391.2,391.47 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:394.45,396.22 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:396.22,400.12 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:400.12,402.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:403.3,405.32 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:405.32,407.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:408.3,409.46 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:409.46,411.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:414.3,415.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:415.12,417.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:418.3,419.49 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:419.49,421.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:423.3,423.14 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:425.2,425.14 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:428.67,431.28 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:431.28,433.12 2 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/handlers_utils.go:436.3,438.12 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:438.12,439.9 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:441.3,441.43 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:441.43,443.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:445.3,445.34 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:445.34,447.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:449.3,450.48 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:450.48,452.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:454.3,454.25 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:454.25,456.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:458.3,459.50 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:459.50,461.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:462.3,463.22 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:465.2,465.14 1 0
codeberg.org/snonux/hexai/internal/lsp/server.go:130.90,133.20 3 0
codeberg.org/snonux/hexai/internal/lsp/server.go:133.20,135.3 1 0
codeberg.org/snonux/hexai/internal/lsp/server.go:136.2,138.23 3 0
@@ -19425,8 +19526,8 @@ 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/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
@@ -19479,6 +19580,15 @@ 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/status.go:10.21,12.16 2 0
+codeberg.org/snonux/hexai/internal/tmux/status.go:12.16,12.31 1 0
+codeberg.org/snonux/hexai/internal/tmux/status.go:13.5,14.62 2 0
+codeberg.org/snonux/hexai/internal/tmux/status.go:18.45,19.51 1 0
+codeberg.org/snonux/hexai/internal/tmux/status.go:19.51,19.65 1 0
+codeberg.org/snonux/hexai/internal/tmux/status.go:20.5,21.16 2 0
+codeberg.org/snonux/hexai/internal/tmux/status.go:21.16,21.30 1 0
+codeberg.org/snonux/hexai/internal/tmux/status.go:23.5,23.72 1 0
+codeberg.org/snonux/hexai/internal/tmux/status.go:27.36,27.83 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
@@ -19514,16 +19624,16 @@ 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/cmd/hexai-tmux-action/main.go:12.13,25.110 9 0
codeberg.org/snonux/hexai/cmd/hexai-tmux-action/main.go:25.110,28.6 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:91.29,140.2 2 4
-codeberg.org/snonux/hexai/internal/appconfig/config.go:144.35,146.19 2 4
-codeberg.org/snonux/hexai/internal/appconfig/config.go:146.19,148.3 1 2
-codeberg.org/snonux/hexai/internal/appconfig/config.go:150.2,151.16 2 2
+codeberg.org/snonux/hexai/internal/appconfig/config.go:91.29,140.2 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:144.35,146.19 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:146.19,148.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:150.2,151.16 2 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:151.16,154.3 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:154.8,155.85 1 2
+codeberg.org/snonux/hexai/internal/appconfig/config.go:154.8,155.85 1 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:155.85,157.4 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:163.2,163.50 1 2
+codeberg.org/snonux/hexai/internal/appconfig/config.go:163.2,163.50 1 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:163.50,165.3 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:166.2,166.12 1 2
+codeberg.org/snonux/hexai/internal/appconfig/config.go:166.2,166.12 1 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:284.35,288.77 2 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:288.77,297.3 2 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:300.2,300.38 1 0
@@ -19588,10 +19698,10 @@ codeberg.org/snonux/hexai/internal/appconfig/config.go:433.60,435.4 1 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:438.2,438.67 1 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:438.67,440.3 1 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:442.2,442.12 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:445.66,447.16 2 2
-codeberg.org/snonux/hexai/internal/appconfig/config.go:447.16,448.43 1 2
+codeberg.org/snonux/hexai/internal/appconfig/config.go:445.66,447.16 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:447.16,448.43 1 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:448.43,450.4 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:451.3,451.18 1 2
+codeberg.org/snonux/hexai/internal/appconfig/config.go:451.3,451.18 1 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:454.2,459.22 5 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:459.22,460.20 1 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:460.20,462.4 1 0
@@ -19705,86 +19815,86 @@ codeberg.org/snonux/hexai/internal/appconfig/config.go:667.2,667.57 1 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:667.57,669.3 1 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:670.2,670.37 1 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:670.37,672.3 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:675.38,677.72 2 2
+codeberg.org/snonux/hexai/internal/appconfig/config.go:675.38,677.72 2 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:677.72,679.3 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:679.8,681.17 2 2
+codeberg.org/snonux/hexai/internal/appconfig/config.go:679.8,681.17 2 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:681.17,683.4 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:684.3,684.70 1 2
-codeberg.org/snonux/hexai/internal/appconfig/config.go:686.2,686.24 1 2
-codeberg.org/snonux/hexai/internal/appconfig/config.go:693.43,698.34 3 2
-codeberg.org/snonux/hexai/internal/appconfig/config.go:698.34,698.76 1 48
-codeberg.org/snonux/hexai/internal/appconfig/config.go:699.2,699.41 1 2
-codeberg.org/snonux/hexai/internal/appconfig/config.go:699.41,701.14 2 14
-codeberg.org/snonux/hexai/internal/appconfig/config.go:701.14,703.4 1 14
+codeberg.org/snonux/hexai/internal/appconfig/config.go:684.3,684.70 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:686.2,686.24 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:693.43,698.34 3 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:698.34,698.76 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:699.2,699.41 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:699.41,701.14 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:701.14,703.4 1 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:704.3,705.17 2 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:705.17,706.21 1 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:706.21,708.5 1 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:709.4,709.19 1 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:711.3,711.17 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:713.2,713.51 1 2
-codeberg.org/snonux/hexai/internal/appconfig/config.go:713.51,715.14 2 8
-codeberg.org/snonux/hexai/internal/appconfig/config.go:715.14,717.4 1 8
+codeberg.org/snonux/hexai/internal/appconfig/config.go:713.2,713.51 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:713.51,715.14 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:715.14,717.4 1 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:718.3,719.17 2 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:719.17,720.21 1 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:720.21,722.5 1 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:723.4,723.21 1 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:725.3,725.18 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:728.2,728.47 1 2
+codeberg.org/snonux/hexai/internal/appconfig/config.go:728.2,728.47 1 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:728.47,731.3 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:732.2,732.48 1 2
+codeberg.org/snonux/hexai/internal/appconfig/config.go:732.2,732.48 1 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:732.48,735.3 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:736.2,736.57 1 2
+codeberg.org/snonux/hexai/internal/appconfig/config.go:736.2,736.57 1 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:736.57,739.3 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:740.2,740.55 1 2
+codeberg.org/snonux/hexai/internal/appconfig/config.go:740.2,740.55 1 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:740.55,743.3 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:744.2,744.54 1 2
+codeberg.org/snonux/hexai/internal/appconfig/config.go:744.2,744.54 1 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:744.54,747.3 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:748.2,748.61 1 2
+codeberg.org/snonux/hexai/internal/appconfig/config.go:748.2,748.61 1 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:748.61,751.3 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:752.2,752.59 1 2
+codeberg.org/snonux/hexai/internal/appconfig/config.go:752.2,752.59 1 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:752.59,755.3 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:756.2,756.59 1 2
+codeberg.org/snonux/hexai/internal/appconfig/config.go:756.2,756.59 1 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:756.59,759.3 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:760.2,760.60 1 2
+codeberg.org/snonux/hexai/internal/appconfig/config.go:760.2,760.60 1 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:760.60,763.3 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:764.2,764.54 1 2
+codeberg.org/snonux/hexai/internal/appconfig/config.go:764.2,764.54 1 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:764.54,767.27 3 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:767.27,768.42 1 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:768.42,770.5 1 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:772.3,772.13 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:774.2,774.47 1 2
+codeberg.org/snonux/hexai/internal/appconfig/config.go:774.2,774.47 1 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:774.47,777.3 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:778.2,778.48 1 2
+codeberg.org/snonux/hexai/internal/appconfig/config.go:778.2,778.48 1 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:778.48,781.3 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:782.2,782.47 1 2
+codeberg.org/snonux/hexai/internal/appconfig/config.go:782.2,782.47 1 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:782.47,785.3 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:786.2,786.49 1 2
+codeberg.org/snonux/hexai/internal/appconfig/config.go:786.2,786.49 1 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:786.49,789.27 3 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:789.27,790.42 1 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:790.42,792.5 1 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:794.3,794.13 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:796.2,796.44 1 2
+codeberg.org/snonux/hexai/internal/appconfig/config.go:796.2,796.44 1 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:796.44,799.3 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:802.2,802.51 1 2
+codeberg.org/snonux/hexai/internal/appconfig/config.go:802.2,802.51 1 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:802.51,805.3 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:806.2,806.48 1 2
+codeberg.org/snonux/hexai/internal/appconfig/config.go:806.2,806.48 1 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:806.48,809.3 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:810.2,810.60 1 2
+codeberg.org/snonux/hexai/internal/appconfig/config.go:810.2,810.60 1 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:810.60,813.3 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:815.2,815.51 1 2
+codeberg.org/snonux/hexai/internal/appconfig/config.go:815.2,815.51 1 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:815.51,818.3 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:819.2,819.48 1 2
+codeberg.org/snonux/hexai/internal/appconfig/config.go:819.2,819.48 1 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:819.48,822.3 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:823.2,823.60 1 2
+codeberg.org/snonux/hexai/internal/appconfig/config.go:823.2,823.60 1 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:823.60,826.3 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:828.2,828.52 1 2
+codeberg.org/snonux/hexai/internal/appconfig/config.go:828.2,828.52 1 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:828.52,831.3 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:832.2,832.49 1 2
+codeberg.org/snonux/hexai/internal/appconfig/config.go:832.2,832.49 1 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:832.49,835.3 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:836.2,836.61 1 2
+codeberg.org/snonux/hexai/internal/appconfig/config.go:836.2,836.61 1 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:836.61,839.3 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:841.2,841.10 1 2
-codeberg.org/snonux/hexai/internal/appconfig/config.go:841.10,843.3 1 2
+codeberg.org/snonux/hexai/internal/appconfig/config.go:841.2,841.10 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:841.10,843.3 1 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:844.2,844.13 1 0
codeberg.org/snonux/hexai/internal/editor/editor.go:12.32,14.17 2 0
codeberg.org/snonux/hexai/internal/editor/editor.go:14.17,16.6 1 0
@@ -19930,30 +20040,30 @@ codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:84.37,86.6 1 0
codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:87.5,87.16 1 0
codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:91.79,93.2 1 0
codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:95.78,97.2 1 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:21.80,25.19 4 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:25.19,28.6 2 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:29.5,30.16 2 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:30.16,33.3 2 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:34.2,34.46 1 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:34.46,36.3 1 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:37.5,38.19 2 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:38.19,40.6 1 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:41.2,42.16 2 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:42.16,44.3 1 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:45.2,46.12 2 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:49.146,50.17 1 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:51.21,52.36 1 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:53.24,55.37 2 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:55.37,58.4 2 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:59.3,61.55 3 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:62.25,65.79 3 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:66.25,69.63 3 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:70.23,73.61 3 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:74.25,77.63 3 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:78.23,83.58 4 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:83.58,86.10 2 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:87.9,87.70 1 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:88.13,89.36 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:22.80,26.19 4 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:26.19,29.6 2 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:30.5,33.16 4 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:33.16,36.3 2 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:37.2,37.46 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:37.46,39.3 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:40.5,41.19 2 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:41.19,43.6 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:44.5,45.19 2 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:45.19,47.6 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:48.5,50.15 3 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:53.146,54.17 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:55.21,56.36 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:57.24,59.37 2 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:59.37,62.4 2 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:63.3,65.55 3 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:66.25,69.79 3 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:70.25,73.63 3 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:74.23,77.61 3 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:78.25,81.63 3 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:82.23,87.58 4 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:87.58,90.10 2 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:91.9,91.70 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:92.13,93.36 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
@@ -19997,71 +20107,71 @@ 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:24.95,29.16 4 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:29.16,32.3 2 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:34.5,34.23 1 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:34.23,35.104 1 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:35.104,37.10 1 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:37.16,39.10 0 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:42.5,43.17 2 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:43.17,46.3 2 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:47.2,49.74 3 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:49.74,52.3 2 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:53.2,53.12 1 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:58.124,60.16 2 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:60.16,63.3 2 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:64.2,66.74 3 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:66.74,69.3 2 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:70.2,70.12 1 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:74.64,76.82 2 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:76.82,79.3 2 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:80.2,81.9 2 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:82.40,83.59 1 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:84.23,85.24 1 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:86.21,87.22 1 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:88.10,89.91 1 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:97.48,100.40 3 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:100.40,102.3 1 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:103.2,106.3 1 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:110.77,113.40 3 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:113.40,114.58 1 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:114.58,116.4 1 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:118.2,121.3 1 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:125.125,128.40 3 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:128.40,130.56 2 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:130.56,133.4 2 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:133.18,135.4 1 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:136.3,136.22 1 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:137.8,139.17 2 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:139.17,141.4 1 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:142.3,143.26 2 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:145.2,148.12 3 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:152.59,154.2 1 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:160.65,160.97 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/hexaicli/run.go:25.95,30.16 4 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:30.16,33.3 2 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:35.5,35.23 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:35.23,36.104 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:36.104,38.10 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:38.16,40.10 0 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:43.5,44.17 2 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:44.17,47.3 2 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:48.2,50.74 3 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:50.74,53.3 2 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:54.2,54.12 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:59.124,61.16 2 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:61.16,64.3 2 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:65.2,67.74 3 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:67.74,70.3 2 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:71.2,71.12 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:75.64,77.82 2 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:77.82,80.3 2 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:81.2,82.9 2 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:83.40,84.59 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:85.23,86.24 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:87.21,88.22 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:89.10,90.91 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:98.48,101.40 3 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:101.40,103.3 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:104.2,107.3 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:111.77,114.40 3 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:114.40,115.58 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:115.58,117.4 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:119.2,122.3 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:126.125,131.40 4 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:131.40,133.56 2 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:133.56,136.4 2 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:136.18,138.4 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:139.3,139.22 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:140.8,142.17 2 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:142.17,144.4 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:145.3,146.26 2 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:148.5,152.15 4 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:156.59,158.2 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:164.65,164.97 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 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,146.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,146.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
@@ -20168,11 +20278,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
@@ -20188,8 +20298,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
@@ -20236,11 +20346,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 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
@@ -20258,8 +20368,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
@@ -20331,17 +20441,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 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: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:102.35,105.4 2 0
-codeberg.org/snonux/hexai/internal/llm/provider.go:106.3,106.83 1 1
+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
@@ -20354,20 +20464,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 6
+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 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
@@ -20953,218 +21063,219 @@ 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:22.55,24.32 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:24.32,26.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:27.2,27.13 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:31.41,36.2 4 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:38.41,43.2 4 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:45.32,48.23 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:48.23,50.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:51.2,52.24 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:52.24,54.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:55.2,58.15 4 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:58.15,60.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:61.2,66.27 5 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:66.27,68.6 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:72.51,73.41 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:73.41,75.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:76.2,78.71 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:82.62,82.105 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:84.118,85.14 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:85.14,88.16 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:88.16,91.35 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:91.35,93.5 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:94.4,94.36 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:94.36,96.5 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:97.4,99.59 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:99.59,101.5 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:102.4,102.21 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:105.2,108.19 4 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:111.51,112.23 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:112.23,114.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:115.2,115.13 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:115.13,117.100 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:117.100,119.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:121.3,121.8 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:123.2,123.11 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:126.32,128.2 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:131.44,132.50 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:132.50,134.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:135.2,135.35 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:138.40,140.20 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:140.20,141.40 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:141.40,143.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:145.3,145.8 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:147.2,147.12 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:147.12,149.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:150.2,150.17 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:153.52,154.38 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:154.38,156.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:157.2,158.27 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:158.27,159.34 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:159.34,160.12 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:162.3,162.36 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:162.36,163.12 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:165.3,165.25 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:167.2,167.34 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:175.64,177.22 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:177.22,180.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:180.12,182.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:183.3,185.74 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:185.74,187.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:190.3,191.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:191.12,193.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:194.3,195.48 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:195.48,197.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:199.3,200.18 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:200.18,202.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:204.3,205.29 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:207.2,207.24 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:213.41,217.31 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:217.31,219.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:220.2,220.29 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:220.29,222.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:223.2,223.31 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:223.31,225.32 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:225.32,227.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:229.2,229.14 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:233.83,236.102 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:236.102,238.36 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:238.36,240.136 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:240.136,242.5 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:243.4,245.34 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:245.34,247.5 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:251.2,251.65 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:251.65,252.53 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:252.53,254.37 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:254.37,256.137 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:256.137,258.6 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:259.5,261.35 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:261.35,263.6 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:267.2,267.19 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:271.80,272.22 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:272.22,274.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:275.2,277.40 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:277.40,279.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:280.2,280.34 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:280.34,281.31 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:281.31,282.12 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:284.3,285.16 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:285.16,286.12 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:288.3,288.32 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:288.32,290.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:292.2,292.19 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:295.36,297.2 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:300.39,300.77 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:303.43,305.13 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:305.13,307.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:308.2,309.11 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:309.11,311.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:312.2,313.14 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:313.14,315.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:316.2,317.19 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:321.56,323.89 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:323.89,325.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:326.2,326.14 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:330.52,331.32 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:331.32,333.28 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:333.28,335.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:336.3,336.34 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:336.34,338.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:339.3,339.42 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:339.42,341.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:342.3,342.49 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:344.2,347.27 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:347.27,349.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:350.2,350.36 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:350.36,352.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:353.2,356.49 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:356.49,358.24 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:358.24,360.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:363.2,364.25 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:364.25,366.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:367.2,367.33 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:367.33,369.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:370.2,371.19 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:375.67,377.35 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:377.35,379.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:380.2,381.31 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:381.31,383.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:384.2,384.14 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:387.69,388.32 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:388.32,390.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:391.2,391.47 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:394.45,396.22 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:396.22,400.12 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:400.12,402.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:403.3,405.32 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:405.32,407.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:408.3,409.46 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:409.46,411.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:414.3,415.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:415.12,417.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:418.3,419.49 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:419.49,421.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:423.3,423.14 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:425.2,425.14 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:428.67,431.28 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:431.28,433.12 2 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:130.90,133.20 3 1
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:436.3,438.12 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:438.12,439.9 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:441.3,441.43 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:441.43,443.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:445.3,445.34 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:445.34,447.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:449.3,450.48 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:450.48,452.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:454.3,454.25 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:454.25,456.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:458.3,459.50 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:459.50,461.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:462.3,463.22 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:465.2,465.14 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:130.90,133.20 3 0
codeberg.org/snonux/hexai/internal/lsp/server.go:133.20,135.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/server.go:136.2,138.23 3 1
+codeberg.org/snonux/hexai/internal/lsp/server.go:136.2,138.23 3 0
codeberg.org/snonux/hexai/internal/lsp/server.go:138.23,140.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/server.go:141.2,142.22 2 1
+codeberg.org/snonux/hexai/internal/lsp/server.go:141.2,142.22 2 0
codeberg.org/snonux/hexai/internal/lsp/server.go:142.22,144.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/server.go:145.2,146.27 2 1
+codeberg.org/snonux/hexai/internal/lsp/server.go:145.2,146.27 2 0
codeberg.org/snonux/hexai/internal/lsp/server.go:146.27,148.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/server.go:149.2,155.38 6 1
-codeberg.org/snonux/hexai/internal/lsp/server.go:155.38,158.3 1 1
+codeberg.org/snonux/hexai/internal/lsp/server.go:149.2,155.38 6 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:155.38,158.3 1 0
codeberg.org/snonux/hexai/internal/lsp/server.go:158.8,160.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/server.go:161.2,164.35 4 1
-codeberg.org/snonux/hexai/internal/lsp/server.go:164.35,166.3 1 1
-codeberg.org/snonux/hexai/internal/lsp/server.go:167.2,167.35 1 1
+codeberg.org/snonux/hexai/internal/lsp/server.go:161.2,164.35 4 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:164.35,166.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:167.2,167.35 1 0
codeberg.org/snonux/hexai/internal/lsp/server.go:167.35,169.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/server.go:171.2,171.46 1 1
+codeberg.org/snonux/hexai/internal/lsp/server.go:171.2,171.46 1 0
codeberg.org/snonux/hexai/internal/lsp/server.go:171.46,173.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/server.go:173.8,175.3 1 1
-codeberg.org/snonux/hexai/internal/lsp/server.go:176.2,176.47 1 1
+codeberg.org/snonux/hexai/internal/lsp/server.go:173.8,175.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:176.2,176.47 1 0
codeberg.org/snonux/hexai/internal/lsp/server.go:176.47,178.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/server.go:178.8,180.3 1 1
-codeberg.org/snonux/hexai/internal/lsp/server.go:181.2,181.46 1 1
+codeberg.org/snonux/hexai/internal/lsp/server.go:178.8,180.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:181.2,181.46 1 0
codeberg.org/snonux/hexai/internal/lsp/server.go:181.46,183.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/server.go:183.8,185.3 1 1
-codeberg.org/snonux/hexai/internal/lsp/server.go:186.2,186.33 1 1
+codeberg.org/snonux/hexai/internal/lsp/server.go:183.8,185.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:186.2,186.33 1 0
codeberg.org/snonux/hexai/internal/lsp/server.go:186.33,188.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/server.go:188.8,190.3 1 1
-codeberg.org/snonux/hexai/internal/lsp/server.go:193.2,213.24 19 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.25 1 1
-codeberg.org/snonux/hexai/internal/lsp/server.go:216.25,218.3 1 1
-codeberg.org/snonux/hexai/internal/lsp/server.go:219.2,219.24 1 1
-codeberg.org/snonux/hexai/internal/lsp/server.go:219.24,221.3 1 1
-codeberg.org/snonux/hexai/internal/lsp/server.go:222.2,222.29 1 1
-codeberg.org/snonux/hexai/internal/lsp/server.go:222.29,224.3 1 1
-codeberg.org/snonux/hexai/internal/lsp/server.go:226.2,228.47 1 1
+codeberg.org/snonux/hexai/internal/lsp/server.go:188.8,190.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:193.2,213.24 19 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.25 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:216.25,218.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:219.2,219.24 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:219.24,221.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:222.2,222.29 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:222.29,224.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:226.2,228.47 1 0
codeberg.org/snonux/hexai/internal/lsp/server.go:228.47,228.72 1 0
codeberg.org/snonux/hexai/internal/lsp/server.go:230.47,230.65 1 0
-codeberg.org/snonux/hexai/internal/lsp/server.go:239.2,239.10 1 1
-codeberg.org/snonux/hexai/internal/lsp/server.go:242.30,243.6 1 1
-codeberg.org/snonux/hexai/internal/lsp/server.go:243.6,245.20 2 1
-codeberg.org/snonux/hexai/internal/lsp/server.go:245.20,247.4 1 1
+codeberg.org/snonux/hexai/internal/lsp/server.go:239.2,239.10 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:242.30,243.6 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:243.6,245.20 2 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:245.20,247.4 1 0
codeberg.org/snonux/hexai/internal/lsp/server.go:248.3,248.17 1 0
codeberg.org/snonux/hexai/internal/lsp/server.go:248.17,250.4 1 0
codeberg.org/snonux/hexai/internal/lsp/server.go:251.3,252.52 2 0
@@ -21173,9 +21284,9 @@ codeberg.org/snonux/hexai/internal/lsp/server.go:256.3,256.23 1 0
codeberg.org/snonux/hexai/internal/lsp/server.go:256.23,258.12 1 0
codeberg.org/snonux/hexai/internal/lsp/server.go:260.3,261.15 2 0
codeberg.org/snonux/hexai/internal/lsp/server.go:261.15,263.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
@@ -21200,58 +21311,67 @@ 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/status.go:10.21,12.16 2 0
+codeberg.org/snonux/hexai/internal/tmux/status.go:12.16,12.31 1 0
+codeberg.org/snonux/hexai/internal/tmux/status.go:13.5,14.62 2 0
+codeberg.org/snonux/hexai/internal/tmux/status.go:18.45,19.51 1 0
+codeberg.org/snonux/hexai/internal/tmux/status.go:19.51,19.65 1 0
+codeberg.org/snonux/hexai/internal/tmux/status.go:20.5,21.16 2 0
+codeberg.org/snonux/hexai/internal/tmux/status.go:21.16,21.30 1 0
+codeberg.org/snonux/hexai/internal/tmux/status.go:23.5,23.72 1 0
+codeberg.org/snonux/hexai/internal/tmux/status.go:27.36,27.83 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
@@ -21703,30 +21823,30 @@ codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:84.37,86.6 1 0
codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:87.5,87.16 1 0
codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:91.79,93.2 1 0
codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:95.78,97.2 1 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:21.80,25.19 4 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:25.19,28.6 2 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:29.5,30.16 2 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:30.16,33.3 2 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:34.2,34.46 1 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:34.46,36.3 1 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:37.5,38.19 2 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:38.19,40.6 1 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:41.2,42.16 2 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:42.16,44.3 1 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:45.2,46.12 2 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:49.146,50.17 1 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:51.21,52.36 1 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:53.24,55.37 2 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:55.37,58.4 2 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:59.3,61.55 3 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:62.25,65.79 3 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:66.25,69.63 3 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:70.23,73.61 3 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:74.25,77.63 3 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:78.23,83.58 4 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:83.58,86.10 2 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:87.9,87.70 1 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:88.13,89.36 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:22.80,26.19 4 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:26.19,29.6 2 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:30.5,33.16 4 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:33.16,36.3 2 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:37.2,37.46 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:37.46,39.3 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:40.5,41.19 2 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:41.19,43.6 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:44.5,45.19 2 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:45.19,47.6 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:48.5,50.15 3 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:53.146,54.17 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:55.21,56.36 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:57.24,59.37 2 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:59.37,62.4 2 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:63.3,65.55 3 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:66.25,69.79 3 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:70.25,73.63 3 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:74.23,77.61 3 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:78.25,81.63 3 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:82.23,87.58 4 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:87.58,90.10 2 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:91.9,91.70 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:92.13,93.36 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
@@ -21770,47 +21890,47 @@ 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:24.95,29.16 4 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:29.16,32.3 2 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:34.5,34.23 1 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:34.23,35.104 1 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:35.104,37.10 1 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:37.16,39.10 0 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:42.5,43.17 2 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:43.17,46.3 2 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:47.2,49.74 3 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:49.74,52.3 2 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:53.2,53.12 1 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:58.124,60.16 2 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:60.16,63.3 2 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:64.2,66.74 3 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:66.74,69.3 2 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:70.2,70.12 1 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:74.64,76.82 2 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:76.82,79.3 2 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:80.2,81.9 2 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:82.40,83.59 1 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:84.23,85.24 1 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:86.21,87.22 1 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:88.10,89.91 1 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:97.48,100.40 3 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:100.40,102.3 1 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:103.2,106.3 1 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:110.77,113.40 3 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:113.40,114.58 1 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:114.58,116.4 1 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:118.2,121.3 1 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:125.125,128.40 3 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:128.40,130.56 2 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:130.56,133.4 2 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:133.18,135.4 1 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:136.3,136.22 1 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:137.8,139.17 2 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:139.17,141.4 1 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:142.3,143.26 2 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:145.2,148.12 3 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:152.59,154.2 1 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:160.65,160.97 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:25.95,30.16 4 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:30.16,33.3 2 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:35.5,35.23 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:35.23,36.104 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:36.104,38.10 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:38.16,40.10 0 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:43.5,44.17 2 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:44.17,47.3 2 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:48.2,50.74 3 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:50.74,53.3 2 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:54.2,54.12 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:59.124,61.16 2 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:61.16,64.3 2 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:65.2,67.74 3 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:67.74,70.3 2 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:71.2,71.12 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:75.64,77.82 2 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:77.82,80.3 2 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:81.2,82.9 2 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:83.40,84.59 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:85.23,86.24 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:87.21,88.22 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:89.10,90.91 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:98.48,101.40 3 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:101.40,103.3 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:104.2,107.3 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:111.77,114.40 3 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:114.40,115.58 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:115.58,117.4 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:119.2,122.3 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:126.125,131.40 4 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:131.40,133.56 2 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:133.56,136.4 2 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:136.18,138.4 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:139.3,139.22 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:140.8,142.17 2 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:142.17,144.4 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:145.3,146.26 2 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:148.5,152.15 4 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:156.59,158.2 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:164.65,164.97 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
@@ -21835,313 +21955,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,146.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
@@ -22726,176 +22846,177 @@ 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:22.55,24.32 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:24.32,26.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:27.2,27.13 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:31.41,36.2 4 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:38.41,43.2 4 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:45.32,48.23 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:48.23,50.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:51.2,52.24 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:52.24,54.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:55.2,58.15 4 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:58.15,60.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:61.2,66.27 5 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:66.27,68.6 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:72.51,73.41 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:73.41,75.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:76.2,78.71 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:82.62,82.105 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:84.118,85.14 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:85.14,88.16 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:88.16,91.35 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:91.35,93.5 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:94.4,94.36 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:94.36,96.5 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:97.4,99.59 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:99.59,101.5 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:102.4,102.21 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:105.2,108.19 4 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:111.51,112.23 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:112.23,114.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:115.2,115.13 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:115.13,117.100 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:117.100,119.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:121.3,121.8 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:123.2,123.11 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:126.32,128.2 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:131.44,132.50 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:132.50,134.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:135.2,135.35 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:138.40,140.20 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:140.20,141.40 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:141.40,143.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:145.3,145.8 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:147.2,147.12 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:147.12,149.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:150.2,150.17 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:153.52,154.38 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:154.38,156.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:157.2,158.27 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:158.27,159.34 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:159.34,160.12 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:162.3,162.36 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:162.36,163.12 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:165.3,165.25 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:167.2,167.34 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:175.64,177.22 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:177.22,180.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:180.12,182.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:183.3,185.74 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:185.74,187.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:190.3,191.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:191.12,193.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:194.3,195.48 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:195.48,197.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:199.3,200.18 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:200.18,202.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:204.3,205.29 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:207.2,207.24 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:213.41,217.31 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:217.31,219.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:220.2,220.29 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:220.29,222.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:223.2,223.31 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:223.31,225.32 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:225.32,227.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:229.2,229.14 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:233.83,236.102 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:236.102,238.36 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:238.36,240.136 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:240.136,242.5 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:243.4,245.34 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:245.34,247.5 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:251.2,251.65 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:251.65,252.53 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:252.53,254.37 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:254.37,256.137 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:256.137,258.6 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:259.5,261.35 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:261.35,263.6 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:267.2,267.19 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:271.80,272.22 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:272.22,274.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:275.2,277.40 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:277.40,279.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:280.2,280.34 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:280.34,281.31 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:281.31,282.12 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:284.3,285.16 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:285.16,286.12 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:288.3,288.32 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:288.32,290.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:292.2,292.19 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:295.36,297.2 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:300.39,300.77 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:303.43,305.13 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:305.13,307.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:308.2,309.11 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:309.11,311.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:312.2,313.14 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:313.14,315.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:316.2,317.19 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:321.56,323.89 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:323.89,325.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:326.2,326.14 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:330.52,331.32 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:331.32,333.28 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:333.28,335.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:336.3,336.34 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:336.34,338.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:339.3,339.42 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:339.42,341.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:342.3,342.49 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:344.2,347.27 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:347.27,349.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:350.2,350.36 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:350.36,352.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:353.2,356.49 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:356.49,358.24 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:358.24,360.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:363.2,364.25 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:364.25,366.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:367.2,367.33 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:367.33,369.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:370.2,371.19 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:375.67,377.35 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:377.35,379.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:380.2,381.31 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:381.31,383.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:384.2,384.14 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:387.69,388.32 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:388.32,390.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:391.2,391.47 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:394.45,396.22 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:396.22,400.12 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:400.12,402.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:403.3,405.32 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:405.32,407.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:408.3,409.46 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:409.46,411.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:414.3,415.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:415.12,417.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:418.3,419.49 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:419.49,421.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:423.3,423.14 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:425.2,425.14 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:428.67,431.28 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:431.28,433.12 2 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/handlers_utils.go:436.3,438.12 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:438.12,439.9 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:441.3,441.43 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:441.43,443.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:445.3,445.34 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:445.34,447.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:449.3,450.48 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:450.48,452.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:454.3,454.25 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:454.25,456.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:458.3,459.50 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:459.50,461.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:462.3,463.22 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:465.2,465.14 1 0
codeberg.org/snonux/hexai/internal/lsp/server.go:130.90,133.20 3 0
codeberg.org/snonux/hexai/internal/lsp/server.go:133.20,135.3 1 0
codeberg.org/snonux/hexai/internal/lsp/server.go:136.2,138.23 3 0
@@ -23025,31 +23146,40 @@ 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/status.go:10.21,12.16 2 0
+codeberg.org/snonux/hexai/internal/tmux/status.go:12.16,12.31 1 0
+codeberg.org/snonux/hexai/internal/tmux/status.go:13.5,14.62 2 0
+codeberg.org/snonux/hexai/internal/tmux/status.go:18.45,19.51 1 0
+codeberg.org/snonux/hexai/internal/tmux/status.go:19.51,19.65 1 0
+codeberg.org/snonux/hexai/internal/tmux/status.go:20.5,21.16 2 0
+codeberg.org/snonux/hexai/internal/tmux/status.go:21.16,21.30 1 0
+codeberg.org/snonux/hexai/internal/tmux/status.go:23.5,23.72 1 0
+codeberg.org/snonux/hexai/internal/tmux/status.go:27.36,27.83 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/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
@@ -23476,30 +23606,30 @@ codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:84.37,86.6 1 0
codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:87.5,87.16 1 0
codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:91.79,93.2 1 0
codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:95.78,97.2 1 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:21.80,25.19 4 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:25.19,28.6 2 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:29.5,30.16 2 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:30.16,33.3 2 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:34.2,34.46 1 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:34.46,36.3 1 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:37.5,38.19 2 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:38.19,40.6 1 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:41.2,42.16 2 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:42.16,44.3 1 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:45.2,46.12 2 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:49.146,50.17 1 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:51.21,52.36 1 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:53.24,55.37 2 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:55.37,58.4 2 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:59.3,61.55 3 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:62.25,65.79 3 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:66.25,69.63 3 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:70.23,73.61 3 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:74.25,77.63 3 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:78.23,83.58 4 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:83.58,86.10 2 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:87.9,87.70 1 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:88.13,89.36 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:22.80,26.19 4 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:26.19,29.6 2 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:30.5,33.16 4 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:33.16,36.3 2 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:37.2,37.46 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:37.46,39.3 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:40.5,41.19 2 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:41.19,43.6 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:44.5,45.19 2 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:45.19,47.6 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:48.5,50.15 3 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:53.146,54.17 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:55.21,56.36 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:57.24,59.37 2 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:59.37,62.4 2 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:63.3,65.55 3 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:66.25,69.79 3 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:70.25,73.63 3 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:74.23,77.61 3 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:78.25,81.63 3 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:82.23,87.58 4 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:87.58,90.10 2 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:91.9,91.70 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:92.13,93.36 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
@@ -23543,47 +23673,47 @@ 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:24.95,29.16 4 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:29.16,32.3 2 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:34.5,34.23 1 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:34.23,35.104 1 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:35.104,37.10 1 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:37.16,39.10 0 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:42.5,43.17 2 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:43.17,46.3 2 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:47.2,49.74 3 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:49.74,52.3 2 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:53.2,53.12 1 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:58.124,60.16 2 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:60.16,63.3 2 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:64.2,66.74 3 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:66.74,69.3 2 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:70.2,70.12 1 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:74.64,76.82 2 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:76.82,79.3 2 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:80.2,81.9 2 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:82.40,83.59 1 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:84.23,85.24 1 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:86.21,87.22 1 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:88.10,89.91 1 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:97.48,100.40 3 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:100.40,102.3 1 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:103.2,106.3 1 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:110.77,113.40 3 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:113.40,114.58 1 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:114.58,116.4 1 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:118.2,121.3 1 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:125.125,128.40 3 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:128.40,130.56 2 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:130.56,133.4 2 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:133.18,135.4 1 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:136.3,136.22 1 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:137.8,139.17 2 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:139.17,141.4 1 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:142.3,143.26 2 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:145.2,148.12 3 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:152.59,154.2 1 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:160.65,160.97 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:25.95,30.16 4 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:30.16,33.3 2 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:35.5,35.23 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:35.23,36.104 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:36.104,38.10 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:38.16,40.10 0 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:43.5,44.17 2 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:44.17,47.3 2 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:48.2,50.74 3 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:50.74,53.3 2 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:54.2,54.12 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:59.124,61.16 2 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:61.16,64.3 2 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:65.2,67.74 3 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:67.74,70.3 2 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:71.2,71.12 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:75.64,77.82 2 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:77.82,80.3 2 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:81.2,82.9 2 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:83.40,84.59 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:85.23,86.24 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:87.21,88.22 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:89.10,90.91 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:98.48,101.40 3 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:101.40,103.3 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:104.2,107.3 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:111.77,114.40 3 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:114.40,115.58 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:115.58,117.4 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:119.2,122.3 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:126.125,131.40 4 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:131.40,133.56 2 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:133.56,136.4 2 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:136.18,138.4 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:139.3,139.22 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:140.8,142.17 2 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:142.17,144.4 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:145.3,146.26 2 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:148.5,152.15 4 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:156.59,158.2 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:164.65,164.97 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
@@ -24499,176 +24629,177 @@ 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 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
-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 17
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:30.41,35.2 4 8
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:37.41,42.2 4 8
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:44.32,47.23 3 8
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:47.23,49.3 1 8
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:50.2,51.24 2 8
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:51.24,53.3 1 8
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:54.2,57.15 4 8
-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 8
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:67.51,68.41 1 13
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:68.41,70.3 1 7
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:71.2,73.71 3 6
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:77.62,77.105 1 33
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:79.118,80.14 1 17
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:80.14,83.16 3 3
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:83.16,86.35 3 3
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:86.35,88.5 1 3
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:89.4,89.36 1 3
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:89.36,91.5 1 2
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:92.4,94.59 3 3
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:94.59,96.5 1 3
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:97.4,97.21 1 3
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:100.2,103.19 4 14
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:106.51,107.23 1 24
-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 24
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:110.13,112.100 2 49
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:112.100,114.12 2 31
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:116.3,116.8 1 18
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:118.2,118.11 1 24
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:121.32,123.2 1 26
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:126.44,127.50 1 21
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:127.50,129.3 1 4
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:130.2,130.35 1 17
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:133.40,135.20 2 4
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:135.20,136.40 1 14
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:136.40,138.12 2 10
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:140.3,140.8 1 4
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:142.2,142.12 1 4
-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 4
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:148.52,149.38 1 4
-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 4
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:153.27,154.34 1 10
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:154.34,155.12 1 1
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:157.3,157.36 1 9
-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 9
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:162.2,162.34 1 4
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:170.64,172.22 2 50
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:172.22,175.12 2 65
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:175.12,177.4 1 27
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:178.3,180.74 2 38
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:180.74,182.12 2 21
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:185.3,186.12 2 17
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:186.12,188.4 1 1
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:189.3,190.48 2 16
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:190.48,192.12 2 1
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:194.3,195.18 2 15
-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 15
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:202.2,202.24 1 7
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:208.41,212.31 3 19
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:212.31,214.3 1 16
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:215.2,215.29 1 3
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:215.29,217.3 1 1
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:218.2,218.31 1 2
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:218.31,220.32 2 2
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:220.32,222.4 1 2
-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 19
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:231.102,233.36 2 4
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:233.36,235.136 2 4
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:235.136,237.5 1 20
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:238.4,240.34 3 4
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:240.34,242.5 1 4
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:246.2,246.65 1 15
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:246.65,247.53 1 2
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:247.53,249.37 2 2
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:249.37,251.137 2 2
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:251.137,253.6 1 4
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:254.5,256.35 3 2
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:256.35,258.6 1 2
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:262.2,262.19 1 13
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:266.80,267.22 1 19
-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 19
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:272.40,274.3 1 5
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:275.2,275.34 1 14
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:275.34,276.31 1 100
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:276.31,277.12 1 77
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:279.3,280.16 2 23
-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 23
-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 14
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:290.36,292.2 1 100
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:295.39,295.77 1 36
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:298.43,300.13 2 11
-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 11
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:304.11,306.3 1 2
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:307.2,308.14 2 9
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:308.14,310.3 1 2
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:311.2,312.19 2 7
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:316.56,318.89 2 20
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:318.89,320.3 1 5
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:321.2,321.14 1 15
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:325.52,326.32 1 4
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:326.32,328.28 2 3
-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 3
-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 3
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:334.42,336.4 1 1
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:337.3,337.49 1 2
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:339.2,342.27 3 1
-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 1
-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 1
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:351.49,353.24 2 1
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:353.24,355.4 1 1
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:358.2,359.25 2 1
-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 1
-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 1
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:370.67,372.35 2 13
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:372.35,374.3 1 11
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:375.2,376.31 2 2
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:376.31,378.3 1 7
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:379.2,379.14 1 2
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:382.69,383.32 1 11
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:383.32,385.3 1 4
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:386.2,386.47 1 7
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:389.45,391.22 2 56
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:391.22,395.12 3 58
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:395.12,397.4 1 36
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:398.3,400.32 3 22
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:400.32,402.4 1 7
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:403.3,404.46 2 15
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:404.46,406.12 2 4
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:409.3,410.12 2 11
-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 11
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:414.49,416.12 2 1
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:418.3,418.14 1 10
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:420.2,420.14 1 3
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:423.67,426.28 3 9
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:426.28,428.12 2 14
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:428.12,429.9 1 8
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:431.3,433.12 3 6
-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 6
-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 6
-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 6
-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 6
-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 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/handlers_utils.go:22.55,24.32 2 17
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:24.32,26.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:27.2,27.13 1 17
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:31.41,36.2 4 8
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:38.41,43.2 4 8
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:45.32,48.23 3 8
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:48.23,50.3 1 8
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:51.2,52.24 2 8
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:52.24,54.3 1 8
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:55.2,58.15 4 8
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:58.15,60.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:61.2,66.27 5 8
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:66.27,68.6 1 7
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:72.51,73.41 1 13
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:73.41,75.3 1 7
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:76.2,78.71 3 6
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:82.62,82.105 1 33
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:84.118,85.14 1 17
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:85.14,88.16 3 3
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:88.16,91.35 3 3
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:91.35,93.5 1 3
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:94.4,94.36 1 3
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:94.36,96.5 1 2
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:97.4,99.59 3 3
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:99.59,101.5 1 3
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:102.4,102.21 1 3
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:105.2,108.19 4 14
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:111.51,112.23 1 24
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:112.23,114.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:115.2,115.13 1 24
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:115.13,117.100 2 49
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:117.100,119.12 2 31
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:121.3,121.8 1 18
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:123.2,123.11 1 24
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:126.32,128.2 1 26
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:131.44,132.50 1 21
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:132.50,134.3 1 4
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:135.2,135.35 1 17
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:138.40,140.20 2 4
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:140.20,141.40 1 14
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:141.40,143.12 2 10
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:145.3,145.8 1 4
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:147.2,147.12 1 4
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:147.12,149.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:150.2,150.17 1 4
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:153.52,154.38 1 4
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:154.38,156.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:157.2,158.27 2 4
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:158.27,159.34 1 10
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:159.34,160.12 1 1
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:162.3,162.36 1 9
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:162.36,163.12 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:165.3,165.25 1 9
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:167.2,167.34 1 4
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:175.64,177.22 2 50
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:177.22,180.12 2 65
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:180.12,182.4 1 27
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:183.3,185.74 2 38
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:185.74,187.12 2 21
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:190.3,191.12 2 17
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:191.12,193.4 1 1
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:194.3,195.48 2 16
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:195.48,197.12 2 1
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:199.3,200.18 2 15
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:200.18,202.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:204.3,205.29 2 15
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:207.2,207.24 1 7
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:213.41,217.31 3 19
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:217.31,219.3 1 16
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:220.2,220.29 1 3
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:220.29,222.3 1 1
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:223.2,223.31 1 2
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:223.31,225.32 2 2
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:225.32,227.4 1 2
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:229.2,229.14 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:233.83,236.102 2 19
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:236.102,238.36 2 4
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:238.36,240.136 2 4
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:240.136,242.5 1 20
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:243.4,245.34 3 4
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:245.34,247.5 1 4
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:251.2,251.65 1 15
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:251.65,252.53 1 2
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:252.53,254.37 2 2
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:254.37,256.137 2 2
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:256.137,258.6 1 4
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:259.5,261.35 3 2
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:261.35,263.6 1 2
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:267.2,267.19 1 13
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:271.80,272.22 1 19
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:272.22,274.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:275.2,277.40 3 19
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:277.40,279.3 1 5
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:280.2,280.34 1 14
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:280.34,281.31 1 100
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:281.31,282.12 1 77
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:284.3,285.16 2 23
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:285.16,286.12 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:288.3,288.32 1 23
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:288.32,290.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:292.2,292.19 1 14
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:295.36,297.2 1 100
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:300.39,300.77 1 36
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:303.43,305.13 2 11
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:305.13,307.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:308.2,309.11 2 11
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:309.11,311.3 1 2
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:312.2,313.14 2 9
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:313.14,315.3 1 2
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:316.2,317.19 2 7
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:321.56,323.89 2 20
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:323.89,325.3 1 5
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:326.2,326.14 1 15
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:330.52,331.32 1 4
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:331.32,333.28 2 3
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:333.28,335.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:336.3,336.34 1 3
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:336.34,338.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:339.3,339.42 1 3
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:339.42,341.4 1 1
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:342.3,342.49 1 2
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:344.2,347.27 3 1
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:347.27,349.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:350.2,350.36 1 1
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:350.36,352.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:353.2,356.49 3 1
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:356.49,358.24 2 1
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:358.24,360.4 1 1
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:363.2,364.25 2 1
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:364.25,366.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:367.2,367.33 1 1
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:367.33,369.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:370.2,371.19 2 1
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:375.67,377.35 2 13
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:377.35,379.3 1 11
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:380.2,381.31 2 2
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:381.31,383.3 1 7
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:384.2,384.14 1 2
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:387.69,388.32 1 11
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:388.32,390.3 1 4
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:391.2,391.47 1 7
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:394.45,396.22 2 56
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:396.22,400.12 3 58
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:400.12,402.4 1 36
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:403.3,405.32 3 22
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:405.32,407.4 1 7
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:408.3,409.46 2 15
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:409.46,411.12 2 4
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:414.3,415.12 2 11
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:415.12,417.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:418.3,419.49 2 11
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:419.49,421.12 2 1
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:423.3,423.14 1 10
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:425.2,425.14 1 3
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:428.67,431.28 3 9
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:431.28,433.12 2 14
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:433.12,434.9 1 8
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:436.3,438.12 3 6
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:438.12,439.9 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:441.3,441.43 1 6
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:441.43,443.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:445.3,445.34 1 6
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:445.34,447.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:449.3,450.48 2 6
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:450.48,452.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:454.3,454.25 1 6
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:454.25,456.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:458.3,459.50 2 6
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:459.50,461.4 1 4
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:462.3,463.22 2 6
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:465.2,465.14 1 9
codeberg.org/snonux/hexai/internal/lsp/server.go:130.90,133.20 3 6
codeberg.org/snonux/hexai/internal/lsp/server.go:133.20,135.3 1 6
codeberg.org/snonux/hexai/internal/lsp/server.go:136.2,138.23 3 6
@@ -24798,9 +24929,18 @@ 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/status.go:10.21,12.16 2 7
+codeberg.org/snonux/hexai/internal/tmux/status.go:12.16,12.31 1 7
+codeberg.org/snonux/hexai/internal/tmux/status.go:13.5,14.62 2 0
+codeberg.org/snonux/hexai/internal/tmux/status.go:18.45,19.51 1 7
+codeberg.org/snonux/hexai/internal/tmux/status.go:19.51,19.65 1 0
+codeberg.org/snonux/hexai/internal/tmux/status.go:20.5,21.16 2 7
+codeberg.org/snonux/hexai/internal/tmux/status.go:21.16,21.30 1 0
+codeberg.org/snonux/hexai/internal/tmux/status.go:23.5,23.72 1 7
+codeberg.org/snonux/hexai/internal/tmux/status.go:27.36,27.83 1 7
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:17.23,17.72 2 7
+codeberg.org/snonux/hexai/internal/tmux/tmux.go:20.23,20.76 1 7
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
diff --git a/docs/helix-tmux-quickstart.md b/docs/helix-tmux-quickstart.md
deleted file mode 100644
index caee3f8..0000000
--- a/docs/helix-tmux-quickstart.md
+++ /dev/null
@@ -1,68 +0,0 @@
-# Helix + tmux Quickstart
-
-This guide gets you from zero to editing with Hexai in Helix, with tmux showing live LLM status.
-
-## 1) Install
-
-- Install Mage (optional for build tasks): `go install github.com/magefile/mage@latest`
-- Install binaries directly:
- - CLI: `go install codeberg.org/snonux/hexai/cmd/hexai@latest`
- - LSP: `go install codeberg.org/snonux/hexai/cmd/hexai-lsp@latest`
- - TUI: `go install codeberg.org/snonux/hexai/cmd/hexai-tmux-action@latest`
-
-Ensure `~/go/bin` is on your `PATH`.
-
-## 2) Configure Helix
-
-In `~/.config/helix/languages.toml`:
-
-```toml
-[[language]]
-name = "go"
-auto-format = true
-language-servers = ["gopls", "hexai"]
-
-[language-server.hexai]
-command = "hexai-lsp"
-```
-
-Optional keybindings in `~/.config/helix/config.toml` to run code actions on the selection:
-
-```toml
-[keys.select]
-"A-a" = ":pipe hexai-tmux-action"
-
-[keys.normal]
-"A-a" = ["select_line", ":pipe hexai-tmux-action"]
-```
-
-## 3) Configure tmux status
-
-Add this to `~/.tmux.conf` and reload with `tmux source-file ~/.tmux.conf`:
-
-```
-set -g status-right '#{@hexai_status} #[fg=colour8]| %H:%M'
-set -g status-right-length 120
-
-# Optional: theme the Hexai status segment
-set-environment -g HEXAI_TMUX_STATUS_THEME white-on-purple # or black-on-yellow, white-on-blue
-# Or explicit colors
-# set-environment -g HEXAI_TMUX_STATUS_FG white
-# set-environment -g HEXAI_TMUX_STATUS_BG magenta
-```
-
-## 4) Use it
-
-- Start tmux, open Helix on a Go file.
-- Try completions or inline prompts; or select code and press Alt-a for the action menu.
-- Watch the right side of your tmux status for live LLM stats:
- - Start heartbeat: provider:model ⏳
- - Stats: ↑sent ↓recv rpm reqs
-
-## 5) Troubleshooting
-
-- No status? Verify: `tmux show -g -v @hexai_status` (should show text).
-- Truncated? Increase width: `set -g status-right-length 120`.
-- Disabled? Ensure `HEXAI_TMUX_STATUS` is not set to `0`.
-- Wrong model? Rebuild/update binaries and restart Helix/LSP.
-
diff --git a/docs/tmux.md b/docs/tmux.md
new file mode 100644
index 0000000..769e0f0
--- /dev/null
+++ b/docs/tmux.md
@@ -0,0 +1,109 @@
+# Helix + tmux Quickstart
+
+This guide gets you from zero to editing with Hexai in Helix, with tmux showing live LLM status.
+
+## 1) Install
+
+- Install Mage (optional for build tasks): `go install github.com/magefile/mage@latest`
+- Install binaries directly:
+ - CLI: `go install codeberg.org/snonux/hexai/cmd/hexai@latest`
+ - LSP: `go install codeberg.org/snonux/hexai/cmd/hexai-lsp@latest`
+ - TUI: `go install codeberg.org/snonux/hexai/cmd/hexai-tmux-action@latest`
+
+Ensure `~/go/bin` is on your `PATH`.
+
+## 2) Configure Helix
+
+In `~/.config/helix/languages.toml`:
+
+```toml
+[[language]]
+name = "go"
+auto-format = true
+language-servers = ["gopls", "hexai"]
+
+[language-server.hexai]
+command = "hexai-lsp"
+```
+
+Optional keybindings in `~/.config/helix/config.toml` to run code actions on the selection:
+
+```toml
+[keys.select]
+"A-a" = ":pipe hexai-tmux-action"
+
+[keys.normal]
+"A-a" = ["select_line", ":pipe hexai-tmux-action"]
+```
+
+## 3) Configure tmux status
+
+Hexai can surface live progress in tmux's status line via a user option. Add this to your `~/.tmux.conf`:
+
+```
+set -g status-right '#{@hexai_status} #[fg=colour8]| %H:%M'
+```
+
+- Note: `colour8` is typically “bright black” (a dim grey) in many themes.
+ If it’s low-contrast on your background, change it (e.g., `colour7` or `white`).
+
+- CLI updates `@hexai_status` at start (⏳ provider:model) and on completion with compact stats (↑sent, ↓recv, rpm, reqs).
+- LSP emits an initial heartbeat on client initialize and periodic compact stats (provider, model, rpm, reqs, bytes).
+- The TUI action runner sets a ready heartbeat and a completion heartbeat with stats.
+- Toggle with `HEXAI_TMUX_STATUS=0` to disable (enabled by default).
+
+The status segment supports simple theming:
+
+- Preset themes:
+ - `HEXAI_TMUX_STATUS_THEME=white-on-purple` (white fg on purple/magenta bg)
+ - `HEXAI_TMUX_STATUS_THEME=black-on-yellow` (black fg on yellow bg)
+- Explicit colors: set any tmux color names or 256-color codes
+ - `HEXAI_TMUX_STATUS_FG=white`
+ - `HEXAI_TMUX_STATUS_BG=magenta` (or `colour5`, etc.)
+- If the segment is truncated, widen it: `set -g status-right-length 120`
+
+Add this to `~/.tmux.conf` and reload with `tmux source-file ~/.tmux.conf`:
+
+```
+set -g status-right '#{@hexai_status} #[fg=colour8]| %H:%M'
+set -g status-right-length 120
+
+# Optional: theme the Hexai status segment
+set-environment -g HEXAI_TMUX_STATUS_THEME white-on-purple # or black-on-yellow, white-on-blue
+# Or explicit colors
+# set-environment -g HEXAI_TMUX_STATUS_FG white
+# set-environment -g HEXAI_TMUX_STATUS_BG magenta
+```
+
+## 4) Use it
+
+- Start tmux, open Helix on a Go file.
+- Try completions or inline prompts; or select code and press Alt-a for the action menu.
+- Watch the right side of your tmux status for live LLM stats:
+ - Start heartbeat: provider:model ⏳
+ - Stats: ↑sent ↓recv rpm reqs
+
+## 5) Troubleshooting
+
+- No status? Verify: `tmux show -g -v @hexai_status` (should show text).
+- Truncated? Increase width: `set -g status-right-length 120`.
+- Disabled? Ensure `HEXAI_TMUX_STATUS` is not set to `0`.
+- Wrong model? Rebuild/update binaries and restart Helix/LSP.
+
+## Hexai Action (TUI) configuration
+
+This is mostly useful when Helix runs in a [tmux](https://tmux.github.io/) session!
+
+- Helix integration (recommended): bind a key to pipe the current selection to `hexai-tmux-action` and replace it with the output.
+ - Example: `C-a = ":pipe hexai-tmux-action"`
+- Default behavior:
+ - Inline TUI when run in a real terminal (TTY).
+ - When invoked via Helix `:pipe`, `hexai-tmux-action` opens a split pane to render the menu and returns the result on stdout for Helix to apply.
+ - If no TTY and no tmux are available, it falls back to echoing the input.
+- Flags:
+ - `--infile` Read input from the given file instead of stdin.
+ - `--outfile` Write output to the given file instead of stdout (truncates/creates).
+ - `--tmux-target` tmux target pane/window (advanced).
+ - `--tmux-split v|h` split orientation (default: `v`).
+ - `--tmux-percent N` split size percentage (default: `33`).
+ - `--ui-child` internal; used by the parent process when spawning inside tmux.
diff --git a/internal/appconfig/config.go b/internal/appconfig/config.go
index 87b5a29..2c4cee3 100644
--- a/internal/appconfig/config.go
+++ b/internal/appconfig/config.go
@@ -74,14 +74,14 @@ type App struct {
// Code actions
PromptCodeActionRewriteSystem string `json:"-" toml:"-"`
PromptCodeActionDiagnosticsSystem string `json:"-" toml:"-"`
- PromptCodeActionDocumentSystem string `json:"-" toml:"-"`
- PromptCodeActionRewriteUser string `json:"-" toml:"-"`
- PromptCodeActionDiagnosticsUser string `json:"-" toml:"-"`
- PromptCodeActionDocumentUser string `json:"-" toml:"-"`
- PromptCodeActionGoTestSystem string `json:"-" toml:"-"`
- PromptCodeActionGoTestUser string `json:"-" toml:"-"`
- PromptCodeActionSimplifySystem string `json:"-" toml:"-"`
- PromptCodeActionSimplifyUser string `json:"-" toml:"-"`
+ PromptCodeActionDocumentSystem string `json:"-" toml:"-"`
+ PromptCodeActionRewriteUser string `json:"-" toml:"-"`
+ PromptCodeActionDiagnosticsUser string `json:"-" toml:"-"`
+ PromptCodeActionDocumentUser string `json:"-" toml:"-"`
+ PromptCodeActionGoTestSystem string `json:"-" toml:"-"`
+ PromptCodeActionGoTestUser string `json:"-" toml:"-"`
+ PromptCodeActionSimplifySystem string `json:"-" toml:"-"`
+ PromptCodeActionSimplifyUser string `json:"-" toml:"-"`
// CLI
PromptCLIDefaultSystem string `json:"-" toml:"-"`
PromptCLIExplainSystem string `json:"-" toml:"-"`
@@ -129,10 +129,10 @@ func newDefaultConfig() App {
PromptCodeActionRewriteUser: "Instruction: {{instruction}}\n\nSelected code to transform:\n{{selection}}",
PromptCodeActionDiagnosticsUser: "Diagnostics to resolve (selection only):\n{{diagnostics}}\n\nSelected code:\n{{selection}}",
PromptCodeActionDocumentUser: "Add documentation comments to this code:\n{{selection}}",
- PromptCodeActionGoTestSystem: "You are a precise Go unit test generator. Given a Go function, write one or more Test* functions using the testing package. Do NOT include package or imports, only the test function(s). Prefer table-driven tests. Keep it minimal and idiomatic.",
- PromptCodeActionGoTestUser: "Function under test:\n{{function}}",
- PromptCodeActionSimplifySystem: "You are a precise code improvement engine. Simplify and improve the given code while preserving behavior. Return only the improved code with no prose or backticks.",
- PromptCodeActionSimplifyUser: "Improve this code:\n{{selection}}",
+ PromptCodeActionGoTestSystem: "You are a precise Go unit test generator. Given a Go function, write one or more Test* functions using the testing package. Do NOT include package or imports, only the test function(s). Prefer table-driven tests. Keep it minimal and idiomatic.",
+ PromptCodeActionGoTestUser: "Function under test:\n{{function}}",
+ PromptCodeActionSimplifySystem: "You are a precise code improvement engine. Simplify and improve the given code while preserving behavior. Return only the improved code with no prose or backticks.",
+ PromptCodeActionSimplifyUser: "Improve this code:\n{{selection}}",
PromptCLIDefaultSystem: "You are Hexai CLI. Default to very short, concise answers. If the user asks for commands, output only the commands (one per line) with no commentary or explanation. Only when the word 'explain' appears in the prompt, produce a verbose explanation.",
PromptCLIExplainSystem: "You are Hexai CLI. The user requested an explanation. Provide a clear, verbose explanation with reasoning and details. If commands are needed, include them with brief context.",
@@ -260,16 +260,16 @@ type sectionPromptsChat struct {
}
type sectionPromptsCodeAction struct {
- RewriteSystem string `toml:"rewrite_system"`
- DiagnosticsSystem string `toml:"diagnostics_system"`
- DocumentSystem string `toml:"document_system"`
- RewriteUser string `toml:"rewrite_user"`
- DiagnosticsUser string `toml:"diagnostics_user"`
- DocumentUser string `toml:"document_user"`
- GoTestSystem string `toml:"go_test_system"`
- GoTestUser string `toml:"go_test_user"`
- SimplifySystem string `toml:"simplify_system"`
- SimplifyUser string `toml:"simplify_user"`
+ RewriteSystem string `toml:"rewrite_system"`
+ DiagnosticsSystem string `toml:"diagnostics_system"`
+ DocumentSystem string `toml:"document_system"`
+ RewriteUser string `toml:"rewrite_user"`
+ DiagnosticsUser string `toml:"diagnostics_user"`
+ DocumentUser string `toml:"document_user"`
+ GoTestSystem string `toml:"go_test_system"`
+ GoTestUser string `toml:"go_test_user"`
+ SimplifySystem string `toml:"simplify_system"`
+ SimplifyUser string `toml:"simplify_user"`
}
type sectionPromptsCLI struct {
@@ -393,7 +393,7 @@ func (fc *fileConfig) toApp() App {
out.PromptChatSystem = fc.Prompts.Chat.System
}
// code action
- if (fc.Prompts.CodeAction != sectionPromptsCodeAction{}) {
+ if (fc.Prompts.CodeAction != sectionPromptsCodeAction{}) {
if strings.TrimSpace(fc.Prompts.CodeAction.RewriteSystem) != "" {
out.PromptCodeActionRewriteSystem = fc.Prompts.CodeAction.RewriteSystem
}
@@ -415,16 +415,16 @@ func (fc *fileConfig) toApp() App {
if strings.TrimSpace(fc.Prompts.CodeAction.GoTestSystem) != "" {
out.PromptCodeActionGoTestSystem = fc.Prompts.CodeAction.GoTestSystem
}
- if strings.TrimSpace(fc.Prompts.CodeAction.GoTestUser) != "" {
- out.PromptCodeActionGoTestUser = fc.Prompts.CodeAction.GoTestUser
- }
- if strings.TrimSpace(fc.Prompts.CodeAction.SimplifySystem) != "" {
- out.PromptCodeActionSimplifySystem = fc.Prompts.CodeAction.SimplifySystem
- }
- if strings.TrimSpace(fc.Prompts.CodeAction.SimplifyUser) != "" {
- out.PromptCodeActionSimplifyUser = fc.Prompts.CodeAction.SimplifyUser
- }
- }
+ if strings.TrimSpace(fc.Prompts.CodeAction.GoTestUser) != "" {
+ out.PromptCodeActionGoTestUser = fc.Prompts.CodeAction.GoTestUser
+ }
+ if strings.TrimSpace(fc.Prompts.CodeAction.SimplifySystem) != "" {
+ out.PromptCodeActionSimplifySystem = fc.Prompts.CodeAction.SimplifySystem
+ }
+ if strings.TrimSpace(fc.Prompts.CodeAction.SimplifyUser) != "" {
+ out.PromptCodeActionSimplifyUser = fc.Prompts.CodeAction.SimplifyUser
+ }
+ }
// cli
if (fc.Prompts.CLI != sectionPromptsCLI{}) {
if strings.TrimSpace(fc.Prompts.CLI.DefaultSystem) != "" {
@@ -623,15 +623,15 @@ func (a *App) mergePrompts(other *App) {
if strings.TrimSpace(other.PromptCodeActionGoTestSystem) != "" {
a.PromptCodeActionGoTestSystem = other.PromptCodeActionGoTestSystem
}
- if strings.TrimSpace(other.PromptCodeActionGoTestUser) != "" {
- a.PromptCodeActionGoTestUser = other.PromptCodeActionGoTestUser
- }
- if strings.TrimSpace(other.PromptCodeActionSimplifySystem) != "" {
- a.PromptCodeActionSimplifySystem = other.PromptCodeActionSimplifySystem
- }
- if strings.TrimSpace(other.PromptCodeActionSimplifyUser) != "" {
- a.PromptCodeActionSimplifyUser = other.PromptCodeActionSimplifyUser
- }
+ if strings.TrimSpace(other.PromptCodeActionGoTestUser) != "" {
+ a.PromptCodeActionGoTestUser = other.PromptCodeActionGoTestUser
+ }
+ if strings.TrimSpace(other.PromptCodeActionSimplifySystem) != "" {
+ a.PromptCodeActionSimplifySystem = other.PromptCodeActionSimplifySystem
+ }
+ if strings.TrimSpace(other.PromptCodeActionSimplifyUser) != "" {
+ a.PromptCodeActionSimplifyUser = other.PromptCodeActionSimplifyUser
+ }
// CLI
if strings.TrimSpace(other.PromptCLIDefaultSystem) != "" {
a.PromptCLIDefaultSystem = other.PromptCLIDefaultSystem
diff --git a/internal/appconfig/config_test.go b/internal/appconfig/config_test.go
index 5cb79a0..dc8c39c 100644
--- a/internal/appconfig/config_test.go
+++ b/internal/appconfig/config_test.go
@@ -25,15 +25,15 @@ func writeFile(t *testing.T, path, content string) {
// clearHexaiEnv removes any HEXAI_* variables to prevent environment leakage
// into tests that expect file-only configuration.
func clearHexaiEnv(t *testing.T) {
- t.Helper()
- for _, e := range os.Environ() {
- if strings.HasPrefix(e, "HEXAI_") {
- kv := strings.SplitN(e, "=", 2)
- if len(kv) > 0 {
- t.Setenv(kv[0], "")
- }
- }
- }
+ t.Helper()
+ for _, e := range os.Environ() {
+ if strings.HasPrefix(e, "HEXAI_") {
+ kv := strings.SplitN(e, "=", 2)
+ if len(kv) > 0 {
+ t.Setenv(kv[0], "")
+ }
+ }
+ }
}
func withEnv(t *testing.T, k, v string) {
@@ -54,10 +54,10 @@ func TestLoad_Defaults_NoLogger(t *testing.T) {
}
func TestLoad_Defaults_WithLogger_NoFile_NoEnv(t *testing.T) {
- clearHexaiEnv(t)
- t.Setenv("XDG_CONFIG_HOME", t.TempDir())
- logger := newLogger()
- cfg := Load(logger)
+ clearHexaiEnv(t)
+ t.Setenv("XDG_CONFIG_HOME", t.TempDir())
+ logger := newLogger()
+ cfg := Load(logger)
def := newDefaultConfig()
if cfg.MaxTokens != def.MaxTokens || cfg.ContextMode != def.ContextMode || cfg.ContextWindowLines != def.ContextWindowLines {
t.Fatalf("expected defaults; got %+v want %+v", cfg, def)
@@ -207,9 +207,9 @@ func TestLoadFromFile_InvalidTOML(t *testing.T) {
}
func TestLoad_FileTables_Sectioned(t *testing.T) {
- clearHexaiEnv(t)
- dir := t.TempDir()
- t.Setenv("XDG_CONFIG_HOME", dir)
+ clearHexaiEnv(t)
+ dir := t.TempDir()
+ t.Setenv("XDG_CONFIG_HOME", dir)
cfgPath := filepath.Join(dir, "hexai", "config.toml")
content := `
[general]
@@ -290,9 +290,9 @@ temperature = 0.0
}
func TestLoad_FileTables_Prompts_AllSections(t *testing.T) {
- clearHexaiEnv(t)
- dir := t.TempDir()
- t.Setenv("XDG_CONFIG_HOME", dir)
+ clearHexaiEnv(t)
+ dir := t.TempDir()
+ t.Setenv("XDG_CONFIG_HOME", dir)
cfgPath := filepath.Join(dir, "hexai", "config.toml")
content := `
[prompts.completion]
diff --git a/internal/editor/editor.go b/internal/editor/editor.go
index 44aa1d4..a1af1be 100644
--- a/internal/editor/editor.go
+++ b/internal/editor/editor.go
@@ -1,70 +1,70 @@
package editor
import (
- "errors"
- "os"
- "os/exec"
- "path/filepath"
- "strings"
+ "errors"
+ "os"
+ "os/exec"
+ "path/filepath"
+ "strings"
)
// Resolve returns the editor command from HEXAI_EDITOR or EDITOR.
func Resolve() (string, error) {
- ed := strings.TrimSpace(os.Getenv("HEXAI_EDITOR"))
- if ed == "" {
- ed = strings.TrimSpace(os.Getenv("EDITOR"))
- }
- if ed == "" {
- return "", errors.New("no editor configured (set HEXAI_EDITOR or EDITOR)")
- }
- return ed, nil
+ ed := strings.TrimSpace(os.Getenv("HEXAI_EDITOR"))
+ if ed == "" {
+ ed = strings.TrimSpace(os.Getenv("EDITOR"))
+ }
+ if ed == "" {
+ return "", errors.New("no editor configured (set HEXAI_EDITOR or EDITOR)")
+ }
+ return ed, nil
}
// RunEditor is the seam that invokes the editor on the given file path.
// Override in tests to avoid launching a real editor.
var RunEditor = func(editor, path string) error {
- cmd := exec.Command(editor, path)
- cmd.Stdin = os.Stdin
- cmd.Stdout = os.Stdout
- cmd.Stderr = os.Stderr
- return cmd.Run()
+ cmd := exec.Command(editor, path)
+ cmd.Stdin = os.Stdin
+ cmd.Stdout = os.Stdout
+ cmd.Stderr = os.Stderr
+ return cmd.Run()
}
// OpenTempAndEdit creates a temporary .md file, writes initial content if provided,
// opens it in the resolved editor, then reads the final content and removes the file.
// Returns the trimmed content.
func OpenTempAndEdit(initial []byte) (string, error) {
- ed, err := Resolve()
- if err != nil {
- return "", err
- }
- // Create temp file under system temp dir; ensure .md suffix
- dir := os.TempDir()
- f, err := os.CreateTemp(dir, "hexai-*.md")
- if err != nil {
- return "", err
- }
- path := f.Name()
- defer func() { _ = os.Remove(path) }()
- if len(initial) > 0 {
- if _, err := f.Write(initial); err != nil {
- _ = f.Close()
- return "", err
- }
- }
- if err := f.Sync(); err != nil {
- _ = f.Close()
- return "", err
- }
- if err := f.Close(); err != nil {
- return "", err
- }
- if err := RunEditor(ed, path); err != nil {
- return "", err
- }
- b, err := os.ReadFile(filepath.Clean(path))
- if err != nil {
- return "", err
- }
- return strings.TrimSpace(string(b)), nil
+ ed, err := Resolve()
+ if err != nil {
+ return "", err
+ }
+ // Create temp file under system temp dir; ensure .md suffix
+ dir := os.TempDir()
+ f, err := os.CreateTemp(dir, "hexai-*.md")
+ if err != nil {
+ return "", err
+ }
+ path := f.Name()
+ defer func() { _ = os.Remove(path) }()
+ if len(initial) > 0 {
+ if _, err := f.Write(initial); err != nil {
+ _ = f.Close()
+ return "", err
+ }
+ }
+ if err := f.Sync(); err != nil {
+ _ = f.Close()
+ return "", err
+ }
+ if err := f.Close(); err != nil {
+ return "", err
+ }
+ if err := RunEditor(ed, path); err != nil {
+ return "", err
+ }
+ b, err := os.ReadFile(filepath.Clean(path))
+ if err != nil {
+ return "", err
+ }
+ return strings.TrimSpace(string(b)), nil
}
diff --git a/internal/editor/editor_test.go b/internal/editor/editor_test.go
index df6dec7..06cc165 100644
--- a/internal/editor/editor_test.go
+++ b/internal/editor/editor_test.go
@@ -1,39 +1,44 @@
package editor
import (
- "os"
- "path/filepath"
- "testing"
+ "os"
+ "path/filepath"
+ "testing"
)
func TestResolve_EnvPriority(t *testing.T) {
- t.Setenv("HEXAI_EDITOR", "ed1")
- t.Setenv("EDITOR", "ed2")
- ed, err := Resolve()
- if err != nil || ed != "ed1" {
- t.Fatalf("Resolve failed: %v %q", err, ed)
- }
- t.Setenv("HEXAI_EDITOR", "")
- ed, err = Resolve()
- if err != nil || ed != "ed2" {
- t.Fatalf("Resolve fallback failed: %v %q", err, ed)
- }
+ t.Setenv("HEXAI_EDITOR", "ed1")
+ t.Setenv("EDITOR", "ed2")
+ ed, err := Resolve()
+ if err != nil || ed != "ed1" {
+ t.Fatalf("Resolve failed: %v %q", err, ed)
+ }
+ t.Setenv("HEXAI_EDITOR", "")
+ ed, err = Resolve()
+ if err != nil || ed != "ed2" {
+ t.Fatalf("Resolve fallback failed: %v %q", err, ed)
+ }
}
func TestOpenTempAndEdit_UsesRunEditor(t *testing.T) {
- old := RunEditor
- t.Cleanup(func(){ RunEditor = old })
- // Ensure Resolve() succeeds
- t.Setenv("HEXAI_EDITOR", "dummy")
- var capturedPath string
- RunEditor = func(editor, path string) error {
- capturedPath = path
- // simulate user writing content
- return os.WriteFile(path, []byte("Hello\nWorld\n"), 0o600)
- }
- out, err := OpenTempAndEdit([]byte("# Start\n\n"))
- if err != nil { t.Fatalf("OpenTempAndEdit: %v", err) }
- if out != "Hello\nWorld" { t.Fatalf("unexpected content: %q", out) }
- if filepath.Ext(capturedPath) != ".md" { t.Fatalf("expected .md suffix: %s", capturedPath) }
+ old := RunEditor
+ t.Cleanup(func() { RunEditor = old })
+ // Ensure Resolve() succeeds
+ t.Setenv("HEXAI_EDITOR", "dummy")
+ var capturedPath string
+ RunEditor = func(editor, path string) error {
+ capturedPath = path
+ // simulate user writing content
+ return os.WriteFile(path, []byte("Hello\nWorld\n"), 0o600)
+ }
+ out, err := OpenTempAndEdit([]byte("# Start\n\n"))
+ if err != nil {
+ t.Fatalf("OpenTempAndEdit: %v", err)
+ }
+ if out != "Hello\nWorld" {
+ t.Fatalf("unexpected content: %q", out)
+ }
+ if filepath.Ext(capturedPath) != ".md" {
+ t.Fatalf("expected .md suffix: %s", capturedPath)
+ }
}
-
diff --git a/internal/hexaiaction/cmdentry.go b/internal/hexaiaction/cmdentry.go
index cf72495..ca33443 100644
--- a/internal/hexaiaction/cmdentry.go
+++ b/internal/hexaiaction/cmdentry.go
@@ -1,149 +1,183 @@
package hexaiaction
import (
- "context"
- "fmt"
- "io"
- "os"
- "path/filepath"
- "time"
+ "context"
+ "fmt"
+ "io"
+ "os"
+ "path/filepath"
+ "time"
- "codeberg.org/snonux/hexai/internal/tmux"
- "golang.org/x/term"
+ "codeberg.org/snonux/hexai/internal/tmux"
+ "golang.org/x/term"
)
// Options configures the command-line orchestration for hexai-tmux-action.
type Options struct {
- Infile string
- Outfile string
- UIChild bool
- TmuxTarget string
- TmuxSplit string // "v" or "h"
- TmuxPercent int // 1-100
+ Infile string
+ Outfile string
+ UIChild bool
+ TmuxTarget string
+ TmuxSplit string // "v" or "h"
+ TmuxPercent int // 1-100
}
// RunCommand is the CLI orchestrator used by cmd/hexai-tmux-action. It runs in tmux
// split-pane mode by default, or child mode when -ui-child is set.
func RunCommand(ctx context.Context, opts Options, stdin io.Reader, stdout, stderr io.Writer) error {
- if opts.UIChild {
- return runChild(ctx, opts.Infile, opts.Outfile, stdout, stderr)
- }
- // Always use tmux path
- return runInTmuxParent(stdin, stdout, opts.TmuxTarget, opts.TmuxSplit, opts.TmuxPercent)
+ if opts.UIChild {
+ return runChild(ctx, opts.Infile, opts.Outfile, stdout, stderr)
+ }
+ // Always use tmux path
+ return runInTmuxParent(stdin, stdout, opts.TmuxTarget, opts.TmuxSplit, opts.TmuxPercent)
}
// seams for unit tests
-var isTTYFn = func(fd uintptr) bool { return term.IsTerminal(int(fd)) }
-var splitRunFn = tmux.SplitRun
-var osExecutableFn = os.Executable
-var runFn = Run
+var (
+ isTTYFn = func(fd uintptr) bool { return term.IsTerminal(int(fd)) }
+ splitRunFn = tmux.SplitRun
+ osExecutableFn = os.Executable
+ runFn = Run
+)
// openIO returns readers/writers for infile/outfile flags with deferred closers.
func openIO(infile, outfile string) (io.Reader, io.Writer, func(), func(), error) {
- in := io.Reader(os.Stdin)
- out := io.Writer(os.Stdout)
- closeIn := func() {}
- closeOut := func() {}
- if path := infile; path != "" {
- f, err := os.Open(path)
- if err != nil { return nil, nil, func(){}, func(){}, fmt.Errorf("hexai-tmux-action: cannot open infile: %w", err) }
- in = f
- closeIn = func() { _ = f.Close() }
- }
- if path := outfile; path != "" {
- f, err := os.Create(path)
- if err != nil { return nil, nil, func(){}, func(){}, fmt.Errorf("hexai-tmux-action: cannot open outfile: %w", err) }
- out = f
- closeOut = func() { _ = f.Close() }
- }
- return in, out, closeIn, closeOut, nil
+ in := io.Reader(os.Stdin)
+ out := io.Writer(os.Stdout)
+ closeIn := func() {}
+ closeOut := func() {}
+ if path := infile; path != "" {
+ f, err := os.Open(path)
+ if err != nil {
+ return nil, nil, func() {}, func() {}, fmt.Errorf("hexai-tmux-action: cannot open infile: %w", err)
+ }
+ in = f
+ closeIn = func() { _ = f.Close() }
+ }
+ if path := outfile; path != "" {
+ f, err := os.Create(path)
+ if err != nil {
+ return nil, nil, func() {}, func() {}, fmt.Errorf("hexai-tmux-action: cannot open outfile: %w", err)
+ }
+ out = f
+ closeOut = func() { _ = f.Close() }
+ }
+ return in, out, closeIn, closeOut, nil
}
// 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 {
- if outfile == "" {
- // No atomic handoff needed; just run normally to provided stdout
- var in io.Reader = os.Stdin
- if infile != "" {
- f, err := os.Open(infile)
- if err != nil { return err }
- defer func(){ _ = f.Close() }()
- in = f
- }
- return runFn(ctx, in, stdout, stderr)
- }
- tmp := outfile + ".tmp"
- in, out, closeIn, closeOut, err := openIO(infile, tmp)
- if err != nil { return err }
- defer closeIn()
- if err := runFn(ctx, in, out, stderr); err != nil {
- closeOut()
- if copyErr := echoThrough(infile, tmp, os.Stdin, stdout); copyErr != nil {
- return fmt.Errorf("hexai-tmux-action child: %v; echo failed: %v", err, copyErr)
- }
- } else {
- closeOut()
- }
- return os.Rename(tmp, outfile)
+ if outfile == "" {
+ // No atomic handoff needed; just run normally to provided stdout
+ var in io.Reader = os.Stdin
+ if infile != "" {
+ f, err := os.Open(infile)
+ if err != nil {
+ return err
+ }
+ defer func() { _ = f.Close() }()
+ in = f
+ }
+ return runFn(ctx, in, stdout, stderr)
+ }
+ tmp := outfile + ".tmp"
+ in, out, closeIn, closeOut, err := openIO(infile, tmp)
+ if err != nil {
+ return err
+ }
+ defer closeIn()
+ if err := runFn(ctx, in, out, stderr); err != nil {
+ closeOut()
+ if copyErr := echoThrough(infile, tmp, os.Stdin, stdout); copyErr != nil {
+ return fmt.Errorf("hexai-tmux-action child: %v; echo failed: %v", err, copyErr)
+ }
+ } else {
+ closeOut()
+ }
+ return os.Rename(tmp, outfile)
}
func runInTmuxParent(stdin io.Reader, stdout io.Writer, target, split string, percent int) error {
- dir, err := os.MkdirTemp("", "hexai-tmux-action-")
- if err != nil { return err }
- defer func() { _ = os.RemoveAll(dir) }()
- inPath := filepath.Join(dir, "input.txt")
- outPath := filepath.Join(dir, "reply.txt")
- if err := persistStdin(inPath, stdin); err != nil { return err }
- exe, err := osExecutableFn()
- if err != nil { return err }
- 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 { return err }
- if err := waitForFile(outPath, 60*time.Second); err != nil { return err }
- return catFileTo(stdout, outPath)
+ dir, err := os.MkdirTemp("", "hexai-tmux-action-")
+ if err != nil {
+ return err
+ }
+ defer func() { _ = os.RemoveAll(dir) }()
+ inPath := filepath.Join(dir, "input.txt")
+ outPath := filepath.Join(dir, "reply.txt")
+ if err := persistStdin(inPath, stdin); err != nil {
+ return err
+ }
+ exe, err := osExecutableFn()
+ if err != nil {
+ return err
+ }
+ 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 {
+ return err
+ }
+ if err := waitForFile(outPath, 60*time.Second); err != nil {
+ return err
+ }
+ return catFileTo(stdout, outPath)
}
func persistStdin(path string, stdin io.Reader) error {
- f, err := os.Create(path)
- if err != nil { return err }
- defer func() { _ = f.Close() }()
- if _, err := io.Copy(f, stdin); err != nil { return err }
- return f.Sync()
+ f, err := os.Create(path)
+ if err != nil {
+ return err
+ }
+ defer func() { _ = f.Close() }()
+ if _, err := io.Copy(f, stdin); err != nil {
+ return err
+ }
+ return f.Sync()
}
func waitForFile(path string, timeout time.Duration) error {
- deadline := time.Now().Add(timeout)
- for {
- if _, err := os.Stat(path); err == nil { return nil }
- if time.Now().After(deadline) { return fmt.Errorf("hexai-tmux-action: timeout waiting for reply file") }
- time.Sleep(200 * time.Millisecond)
- }
+ deadline := time.Now().Add(timeout)
+ for {
+ if _, err := os.Stat(path); err == nil {
+ return nil
+ }
+ if time.Now().After(deadline) {
+ return fmt.Errorf("hexai-tmux-action: timeout waiting for reply file")
+ }
+ time.Sleep(200 * time.Millisecond)
+ }
}
func catFileTo(w io.Writer, path string) error {
- f, err := os.Open(path)
- if err != nil { return err }
- defer func() { _ = f.Close() }()
- _, err = io.Copy(w, f)
- return err
+ f, err := os.Open(path)
+ if err != nil {
+ return err
+ }
+ defer func() { _ = f.Close() }()
+ _, err = io.Copy(w, f)
+ return err
}
// echoThrough no longer used in tmux-only flow, but kept for potential reuse.
func echoThrough(infile, outfile string, stdin io.Reader, stdout io.Writer) error {
- var in io.Reader = stdin
- var out io.Writer = stdout
- if infile != "" {
- f, err := os.Open(infile)
- if err != nil { return err }
- defer func() { _ = f.Close() }()
- in = f
- }
- if outfile != "" {
- f, err := os.Create(outfile)
- if err != nil { return err }
- defer func() { _ = f.Close() }()
- out = f
- }
- _, err := io.Copy(out, in)
- return err
+ var in io.Reader = stdin
+ var out io.Writer = stdout
+ if infile != "" {
+ f, err := os.Open(infile)
+ if err != nil {
+ return err
+ }
+ defer func() { _ = f.Close() }()
+ in = f
+ }
+ if outfile != "" {
+ f, err := os.Create(outfile)
+ if err != nil {
+ return err
+ }
+ defer func() { _ = f.Close() }()
+ out = f
+ }
+ _, err := io.Copy(out, in)
+ return err
}
diff --git a/internal/hexaiaction/cmdentry_runcommand_test.go b/internal/hexaiaction/cmdentry_runcommand_test.go
index 092e43b..b139bb3 100644
--- a/internal/hexaiaction/cmdentry_runcommand_test.go
+++ b/internal/hexaiaction/cmdentry_runcommand_test.go
@@ -1,53 +1,60 @@
package hexaiaction
import (
- "bytes"
- "context"
- "io"
- "os"
- "path/filepath"
- "testing"
+ "bytes"
+ "context"
+ "io"
+ "os"
+ "path/filepath"
+ "testing"
- "codeberg.org/snonux/hexai/internal/tmux"
+ "codeberg.org/snonux/hexai/internal/tmux"
)
func TestRunCommand_UIChild(t *testing.T) {
- dir := t.TempDir()
- in := filepath.Join(dir, "in.txt")
- out := filepath.Join(dir, "out.txt")
- _ = os.WriteFile(in, []byte("sel"), 0o600)
- old := runFn
- runFn = func(_ context.Context, _ io.Reader, w io.Writer, _ io.Writer) error { _, _ = io.WriteString(w, "OK"); return nil }
- t.Cleanup(func(){ runFn = old })
- opts := Options{Infile: in, Outfile: out, UIChild: true}
- if err := RunCommand(context.Background(), opts, bytes.NewBuffer(nil), io.Discard, io.Discard); err != nil {
- t.Fatalf("RunCommand UIChild: %v", err)
- }
- b, _ := os.ReadFile(out)
- if string(b) != "OK" { t.Fatalf("outfile: %q", string(b)) }
+ dir := t.TempDir()
+ in := filepath.Join(dir, "in.txt")
+ out := filepath.Join(dir, "out.txt")
+ _ = os.WriteFile(in, []byte("sel"), 0o600)
+ old := runFn
+ runFn = func(_ context.Context, _ io.Reader, w io.Writer, _ io.Writer) error {
+ _, _ = io.WriteString(w, "OK")
+ return nil
+ }
+ t.Cleanup(func() { runFn = old })
+ opts := Options{Infile: in, Outfile: out, UIChild: true}
+ if err := RunCommand(context.Background(), opts, bytes.NewBuffer(nil), io.Discard, io.Discard); err != nil {
+ t.Fatalf("RunCommand UIChild: %v", err)
+ }
+ b, _ := os.ReadFile(out)
+ if string(b) != "OK" {
+ t.Fatalf("outfile: %q", string(b))
+ }
}
func TestRunCommand_Tmux(t *testing.T) {
- oldTTY := isTTYFn
- oldExec := osExecutableFn
- oldSplit := splitRunFn
- isTTYFn = func(_ uintptr) bool { return false }
- osExecutableFn = func() (string, error) { return "/bin/hexai-tmux-action", nil }
- splitRunFn = func(_ tmux.SplitOpts, argv []string) error {
- for i := 0; i < len(argv)-1; i++ {
- if argv[i] == "-outfile" && i+1 < len(argv) {
- _ = os.WriteFile(argv[i+1], []byte("OUT"), 0o600)
- break
- }
- }
- return nil
- }
- defer func(){ isTTYFn = oldTTY; osExecutableFn = oldExec; splitRunFn = oldSplit }()
- var out bytes.Buffer
- if err := RunCommand(context.Background(), Options{}, bytes.NewBufferString("X"), &out, io.Discard); err != nil {
- t.Fatalf("RunCommand tmux: %v", err)
- }
- if out.String() != "OUT" { t.Fatalf("stdout: %q", out.String()) }
+ oldTTY := isTTYFn
+ oldExec := osExecutableFn
+ oldSplit := splitRunFn
+ isTTYFn = func(_ uintptr) bool { return false }
+ osExecutableFn = func() (string, error) { return "/bin/hexai-tmux-action", nil }
+ splitRunFn = func(_ tmux.SplitOpts, argv []string) error {
+ for i := 0; i < len(argv)-1; i++ {
+ if argv[i] == "-outfile" && i+1 < len(argv) {
+ _ = os.WriteFile(argv[i+1], []byte("OUT"), 0o600)
+ break
+ }
+ }
+ return nil
+ }
+ defer func() { isTTYFn = oldTTY; osExecutableFn = oldExec; splitRunFn = oldSplit }()
+ var out bytes.Buffer
+ if err := RunCommand(context.Background(), Options{}, bytes.NewBufferString("X"), &out, io.Discard); err != nil {
+ t.Fatalf("RunCommand tmux: %v", err)
+ }
+ if out.String() != "OUT" {
+ t.Fatalf("stdout: %q", out.String())
+ }
}
// Inline TTY path is exercised implicitly via other helpers; testing it directly
diff --git a/internal/hexaiaction/cmdentry_test.go b/internal/hexaiaction/cmdentry_test.go
index de8b5dd..9c896f6 100644
--- a/internal/hexaiaction/cmdentry_test.go
+++ b/internal/hexaiaction/cmdentry_test.go
@@ -1,135 +1,183 @@
package hexaiaction
import (
- "context"
- "fmt"
- "io"
- "os"
- "path/filepath"
- "strings"
- "testing"
- "time"
+ "context"
+ "fmt"
+ "io"
+ "os"
+ "path/filepath"
+ "strings"
+ "testing"
+ "time"
- "codeberg.org/snonux/hexai/internal/tmux"
+ "codeberg.org/snonux/hexai/internal/tmux"
)
// tmux-only flow: decision helpers removed.
func TestPersistStdin_WritesFile(t *testing.T) {
- dir := t.TempDir()
- path := filepath.Join(dir, "in.txt")
- // Point stdin to content
- src := filepath.Join(dir, "src.txt")
- if err := os.WriteFile(src, []byte("hello world"), 0o600); err != nil { t.Fatalf("write src: %v", err) }
- f, _ := os.Open(src)
- defer f.Close()
- if err := persistStdin(path, f); err != nil { t.Fatalf("persistStdin: %v", err) }
- b, _ := os.ReadFile(path)
- if string(b) != "hello world" { t.Fatalf("unexpected content %q", string(b)) }
+ dir := t.TempDir()
+ path := filepath.Join(dir, "in.txt")
+ // Point stdin to content
+ src := filepath.Join(dir, "src.txt")
+ if err := os.WriteFile(src, []byte("hello world"), 0o600); err != nil {
+ t.Fatalf("write src: %v", err)
+ }
+ f, _ := os.Open(src)
+ defer f.Close()
+ if err := persistStdin(path, f); err != nil {
+ t.Fatalf("persistStdin: %v", err)
+ }
+ b, _ := os.ReadFile(path)
+ if string(b) != "hello world" {
+ t.Fatalf("unexpected content %q", string(b))
+ }
}
func TestEchoThrough(t *testing.T) {
- dir := t.TempDir()
- in := filepath.Join(dir, "in.txt")
- out := filepath.Join(dir, "out.txt")
- _ = os.WriteFile(in, []byte("hello"), 0o600)
- if err := echoThrough(in, out, os.Stdin, os.Stdout); err != nil { t.Fatalf("echoThrough: %v", err) }
- b, _ := os.ReadFile(out)
- if string(b) != "hello" { t.Fatalf("unexpected: %q", string(b)) }
+ dir := t.TempDir()
+ in := filepath.Join(dir, "in.txt")
+ out := filepath.Join(dir, "out.txt")
+ _ = os.WriteFile(in, []byte("hello"), 0o600)
+ if err := echoThrough(in, out, os.Stdin, os.Stdout); err != nil {
+ t.Fatalf("echoThrough: %v", err)
+ }
+ b, _ := os.ReadFile(out)
+ if string(b) != "hello" {
+ t.Fatalf("unexpected: %q", string(b))
+ }
}
func TestEchoThrough_StdinStdout(t *testing.T) {
- // set stdin
- rIn, wIn, _ := os.Pipe()
- _, _ = wIn.Write([]byte("PIPE"))
- _ = wIn.Close()
- // capture stdout
- r, w, _ := os.Pipe()
- if err := echoThrough("", "", rIn, w); err != nil { t.Fatalf("echoThrough: %v", err) }
- _ = w.Close()
- data, _ := io.ReadAll(r)
- if string(data) != "PIPE" { t.Fatalf("stdout: %q", string(data)) }
+ // set stdin
+ rIn, wIn, _ := os.Pipe()
+ _, _ = wIn.Write([]byte("PIPE"))
+ _ = wIn.Close()
+ // capture stdout
+ r, w, _ := os.Pipe()
+ if err := echoThrough("", "", rIn, w); err != nil {
+ t.Fatalf("echoThrough: %v", err)
+ }
+ _ = w.Close()
+ data, _ := io.ReadAll(r)
+ if string(data) != "PIPE" {
+ t.Fatalf("stdout: %q", string(data))
+ }
}
func TestRunInTmuxParent_Stubbed(t *testing.T) {
- dir := t.TempDir()
- // set stdin content
- r, w, _ := os.Pipe()
- _, _ = w.Write([]byte("input"))
- _ = w.Close()
- // capture stdout
- rout, wout, _ := os.Pipe()
- oldExec := osExecutableFn
- oldSplit := splitRunFn
- osExecutableFn = func() (string, error) { return "/bin/hexai-tmux-action", nil }
- splitRunFn = func(opts tmux.SplitOpts, argv []string) error {
- for i := 0; i < len(argv)-1; i++ {
- if argv[i] == "-outfile" && i+1 < len(argv) {
- _ = os.WriteFile(argv[i+1], []byte("OUT:"+strings.Join(argv, ",")), 0o600)
- break
- }
- }
- return nil
- }
- t.Cleanup(func() { osExecutableFn = oldExec; splitRunFn = oldSplit })
- if err := runInTmuxParent(r, wout, "", "v", 33); err != nil { t.Fatalf("runInTmuxParent: %v", err) }
- _ = wout.Close()
- got, _ := io.ReadAll(rout)
- if !strings.HasPrefix(string(got), "OUT:") { t.Fatalf("unexpected stdout: %q", string(got)) }
- _ = dir
+ dir := t.TempDir()
+ // set stdin content
+ r, w, _ := os.Pipe()
+ _, _ = w.Write([]byte("input"))
+ _ = w.Close()
+ // capture stdout
+ rout, wout, _ := os.Pipe()
+ oldExec := osExecutableFn
+ oldSplit := splitRunFn
+ osExecutableFn = func() (string, error) { return "/bin/hexai-tmux-action", nil }
+ splitRunFn = func(opts tmux.SplitOpts, argv []string) error {
+ for i := 0; i < len(argv)-1; i++ {
+ if argv[i] == "-outfile" && i+1 < len(argv) {
+ _ = os.WriteFile(argv[i+1], []byte("OUT:"+strings.Join(argv, ",")), 0o600)
+ break
+ }
+ }
+ return nil
+ }
+ t.Cleanup(func() { osExecutableFn = oldExec; splitRunFn = oldSplit })
+ if err := runInTmuxParent(r, wout, "", "v", 33); err != nil {
+ t.Fatalf("runInTmuxParent: %v", err)
+ }
+ _ = wout.Close()
+ got, _ := io.ReadAll(rout)
+ if !strings.HasPrefix(string(got), "OUT:") {
+ t.Fatalf("unexpected stdout: %q", string(got))
+ }
+ _ = dir
}
func TestRunInTmuxParent_ExecutableError(t *testing.T) {
- old := osExecutableFn
- osExecutableFn = func() (string, error) { return "", fmt.Errorf("no exe") }
- t.Cleanup(func() { osExecutableFn = old })
- r, w, _ := os.Pipe(); _, _ = w.Write([]byte("x")); _ = w.Close()
- if err := runInTmuxParent(r, io.Discard, "", "v", 33); err == nil { t.Fatal("expected error from missing executable") }
+ old := osExecutableFn
+ osExecutableFn = func() (string, error) { return "", fmt.Errorf("no exe") }
+ t.Cleanup(func() { osExecutableFn = old })
+ r, w, _ := os.Pipe()
+ _, _ = w.Write([]byte("x"))
+ _ = w.Close()
+ if err := runInTmuxParent(r, io.Discard, "", "v", 33); err == nil {
+ t.Fatal("expected error from missing executable")
+ }
}
func TestRunInTmuxParent_SplitError(t *testing.T) {
- oldExec := osExecutableFn
- osExecutableFn = func() (string, error) { return "/bin/hexai-tmux-action", nil }
- oldSplit := splitRunFn
- splitRunFn = func(_ tmux.SplitOpts, _ []string) error { return fmt.Errorf("split failed") }
- t.Cleanup(func() { osExecutableFn = oldExec; splitRunFn = oldSplit })
- r, w, _ := os.Pipe(); _, _ = w.Write([]byte("x")); _ = w.Close()
- if err := runInTmuxParent(r, io.Discard, "", "v", 33); err == nil { t.Fatal("expected split error") }
+ oldExec := osExecutableFn
+ osExecutableFn = func() (string, error) { return "/bin/hexai-tmux-action", nil }
+ oldSplit := splitRunFn
+ splitRunFn = func(_ tmux.SplitOpts, _ []string) error { return fmt.Errorf("split failed") }
+ t.Cleanup(func() { osExecutableFn = oldExec; splitRunFn = oldSplit })
+ r, w, _ := os.Pipe()
+ _, _ = w.Write([]byte("x"))
+ _ = w.Close()
+ if err := runInTmuxParent(r, io.Discard, "", "v", 33); err == nil {
+ t.Fatal("expected split error")
+ }
}
func TestRunChild_StdoutAndOutfile(t *testing.T) {
- // Outfile mode
- dir := t.TempDir()
- in := filepath.Join(dir, "in.txt")
- out := filepath.Join(dir, "out.txt")
- _ = os.WriteFile(in, []byte("sel"), 0o600)
- oldRun := runFn
- runFn = func(_ context.Context, _ io.Reader, w io.Writer, _ io.Writer) error { _, _ = io.WriteString(w, "RESULT"); return nil }
- t.Cleanup(func(){ runFn = oldRun })
- if err := runChild(context.Background(), in, out, io.Discard, io.Discard); err != nil { t.Fatalf("runChild: %v", err) }
- b, _ := os.ReadFile(out)
- if len(b) == 0 { t.Fatalf("expected some output") }
- // Stdout mode
- r, w, _ := os.Pipe()
- if err := runChild(context.Background(), in, "", w, io.Discard); err != nil { t.Fatalf("runChild: %v", err) }
- _ = w.Close(); buf, _ := io.ReadAll(r)
- if len(buf) == 0 { t.Fatalf("expected stdout output") }
+ // Outfile mode
+ dir := t.TempDir()
+ in := filepath.Join(dir, "in.txt")
+ out := filepath.Join(dir, "out.txt")
+ _ = os.WriteFile(in, []byte("sel"), 0o600)
+ oldRun := runFn
+ runFn = func(_ context.Context, _ io.Reader, w io.Writer, _ io.Writer) error {
+ _, _ = io.WriteString(w, "RESULT")
+ return nil
+ }
+ t.Cleanup(func() { runFn = oldRun })
+ if err := runChild(context.Background(), in, out, io.Discard, io.Discard); err != nil {
+ t.Fatalf("runChild: %v", err)
+ }
+ b, _ := os.ReadFile(out)
+ if len(b) == 0 {
+ t.Fatalf("expected some output")
+ }
+ // Stdout mode
+ r, w, _ := os.Pipe()
+ if err := runChild(context.Background(), in, "", w, io.Discard); err != nil {
+ t.Fatalf("runChild: %v", err)
+ }
+ _ = w.Close()
+ buf, _ := io.ReadAll(r)
+ if len(buf) == 0 {
+ t.Fatalf("expected stdout output")
+ }
}
func TestWaitForFile_Timeout(t *testing.T) {
- dir := t.TempDir()
- p := filepath.Join(dir, "nope")
- if err := waitForFile(p, 10*time.Millisecond); err == nil { t.Fatal("expected timeout error") }
+ dir := t.TempDir()
+ p := filepath.Join(dir, "nope")
+ if err := waitForFile(p, 10*time.Millisecond); err == nil {
+ t.Fatal("expected timeout error")
+ }
}
func TestOpenIO_InfileOutfile(t *testing.T) {
- dir := t.TempDir()
- in := filepath.Join(dir, "i"); out := filepath.Join(dir, "o")
- _ = os.WriteFile(in, []byte("X"), 0o600)
- r, w, ci, co, err := openIO(in, out)
- if err != nil { t.Fatalf("openIO: %v", err) }
- defer ci(); defer co()
- if _, err := io.Copy(w, r); err != nil { t.Fatalf("copy: %v", err) }
- b, _ := os.ReadFile(out)
- if string(b) != "X" { t.Fatalf("got %q", string(b)) }
+ dir := t.TempDir()
+ in := filepath.Join(dir, "i")
+ out := filepath.Join(dir, "o")
+ _ = os.WriteFile(in, []byte("X"), 0o600)
+ r, w, ci, co, err := openIO(in, out)
+ if err != nil {
+ t.Fatalf("openIO: %v", err)
+ }
+ defer ci()
+ defer co()
+ if _, err := io.Copy(w, r); err != nil {
+ t.Fatalf("copy: %v", err)
+ }
+ b, _ := os.ReadFile(out)
+ if string(b) != "X" {
+ t.Fatalf("got %q", string(b))
+ }
}
diff --git a/internal/hexaiaction/custom_action_test.go b/internal/hexaiaction/custom_action_test.go
index 451a313..72cfbc4 100644
--- a/internal/hexaiaction/custom_action_test.go
+++ b/internal/hexaiaction/custom_action_test.go
@@ -1,39 +1,46 @@
package hexaiaction
import (
- "bytes"
- "context"
- "testing"
+ "bytes"
+ "context"
+ "os"
+ "testing"
- "codeberg.org/snonux/hexai/internal/appconfig"
- "codeberg.org/snonux/hexai/internal/editor"
- "codeberg.org/snonux/hexai/internal/llm"
- "os"
+ "codeberg.org/snonux/hexai/internal/appconfig"
+ "codeberg.org/snonux/hexai/internal/editor"
+ "codeberg.org/snonux/hexai/internal/llm"
)
type llmFake2 struct{}
-func (llmFake2) Chat(_ context.Context, _ []llm.Message, _ ...llm.RequestOption) (string, error) { return "DONE", nil }
-func (llmFake2) Name() string { return "fake" }
+
+func (llmFake2) Chat(_ context.Context, _ []llm.Message, _ ...llm.RequestOption) (string, error) {
+ return "DONE", nil
+}
+func (llmFake2) Name() string { return "fake" }
func (llmFake2) DefaultModel() string { return "m" }
func TestActionCustom_UsesEditorPrompt(t *testing.T) {
- // Seam: choose custom, fake client, and fake editor
- oldChoose := chooseActionFn
- oldNew := newClientFromApp
- chooseActionFn = func() (ActionKind, error) { return ActionCustom, nil }
- newClientFromApp = func(_ appconfig.App) (llm.Client, error) { return llmFake2{}, nil }
- t.Cleanup(func(){ chooseActionFn = oldChoose; newClientFromApp = oldNew })
+ // Seam: choose custom, fake client, and fake editor
+ oldChoose := chooseActionFn
+ oldNew := newClientFromApp
+ chooseActionFn = func() (ActionKind, error) { return ActionCustom, nil }
+ newClientFromApp = func(_ appconfig.App) (llm.Client, error) { return llmFake2{}, nil }
+ t.Cleanup(func() { chooseActionFn = oldChoose; newClientFromApp = oldNew })
- oldRunEd := editor.RunEditor
- editor.RunEditor = func(_ string, path string) error {
- return os.WriteFile(path, []byte("make it done"), 0o600)
- }
- t.Cleanup(func(){ editor.RunEditor = oldRunEd })
- t.Setenv("HEXAI_EDITOR", "dummy")
+ oldRunEd := editor.RunEditor
+ editor.RunEditor = func(_ string, path string) error {
+ return os.WriteFile(path, []byte("make it done"), 0o600)
+ }
+ t.Cleanup(func() { editor.RunEditor = oldRunEd })
+ t.Setenv("HEXAI_EDITOR", "dummy")
- in := bytes.NewBufferString("some code")
- var out bytes.Buffer
- var errb bytes.Buffer
- if err := Run(context.Background(), in, &out, &errb); err != nil { t.Fatalf("Run: %v", err) }
- if out.String() == "" { t.Fatalf("expected output") }
+ in := bytes.NewBufferString("some code")
+ var out bytes.Buffer
+ var errb bytes.Buffer
+ if err := Run(context.Background(), in, &out, &errb); err != nil {
+ t.Fatalf("Run: %v", err)
+ }
+ if out.String() == "" {
+ t.Fatalf("expected output")
+ }
}
diff --git a/internal/hexaiaction/parse.go b/internal/hexaiaction/parse.go
index 99e2b24..33fc4af 100644
--- a/internal/hexaiaction/parse.go
+++ b/internal/hexaiaction/parse.go
@@ -1,11 +1,11 @@
package hexaiaction
import (
- "bufio"
- "io"
- "strings"
+ "bufio"
+ "io"
+ "strings"
- "codeberg.org/snonux/hexai/internal/textutil"
+ "codeberg.org/snonux/hexai/internal/textutil"
)
// ParseInput splits raw stdin into optional diagnostics and selection/code.
diff --git a/internal/hexaiaction/parse_test.go b/internal/hexaiaction/parse_test.go
index f81ab54..ba5cd96 100644
--- a/internal/hexaiaction/parse_test.go
+++ b/internal/hexaiaction/parse_test.go
@@ -77,6 +77,8 @@ func (f *fakeClient) Chat(_ context.Context, msgs []llm.Message, _ ...llm.Reques
return f.out, f.err
}
+func (f *fakeClient) DefaultModel() string { return "m" }
+
func TestRuners_Prompts(t *testing.T) {
cfg := appconfig.App{
PromptCodeActionRewriteSystem: "SYS-R",
diff --git a/internal/hexaiaction/prompts_more_test.go b/internal/hexaiaction/prompts_more_test.go
index 62abc97..9f5d6cb 100644
--- a/internal/hexaiaction/prompts_more_test.go
+++ b/internal/hexaiaction/prompts_more_test.go
@@ -1,19 +1,26 @@
package hexaiaction
import (
- "context"
- "strings"
- "testing"
+ "context"
+ "strings"
+ "testing"
- "codeberg.org/snonux/hexai/internal/llm"
+ "codeberg.org/snonux/hexai/internal/llm"
)
type simpleDoer struct{ s string }
-func (d simpleDoer) Chat(_ context.Context, _ []llm.Message, _ ...llm.RequestOption) (string, error) { return d.s, nil }
+func (d simpleDoer) Chat(_ context.Context, _ []llm.Message, _ ...llm.RequestOption) (string, error) {
+ return d.s, nil
+}
+func (d simpleDoer) DefaultModel() string { return "m" }
func TestRunOnce_StripsFences(t *testing.T) {
- got, err := runOnce(context.Background(), simpleDoer{"```\nok\n```"}, "SYS", "USER")
- if err != nil { t.Fatalf("runOnce: %v", err) }
- if strings.TrimSpace(got) != "ok" { t.Fatalf("got %q", got) }
+ got, err := runOnce(context.Background(), simpleDoer{"```\nok\n```"}, "SYS", "USER")
+ if err != nil {
+ t.Fatalf("runOnce: %v", err)
+ }
+ if strings.TrimSpace(got) != "ok" {
+ t.Fatalf("got %q", got)
+ }
}
diff --git a/internal/hexaiaction/run_more_test.go b/internal/hexaiaction/run_more_test.go
index d7ab025..1c0eb51 100644
--- a/internal/hexaiaction/run_more_test.go
+++ b/internal/hexaiaction/run_more_test.go
@@ -1,26 +1,25 @@
package hexaiaction
import (
- "bytes"
- "context"
- "os"
- "testing"
+ "bytes"
+ "context"
+ "os"
+ "testing"
)
// Covers the early error path in Run when no API key is available for the default provider.
func TestRun_MissingAPIKey(t *testing.T) {
- // Ensure no provider API keys in env
- for _, k := range []string{"HEXAI_OPENAI_API_KEY", "OPENAI_API_KEY", "HEXAI_COPILOT_API_KEY", "COPILOT_API_KEY"} {
- t.Setenv(k, "")
- }
- // Provide minimal stdin to get past empty input check (if reached)
- in := bytes.NewBufferString("some selection text")
- var out bytes.Buffer
- var errBuf bytes.Buffer
- // Expect an error due to missing OPENAI_API_KEY (default provider is openai)
- if err := Run(context.Background(), in, &out, &errBuf); err == nil {
- t.Fatal("expected error when API key is missing")
- }
- _ = os.Stderr
+ // Ensure no provider API keys in env
+ for _, k := range []string{"HEXAI_OPENAI_API_KEY", "OPENAI_API_KEY", "HEXAI_COPILOT_API_KEY", "COPILOT_API_KEY"} {
+ t.Setenv(k, "")
+ }
+ // Provide minimal stdin to get past empty input check (if reached)
+ in := bytes.NewBufferString("some selection text")
+ var out bytes.Buffer
+ var errBuf bytes.Buffer
+ // Expect an error due to missing OPENAI_API_KEY (default provider is openai)
+ if err := Run(context.Background(), in, &out, &errBuf); err == nil {
+ t.Fatal("expected error when API key is missing")
+ }
+ _ = os.Stderr
}
-
diff --git a/internal/hexaiaction/run_seam_test.go b/internal/hexaiaction/run_seam_test.go
index 0b8761f..bbec858 100644
--- a/internal/hexaiaction/run_seam_test.go
+++ b/internal/hexaiaction/run_seam_test.go
@@ -1,36 +1,46 @@
package hexaiaction
import (
- "bytes"
- "context"
- "testing"
+ "bytes"
+ "context"
+ "testing"
- "codeberg.org/snonux/hexai/internal/appconfig"
- "codeberg.org/snonux/hexai/internal/llm"
+ "codeberg.org/snonux/hexai/internal/appconfig"
+ "codeberg.org/snonux/hexai/internal/llm"
)
type llmFake struct{}
-func (llmFake) Chat(_ context.Context, _ []llm.Message, _ ...llm.RequestOption) (string, error) { return "OK", nil }
+func (llmFake) Chat(_ context.Context, _ []llm.Message, _ ...llm.RequestOption) (string, error) {
+ return "OK", nil
+}
func (llmFake) Name() string { return "fake" }
func (llmFake) DefaultModel() string { return "model" }
func TestRun_WithSeams_SkipAndRewrite(t *testing.T) {
- // Seam: choose action to Skip first, then Rewrite
- oldChoose := chooseActionFn
- oldNew := newClientFromApp
- t.Cleanup(func(){ chooseActionFn = oldChoose; newClientFromApp = oldNew })
- // 1) Skip -> echoes selection
- chooseActionFn = func() (ActionKind, error) { return ActionSkip, nil }
- newClientFromApp = func(_ appconfig.App) (llm.Client, error) { return llmFake{}, nil }
- var out bytes.Buffer
- in := bytes.NewBufferString("some code")
- if err := Run(context.Background(), in, &out, &out); err != nil { t.Fatalf("Run skip: %v", err) }
- if out.String() != "some code" { t.Fatalf("skip out: %q", out.String()) }
- // 2) Rewrite -> requires inline instruction
- chooseActionFn = func() (ActionKind, error) { return ActionRewrite, nil }
- out.Reset()
- in = bytes.NewBufferString(";upper;\nhello")
- if err := Run(context.Background(), in, &out, &out); err != nil { t.Fatalf("Run rewrite: %v", err) }
- if out.String() == "" { t.Fatalf("expected non-empty rewrite output") }
+ // Seam: choose action to Skip first, then Rewrite
+ oldChoose := chooseActionFn
+ oldNew := newClientFromApp
+ t.Cleanup(func() { chooseActionFn = oldChoose; newClientFromApp = oldNew })
+ // 1) Skip -> echoes selection
+ chooseActionFn = func() (ActionKind, error) { return ActionSkip, nil }
+ newClientFromApp = func(_ appconfig.App) (llm.Client, error) { return llmFake{}, nil }
+ var out bytes.Buffer
+ in := bytes.NewBufferString("some code")
+ if err := Run(context.Background(), in, &out, &out); err != nil {
+ t.Fatalf("Run skip: %v", err)
+ }
+ if out.String() != "some code" {
+ t.Fatalf("skip out: %q", out.String())
+ }
+ // 2) Rewrite -> requires inline instruction
+ chooseActionFn = func() (ActionKind, error) { return ActionRewrite, nil }
+ out.Reset()
+ in = bytes.NewBufferString(";upper;\nhello")
+ if err := Run(context.Background(), in, &out, &out); err != nil {
+ t.Fatalf("Run rewrite: %v", err)
+ }
+ if out.String() == "" {
+ t.Fatalf("expected non-empty rewrite output")
+ }
}
diff --git a/internal/hexaiaction/run_test.go b/internal/hexaiaction/run_test.go
index 87fbfa8..e28bceb 100644
--- a/internal/hexaiaction/run_test.go
+++ b/internal/hexaiaction/run_test.go
@@ -1,51 +1,51 @@
package hexaiaction
import (
- "context"
- "strings"
- "testing"
+ "context"
+ "strings"
+ "testing"
- "codeberg.org/snonux/hexai/internal/appconfig"
- "codeberg.org/snonux/hexai/internal/llm"
+ "codeberg.org/snonux/hexai/internal/appconfig"
+ "codeberg.org/snonux/hexai/internal/llm"
)
type fakeDoer struct{ out string }
func (f fakeDoer) Chat(_ context.Context, _ []llm.Message, _ ...llm.RequestOption) (string, error) {
- return f.out, nil
+ return f.out, nil
}
+func (f fakeDoer) DefaultModel() string { return "m" }
func TestExecuteAction_Skip(t *testing.T) {
- cfg := appconfig.App{}
- parts := InputParts{Selection: "data"}
- out, err := executeAction(context.Background(), ActionSkip, parts, cfg, fakeDoer{"IGN"}, nil)
- if err != nil || out != "data" {
- t.Fatalf("skip failed: %q %v", out, err)
- }
+ cfg := appconfig.App{}
+ parts := InputParts{Selection: "data"}
+ out, err := executeAction(context.Background(), ActionSkip, parts, cfg, fakeDoer{"IGN"}, nil)
+ if err != nil || out != "data" {
+ t.Fatalf("skip failed: %q %v", out, err)
+ }
}
func TestExecuteAction_Rewrite_Document_GoTest(t *testing.T) {
- cfg := appconfig.Load(nil) // defaults
- // Use fenced output to exercise StripFences
- client := fakeDoer{"```\nDONE\n```"}
-
- // rewrite with inline instruction
- sel := ";change;\ncode"
- out, err := executeAction(context.Background(), ActionRewrite, InputParts{Selection: sel}, cfg, client, nil)
- if err != nil || strings.TrimSpace(out) != "DONE" {
- t.Fatalf("rewrite failed: %q %v", out, err)
- }
-
- // document
- out, err = executeAction(context.Background(), ActionDocument, InputParts{Selection: "code"}, cfg, client, nil)
- if err != nil || strings.TrimSpace(out) != "DONE" {
- t.Fatalf("document failed: %q %v", out, err)
- }
-
- // go test
- out, err = executeAction(context.Background(), ActionGoTest, InputParts{Selection: "func A(){}"}, cfg, client, nil)
- if err != nil || strings.TrimSpace(out) != "DONE" {
- t.Fatalf("gotest failed: %q %v", out, err)
- }
+ cfg := appconfig.Load(nil) // defaults
+ // Use fenced output to exercise StripFences
+ client := fakeDoer{"```\nDONE\n```"}
+
+ // rewrite with inline instruction
+ sel := ";change;\ncode"
+ out, err := executeAction(context.Background(), ActionRewrite, InputParts{Selection: sel}, cfg, client, nil)
+ if err != nil || strings.TrimSpace(out) != "DONE" {
+ t.Fatalf("rewrite failed: %q %v", out, err)
+ }
+
+ // document
+ out, err = executeAction(context.Background(), ActionDocument, InputParts{Selection: "code"}, cfg, client, nil)
+ if err != nil || strings.TrimSpace(out) != "DONE" {
+ t.Fatalf("document failed: %q %v", out, err)
+ }
+
+ // go test
+ out, err = executeAction(context.Background(), ActionGoTest, InputParts{Selection: "func A(){}"}, cfg, client, nil)
+ if err != nil || strings.TrimSpace(out) != "DONE" {
+ t.Fatalf("gotest failed: %q %v", out, err)
+ }
}
-
diff --git a/internal/hexaiaction/tui.go b/internal/hexaiaction/tui.go
index 317a991..d07bb78 100644
--- a/internal/hexaiaction/tui.go
+++ b/internal/hexaiaction/tui.go
@@ -1,11 +1,11 @@
package hexaiaction
import (
- "fmt"
- "strings"
+ "fmt"
+ "strings"
- "github.com/charmbracelet/bubbles/list"
- tea "github.com/charmbracelet/bubbletea"
+ "github.com/charmbracelet/bubbles/list"
+ tea "github.com/charmbracelet/bubbletea"
)
// item implements list.Item
@@ -26,20 +26,20 @@ type model struct {
}
func newModel() model {
- items := []list.Item{
- item{title: "Rewrite selection", desc: "", kind: ActionRewrite, hotkey: 'r'},
- item{title: "Simplify and improve", desc: "", kind: ActionSimplify, hotkey: 'i'},
- item{title: "Document code", desc: "", kind: ActionDocument, hotkey: 'c'},
- item{title: "Generate Go unit test(s)", desc: "", kind: ActionGoTest, hotkey: 't'},
- item{title: "Custom prompt", desc: "", kind: ActionCustom, hotkey: 'p'},
- item{title: "Skip", desc: "", kind: ActionSkip, hotkey: 's'},
- }
- l := list.New(items, oneLineDelegate{}, 0, 0)
- l.SetShowTitle(false)
- l.SetShowHelp(false)
- l.SetShowStatusBar(false)
- l.SetFilteringEnabled(false)
- return model{list: l}
+ items := []list.Item{
+ item{title: "Rewrite selection", desc: "", kind: ActionRewrite, hotkey: 'r'},
+ item{title: "Simplify and improve", desc: "", kind: ActionSimplify, hotkey: 'i'},
+ item{title: "Document code", desc: "", kind: ActionDocument, hotkey: 'c'},
+ item{title: "Generate Go unit test(s)", desc: "", kind: ActionGoTest, hotkey: 't'},
+ item{title: "Custom prompt", desc: "", kind: ActionCustom, hotkey: 'p'},
+ item{title: "Skip", desc: "", kind: ActionSkip, hotkey: 's'},
+ }
+ l := list.New(items, oneLineDelegate{}, 0, 0)
+ l.SetShowTitle(false)
+ l.SetShowHelp(false)
+ l.SetShowStatusBar(false)
+ l.SetFilteringEnabled(false)
+ return model{list: l}
}
func (m model) Init() tea.Cmd { return nil }
@@ -57,43 +57,47 @@ func (m model) Update(msg tea.Msg) (tea.Model, tea.Cmd) {
}
func handleKey(m model, msg tea.KeyMsg) (tea.Model, tea.Cmd) {
- raw := msg.String()
- low := strings.ToLower(raw)
- switch low {
- case "esc", "q":
- // Treat ESC and q as Skip/quit
- m.chosen = ActionSkip
- m.done = true
- return m, tea.Quit
- case "enter":
- if it, ok := m.list.SelectedItem().(item); ok {
- m.chosen = it.kind
- m.done = true
- return m, tea.Quit
- }
- case "j", "down":
- m.list.CursorDown()
- case "k", "up":
- m.list.CursorUp()
- case "g", "home":
- m.list.Select(0)
- case "end":
- if n := len(m.list.Items()); n > 0 { m.list.Select(n - 1) }
- case "s", "r", "c", "t", "i", "p":
- items := m.list.Items()
- for i := 0; i < len(items); i++ {
- if it, ok := items[i].(item); ok && strings.ToLower(string(it.hotkey)) == low {
- m.list.Select(i)
- m.chosen = it.kind
- m.done = true
- return m, tea.Quit
- }
- }
- }
- if raw == "G" { // Shift+G jumps to end
- if n := len(m.list.Items()); n > 0 { m.list.Select(n - 1) }
- }
- return m, nil
+ raw := msg.String()
+ low := strings.ToLower(raw)
+ switch low {
+ case "esc", "q":
+ // Treat ESC and q as Skip/quit
+ m.chosen = ActionSkip
+ m.done = true
+ return m, tea.Quit
+ case "enter":
+ if it, ok := m.list.SelectedItem().(item); ok {
+ m.chosen = it.kind
+ m.done = true
+ return m, tea.Quit
+ }
+ case "j", "down":
+ m.list.CursorDown()
+ case "k", "up":
+ m.list.CursorUp()
+ case "g", "home":
+ m.list.Select(0)
+ case "end":
+ if n := len(m.list.Items()); n > 0 {
+ m.list.Select(n - 1)
+ }
+ case "s", "r", "c", "t", "i", "p":
+ items := m.list.Items()
+ for i := 0; i < len(items); i++ {
+ if it, ok := items[i].(item); ok && strings.ToLower(string(it.hotkey)) == low {
+ m.list.Select(i)
+ m.chosen = it.kind
+ m.done = true
+ return m, tea.Quit
+ }
+ }
+ }
+ if raw == "G" { // Shift+G jumps to end
+ if n := len(m.list.Items()); n > 0 {
+ m.list.Select(n - 1)
+ }
+ }
+ return m, nil
}
func (m model) View() string {
diff --git a/internal/hexaiaction/tui_delegate.go b/internal/hexaiaction/tui_delegate.go
index 0e5a68c..46d40cb 100644
--- a/internal/hexaiaction/tui_delegate.go
+++ b/internal/hexaiaction/tui_delegate.go
@@ -1,35 +1,35 @@
package hexaiaction
import (
- "fmt"
- "io"
+ "fmt"
+ "io"
- "github.com/charmbracelet/bubbles/list"
- tea "github.com/charmbracelet/bubbletea"
- "github.com/charmbracelet/lipgloss"
+ "github.com/charmbracelet/bubbles/list"
+ tea "github.com/charmbracelet/bubbletea"
+ "github.com/charmbracelet/lipgloss"
)
// oneLineDelegate renders a single compact line per item, no spacing.
type oneLineDelegate struct{}
var (
- hotStyle = lipgloss.NewStyle().Bold(true).Foreground(lipgloss.Color("205"))
- cursorStyle = lipgloss.NewStyle().Bold(true)
+ hotStyle = lipgloss.NewStyle().Bold(true).Foreground(lipgloss.Color("205"))
+ cursorStyle = lipgloss.NewStyle().Bold(true)
)
func (oneLineDelegate) Height() int { return 1 }
func (oneLineDelegate) Spacing() int { return 0 }
func (oneLineDelegate) Update(tea.Msg, *list.Model) tea.Cmd { return nil }
func (oneLineDelegate) Render(w io.Writer, m list.Model, index int, listItem list.Item) {
- title := listItem.FilterValue()
- hk := '?'
- if it, ok := listItem.(item); ok {
- hk = it.hotkey
- }
- hot := hotStyle.Render(fmt.Sprintf(" (%c)", hk))
- cursor := " "
- if index == m.Index() {
- cursor = cursorStyle.Render("> ")
- }
- fmt.Fprintf(w, "%s%s%s", cursor, title, hot)
+ title := listItem.FilterValue()
+ hk := '?'
+ if it, ok := listItem.(item); ok {
+ hk = it.hotkey
+ }
+ hot := hotStyle.Render(fmt.Sprintf(" (%c)", hk))
+ cursor := " "
+ if index == m.Index() {
+ cursor = cursorStyle.Render("> ")
+ }
+ fmt.Fprintf(w, "%s%s%s", cursor, title, hot)
}
diff --git a/internal/hexaiaction/tui_delegate_test.go b/internal/hexaiaction/tui_delegate_test.go
index 27881e4..4bdb359 100644
--- a/internal/hexaiaction/tui_delegate_test.go
+++ b/internal/hexaiaction/tui_delegate_test.go
@@ -1,32 +1,32 @@
package hexaiaction
import (
- "bytes"
- "regexp"
- "testing"
+ "bytes"
+ "regexp"
+ "testing"
- "github.com/charmbracelet/bubbles/list"
+ "github.com/charmbracelet/bubbles/list"
)
func stripANSI(s string) string {
- re := regexp.MustCompile(`\x1b\[[0-9;]*m`)
- return re.ReplaceAllString(s, "")
+ re := regexp.MustCompile(`\x1b\[[0-9;]*m`)
+ return re.ReplaceAllString(s, "")
}
func TestOneLineDelegate_Render(t *testing.T) {
- items := []list.Item{item{title: "Rewrite selection", kind: ActionRewrite, hotkey: 'r'}}
- m := list.New(items, oneLineDelegate{}, 0, 0)
- m.Select(0)
- var b bytes.Buffer
- oneLineDelegate{}.Render(&b, m, 0, items[0])
- out := stripANSI(b.String())
- if !regexp.MustCompile(`> \w`).MatchString(out) {
- t.Fatalf("expected cursor prefix in %q", out)
- }
- if !regexp.MustCompile(`Rewrite selection`).MatchString(out) {
- t.Fatalf("expected title in %q", out)
- }
- if !regexp.MustCompile(`\(r\)`).MatchString(out) {
- t.Fatalf("expected hotkey in %q", out)
- }
+ items := []list.Item{item{title: "Rewrite selection", kind: ActionRewrite, hotkey: 'r'}}
+ m := list.New(items, oneLineDelegate{}, 0, 0)
+ m.Select(0)
+ var b bytes.Buffer
+ oneLineDelegate{}.Render(&b, m, 0, items[0])
+ out := stripANSI(b.String())
+ if !regexp.MustCompile(`> \w`).MatchString(out) {
+ t.Fatalf("expected cursor prefix in %q", out)
+ }
+ if !regexp.MustCompile(`Rewrite selection`).MatchString(out) {
+ t.Fatalf("expected title in %q", out)
+ }
+ if !regexp.MustCompile(`\(r\)`).MatchString(out) {
+ t.Fatalf("expected hotkey in %q", out)
+ }
}
diff --git a/internal/hexaiaction/tui_test.go b/internal/hexaiaction/tui_test.go
index 6f1debc..f467e53 100644
--- a/internal/hexaiaction/tui_test.go
+++ b/internal/hexaiaction/tui_test.go
@@ -1,57 +1,57 @@
package hexaiaction
import (
- "testing"
+ "testing"
- tea "github.com/charmbracelet/bubbletea"
+ tea "github.com/charmbracelet/bubbletea"
)
func TestHandleKey_EscSkips(t *testing.T) {
- m := newModel()
- nm, _ := handleKey(m, tea.KeyMsg{Type: tea.KeyEsc})
- got, ok := nm.(model)
- if !ok || !got.done || got.chosen != ActionSkip {
- t.Fatalf("esc should skip: ok=%v done=%v chosen=%v", ok, got.done, got.chosen)
- }
+ m := newModel()
+ nm, _ := handleKey(m, tea.KeyMsg{Type: tea.KeyEsc})
+ got, ok := nm.(model)
+ if !ok || !got.done || got.chosen != ActionSkip {
+ t.Fatalf("esc should skip: ok=%v done=%v chosen=%v", ok, got.done, got.chosen)
+ }
}
func TestHandleKey_QuickHotkey(t *testing.T) {
- m := newModel()
- nm, _ := handleKey(m, tea.KeyMsg{Type: tea.KeyRunes, Runes: []rune{'r'}})
- got := nm.(model)
- if !got.done || got.chosen != ActionRewrite {
- t.Fatalf("r should choose rewrite: done=%v chosen=%v", got.done, got.chosen)
- }
+ m := newModel()
+ nm, _ := handleKey(m, tea.KeyMsg{Type: tea.KeyRunes, Runes: []rune{'r'}})
+ got := nm.(model)
+ if !got.done || got.chosen != ActionRewrite {
+ t.Fatalf("r should choose rewrite: done=%v chosen=%v", got.done, got.chosen)
+ }
}
func TestHandleKey_JumpEndWithG(t *testing.T) {
- m := newModel()
- // raw 'G' rune should jump to end (special cased)
- nm, _ := handleKey(m, tea.KeyMsg{Type: tea.KeyRunes, Runes: []rune{'G'}})
- got := nm.(model)
- if idx := got.list.Index(); idx != len(got.list.Items())-1 {
- t.Fatalf("G should jump to end, index=%d", idx)
- }
+ m := newModel()
+ // raw 'G' rune should jump to end (special cased)
+ nm, _ := handleKey(m, tea.KeyMsg{Type: tea.KeyRunes, Runes: []rune{'G'}})
+ got := nm.(model)
+ if idx := got.list.Index(); idx != len(got.list.Items())-1 {
+ t.Fatalf("G should jump to end, index=%d", idx)
+ }
}
func TestItemMethods(t *testing.T) {
- it := item{title: "T", desc: "D", kind: ActionRewrite, hotkey: 'r'}
- if it.Title() != "T" || it.Description() != "D" || it.FilterValue() != "T" {
- t.Fatalf("item methods wrong: %+v", it)
- }
+ it := item{title: "T", desc: "D", kind: ActionRewrite, hotkey: 'r'}
+ if it.Title() != "T" || it.Description() != "D" || it.FilterValue() != "T" {
+ t.Fatalf("item methods wrong: %+v", it)
+ }
}
func TestModelInitAndViewAndUpdate(t *testing.T) {
- m := newModel()
- if m.Init() != nil {
- t.Fatalf("Init should return nil cmd")
- }
- if v := m.View(); v == "" {
- t.Fatalf("View should not be empty before done")
- }
- // Window resize
- nm, _ := m.Update(tea.WindowSizeMsg{Width: 80, Height: 24})
- if _, ok := nm.(model); !ok {
- t.Fatalf("expected model after WindowSizeMsg")
- }
+ m := newModel()
+ if m.Init() != nil {
+ t.Fatalf("Init should return nil cmd")
+ }
+ if v := m.View(); v == "" {
+ t.Fatalf("View should not be empty before done")
+ }
+ // Window resize
+ nm, _ := m.Update(tea.WindowSizeMsg{Width: 80, Height: 24})
+ if _, ok := nm.(model); !ok {
+ t.Fatalf("expected model after WindowSizeMsg")
+ }
}
diff --git a/internal/hexaiaction/types.go b/internal/hexaiaction/types.go
index 7bc292e..d3cda4e 100644
--- a/internal/hexaiaction/types.go
+++ b/internal/hexaiaction/types.go
@@ -5,13 +5,13 @@ package hexaiaction
type ActionKind string
const (
- ActionSkip ActionKind = "skip"
- ActionRewrite ActionKind = "rewrite"
- ActionDiagnostics ActionKind = "diagnostics"
- ActionDocument ActionKind = "document"
- ActionGoTest ActionKind = "gotest"
- ActionSimplify ActionKind = "simplify"
- ActionCustom ActionKind = "custom"
+ ActionSkip ActionKind = "skip"
+ ActionRewrite ActionKind = "rewrite"
+ ActionDiagnostics ActionKind = "diagnostics"
+ ActionDocument ActionKind = "document"
+ ActionGoTest ActionKind = "gotest"
+ ActionSimplify ActionKind = "simplify"
+ ActionCustom ActionKind = "custom"
)
// InputParts represents parsed stdin input for actions.
diff --git a/internal/hexaicli/editor_integration_test.go b/internal/hexaicli/editor_integration_test.go
index 1bebf75..7d53d1f 100644
--- a/internal/hexaicli/editor_integration_test.go
+++ b/internal/hexaicli/editor_integration_test.go
@@ -1,51 +1,62 @@
package hexaicli
import (
- "bytes"
- "context"
- "os"
- "testing"
+ "bytes"
+ "context"
+ "os"
+ "testing"
- "codeberg.org/snonux/hexai/internal/appconfig"
- "codeberg.org/snonux/hexai/internal/editor"
- "codeberg.org/snonux/hexai/internal/llm"
+ "codeberg.org/snonux/hexai/internal/appconfig"
+ "codeberg.org/snonux/hexai/internal/editor"
+ "codeberg.org/snonux/hexai/internal/llm"
)
type cliFake struct{}
-func (cliFake) Chat(_ context.Context, _ []llm.Message, _ ...llm.RequestOption) (string, error) { return "OUT", nil }
-func (cliFake) Name() string { return "fake" }
+
+func (cliFake) Chat(_ context.Context, _ []llm.Message, _ ...llm.RequestOption) (string, error) {
+ return "OUT", nil
+}
+func (cliFake) Name() string { return "fake" }
func (cliFake) DefaultModel() string { return "m" }
-func (cliFake) CodeCompletion(context.Context, string, string, int, string, float64) ([]string, error) { return nil, nil }
+func (cliFake) CodeCompletion(context.Context, string, string, int, string, float64) ([]string, error) {
+ return nil, nil
+}
func TestRun_NoArgs_OpensEditor(t *testing.T) {
- // Seam: fake client and editor
- oldNew := newClientFromApp
- newClientFromApp = func(_ appconfig.App) (llm.Client, error) { return cliFake{}, nil }
- t.Cleanup(func(){ newClientFromApp = oldNew })
- oldRun := editor.RunEditor
- editor.RunEditor = func(_ string, path string) error { return os.WriteFile(path, []byte("PROMPT"), 0o600) }
- t.Cleanup(func(){ editor.RunEditor = oldRun })
- t.Setenv("HEXAI_EDITOR", "dummy")
+ // Seam: fake client and editor
+ oldNew := newClientFromApp
+ newClientFromApp = func(_ appconfig.App) (llm.Client, error) { return cliFake{}, nil }
+ t.Cleanup(func() { newClientFromApp = oldNew })
+ oldRun := editor.RunEditor
+ editor.RunEditor = func(_ string, path string) error { return os.WriteFile(path, []byte("PROMPT"), 0o600) }
+ t.Cleanup(func() { editor.RunEditor = oldRun })
+ t.Setenv("HEXAI_EDITOR", "dummy")
- // Provide stdin selection
- var stdout, stderr bytes.Buffer
- if err := Run(context.Background(), nil, bytes.NewBufferString("SELECTION"), &stdout, &stderr); err != nil {
- t.Fatalf("Run: %v", err)
- }
- if stdout.String() == "" { t.Fatalf("expected some output") }
+ // Provide stdin selection
+ var stdout, stderr bytes.Buffer
+ if err := Run(context.Background(), nil, bytes.NewBufferString("SELECTION"), &stdout, &stderr); err != nil {
+ t.Fatalf("Run: %v", err)
+ }
+ if stdout.String() == "" {
+ t.Fatalf("expected some output")
+ }
}
func TestRun_WithArgs_DoesNotOpenEditor(t *testing.T) {
- // Provide args; still use fake client
- oldNew := newClientFromApp
- newClientFromApp = func(_ appconfig.App) (llm.Client, error) { return cliFake{}, nil }
- t.Cleanup(func(){ newClientFromApp = oldNew })
- // Stub editor and detect if called (should not be)
- called := false
- oldRun := editor.RunEditor
- editor.RunEditor = func(_ string, _ string) error { called = true; return nil }
- t.Cleanup(func(){ editor.RunEditor = oldRun })
- var stdout, stderr bytes.Buffer
- if err := Run(context.Background(), []string{"ARG"}, bytes.NewBufferString("SEL"), &stdout, &stderr); err != nil { t.Fatalf("Run: %v", err) }
- if called { t.Fatalf("editor should not be invoked when args provided") }
+ // Provide args; still use fake client
+ oldNew := newClientFromApp
+ newClientFromApp = func(_ appconfig.App) (llm.Client, error) { return cliFake{}, nil }
+ t.Cleanup(func() { newClientFromApp = oldNew })
+ // Stub editor and detect if called (should not be)
+ called := false
+ oldRun := editor.RunEditor
+ editor.RunEditor = func(_ string, _ string) error { called = true; return nil }
+ t.Cleanup(func() { editor.RunEditor = oldRun })
+ var stdout, stderr bytes.Buffer
+ if err := Run(context.Background(), []string{"ARG"}, bytes.NewBufferString("SEL"), &stdout, &stderr); err != nil {
+ t.Fatalf("Run: %v", err)
+ }
+ if called {
+ t.Fatalf("editor should not be invoked when args provided")
+ }
}
diff --git a/internal/hexaicli/run_more_test.go b/internal/hexaicli/run_more_test.go
index ae29563..bd88d56 100644
--- a/internal/hexaicli/run_more_test.go
+++ b/internal/hexaicli/run_more_test.go
@@ -1,44 +1,47 @@
package hexaicli
import (
- "bytes"
- "context"
- "testing"
+ "bytes"
+ "context"
+ "testing"
- "codeberg.org/snonux/hexai/internal/appconfig"
- "codeberg.org/snonux/hexai/internal/llm"
+ "codeberg.org/snonux/hexai/internal/appconfig"
+ "codeberg.org/snonux/hexai/internal/llm"
)
type streamClient struct{}
func (streamClient) Chat(ctx context.Context, msgs []llm.Message, opts ...llm.RequestOption) (string, error) {
- return "X", nil
+ return "X", nil
}
func (streamClient) Name() string { return "fake" }
func (streamClient) DefaultModel() string { return "m" }
func (streamClient) ChatStream(ctx context.Context, msgs []llm.Message, onDelta func(string), opts ...llm.RequestOption) error {
- onDelta("A")
- onDelta("B")
- return nil
+ onDelta("A")
+ onDelta("B")
+ return nil
}
func TestRunChat_Streaming(t *testing.T) {
- var out, errw bytes.Buffer
- input := "hello"
- msgs := []llm.Message{{Role: "user", Content: input}}
- if err := runChat(context.Background(), streamClient{}, msgs, input, &out, &errw); err != nil {
- t.Fatalf("runChat failed: %v", err)
- }
- if out.String() != "AB" {
- t.Fatalf("unexpected stream output: %q", out.String())
- }
+ var out, errw bytes.Buffer
+ input := "hello"
+ msgs := []llm.Message{{Role: "user", Content: input}}
+ if err := runChat(context.Background(), streamClient{}, msgs, input, &out, &errw); err != nil {
+ t.Fatalf("runChat failed: %v", err)
+ }
+ if out.String() != "AB" {
+ t.Fatalf("unexpected stream output: %q", out.String())
+ }
}
func TestBuildMessagesFromConfig(t *testing.T) {
- cfg := appconfig.App{PromptCLIDefaultSystem: "DEF", PromptCLIExplainSystem: "EXP"}
- msgs := buildMessagesFromConfig(cfg, "tell me")
- if msgs[0].Content != "DEF" { t.Fatalf("default system wrong: %q", msgs[0].Content) }
- msgs = buildMessagesFromConfig(cfg, "please explain")
- if msgs[0].Content != "EXP" { t.Fatalf("explain system wrong: %q", msgs[0].Content) }
+ cfg := appconfig.App{PromptCLIDefaultSystem: "DEF", PromptCLIExplainSystem: "EXP"}
+ msgs := buildMessagesFromConfig(cfg, "tell me")
+ if msgs[0].Content != "DEF" {
+ t.Fatalf("default system wrong: %q", msgs[0].Content)
+ }
+ msgs = buildMessagesFromConfig(cfg, "please explain")
+ if msgs[0].Content != "EXP" {
+ t.Fatalf("explain system wrong: %q", msgs[0].Content)
+ }
}
-
diff --git a/internal/hexailsp/run_more_test.go b/internal/hexailsp/run_more_test.go
index 01baa96..00b79c1 100644
--- a/internal/hexailsp/run_more_test.go
+++ b/internal/hexailsp/run_more_test.go
@@ -1,42 +1,43 @@
package hexailsp
import (
- "bytes"
- "io"
- "log"
- "testing"
+ "bytes"
+ "io"
+ "log"
+ "testing"
- "codeberg.org/snonux/hexai/internal/appconfig"
- "codeberg.org/snonux/hexai/internal/lsp"
+ "codeberg.org/snonux/hexai/internal/appconfig"
+ "codeberg.org/snonux/hexai/internal/lsp"
)
type recRunner struct{ ran bool }
+
func (r *recRunner) Run() error { r.ran = true; return nil }
func TestRunWithFactory_BuildsOptionsAndClient(t *testing.T) {
- var captured lsp.ServerOptions
- factory := func(r io.Reader, w io.Writer, logger *log.Logger, opts lsp.ServerOptions) ServerRunner {
- captured = opts
- return &recRunner{}
- }
- var in, out bytes.Buffer
- logger := log.New(&out, "", 0)
- cfg := appconfig.Load(logger)
- // Use ollama to avoid API keys
- cfg.Provider = "ollama"
- cfg.MaxTokens = 123
- cfg.PromptCodeActionRewriteSystem = "RSYS"
- cfg.PromptCodeActionRewriteUser = "RUSER"
- if err := RunWithFactory("", &in, &out, logger, cfg, nil, factory); err != nil {
- t.Fatalf("RunWithFactory error: %v", err)
- }
- if captured.MaxTokens != 123 {
- t.Fatalf("opts not applied: %+v", captured)
- }
- if captured.PromptRewriteSystem != "RSYS" || captured.PromptRewriteUser != "RUSER" {
- t.Fatalf("prompts not mapped: %+v", captured)
- }
- if captured.Client == nil {
- t.Fatalf("expected client to be constructed")
- }
+ var captured lsp.ServerOptions
+ factory := func(r io.Reader, w io.Writer, logger *log.Logger, opts lsp.ServerOptions) ServerRunner {
+ captured = opts
+ return &recRunner{}
+ }
+ var in, out bytes.Buffer
+ logger := log.New(&out, "", 0)
+ cfg := appconfig.Load(logger)
+ // Use ollama to avoid API keys
+ cfg.Provider = "ollama"
+ cfg.MaxTokens = 123
+ cfg.PromptCodeActionRewriteSystem = "RSYS"
+ cfg.PromptCodeActionRewriteUser = "RUSER"
+ if err := RunWithFactory("", &in, &out, logger, cfg, nil, factory); err != nil {
+ t.Fatalf("RunWithFactory error: %v", err)
+ }
+ if captured.MaxTokens != 123 {
+ t.Fatalf("opts not applied: %+v", captured)
+ }
+ if captured.PromptRewriteSystem != "RSYS" || captured.PromptRewriteUser != "RUSER" {
+ t.Fatalf("prompts not mapped: %+v", captured)
+ }
+ if captured.Client == nil {
+ t.Fatalf("expected client to be constructed")
+ }
}
diff --git a/internal/llm/provider_more2_test.go b/internal/llm/provider_more2_test.go
index fd9b2c2..465be82 100644
--- a/internal/llm/provider_more2_test.go
+++ b/internal/llm/provider_more2_test.go
@@ -3,11 +3,10 @@ package llm
import "testing"
func TestNewFromConfig_Copilot(t *testing.T) {
- t.Setenv("COPILOT_API_KEY", "x")
- cfg := Config{Provider: "copilot", CopilotModel: "small"}
- c, err := NewFromConfig(cfg, "", "x")
- if err != nil || c == nil {
- t.Fatalf("copilot provider failed: %v %v", c, err)
- }
+ t.Setenv("COPILOT_API_KEY", "x")
+ cfg := Config{Provider: "copilot", CopilotModel: "small"}
+ c, err := NewFromConfig(cfg, "", "x")
+ if err != nil || c == nil {
+ t.Fatalf("copilot provider failed: %v %v", c, err)
+ }
}
-
diff --git a/internal/llmutils/client.go b/internal/llmutils/client.go
index ae545c5..9bd39ee 100644
--- a/internal/llmutils/client.go
+++ b/internal/llmutils/client.go
@@ -1,35 +1,34 @@
package llmutils
import (
- "os"
- "strings"
+ "os"
+ "strings"
- "codeberg.org/snonux/hexai/internal/appconfig"
- "codeberg.org/snonux/hexai/internal/llm"
+ "codeberg.org/snonux/hexai/internal/appconfig"
+ "codeberg.org/snonux/hexai/internal/llm"
)
// NewClientFromApp builds an llm.Client using app config and environment keys.
func NewClientFromApp(cfg appconfig.App) (llm.Client, error) {
- llmCfg := llm.Config{
- Provider: cfg.Provider,
- OpenAIBaseURL: cfg.OpenAIBaseURL,
- OpenAIModel: cfg.OpenAIModel,
- OpenAITemperature: cfg.OpenAITemperature,
- OllamaBaseURL: cfg.OllamaBaseURL,
- OllamaModel: cfg.OllamaModel,
- OllamaTemperature: cfg.OllamaTemperature,
- CopilotBaseURL: cfg.CopilotBaseURL,
- CopilotModel: cfg.CopilotModel,
- CopilotTemperature: cfg.CopilotTemperature,
- }
- oaKey := os.Getenv("HEXAI_OPENAI_API_KEY")
- if strings.TrimSpace(oaKey) == "" {
- oaKey = os.Getenv("OPENAI_API_KEY")
- }
- cpKey := os.Getenv("HEXAI_COPILOT_API_KEY")
- if strings.TrimSpace(cpKey) == "" {
- cpKey = os.Getenv("COPILOT_API_KEY")
- }
- return llm.NewFromConfig(llmCfg, oaKey, cpKey)
+ llmCfg := llm.Config{
+ Provider: cfg.Provider,
+ OpenAIBaseURL: cfg.OpenAIBaseURL,
+ OpenAIModel: cfg.OpenAIModel,
+ OpenAITemperature: cfg.OpenAITemperature,
+ OllamaBaseURL: cfg.OllamaBaseURL,
+ OllamaModel: cfg.OllamaModel,
+ OllamaTemperature: cfg.OllamaTemperature,
+ CopilotBaseURL: cfg.CopilotBaseURL,
+ CopilotModel: cfg.CopilotModel,
+ CopilotTemperature: cfg.CopilotTemperature,
+ }
+ oaKey := os.Getenv("HEXAI_OPENAI_API_KEY")
+ if strings.TrimSpace(oaKey) == "" {
+ oaKey = os.Getenv("OPENAI_API_KEY")
+ }
+ cpKey := os.Getenv("HEXAI_COPILOT_API_KEY")
+ if strings.TrimSpace(cpKey) == "" {
+ cpKey = os.Getenv("COPILOT_API_KEY")
+ }
+ return llm.NewFromConfig(llmCfg, oaKey, cpKey)
}
-
diff --git a/internal/llmutils/client_test.go b/internal/llmutils/client_test.go
index 9bb7ea2..2e20db3 100644
--- a/internal/llmutils/client_test.go
+++ b/internal/llmutils/client_test.go
@@ -1,28 +1,27 @@
package llmutils
import (
- "os"
- "testing"
+ "os"
+ "testing"
- "codeberg.org/snonux/hexai/internal/appconfig"
+ "codeberg.org/snonux/hexai/internal/appconfig"
)
func TestNewClientFromApp_Ollama(t *testing.T) {
- cfg := appconfig.App{Provider: "ollama"}
- c, err := NewClientFromApp(cfg)
- if err != nil || c == nil {
- t.Fatalf("ollama client failed: %v %v", c, err)
- }
+ cfg := appconfig.App{Provider: "ollama"}
+ c, err := NewClientFromApp(cfg)
+ if err != nil || c == nil {
+ t.Fatalf("ollama client failed: %v %v", c, err)
+ }
}
func TestNewClientFromApp_OpenAI_WithKey(t *testing.T) {
- t.Setenv("HEXAI_OPENAI_API_KEY", "test-key")
- cfg := appconfig.App{Provider: "openai"}
- c, err := NewClientFromApp(cfg)
- if err != nil || c == nil {
- t.Fatalf("openai client failed: %v %v", c, err)
- }
- // ensure env override precedence
- _ = os.Unsetenv("OPENAI_API_KEY")
+ t.Setenv("HEXAI_OPENAI_API_KEY", "test-key")
+ cfg := appconfig.App{Provider: "openai"}
+ c, err := NewClientFromApp(cfg)
+ if err != nil || c == nil {
+ t.Fatalf("openai client failed: %v %v", c, err)
+ }
+ // ensure env override precedence
+ _ = os.Unsetenv("OPENAI_API_KEY")
}
-
diff --git a/internal/logging/logging_test.go b/internal/logging/logging_test.go
index 716781e..31603f0 100644
--- a/internal/logging/logging_test.go
+++ b/internal/logging/logging_test.go
@@ -1,24 +1,23 @@
package logging
import (
- "bytes"
- "log"
- "testing"
+ "bytes"
+ "log"
+ "testing"
)
func TestPreviewAndLogfAndChatLogger(t *testing.T) {
- var buf bytes.Buffer
- Bind(log.New(&buf, "", 0))
- SetLogPreviewLimit(3)
- if got := PreviewForLog("abcdef"); got != "abc…" {
- t.Fatalf("preview wrong: %q", got)
- }
- Logf("unit ", "hello %s", "x")
- cl := NewChatLogger("p")
- cl.LogStart(true, "m", 0.5, 100, []string{"stop"}, []struct{ Role, Content string }{{"user", "hello"}})
- out := buf.String()
- if out == "" || !bytes.Contains([]byte(out), []byte("start")) {
- t.Fatalf("expected logged content, got %q", out)
- }
+ var buf bytes.Buffer
+ Bind(log.New(&buf, "", 0))
+ SetLogPreviewLimit(3)
+ if got := PreviewForLog("abcdef"); got != "abc…" {
+ t.Fatalf("preview wrong: %q", got)
+ }
+ Logf("unit ", "hello %s", "x")
+ cl := NewChatLogger("p")
+ cl.LogStart(true, "m", 0.5, 100, []string{"stop"}, []struct{ Role, Content string }{{"user", "hello"}})
+ out := buf.String()
+ if out == "" || !bytes.Contains([]byte(out), []byte("start")) {
+ t.Fatalf("expected logged content, got %q", out)
+ }
}
-
diff --git a/internal/lsp/codeaction_gotest_int_test.go b/internal/lsp/codeaction_gotest_int_test.go
index 6bb1c45..04a73e0 100644
--- a/internal/lsp/codeaction_gotest_int_test.go
+++ b/internal/lsp/codeaction_gotest_int_test.go
@@ -1,26 +1,25 @@
package lsp
import (
- "os"
- "path/filepath"
- "testing"
+ "os"
+ "path/filepath"
+ "testing"
)
func TestResolveGoTest_CreatesTestFile(t *testing.T) {
- dir := t.TempDir()
- src := filepath.Join(dir, "x.go")
- if err := os.WriteFile(src, []byte("package x\n\nfunc Sum(a,b int) int { return a+b }\n"), 0o644); err != nil {
- t.Fatalf("write: %v", err)
- }
- s := &Server{} // minimal server with nil llmClient to trigger stub
- uri := "file://" + src
- we, jumpURI, jumpRange, ok := s.resolveGoTest(uri, Position{Line: 2})
- if !ok || jumpURI == "" || jumpRange.Start.Line < 0 {
- t.Fatalf("resolveGoTest failed: ok=%v uri=%q range=%v", ok, jumpURI, jumpRange)
- }
- // Expect documentChanges to include a create and an edit
- if len(we.DocumentChanges) == 0 && len(we.Changes) == 0 {
- t.Fatalf("expected edits to create or append test file: %+v", we)
- }
+ dir := t.TempDir()
+ src := filepath.Join(dir, "x.go")
+ if err := os.WriteFile(src, []byte("package x\n\nfunc Sum(a,b int) int { return a+b }\n"), 0o644); err != nil {
+ t.Fatalf("write: %v", err)
+ }
+ s := &Server{} // minimal server with nil llmClient to trigger stub
+ uri := "file://" + src
+ we, jumpURI, jumpRange, ok := s.resolveGoTest(uri, Position{Line: 2})
+ if !ok || jumpURI == "" || jumpRange.Start.Line < 0 {
+ t.Fatalf("resolveGoTest failed: ok=%v uri=%q range=%v", ok, jumpURI, jumpRange)
+ }
+ // Expect documentChanges to include a create and an edit
+ if len(we.DocumentChanges) == 0 && len(we.Changes) == 0 {
+ t.Fatalf("expected edits to create or append test file: %+v", we)
+ }
}
-
diff --git a/internal/lsp/coverage_add_test.go b/internal/lsp/coverage_add_test.go
index f4b0f00..7701a5e 100644
--- a/internal/lsp/coverage_add_test.go
+++ b/internal/lsp/coverage_add_test.go
@@ -1,103 +1,103 @@
package lsp
import (
- "encoding/json"
- "testing"
+ "encoding/json"
+ "testing"
)
func TestInParamListAndComputeWordStart(t *testing.T) {
- line := "func add(a int, b int) int { return a + b }"
- if !inParamList(line, 15) { // inside params
- t.Fatalf("expected inParamList true")
- }
- if inParamList("not a func", 3) {
- t.Fatalf("expected inParamList false")
- }
- if n := computeWordStart("helloWorld", 10); n != 0 {
- t.Fatalf("computeWordStart wrong: %d", n)
- }
+ line := "func add(a int, b int) int { return a + b }"
+ if !inParamList(line, 15) { // inside params
+ t.Fatalf("expected inParamList true")
+ }
+ if inParamList("not a func", 3) {
+ t.Fatalf("expected inParamList false")
+ }
+ if n := computeWordStart("helloWorld", 10); n != 0 {
+ t.Fatalf("computeWordStart wrong: %d", n)
+ }
}
func TestStripInlineAndLabel(t *testing.T) {
- if got := stripInlineCodeSpan("`abc`def"); got != "abc" {
- t.Fatalf("stripInlineCodeSpan: %q", got)
- }
- if lbl := labelForCompletion("First line\nSecond", "fir"); lbl != "First line" {
- t.Fatalf("labelForCompletion: %q", lbl)
- }
- if lbl := labelForCompletion("Other", "zzz"); lbl != "zzz" {
- t.Fatalf("label fallback: %q", lbl)
- }
+ if got := stripInlineCodeSpan("`abc`def"); got != "abc" {
+ t.Fatalf("stripInlineCodeSpan: %q", got)
+ }
+ if lbl := labelForCompletion("First line\nSecond", "fir"); lbl != "First line" {
+ t.Fatalf("labelForCompletion: %q", lbl)
+ }
+ if lbl := labelForCompletion("Other", "zzz"); lbl != "zzz" {
+ t.Fatalf("label fallback: %q", lbl)
+ }
}
func TestRangeComparators(t *testing.T) {
- a := Range{Start: Position{Line: 1, Character: 5}, End: Position{Line: 3, Character: 0}}
- b := Range{Start: Position{Line: 2, Character: 0}, End: Position{Line: 4, Character: 0}}
- if !rangesOverlap(a, b) {
- t.Fatalf("expected overlap")
- }
- if !lessPos(Position{Line: 1, Character: 0}, Position{Line: 1, Character: 1}) {
- t.Fatalf("lessPos")
- }
- if !greaterPos(Position{Line: 2, Character: 0}, Position{Line: 1, Character: 10}) {
- t.Fatalf("greaterPos")
- }
- if !isIdentChar('A') || isIdentChar('-') {
- t.Fatalf("isIdentChar")
- }
+ a := Range{Start: Position{Line: 1, Character: 5}, End: Position{Line: 3, Character: 0}}
+ b := Range{Start: Position{Line: 2, Character: 0}, End: Position{Line: 4, Character: 0}}
+ if !rangesOverlap(a, b) {
+ t.Fatalf("expected overlap")
+ }
+ if !lessPos(Position{Line: 1, Character: 0}, Position{Line: 1, Character: 1}) {
+ t.Fatalf("lessPos")
+ }
+ if !greaterPos(Position{Line: 2, Character: 0}, Position{Line: 1, Character: 10}) {
+ t.Fatalf("greaterPos")
+ }
+ if !isIdentChar('A') || isIdentChar('-') {
+ t.Fatalf("isIdentChar")
+ }
}
func TestFindGoFunctionAtLine_NoBody(t *testing.T) {
- lines := []string{"func X(a int)", "// comment"}
- start, end := findGoFunctionAtLine(lines, 0)
- if start != 0 || end != 0 {
- t.Fatalf("expected single-line prototype, got %d,%d", start, end)
- }
+ lines := []string{"func X(a int)", "// comment"}
+ start, end := findGoFunctionAtLine(lines, 0)
+ if start != 0 || end != 0 {
+ t.Fatalf("expected single-line prototype, got %d,%d", start, end)
+ }
}
func TestLineHasInlinePrompt(t *testing.T) {
- if !lineHasInlinePrompt(">do>") {
- t.Fatalf("expected inline prompt")
- }
+ if !lineHasInlinePrompt(">do>") {
+ t.Fatalf("expected inline prompt")
+ }
}
func TestDiagnosticsInRange_Overlap(t *testing.T) {
- s := &Server{}
- ctx := CodeActionContext{Diagnostics: []Diagnostic{{
- Range: Range{Start: Position{Line: 10, Character: 0}, End: Position{Line: 12, Character: 0}},
- Message: "x",
- }}}
- raw, _ := json.Marshal(ctx)
- sel := Range{Start: Position{Line: 11, Character: 0}, End: Position{Line: 11, Character: 1}}
- out := s.diagnosticsInRange(raw, sel)
- if len(out) != 1 {
- t.Fatalf("expected 1 diag overlap, got %d", len(out))
- }
- // no diagnostics
- var empty json.RawMessage
- if o2 := s.diagnosticsInRange(empty, sel); len(o2) != 0 {
- t.Fatalf("expected 0 with empty ctx")
- }
+ s := &Server{}
+ ctx := CodeActionContext{Diagnostics: []Diagnostic{{
+ Range: Range{Start: Position{Line: 10, Character: 0}, End: Position{Line: 12, Character: 0}},
+ Message: "x",
+ }}}
+ raw, _ := json.Marshal(ctx)
+ sel := Range{Start: Position{Line: 11, Character: 0}, End: Position{Line: 11, Character: 1}}
+ out := s.diagnosticsInRange(raw, sel)
+ if len(out) != 1 {
+ t.Fatalf("expected 1 diag overlap, got %d", len(out))
+ }
+ // no diagnostics
+ var empty json.RawMessage
+ if o2 := s.diagnosticsInRange(empty, sel); len(o2) != 0 {
+ t.Fatalf("expected 0 with empty ctx")
+ }
}
func TestIndentHelpersAndPromptRemoval(t *testing.T) {
- if ind := leadingIndent("\t ab"); ind == "" {
- t.Fatalf("expected indent")
- }
- if out := applyIndent(" ", "x\ny"); out != " x\n y" {
- t.Fatalf("applyIndent: %q", out)
- }
- // double-open trigger removes whole line
- edits := promptRemovalEditsForLine(">>ask>", 3)
- if len(edits) != 1 || edits[0].Range.Start.Line != 3 {
- t.Fatalf("unexpected edits: %#v", edits)
- }
- // temporarily switch to semicolon tags and test collection
- oldOpen, oldClose := inlineOpenChar, inlineCloseChar
- inlineOpenChar, inlineCloseChar = ';', ';'
- t.Cleanup(func() { inlineOpenChar, inlineCloseChar = oldOpen, oldClose })
- edits2 := collectSemicolonMarkers("pre;do;post", 1)
- if len(edits2) != 1 {
- t.Fatalf("expected one semicolon edit, got %#v", edits2)
- }
+ if ind := leadingIndent("\t ab"); ind == "" {
+ t.Fatalf("expected indent")
+ }
+ if out := applyIndent(" ", "x\ny"); out != " x\n y" {
+ t.Fatalf("applyIndent: %q", out)
+ }
+ // double-open trigger removes whole line
+ edits := promptRemovalEditsForLine(">>ask>", 3)
+ if len(edits) != 1 || edits[0].Range.Start.Line != 3 {
+ t.Fatalf("unexpected edits: %#v", edits)
+ }
+ // temporarily switch to semicolon tags and test collection
+ oldOpen, oldClose := inlineOpenChar, inlineCloseChar
+ inlineOpenChar, inlineCloseChar = ';', ';'
+ t.Cleanup(func() { inlineOpenChar, inlineCloseChar = oldOpen, oldClose })
+ edits2 := collectSemicolonMarkers("pre;do;post", 1)
+ if len(edits2) != 1 {
+ t.Fatalf("expected one semicolon edit, got %#v", edits2)
+ }
}
diff --git a/internal/lsp/handlers.go b/internal/lsp/handlers.go
index 420a694..e85065b 100644
--- a/internal/lsp/handlers.go
+++ b/internal/lsp/handlers.go
@@ -2,9 +2,9 @@
package lsp
import (
- "encoding/json"
- "fmt"
- "strings"
+ "encoding/json"
+ "fmt"
+ "strings"
)
func (s *Server) handle(req Request) {
@@ -26,14 +26,14 @@ func (s *Server) handle(req Request) {
// a line comment (//, #, --). Returns the instruction string and the selection
// text cleaned of the matched instruction marker or comment.
func instructionFromSelection(sel string) (string, string) {
- lines := splitLines(sel)
- for idx, line := range lines {
- if instr, cleaned, ok := findFirstInstructionInLine(line); ok && strings.TrimSpace(instr) != "" {
- lines[idx] = cleaned
- return instr, strings.Join(lines, "\n")
- }
- }
- return "", sel
+ lines := splitLines(sel)
+ for idx, line := range lines {
+ if instr, cleaned, ok := findFirstInstructionInLine(line); ok && strings.TrimSpace(instr) != "" {
+ lines[idx] = cleaned
+ return instr, strings.Join(lines, "\n")
+ }
+ }
+ return "", sel
}
// findFirstInstructionInLine returns the earliest instruction marker on the
@@ -46,51 +46,51 @@ func instructionFromSelection(sel string) (string, string) {
// - # text
// - -- text
func findFirstInstructionInLine(line string) (instr string, cleaned string, ok bool) {
- type cand struct {
- start, end int
- text string
- }
- cands := []cand{}
- if t, l, r, ok := findStrictInlineTag(line); ok {
- cands = append(cands, cand{start: l, end: r, text: t})
- }
- if i := strings.Index(line, "/*"); i >= 0 {
- if j := strings.Index(line[i+2:], "*/"); j >= 0 {
- start := i
- end := i + 2 + j + 2
- text := strings.TrimSpace(line[i+2 : i+2+j])
- cands = append(cands, cand{start: start, end: end, text: text})
- }
- }
- if i := strings.Index(line, "<!--"); i >= 0 {
- if j := strings.Index(line[i+4:], "-->"); j >= 0 {
- start := i
- end := i + 4 + j + 3
- text := strings.TrimSpace(line[i+4 : i+4+j])
- cands = append(cands, cand{start: start, end: end, text: text})
- }
- }
- if i := strings.Index(line, "//"); i >= 0 {
- cands = append(cands, cand{start: i, end: len(line), text: strings.TrimSpace(line[i+2:])})
- }
- if i := strings.Index(line, "#"); i >= 0 {
- cands = append(cands, cand{start: i, end: len(line), text: strings.TrimSpace(line[i+1:])})
- }
- if i := strings.Index(line, "--"); i >= 0 {
- cands = append(cands, cand{start: i, end: len(line), text: strings.TrimSpace(line[i+2:])})
- }
- if len(cands) == 0 {
- return "", line, false
- }
- // pick earliest start index
- best := cands[0]
- for _, c := range cands[1:] {
- if c.start >= 0 && (best.start < 0 || c.start < best.start) {
- best = c
- }
- }
- cleaned = strings.TrimRight(line[:best.start]+line[best.end:], " \t")
- return best.text, cleaned, true
+ type cand struct {
+ start, end int
+ text string
+ }
+ cands := []cand{}
+ if t, l, r, ok := findStrictInlineTag(line); ok {
+ cands = append(cands, cand{start: l, end: r, text: t})
+ }
+ if i := strings.Index(line, "/*"); i >= 0 {
+ if j := strings.Index(line[i+2:], "*/"); j >= 0 {
+ start := i
+ end := i + 2 + j + 2
+ text := strings.TrimSpace(line[i+2 : i+2+j])
+ cands = append(cands, cand{start: start, end: end, text: text})
+ }
+ }
+ if i := strings.Index(line, "<!--"); i >= 0 {
+ if j := strings.Index(line[i+4:], "-->"); j >= 0 {
+ start := i
+ end := i + 4 + j + 3
+ text := strings.TrimSpace(line[i+4 : i+4+j])
+ cands = append(cands, cand{start: start, end: end, text: text})
+ }
+ }
+ if i := strings.Index(line, "//"); i >= 0 {
+ cands = append(cands, cand{start: i, end: len(line), text: strings.TrimSpace(line[i+2:])})
+ }
+ if i := strings.Index(line, "#"); i >= 0 {
+ cands = append(cands, cand{start: i, end: len(line), text: strings.TrimSpace(line[i+1:])})
+ }
+ if i := strings.Index(line, "--"); i >= 0 {
+ cands = append(cands, cand{start: i, end: len(line), text: strings.TrimSpace(line[i+2:])})
+ }
+ if len(cands) == 0 {
+ return "", line, false
+ }
+ // pick earliest start index
+ best := cands[0]
+ for _, c := range cands[1:] {
+ if c.start >= 0 && (best.start < 0 || c.start < best.start) {
+ best = c
+ }
+ }
+ cleaned = strings.TrimRight(line[:best.start]+line[best.end:], " \t")
+ return best.text, cleaned, true
}
// diagnosticsInRange parses the CodeAction context and returns diagnostics
diff --git a/internal/lsp/handlers_codeaction.go b/internal/lsp/handlers_codeaction.go
index d8dba38..e1c2720 100644
--- a/internal/lsp/handlers_codeaction.go
+++ b/internal/lsp/handlers_codeaction.go
@@ -31,40 +31,40 @@ func (s *Server) handleCodeAction(req Request) {
}
sel := extractRangeText(d, p.Range)
- actions := make([]CodeAction, 0, 5)
+ actions := make([]CodeAction, 0, 5)
if a := s.buildRewriteCodeAction(p, sel); a != nil {
actions = append(actions, *a)
}
if a := s.buildDiagnosticsCodeAction(p, sel); a != nil {
actions = append(actions, *a)
}
- if a := s.buildDocumentCodeAction(p, sel); a != nil {
- actions = append(actions, *a)
- }
- if a := s.buildGoUnitTestCodeAction(p); a != nil {
- actions = append(actions, *a)
- }
- if a := s.buildSimplifyCodeAction(p, sel); a != nil {
- actions = append(actions, *a)
- }
+ if a := s.buildDocumentCodeAction(p, sel); a != nil {
+ actions = append(actions, *a)
+ }
+ if a := s.buildGoUnitTestCodeAction(p); a != nil {
+ actions = append(actions, *a)
+ }
+ if a := s.buildSimplifyCodeAction(p, sel); a != nil {
+ actions = append(actions, *a)
+ }
if len(req.ID) != 0 {
s.reply(req.ID, actions, nil)
}
}
func (s *Server) buildSimplifyCodeAction(p CodeActionParams, sel string) *CodeAction {
- if strings.TrimSpace(sel) == "" {
- return nil
- }
- payload := struct {
- Type string `json:"type"`
- URI string `json:"uri"`
- Range Range `json:"range"`
- Selection string `json:"selection"`
- }{Type: "simplify", URI: p.TextDocument.URI, Range: p.Range, Selection: sel}
- raw, _ := json.Marshal(payload)
- ca := CodeAction{Title: "Hexai: simplify and improve", Kind: "refactor", Data: raw}
- return &ca
+ if strings.TrimSpace(sel) == "" {
+ return nil
+ }
+ payload := struct {
+ Type string `json:"type"`
+ URI string `json:"uri"`
+ Range Range `json:"range"`
+ Selection string `json:"selection"`
+ }{Type: "simplify", URI: p.TextDocument.URI, Range: p.Range, Selection: sel}
+ raw, _ := json.Marshal(payload)
+ ca := CodeAction{Title: "Hexai: simplify and improve", Kind: "refactor", Data: raw}
+ return &ca
}
func (s *Server) buildRewriteCodeAction(p CodeActionParams, sel string) *CodeAction {
@@ -115,7 +115,7 @@ func (s *Server) resolveCodeAction(ca CodeAction) (CodeAction, bool) {
if err := json.Unmarshal(ca.Data, &payload); err != nil {
return ca, false
}
- switch payload.Type {
+ switch payload.Type {
case "rewrite":
sys := s.promptRewriteSystem
user := renderTemplate(s.promptRewriteUser, map[string]string{"instruction": payload.Instruction, "selection": payload.Selection})
@@ -123,7 +123,7 @@ func (s *Server) resolveCodeAction(ca CodeAction) (CodeAction, bool) {
defer cancel()
messages := []llm.Message{{Role: "system", Content: sys}, {Role: "user", Content: user}}
opts := s.llmRequestOpts()
- if text, err := s.llmClient.Chat(ctx, messages, opts...); err == nil {
+ if text, err := s.chatWithStats(ctx, messages, opts...); err == nil {
if out := stripCodeFences(strings.TrimSpace(text)); out != "" {
edit := WorkspaceEdit{Changes: map[string][]TextEdit{payload.URI: {{Range: payload.Range, NewText: out}}}}
ca.Edit = &edit
@@ -148,7 +148,7 @@ func (s *Server) resolveCodeAction(ca CodeAction) (CodeAction, bool) {
defer cancel()
messages := []llm.Message{{Role: "system", Content: sys}, {Role: "user", Content: user}}
opts := s.llmRequestOpts()
- if text, err := s.llmClient.Chat(ctx, messages, opts...); err == nil {
+ if text, err := s.chatWithStats(ctx, messages, opts...); err == nil {
if out := stripCodeFences(strings.TrimSpace(text)); out != "" {
edit := WorkspaceEdit{Changes: map[string][]TextEdit{payload.URI: {{Range: payload.Range, NewText: out}}}}
ca.Edit = &edit
@@ -164,7 +164,7 @@ func (s *Server) resolveCodeAction(ca CodeAction) (CodeAction, bool) {
defer cancel()
messages := []llm.Message{{Role: "system", Content: sys}, {Role: "user", Content: user}}
opts := s.llmRequestOpts()
- if text, err := s.llmClient.Chat(ctx, messages, opts...); err == nil {
+ if text, err := s.chatWithStats(ctx, messages, opts...); err == nil {
if out := stripCodeFences(strings.TrimSpace(text)); out != "" {
edit := WorkspaceEdit{Changes: map[string][]TextEdit{payload.URI: {{Range: payload.Range, NewText: out}}}}
ca.Edit = &edit
@@ -173,34 +173,34 @@ func (s *Server) resolveCodeAction(ca CodeAction) (CodeAction, bool) {
} else {
logging.Logf("lsp ", "codeAction document llm error: %v", err)
}
- case "go_test":
- if edit, jumpURI, jumpRange, ok := s.resolveGoTest(payload.URI, payload.Range.Start); ok {
- ca.Edit = &edit
- // After edit is applied, ask client to jump to new test function
- ca.Command = &Command{Title: "Jump to generated test", Command: "hexai.showDocument", Arguments: []any{jumpURI, jumpRange}}
- // Also send a server-initiated showDocument shortly after resolve to cover
- // clients that do not execute commands from code actions.
- s.deferShowDocument(jumpURI, jumpRange)
- return ca, true
- }
- case "simplify":
- sys := s.promptRewriteSystem
- // Reuse rewrite user template with a fixed instruction
- user := renderTemplate(s.promptRewriteUser, map[string]string{"instruction": "Simplify and improve the code while preserving behavior. Return only the improved code.", "selection": payload.Selection})
- ctx, cancel := context.WithTimeout(context.Background(), 10*time.Second)
- defer cancel()
- messages := []llm.Message{{Role: "system", Content: sys}, {Role: "user", Content: user}}
- opts := s.llmRequestOpts()
- if text, err := s.llmClient.Chat(ctx, messages, opts...); err == nil {
- if out := stripCodeFences(strings.TrimSpace(text)); out != "" {
- edit := WorkspaceEdit{Changes: map[string][]TextEdit{payload.URI: {{Range: payload.Range, NewText: out}}}}
- ca.Edit = &edit
- return ca, true
- }
- } else {
- logging.Logf("lsp ", "codeAction simplify llm error: %v", err)
- }
- }
+ case "go_test":
+ if edit, jumpURI, jumpRange, ok := s.resolveGoTest(payload.URI, payload.Range.Start); ok {
+ ca.Edit = &edit
+ // After edit is applied, ask client to jump to new test function
+ ca.Command = &Command{Title: "Jump to generated test", Command: "hexai.showDocument", Arguments: []any{jumpURI, jumpRange}}
+ // Also send a server-initiated showDocument shortly after resolve to cover
+ // clients that do not execute commands from code actions.
+ s.deferShowDocument(jumpURI, jumpRange)
+ return ca, true
+ }
+ case "simplify":
+ sys := s.promptRewriteSystem
+ // Reuse rewrite user template with a fixed instruction
+ user := renderTemplate(s.promptRewriteUser, map[string]string{"instruction": "Simplify and improve the code while preserving behavior. Return only the improved code.", "selection": payload.Selection})
+ ctx, cancel := context.WithTimeout(context.Background(), 10*time.Second)
+ defer cancel()
+ messages := []llm.Message{{Role: "system", Content: sys}, {Role: "user", Content: user}}
+ opts := s.llmRequestOpts()
+ if text, err := s.chatWithStats(ctx, messages, opts...); err == nil {
+ if out := stripCodeFences(strings.TrimSpace(text)); out != "" {
+ edit := WorkspaceEdit{Changes: map[string][]TextEdit{payload.URI: {{Range: payload.Range, NewText: out}}}}
+ ca.Edit = &edit
+ return ca, true
+ }
+ } else {
+ logging.Logf("lsp ", "codeAction simplify llm error: %v", err)
+ }
+ }
return ca, false
}
@@ -508,7 +508,7 @@ func (s *Server) generateGoTestFunction(funcCode string) string {
defer cancel()
messages := []llm.Message{{Role: "system", Content: sys}, {Role: "user", Content: user}}
opts := s.llmRequestOpts()
- if out, err := s.llmClient.Chat(ctx, messages, opts...); err == nil {
+ if out, err := s.chatWithStats(ctx, messages, opts...); err == nil {
cleaned := strings.TrimSpace(stripCodeFences(out))
if cleaned != "" {
return cleaned
diff --git a/internal/lsp/handlers_completion.go b/internal/lsp/handlers_completion.go
index 06c44fb..14c5f3e 100644
--- a/internal/lsp/handlers_completion.go
+++ b/internal/lsp/handlers_completion.go
@@ -250,8 +250,14 @@ func (s *Server) tryProviderNativeCompletion(current string, p CompletionParams,
if !s.waitForThrottle(ctx2) {
return nil, false
}
+ // Count approximate payload sizes: prompt+after sent; first suggestion received
+ sentBytes := len(prompt) + len(after)
suggestions, err := cc.CodeCompletion(ctx2, prompt, after, 1, lang, temp)
if err == nil && len(suggestions) > 0 {
+ // Update counters and heartbeat
+ s.incSentCounters(sentBytes)
+ s.incRecvCounters(len(suggestions[0]))
+ s.logLLMStats()
cleaned := strings.TrimSpace(suggestions[0])
if cleaned != "" {
cleaned = stripDuplicateAssignmentPrefix(current[:p.Position.Character], cleaned)
@@ -272,6 +278,9 @@ func (s *Server) tryProviderNativeCompletion(current string, p CompletionParams,
}
} else if err != nil {
logging.Logf("lsp ", "completion path=codex error=%v (falling back to chat)", err)
+ // Still emit a heartbeat for visibility, even on error
+ s.incSentCounters(sentBytes)
+ s.logLLMStats()
}
return nil, false
}
diff --git a/internal/lsp/handlers_document.go b/internal/lsp/handlers_document.go
index f3648b2..14642c7 100644
--- a/internal/lsp/handlers_document.go
+++ b/internal/lsp/handlers_document.go
@@ -162,7 +162,7 @@ func (s *Server) detectAndHandleChat(uri string) {
msgs := append([]llm.Message{{Role: "system", Content: sys}}, history...)
opts := s.llmRequestOpts()
logging.Logf("lsp ", "chat llm=requesting model=%s", s.llmClient.DefaultModel())
- text, err := s.llmClient.Chat(ctx, msgs, opts...)
+ text, err := s.chatWithStats(ctx, msgs, opts...)
if err != nil {
logging.Logf("lsp ", "chat llm error: %v", err)
return
diff --git a/internal/lsp/handlers_init_more_test.go b/internal/lsp/handlers_init_more_test.go
index 230c773..8b8aa55 100644
--- a/internal/lsp/handlers_init_more_test.go
+++ b/internal/lsp/handlers_init_more_test.go
@@ -1,15 +1,14 @@
package lsp
import (
- "bytes"
- "log"
- "testing"
+ "bytes"
+ "log"
+ "testing"
)
func TestHandleInitialized_Logs(t *testing.T) {
- // Minimal server with a logger; just ensure it doesn't panic.
- var buf bytes.Buffer
- s := NewServer(bytes.NewBuffer(nil), &buf, log.New(&buf, "", 0), ServerOptions{})
- s.handleInitialized()
+ // Minimal server with a logger; just ensure it doesn't panic.
+ var buf bytes.Buffer
+ s := NewServer(bytes.NewBuffer(nil), &buf, log.New(&buf, "", 0), ServerOptions{})
+ s.handleInitialized()
}
-
diff --git a/internal/lsp/server.go b/internal/lsp/server.go
index 796d6f4..97d7de7 100644
--- a/internal/lsp/server.go
+++ b/internal/lsp/server.go
@@ -78,11 +78,11 @@ type Server struct {
promptDocumentSystem string
promptRewriteUser string
promptDiagnosticsUser string
- promptDocumentUser string
- promptGoTestSystem string
- promptGoTestUser string
- promptSimplifySystem string
- promptSimplifyUser string
+ promptDocumentUser string
+ promptGoTestSystem string
+ promptGoTestUser string
+ promptSimplifySystem string
+ promptSimplifyUser string
}
// ServerOptions collects configuration for NewServer to avoid long parameter lists.
@@ -121,10 +121,10 @@ type ServerOptions struct {
PromptRewriteUser string
PromptDiagnosticsUser string
PromptDocumentUser string
- PromptGoTestSystem string
- PromptGoTestUser string
- PromptSimplifySystem string
- PromptSimplifyUser string
+ PromptGoTestSystem string
+ PromptGoTestUser string
+ PromptSimplifySystem string
+ PromptSimplifyUser string
}
func NewServer(r io.Reader, w io.Writer, logger *log.Logger, opts ServerOptions) *Server {
@@ -203,11 +203,11 @@ func NewServer(r io.Reader, w io.Writer, logger *log.Logger, opts ServerOptions)
s.promptDocumentSystem = opts.PromptDocumentSystem
s.promptRewriteUser = opts.PromptRewriteUser
s.promptDiagnosticsUser = opts.PromptDiagnosticsUser
- s.promptDocumentUser = opts.PromptDocumentUser
- s.promptGoTestSystem = opts.PromptGoTestSystem
- s.promptGoTestUser = opts.PromptGoTestUser
- s.promptSimplifySystem = opts.PromptSimplifySystem
- s.promptSimplifyUser = opts.PromptSimplifyUser
+ s.promptDocumentUser = opts.PromptDocumentUser
+ s.promptGoTestSystem = opts.PromptGoTestSystem
+ s.promptGoTestUser = opts.PromptGoTestUser
+ s.promptSimplifySystem = opts.PromptSimplifySystem
+ s.promptSimplifyUser = opts.PromptSimplifyUser
// Assign package-level inline trigger chars for free helper functions
if s.inlineOpen != "" {
diff --git a/internal/testutil/fixtures_test.go b/internal/testutil/fixtures_test.go
index 8c603d8..7c7f239 100644
--- a/internal/testutil/fixtures_test.go
+++ b/internal/testutil/fixtures_test.go
@@ -3,7 +3,10 @@ package testutil
import "testing"
func TestFixtures_ZeroCovTargets(t *testing.T) {
- if MarkdownCodeFence() == "" { t.Fatal("MarkdownCodeFence empty") }
- if MalformedJSON() == "" { t.Fatal("MalformedJSON empty") }
+ if MarkdownCodeFence() == "" {
+ t.Fatal("MarkdownCodeFence empty")
+ }
+ if MalformedJSON() == "" {
+ t.Fatal("MalformedJSON empty")
+ }
}
-
diff --git a/internal/textutil/textutil.go b/internal/textutil/textutil.go
index 7ef2680..1e9da3c 100644
--- a/internal/textutil/textutil.go
+++ b/internal/textutil/textutil.go
@@ -4,111 +4,125 @@ import "strings"
// RenderTemplate performs simple {{var}} replacement in a template string.
func RenderTemplate(t string, vars map[string]string) string {
- if t == "" || len(vars) == 0 {
- return t
- }
- out := t
- for k, v := range vars {
- out = strings.ReplaceAll(out, "{{"+k+"}}", v)
- }
- return out
+ if t == "" || len(vars) == 0 {
+ return t
+ }
+ out := t
+ for k, v := range vars {
+ out = strings.ReplaceAll(out, "{{"+k+"}}", v)
+ }
+ return out
}
// StripCodeFences removes surrounding Markdown triple-backtick fences.
func StripCodeFences(s string) string {
- t := strings.TrimSpace(s)
- if t == "" {
- return t
- }
- lines := strings.Split(t, "\n")
- start := 0
- for start < len(lines) && strings.TrimSpace(lines[start]) == "" {
- start++
- }
- end := len(lines) - 1
- for end >= 0 && strings.TrimSpace(lines[end]) == "" {
- end--
- }
- if start >= len(lines) || end < 0 || start > end {
- return t
- }
- first := strings.TrimSpace(lines[start])
- last := strings.TrimSpace(lines[end])
- if strings.HasPrefix(first, "```") && last == "```" && end > start {
- inner := strings.Join(lines[start+1:end], "\n")
- return inner
- }
- return t
+ t := strings.TrimSpace(s)
+ if t == "" {
+ return t
+ }
+ lines := strings.Split(t, "\n")
+ start := 0
+ for start < len(lines) && strings.TrimSpace(lines[start]) == "" {
+ start++
+ }
+ end := len(lines) - 1
+ for end >= 0 && strings.TrimSpace(lines[end]) == "" {
+ end--
+ }
+ if start >= len(lines) || end < 0 || start > end {
+ return t
+ }
+ first := strings.TrimSpace(lines[start])
+ last := strings.TrimSpace(lines[end])
+ if strings.HasPrefix(first, "```") && last == "```" && end > start {
+ inner := strings.Join(lines[start+1:end], "\n")
+ return inner
+ }
+ return t
}
// InstructionFromSelection extracts the first inline instruction and returns
// (instruction, cleanedSelection). It detects markers on the earliest position
// per line in precedence: strict ;text;, /* */, <!-- -->, //, #, --.
func InstructionFromSelection(sel string) (string, string) {
- lines := strings.Split(sel, "\n")
- for idx, line := range lines {
- if instr, cleaned, ok := FindFirstInstructionInLine(line); ok && strings.TrimSpace(instr) != "" {
- lines[idx] = cleaned
- return instr, strings.Join(lines, "\n")
- }
- }
- return "", sel
+ lines := strings.Split(sel, "\n")
+ for idx, line := range lines {
+ if instr, cleaned, ok := FindFirstInstructionInLine(line); ok && strings.TrimSpace(instr) != "" {
+ lines[idx] = cleaned
+ return instr, strings.Join(lines, "\n")
+ }
+ }
+ return "", sel
}
// FindFirstInstructionInLine returns (instruction, cleaned, ok) for a single line.
func FindFirstInstructionInLine(line string) (instr, cleaned string, ok bool) {
- type cand struct{ start, end int; text string }
- cands := []cand{}
- if t, l, r, ok := FindStrictInlineTag(line); ok {
- cands = append(cands, cand{start: l, end: r, text: t})
- }
- if i := strings.Index(line, "/*"); i >= 0 {
- if j := strings.Index(line[i+2:], "*/"); j >= 0 {
- start := i
- end := i + 2 + j + 2
- text := strings.TrimSpace(line[i+2 : i+2+j])
- cands = append(cands, cand{start: start, end: end, text: text})
- }
- }
- if i := strings.Index(line, "<!--"); i >= 0 {
- if j := strings.Index(line[i+4:], "-->"); j >= 0 {
- start := i
- end := i + 4 + j + 3
- text := strings.TrimSpace(line[i+4 : i+4+j])
- cands = append(cands, cand{start: start, end: end, text: text})
- }
- }
- if i := strings.Index(line, "//"); i >= 0 {
- cands = append(cands, cand{start: i, end: len(line), text: strings.TrimSpace(line[i+2:])})
- }
- if i := strings.Index(line, "#"); i >= 0 {
- cands = append(cands, cand{start: i, end: len(line), text: strings.TrimSpace(line[i+1:])})
- }
- if i := strings.Index(line, "--"); i >= 0 {
- cands = append(cands, cand{start: i, end: len(line), text: strings.TrimSpace(line[i+2:])})
- }
- if len(cands) == 0 { return "", line, false }
- best := cands[0]
- for _, c := range cands[1:] {
- if c.start >= 0 && (best.start < 0 || c.start < best.start) { best = c }
- }
- cleaned = strings.TrimRight(line[:best.start]+line[best.end:], " \t")
- return best.text, cleaned, true
+ type cand struct {
+ start, end int
+ text string
+ }
+ cands := []cand{}
+ if t, l, r, ok := FindStrictInlineTag(line); ok {
+ cands = append(cands, cand{start: l, end: r, text: t})
+ }
+ if i := strings.Index(line, "/*"); i >= 0 {
+ if j := strings.Index(line[i+2:], "*/"); j >= 0 {
+ start := i
+ end := i + 2 + j + 2
+ text := strings.TrimSpace(line[i+2 : i+2+j])
+ cands = append(cands, cand{start: start, end: end, text: text})
+ }
+ }
+ if i := strings.Index(line, "<!--"); i >= 0 {
+ if j := strings.Index(line[i+4:], "-->"); j >= 0 {
+ start := i
+ end := i + 4 + j + 3
+ text := strings.TrimSpace(line[i+4 : i+4+j])
+ cands = append(cands, cand{start: start, end: end, text: text})
+ }
+ }
+ if i := strings.Index(line, "//"); i >= 0 {
+ cands = append(cands, cand{start: i, end: len(line), text: strings.TrimSpace(line[i+2:])})
+ }
+ if i := strings.Index(line, "#"); i >= 0 {
+ cands = append(cands, cand{start: i, end: len(line), text: strings.TrimSpace(line[i+1:])})
+ }
+ if i := strings.Index(line, "--"); i >= 0 {
+ cands = append(cands, cand{start: i, end: len(line), text: strings.TrimSpace(line[i+2:])})
+ }
+ if len(cands) == 0 {
+ return "", line, false
+ }
+ best := cands[0]
+ for _, c := range cands[1:] {
+ if c.start >= 0 && (best.start < 0 || c.start < best.start) {
+ best = c
+ }
+ }
+ cleaned = strings.TrimRight(line[:best.start]+line[best.end:], " \t")
+ return best.text, cleaned, true
}
// FindStrictInlineTag finds ;text; with no spaces after/before semicolons.
func FindStrictInlineTag(line string) (text string, left, right int, ok bool) {
- for i := 0; i < len(line); i++ {
- if line[i] != ';' { continue }
- if i+1 < len(line) && line[i+1] == ' ' { continue }
- for j := i + 1; j < len(line); j++ {
- if line[j] == ';' {
- if j-1 >= 0 && line[j-1] == ' ' { continue }
- inner := strings.TrimSpace(line[i+1 : j])
- if inner != "" { return inner, i, j + 1, true }
- }
- }
- }
- return "", -1, -1, false
+ for i := 0; i < len(line); i++ {
+ if line[i] != ';' {
+ continue
+ }
+ if i+1 < len(line) && line[i+1] == ' ' {
+ continue
+ }
+ for j := i + 1; j < len(line); j++ {
+ if line[j] == ';' {
+ if j-1 >= 0 && line[j-1] == ' ' {
+ continue
+ }
+ inner := strings.TrimSpace(line[i+1 : j])
+ if inner != "" {
+ return inner, i, j + 1, true
+ }
+ }
+ }
+ }
+ return "", -1, -1, false
}
-
diff --git a/internal/textutil/textutil_test.go b/internal/textutil/textutil_test.go
index 3a8cd90..cfe8de8 100644
--- a/internal/textutil/textutil_test.go
+++ b/internal/textutil/textutil_test.go
@@ -1,87 +1,89 @@
package textutil
import (
- "regexp"
- "strings"
- "testing"
+ "regexp"
+ "strings"
+ "testing"
)
func TestRenderTemplate_Basic(t *testing.T) {
- out := RenderTemplate("Hello, {{name}}!", map[string]string{"name": "Hex"})
- if out != "Hello, Hex!" {
- t.Fatalf("render failed: %q", out)
- }
- // No vars
- if RenderTemplate("x", nil) != "x" { t.Fatal("nil vars changed output") }
+ out := RenderTemplate("Hello, {{name}}!", map[string]string{"name": "Hex"})
+ if out != "Hello, Hex!" {
+ t.Fatalf("render failed: %q", out)
+ }
+ // No vars
+ if RenderTemplate("x", nil) != "x" {
+ t.Fatal("nil vars changed output")
+ }
}
func TestStripCodeFences_Variants(t *testing.T) {
- cases := []struct{ in, want string }{
- {"```\ncode\n```", "code"},
- {"```go\npackage x\n```", "package x"},
- {"no fences", "no fences"},
- {"\n\n```\ntrim\n```\n", "trim"},
- }
- for _, c := range cases {
- if got := StripCodeFences(c.in); got != c.want {
- t.Fatalf("strip mismatch: %q != %q", got, c.want)
- }
- }
+ cases := []struct{ in, want string }{
+ {"```\ncode\n```", "code"},
+ {"```go\npackage x\n```", "package x"},
+ {"no fences", "no fences"},
+ {"\n\n```\ntrim\n```\n", "trim"},
+ }
+ for _, c := range cases {
+ if got := StripCodeFences(c.in); got != c.want {
+ t.Fatalf("strip mismatch: %q != %q", got, c.want)
+ }
+ }
}
func TestInstructionFromSelection_Markers(t *testing.T) {
- inputs := []string{
- ";do it;\ncode",
- "/* fix */\ncode",
- "<!-- doc -->\ncode",
- "// change\ncode",
- "# tweak\ncode",
- "-- op\ncode",
- }
- for _, in := range inputs {
- instr, cleaned := InstructionFromSelection(in)
- if strings.TrimSpace(instr) == "" {
- t.Fatalf("no instruction for input: %q", in)
- }
- // cleaned should not contain the instruction token
- if strings.Contains(cleaned, instr) {
- // Allow coincidence only if separated differently; require not exact match on same line
- first := strings.Split(in, "\n")[0]
- if strings.Contains(first, instr) {
- t.Fatalf("instruction not removed: %q", cleaned)
- }
- }
- }
+ inputs := []string{
+ ";do it;\ncode",
+ "/* fix */\ncode",
+ "<!-- doc -->\ncode",
+ "// change\ncode",
+ "# tweak\ncode",
+ "-- op\ncode",
+ }
+ for _, in := range inputs {
+ instr, cleaned := InstructionFromSelection(in)
+ if strings.TrimSpace(instr) == "" {
+ t.Fatalf("no instruction for input: %q", in)
+ }
+ // cleaned should not contain the instruction token
+ if strings.Contains(cleaned, instr) {
+ // Allow coincidence only if separated differently; require not exact match on same line
+ first := strings.Split(in, "\n")[0]
+ if strings.Contains(first, instr) {
+ t.Fatalf("instruction not removed: %q", cleaned)
+ }
+ }
+ }
}
func TestFindFirstInstructionInLine_EarliestWins(t *testing.T) {
- // Both markers present, earliest should win (strict tag first)
- line := ";first; // later"
- instr, cleaned, ok := FindFirstInstructionInLine(line)
- if !ok || instr != "first" {
- t.Fatalf("expected 'first', got %q ok=%v", instr, ok)
- }
- if strings.Contains(cleaned, instr) {
- t.Fatalf("expected cleaned line to remove instr: %q", cleaned)
- }
+ // Both markers present, earliest should win (strict tag first)
+ line := ";first; // later"
+ instr, cleaned, ok := FindFirstInstructionInLine(line)
+ if !ok || instr != "first" {
+ t.Fatalf("expected 'first', got %q ok=%v", instr, ok)
+ }
+ if strings.Contains(cleaned, instr) {
+ t.Fatalf("expected cleaned line to remove instr: %q", cleaned)
+ }
}
func TestFindStrictInlineTag(t *testing.T) {
- if txt, l, r, ok := FindStrictInlineTag("pre;do;post"); !ok || txt != "do" || l != 3 || r != 7 {
- t.Fatalf("strict tag parse failed: %q %d %d %v", txt, l, r, ok)
- }
- if _, _, _, ok := FindStrictInlineTag("; spaced ;"); ok {
- t.Fatalf("should reject spaced strict tag")
- }
+ if txt, l, r, ok := FindStrictInlineTag("pre;do;post"); !ok || txt != "do" || l != 3 || r != 7 {
+ t.Fatalf("strict tag parse failed: %q %d %d %v", txt, l, r, ok)
+ }
+ if _, _, _, ok := FindStrictInlineTag("; spaced ;"); ok {
+ t.Fatalf("should reject spaced strict tag")
+ }
}
// optional: ensure no ANSI codes appear in plain helpers
func TestNoANSIInHelpers(t *testing.T) {
- ansi := regexp.MustCompile(`\x1b\[[0-9;]*m`)
- if ansi.MatchString(RenderTemplate("x", nil)) {
- t.Fatalf("unexpected ansi in RenderTemplate")
- }
- if ansi.MatchString(StripCodeFences("x")) {
- t.Fatalf("unexpected ansi in StripCodeFences")
- }
+ ansi := regexp.MustCompile(`\x1b\[[0-9;]*m`)
+ if ansi.MatchString(RenderTemplate("x", nil)) {
+ t.Fatalf("unexpected ansi in RenderTemplate")
+ }
+ if ansi.MatchString(StripCodeFences("x")) {
+ t.Fatalf("unexpected ansi in StripCodeFences")
+ }
}
diff --git a/internal/tmux/tmux.go b/internal/tmux/tmux.go
index 63b5660..6d75a44 100644
--- a/internal/tmux/tmux.go
+++ b/internal/tmux/tmux.go
@@ -1,18 +1,20 @@
package tmux
import (
- "os"
- "os/exec"
- "strconv"
- "strings"
+ "os"
+ "os/exec"
+ "strconv"
+ "strings"
)
// Available reports whether tmux is available and we appear to be in a tmux session.
func Available() bool { return HasBinary() && InSession() }
// HasBinary reports whether the tmux binary is on PATH.
-var lookPath = exec.LookPath
-var command = exec.Command
+var (
+ lookPath = exec.LookPath
+ command = exec.Command
+)
func HasBinary() bool { _, err := lookPath("tmux"); return err == nil }
@@ -47,8 +49,8 @@ func SplitRun(opts SplitOpts, argv []string) error {
// tmux takes a single command string. Use a conservative shell join.
cmdStr := shellJoin(argv)
args = append(args, cmdStr)
- c := command("tmux", args...)
- return c.Run()
+ c := command("tmux", args...)
+ return c.Run()
}
// shellJoin quotes argv elements for safe use in a single shell command string.
diff --git a/internal/tmux/tmux_test.go b/internal/tmux/tmux_test.go
index b18c8a3..4db2e4a 100644
--- a/internal/tmux/tmux_test.go
+++ b/internal/tmux/tmux_test.go
@@ -1,82 +1,85 @@
package tmux
import (
- "errors"
- "os"
- "os/exec"
- "testing"
+ "errors"
+ "os"
+ "os/exec"
+ "testing"
)
func TestInSession(t *testing.T) {
- t.Setenv("TMUX", "/tmp/tmux-123,123,0")
- if !InSession() {
- t.Fatal("expected InSession true when TMUX is set")
- }
- t.Setenv("TMUX", "")
- if InSession() {
- t.Fatal("expected InSession false when TMUX is empty")
- }
+ t.Setenv("TMUX", "/tmp/tmux-123,123,0")
+ if !InSession() {
+ t.Fatal("expected InSession true when TMUX is set")
+ }
+ t.Setenv("TMUX", "")
+ if InSession() {
+ t.Fatal("expected InSession false when TMUX is empty")
+ }
}
func TestHasBinary_UsesLookPath(t *testing.T) {
- old := lookPath
- t.Cleanup(func() { lookPath = old })
- lookPath = func(file string) (string, error) { return "/bin/tmux", nil }
- if !HasBinary() {
- t.Fatal("expected HasBinary true when lookPath succeeds")
- }
- lookPath = func(file string) (string, error) { return "", errors.New("nope") }
- if HasBinary() {
- t.Fatal("expected HasBinary false when lookPath fails")
- }
+ old := lookPath
+ t.Cleanup(func() { lookPath = old })
+ lookPath = func(file string) (string, error) { return "/bin/tmux", nil }
+ if !HasBinary() {
+ t.Fatal("expected HasBinary true when lookPath succeeds")
+ }
+ lookPath = func(file string) (string, error) { return "", errors.New("nope") }
+ if HasBinary() {
+ t.Fatal("expected HasBinary false when lookPath fails")
+ }
}
func TestSplitRun_AssemblesArgs(t *testing.T) {
- captured := struct{ name string; args []string }{}
- oldCmd := command
- t.Cleanup(func() { command = oldCmd })
- command = func(name string, args ...string) *exec.Cmd {
- captured.name = name
- captured.args = append([]string(nil), args...)
- // Use a benign command that exits 0
- return exec.Command("true")
- }
- opts := SplitOpts{Target: ":.", Vertical: true, Percent: 40}
- argv := []string{"/path/to/bin", "-flag", "value with spaces", "and'quote"}
- if err := SplitRun(opts, argv); err != nil {
- t.Fatalf("SplitRun error: %v", err)
- }
- if captured.name != "tmux" {
- t.Fatalf("expected tmux, got %q", captured.name)
- }
- wantFlags := map[string]bool{"split-window": true, "-v": true, "-p": true, "40": true, "-t": true, ":.": true}
- for _, a := range captured.args[:len(captured.args)-1] {
- if wantFlags[a] {
- delete(wantFlags, a)
- }
- }
- if len(wantFlags) != 0 {
- t.Fatalf("missing expected flags: %v", wantFlags)
- }
- last := captured.args[len(captured.args)-1]
- if last == "" || last == argv[0] {
- t.Fatalf("expected last arg to be joined command string, got %q", last)
- }
- _ = os.Unsetenv("TMUX")
+ captured := struct {
+ name string
+ args []string
+ }{}
+ oldCmd := command
+ t.Cleanup(func() { command = oldCmd })
+ command = func(name string, args ...string) *exec.Cmd {
+ captured.name = name
+ captured.args = append([]string(nil), args...)
+ // Use a benign command that exits 0
+ return exec.Command("true")
+ }
+ opts := SplitOpts{Target: ":.", Vertical: true, Percent: 40}
+ argv := []string{"/path/to/bin", "-flag", "value with spaces", "and'quote"}
+ if err := SplitRun(opts, argv); err != nil {
+ t.Fatalf("SplitRun error: %v", err)
+ }
+ if captured.name != "tmux" {
+ t.Fatalf("expected tmux, got %q", captured.name)
+ }
+ wantFlags := map[string]bool{"split-window": true, "-v": true, "-p": true, "40": true, "-t": true, ":.": true}
+ for _, a := range captured.args[:len(captured.args)-1] {
+ if wantFlags[a] {
+ delete(wantFlags, a)
+ }
+ }
+ if len(wantFlags) != 0 {
+ t.Fatalf("missing expected flags: %v", wantFlags)
+ }
+ last := captured.args[len(captured.args)-1]
+ if last == "" || last == argv[0] {
+ t.Fatalf("expected last arg to be joined command string, got %q", last)
+ }
+ _ = os.Unsetenv("TMUX")
}
func TestAvailable(t *testing.T) {
- oldLook := lookPath
- t.Cleanup(func() { lookPath = oldLook })
- // Present binary + TMUX set -> available
- lookPath = func(file string) (string, error) { return "/bin/tmux", nil }
- t.Setenv("TMUX", "/tmp/tmux-1,1,1")
- if !Available() {
- t.Fatal("expected Available true with TMUX + binary")
- }
- // No binary -> not available
- lookPath = func(file string) (string, error) { return "", errors.New("nope") }
- if Available() {
- t.Fatal("expected Available false without binary")
- }
+ oldLook := lookPath
+ t.Cleanup(func() { lookPath = oldLook })
+ // Present binary + TMUX set -> available
+ lookPath = func(file string) (string, error) { return "/bin/tmux", nil }
+ t.Setenv("TMUX", "/tmp/tmux-1,1,1")
+ if !Available() {
+ t.Fatal("expected Available true with TMUX + binary")
+ }
+ // No binary -> not available
+ lookPath = func(file string) (string, error) { return "", errors.New("nope") }
+ if Available() {
+ t.Fatal("expected Available false without binary")
+ }
}